{"version":3,"file":"app.abc6b4d0b0f309d890ab.js","mappings":"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","sources":["webpack://rope-webclient/./src/router/constants.ts","webpack://rope-webclient/./config/app.ts","webpack://rope-webclient/./src/material/components.ts","webpack://rope-webclient/./src/material/distances.ts","webpack://rope-webclient/./src/material/palette.ts","webpack://rope-webclient/./src/material/sizes.ts","webpack://rope-webclient/./src/material/typography.ts","webpack://rope-webclient/./src/material/index.ts","webpack://rope-webclient/./src/store/aggregated/constants.ts","webpack://rope-webclient/./src/store/aggregated/activityHour/constants.ts","webpack://rope-webclient/./src/store/aggregated/activityHour/actions.ts","webpack://rope-webclient/./src/variables/misc.ts","webpack://rope-webclient/./src/utility/time/constants.ts","webpack://rope-webclient/./src/utility/time/formatters.ts","webpack://rope-webclient/./src/utility/time/index.ts","webpack://rope-webclient/./src/utility/aggregation.ts","webpack://rope-webclient/./src/utility/api.ts","webpack://rope-webclient/./src/utility/array.ts","webpack://rope-webclient/./src/utility/domain.ts","webpack://rope-webclient/./src/utility/kpi.ts","webpack://rope-webclient/./src/utility/styling.ts","webpack://rope-webclient/./src/utility/targetNew.ts","webpack://rope-webclient/./src/store/aggregated/activityHour/reducer.ts","webpack://rope-webclient/./src/store/data/constants.ts","webpack://rope-webclient/./src/store/data/activity/constants.ts","webpack://rope-webclient/./src/store/data/activity/actions.ts","webpack://rope-webclient/./src/store/data/activity/reducer.ts","webpack://rope-webclient/./src/store/data/activity/selectors.ts","webpack://rope-webclient/./src/store/data/activityType/constants.ts","webpack://rope-webclient/./src/store/data/activityType/actions.ts","webpack://rope-webclient/./src/store/data/activityType/reducer.ts","webpack://rope-webclient/./src/store/data/activityType/selectors.ts","webpack://rope-webclient/./src/store/aggregated/helpers.ts","webpack://rope-webclient/./src/store/aggregated/activityHour/selectors.ts","webpack://rope-webclient/./src/store/aggregated/employeeHour/constants.ts","webpack://rope-webclient/./src/store/aggregated/employeeHour/actions.ts","webpack://rope-webclient/./src/store/aggregated/employeeHour/reducer.ts","webpack://rope-webclient/./src/store/aggregated/employeeHour/selectors.ts","webpack://rope-webclient/./src/store/aggregated/external/constants.ts","webpack://rope-webclient/./src/store/aggregated/external/actions.ts","webpack://rope-webclient/./src/store/aggregated/external/reducer.ts","webpack://rope-webclient/./src/store/data/subZone/constants.ts","webpack://rope-webclient/./src/store/data/subZone/actions.ts","webpack://rope-webclient/./src/store/data/subZone/reducer.ts","webpack://rope-webclient/./src/store/data/subZone/selectors.ts","webpack://rope-webclient/./src/store/data/zone/constants.ts","webpack://rope-webclient/./src/store/data/zone/actions.ts","webpack://rope-webclient/./src/store/data/zone/reducer.ts","webpack://rope-webclient/./src/store/data/zone/selectors.ts","webpack://rope-webclient/./src/store/aggregated/external/selectors.ts","webpack://rope-webclient/./src/store/aggregated/forecast/constants.ts","webpack://rope-webclient/./src/store/aggregated/forecast/actions.ts","webpack://rope-webclient/./src/store/aggregated/forecast/reducer.ts","webpack://rope-webclient/./src/store/aggregated/forecast/selectors.ts","webpack://rope-webclient/./src/store/aggregated/internal/constants.ts","webpack://rope-webclient/./src/store/aggregated/internal/actions.ts","webpack://rope-webclient/./src/store/aggregated/internal/reducer.ts","webpack://rope-webclient/./src/store/aggregated/internal/selectors.ts","webpack://rope-webclient/./src/store/aggregated/prediction/constants.ts","webpack://rope-webclient/./src/store/aggregated/prediction/actions.ts","webpack://rope-webclient/./src/store/aggregated/prediction/reducer.ts","webpack://rope-webclient/./src/store/aggregated/prediction/selectors.ts","webpack://rope-webclient/./src/store/aggregated/combinedReducers.ts","webpack://rope-webclient/./src/store/data/area/constants.ts","webpack://rope-webclient/./src/store/data/area/actions.ts","webpack://rope-webclient/./src/store/data/area/reducer.ts","webpack://rope-webclient/./src/store/data/area/selectors.ts","webpack://rope-webclient/./src/store/data/branch/constants.ts","webpack://rope-webclient/./src/store/data/branch/actions.ts","webpack://rope-webclient/./src/store/data/branch/reducer.ts","webpack://rope-webclient/./src/store/data/branch/selectors.ts","webpack://rope-webclient/./src/store/data/company/constants.ts","webpack://rope-webclient/./src/store/data/company/actions.ts","webpack://rope-webclient/./src/store/data/company/reducer.ts","webpack://rope-webclient/./src/store/data/company/selectors.ts","webpack://rope-webclient/./src/store/data/distributionCenter/constants.ts","webpack://rope-webclient/./src/store/data/distributionCenter/actions.ts","webpack://rope-webclient/./src/store/data/distributionCenter/reducer.ts","webpack://rope-webclient/./src/store/data/distributionCenter/selectors.ts","webpack://rope-webclient/./src/store/data/employee/constants.ts","webpack://rope-webclient/./src/store/data/employee/actions.ts","webpack://rope-webclient/./src/store/data/employee/reducer.ts","webpack://rope-webclient/./src/store/data/employee/selectors.ts","webpack://rope-webclient/./src/store/data/errorMessage/constants.ts","webpack://rope-webclient/./src/store/data/errorMessage/actions.ts","webpack://rope-webclient/./src/store/data/errorMessage/reducer.ts","webpack://rope-webclient/./src/store/data/errorMessage/selectors.ts","webpack://rope-webclient/./src/store/data/file/constants.ts","webpack://rope-webclient/./src/store/data/file/actions.ts","webpack://rope-webclient/./src/store/data/file/reducer.ts","webpack://rope-webclient/./src/store/data/file/selectors.ts","webpack://rope-webclient/./src/store/data/producedActivity/constants.ts","webpack://rope-webclient/./src/store/data/producedActivity/actions.ts","webpack://rope-webclient/./src/store/data/producedActivity/reducer.ts","webpack://rope-webclient/./src/store/data/producedActivity/selectors.ts","webpack://rope-webclient/./src/store/data/suggestion/constants.ts","webpack://rope-webclient/./src/store/data/suggestion/actions.ts","webpack://rope-webclient/./src/store/data/suggestion/reducer.ts","webpack://rope-webclient/./src/store/data/suggestion/selectors.ts","webpack://rope-webclient/./src/store/data/combinedReducers.ts","webpack://rope-webclient/./src/store/glue/constants.ts","webpack://rope-webclient/./src/store/glue/loading/constants.ts","webpack://rope-webclient/./src/store/glue/loading/actions.ts","webpack://rope-webclient/./src/store/glue/loading/reducer.ts","webpack://rope-webclient/./src/store/glue/loading/selectors.ts","webpack://rope-webclient/./src/store/glue/user/constants.ts","webpack://rope-webclient/./src/store/glue/user/actions.ts","webpack://rope-webclient/./src/store/glue/user/reducer.ts","webpack://rope-webclient/./src/api/Actual/config.ts","webpack://rope-webclient/./src/api/Actual/transformers.ts","webpack://rope-webclient/./src/api/Actual/api.ts","webpack://rope-webclient/./src/api/Company/config.ts","webpack://rope-webclient/./src/api/Company/transformers.ts","webpack://rope-webclient/./src/api/Company/api.ts","webpack://rope-webclient/./src/api/Forecast/config.ts","webpack://rope-webclient/./src/api/Forecast/transformers.ts","webpack://rope-webclient/./src/api/Forecast/api.ts","webpack://rope-webclient/./src/api/OIDC/config.ts","webpack://rope-webclient/./src/api/OIDC/api.ts","webpack://rope-webclient/./src/store/glue/app/constants.ts","webpack://rope-webclient/./src/store/glue/app/actions.ts","webpack://rope-webclient/./src/store/helpers.ts","webpack://rope-webclient/./src/store/glue/user/sagas.ts","webpack://rope-webclient/./src/store/glue/user/selectors.ts","webpack://rope-webclient/./src/utility/jwt.ts","webpack://rope-webclient/./src/store/glue/combinedReducers.ts","webpack://rope-webclient/./src/store/glue/user/index.ts","webpack://rope-webclient/./src/store/page/constants.ts","webpack://rope-webclient/./src/store/page/dashboard/constants.ts","webpack://rope-webclient/./src/store/page/dashboard/actions.ts","webpack://rope-webclient/./src/store/page/dashboard/reducer.ts","webpack://rope-webclient/./src/store/page/dashboard/sagas.ts","webpack://rope-webclient/./src/store/page/dashboard/selectors.ts","webpack://rope-webclient/./src/store/page/flexHours/constants.ts","webpack://rope-webclient/./src/store/page/dashboard/index.ts","webpack://rope-webclient/./src/store/page/flexHours/actions.ts","webpack://rope-webclient/./src/store/page/flexHours/reducer.ts","webpack://rope-webclient/./src/store/page/flexHours/sagas.ts","webpack://rope-webclient/./src/components/Chart/constants.ts","webpack://rope-webclient/./src/components/Chart/helpers.ts","webpack://rope-webclient/./src/store/page/flexHours/selectors.ts","webpack://rope-webclient/./src/store/page/forecast/constants.ts","webpack://rope-webclient/./src/store/page/flexHours/index.ts","webpack://rope-webclient/./src/store/page/forecast/actions.ts","webpack://rope-webclient/./src/store/page/forecast/reducer.ts","webpack://rope-webclient/./src/store/page/forecast/sagas.ts","webpack://rope-webclient/./src/store/page/forecast/selectors.ts","webpack://rope-webclient/./src/store/page/integrations/constants.ts","webpack://rope-webclient/./src/store/page/forecast/index.ts","webpack://rope-webclient/./src/store/page/integrations/actions.ts","webpack://rope-webclient/./src/store/page/integrations/reducer.ts","webpack://rope-webclient/./src/store/page/integrations/sagas.ts","webpack://rope-webclient/./src/store/page/integrations/selectors.ts","webpack://rope-webclient/./src/store/page/zoneManagement/constants.ts","webpack://rope-webclient/./src/store/page/integrations/index.ts","webpack://rope-webclient/./src/store/page/zoneManagement/actions.ts","webpack://rope-webclient/./src/store/page/zoneManagement/reducer.ts","webpack://rope-webclient/./src/store/page/zoneManagement/selectors.ts","webpack://rope-webclient/./src/store/page/zoneManagement/sagas.ts","webpack://rope-webclient/./src/store/page/zoneManagement/index.ts","webpack://rope-webclient/./src/store/page/combinedReducers.ts","webpack://rope-webclient/./src/store/root-reducer.ts","webpack://rope-webclient/./src/store/glue/app/helpers.ts","webpack://rope-webclient/./src/store/glue/app/sagas.ts","webpack://rope-webclient/./src/store/glue/app/index.ts","webpack://rope-webclient/./src/store/root-saga.ts","webpack://rope-webclient/./src/store/store.ts","webpack://rope-webclient/./src/store/index.ts","webpack://rope-webclient/./src/templates/NavigationRoute/BreadcrumbRoute.tsx","webpack://rope-webclient/./src/hooks/useRouteName.ts","webpack://rope-webclient/./src/templates/NavigationRoute/Logo.tsx","webpack://rope-webclient/./src/templates/NavigationRoute/NavigationMenuCategory.tsx","webpack://rope-webclient/./src/templates/NavigationRoute/NavigationMenu.tsx","webpack://rope-webclient/./src/templates/NavigationRoute/UserMenu.tsx","webpack://rope-webclient/./src/templates/NavigationRoute/AppBar.tsx","webpack://rope-webclient/./src/templates/NavigationRoute/index.tsx","webpack://rope-webclient/./src/templates/ScrollableView.tsx","webpack://rope-webclient/./src/templates/TabsPage/index.tsx","webpack://rope-webclient/./src/components/Calendar/constants.ts","webpack://rope-webclient/./src/components/Calendar/helpers.ts","webpack://rope-webclient/./src/components/Calendar/index.tsx","webpack://rope-webclient/./src/components/Calendar/CalendarControl.tsx","webpack://rope-webclient/./src/components/Card.tsx","webpack://rope-webclient/./src/store/aggregated/selectors.ts","webpack://rope-webclient/./src/components/Chart/LegendList/index.tsx","webpack://rope-webclient/./src/components/Chart/plugins/label.ts","webpack://rope-webclient/./src/components/Chart/XAxis/index.tsx","webpack://rope-webclient/./src/components/Chart/index.tsx","webpack://rope-webclient/./src/components/Chart/plugins/axisArrows.ts","webpack://rope-webclient/./src/variables/spacing.ts","webpack://rope-webclient/./src/components/Dropdown.tsx","webpack://rope-webclient/./src/components/ExpandButton.tsx","webpack://rope-webclient/./src/components/Input/index.tsx","webpack://rope-webclient/./src/components/Modal.tsx","webpack://rope-webclient/./src/components/SortableList.tsx","webpack://rope-webclient/./src/components/StatusText.tsx","webpack://rope-webclient/./src/components/Stepper.tsx","webpack://rope-webclient/./src/components/Table/TableCell.tsx","webpack://rope-webclient/./src/components/Table/index.tsx","webpack://rope-webclient/./src/components/ToggleTextButton.tsx","webpack://rope-webclient/./src/pages/Integrations/FilesView/FileRow.tsx","webpack://rope-webclient/./src/pages/Integrations/FilesView/ViewActions.tsx","webpack://rope-webclient/./src/pages/Integrations/FilesView/index.tsx","webpack://rope-webclient/./src/pages/Integrations/PageActions.tsx","webpack://rope-webclient/./src/pages/Integrations/index.tsx","webpack://rope-webclient/./src/pages/Forecast/PageActions.tsx","webpack://rope-webclient/./src/pages/Forecast/ZoneView/charts.ts","webpack://rope-webclient/./src/pages/Forecast/ZoneView/Projection/Input.tsx","webpack://rope-webclient/./src/pages/Forecast/ZoneView/Projection/List.tsx","webpack://rope-webclient/./src/pages/Forecast/ZoneView/Projection/constants.ts","webpack://rope-webclient/./src/pages/Forecast/ZoneView/Projection/index.tsx","webpack://rope-webclient/./src/pages/Forecast/ZoneView/TableRow.tsx","webpack://rope-webclient/./src/pages/Forecast/ZoneView/index.tsx","webpack://rope-webclient/./src/pages/Forecast/index.tsx","webpack://rope-webclient/./src/pages/Improvements/QRCodeModal.tsx","webpack://rope-webclient/./src/pages/Improvements/PageActions.tsx","webpack://rope-webclient/./src/pages/Improvements/SuggestionsView/ImageModal.tsx","webpack://rope-webclient/./src/pages/Improvements/SuggestionsView/SuggestionRowContent.tsx","webpack://rope-webclient/./src/pages/Improvements/SuggestionsView/Suggestion.tsx","webpack://rope-webclient/./src/pages/Improvements/SuggestionsView/index.tsx","webpack://rope-webclient/./src/pages/Improvements/index.tsx","webpack://rope-webclient/./src/pages/Login.tsx","webpack://rope-webclient/./src/pages/Produtivity/PageActions.tsx","webpack://rope-webclient/./src/pages/Produtivity/PivotView/DateTableRow.tsx","webpack://rope-webclient/./src/pages/Produtivity/PivotView/TableRowChartModal.tsx","webpack://rope-webclient/./src/pages/Produtivity/PivotView/index.tsx","webpack://rope-webclient/./src/pages/Produtivity/index.tsx","webpack://rope-webclient/./src/pages/Schedule/index.tsx","webpack://rope-webclient/./src/pages/SigninOidc.tsx","webpack://rope-webclient/./src/pages/Time/ChartView/FilterButton/Group.tsx","webpack://rope-webclient/./src/pages/Time/ChartView/FilterButton/index.tsx","webpack://rope-webclient/./src/pages/Time/ChartView/index.tsx","webpack://rope-webclient/./src/pages/Time/SelectDatesModal.tsx","webpack://rope-webclient/./src/pages/Time/PageActions.tsx","webpack://rope-webclient/./src/pages/Time/PivotView/DateTableRow.tsx","webpack://rope-webclient/./src/pages/Time/PivotView/index.tsx","webpack://rope-webclient/./src/pages/Time/index.tsx","webpack://rope-webclient/./src/pages/ZoneManagement/View/constants.ts","webpack://rope-webclient/./src/pages/ZoneManagement/View/ActivityTableRow.tsx","webpack://rope-webclient/./src/pages/ZoneManagement/View/index.tsx","webpack://rope-webclient/./src/pages/ZoneManagement/View/ChangeModal.tsx","webpack://rope-webclient/./src/pages/ZoneManagement/index.tsx","webpack://rope-webclient/./src/router/AuthLayout.tsx","webpack://rope-webclient/./src/router/index.tsx","webpack://rope-webclient/./src/App.tsx","webpack://rope-webclient/./src/index.tsx"],"sourcesContent":["import analysisImage from 'assets/analysis.png';\nimport configurationImage from 'assets/configuration.png';\nimport planningImage from 'assets/planning.png';\n\nconst routes = {\n base: '/',\n login: '/login',\n signinOidc: '/signin-oidc',\n\n // analysis\n time: '/time',\n productivity: '/productivity',\n pickingrows: '/picking-rows',\n\n // planning\n forecast: '/forecast',\n tictac: '/tictac',\n schedule: '/schedule',\n improvements: '/improvements',\n\n // configuration\n actions: '/actions',\n productivityGoals: '/productivity-goals',\n zoneManagement: '/zone-management',\n integrations: '/integrations',\n};\n\n// Exploration\nconst routeNames: Record = {\n [routes.time]: ['Analysis', 'Time'],\n [routes.productivity]: ['Analysis', 'Productivity'],\n [routes.zoneManagement]: ['Configuration', 'Zone Management'],\n [routes.integrations]: ['Configuration', 'Integrations'],\n [routes.forecast]: ['Planning', 'Forecast'],\n [routes.schedule]: ['Planning', 'Schedule'],\n [routes.improvements]: ['Planning', 'Improvements'],\n};\n\nexport interface MenuCategory {\n id: string;\n name: string;\n imageSource: string;\n routes: (LabelItem & { disabled: boolean })[];\n}\n\nconst menuCategories: MenuCategory[] = [\n {\n id: '1',\n name: 'Planning',\n imageSource: planningImage,\n routes: [\n { id: routes.forecast, name: 'Forecast', disabled: false },\n { id: routes.schedule, name: 'Schedule', disabled: false },\n { id: routes.improvements, name: 'Improvements', disabled: false },\n { id: routes.tictac, name: 'Tictac', disabled: true },\n ],\n },\n {\n id: '2',\n name: 'Analysis',\n imageSource: analysisImage,\n routes: [\n { id: routes.productivity, name: 'Productivity', disabled: false },\n { id: routes.time, name: 'Time', disabled: false },\n { id: routes.pickingrows, name: 'Picking Rows', disabled: true },\n ],\n },\n {\n id: '3',\n name: 'Configuration',\n imageSource: configurationImage,\n routes: [\n { id: routes.integrations, name: 'Integrations', disabled: false },\n\n {\n id: routes.zoneManagement,\n name: 'Zone Management',\n disabled: false,\n },\n {\n id: routes.productivityGoals,\n name: 'Productivity Target ',\n disabled: true,\n },\n { id: routes.actions, name: 'Actions', disabled: true },\n ],\n },\n];\n\nexport { menuCategories, routeNames, routes };\n","import { routes } from 'router/constants';\n\nconst USE_MOCKED_USER = false;\nconst USE_MOCK = false || USE_MOCKED_USER;\n\nconst DETECT_MUTATIONS = false;\nconst LOG_SAGA_TIME = false;\nconst SLOW_DOWN_SAGA = false;\nconst REACT_STRICT_MODE = false;\n\nconst START_PAGE = routes.integrations;\n\nconst COMPANY_ID = 'f63fd3c6-2d56-4c84-80ad-a65de5a62d84'; // TEST ID\n// const COMPANY_ID = '05626021-1D66-4948-A194-841E0DE7832C'; // STIHL ID\n\nexport {\n COMPANY_ID,\n DETECT_MUTATIONS,\n LOG_SAGA_TIME,\n REACT_STRICT_MODE,\n SLOW_DOWN_SAGA,\n START_PAGE,\n USE_MOCK,\n USE_MOCKED_USER,\n};\n","import { Components, Theme } from '@mui/material';\n\ntype MuiComponent = Components>;\n\nconst MuiButton: MuiComponent['MuiButton'] = {\n styleOverrides: {\n root: { gap: 8 }, // ! Not spacing value\n },\n};\n\nconst MuiIconButton: MuiComponent['MuiIconButton'] = {\n defaultProps: { sx: { width: 'fit-content', height: 'fit-content' } },\n};\n\nconst MuiPaper: MuiComponent['MuiPaper'] = {\n styleOverrides: {\n root: {\n backgroundImage: 'unset', // stop adding gradients material ui\n },\n },\n};\n\nconst components: Components> = {\n MuiButton,\n MuiIconButton,\n MuiPaper,\n};\n\nexport { components };\n","import { Distances } from '@mui/material';\n\nconst distances: Distances = {\n tiny: 1,\n small: 2,\n medium: 4,\n large: 6,\n huge: 8,\n massive: 12,\n};\n\nexport { distances };\n","import {\n ChartPaletteColorOptions,\n PaletteOptions,\n SimplePaletteColorOptions,\n} from '@mui/material';\nimport {\n amber,\n blueGrey,\n deepOrange,\n green,\n indigo,\n lightBlue,\n lightGreen,\n pink,\n red,\n yellow,\n} from '@mui/material/colors';\nimport createPalette from '@mui/material/styles/createPalette';\n\nexport const primary: SimplePaletteColorOptions = {\n main: lightBlue['500'],\n dark: lightBlue['800'],\n light: lightBlue['200'],\n contrastText: lightBlue['50'],\n};\n\nexport const secondary: SimplePaletteColorOptions = {\n main: amber['500'],\n dark: amber['800'],\n light: amber['200'],\n contrastText: '#000',\n};\n\nexport const error: SimplePaletteColorOptions = {\n main: red['400'],\n dark: red['700'],\n light: red['200'],\n contrastText: red['50'],\n};\n\nexport const success: SimplePaletteColorOptions = {\n main: lightGreen['400'],\n dark: lightGreen['700'],\n light: lightGreen['200'],\n contrastText: lightGreen['50'],\n};\n\nexport const warning: SimplePaletteColorOptions = {\n main: yellow['600'],\n dark: yellow['800'],\n light: yellow['300'],\n contrastText: yellow['50'],\n};\n\n// ! To clearly show the developers that we are not using some variants.\nconst DONT_USE_COLOR: SimplePaletteColorOptions = {\n main: '#000',\n dark: '#000',\n light: '#000',\n contrastText: '#000',\n};\n\nconst datasets: ChartPaletteColorOptions = {\n line: indigo[400],\n line_secondary: lightGreen[400],\n stepped: pink[400],\n complimentary_bar: blueGrey[400],\n scatter: green[400],\n scatter_secondary: deepOrange[400],\n};\n\nconst darkPalette = createPalette({\n mode: 'dark',\n datasets,\n primary,\n secondary,\n error,\n success,\n warning,\n background: { paper: blueGrey[700], default: '#4A616B' },\n info: DONT_USE_COLOR,\n});\n\nconst lightPalette: PaletteOptions = {\n mode: 'light',\n datasets,\n primary,\n secondary,\n error,\n success,\n warning,\n background: { paper: '#ffffff', default: '#f4f5fa' },\n info: DONT_USE_COLOR,\n};\n\nexport { darkPalette, lightPalette };\n","import { Sizes } from '@mui/material';\n\nconst sizes: Sizes = {\n '21': 21,\n '34': 34,\n '55': 55,\n '89': 89,\n '144': 144,\n '233': 233,\n '377': 377,\n '610': 610,\n '987': 987,\n '1597': 1597,\n};\n\nexport { sizes };\n","import { TypographyOptions } from '@mui/material/styles/createTypography';\n\n/**\n * We are using two fonts.\n * In the application we should only use 2 fonts:\n * - Roboto:\n * https://fonts.google.com/specimen/Roboto\n * - Roboto Condensed:\n * https://fonts.google.com/specimen/Roboto+Condensed\n *\n * However, we have a third \"default font to signal that we are using the wrong one:\n * - Permanent Marker\n * https://fonts.google.com/specimen/Permanent+Marker\n *\n * TODO: Remove unused fonts from index.html\n */\n\nconst fontFamily = {\n UNCONFIGURED_FONT: 'Permanent Marker',\n ROBOTO: 'Roboto',\n ROBOTO_CONDENSED: 'Roboto Condensed',\n};\n\n// font-family: 'Permanent Marker', cursive;\n// font-family: 'Roboto', sans-serif;\n// font-family: 'Roboto Condensed', sans-serif;\n\nconst typography: TypographyOptions = {\n fontFamily: [\n fontFamily.ROBOTO,\n fontFamily.ROBOTO_CONDENSED,\n fontFamily.UNCONFIGURED_FONT,\n ].join(','),\n\n text1: {\n fontFamily: fontFamily.ROBOTO,\n fontSize: 20,\n letterSpacing: 1.5,\n lineHeight: 1.5,\n },\n text2: {\n fontFamily: fontFamily.ROBOTO,\n fontSize: 16,\n fontWeight: 500,\n letterSpacing: 1,\n lineHeight: 1.5,\n },\n\n action1: {\n fontFamily: fontFamily.ROBOTO_CONDENSED,\n fontSize: 20,\n letterSpacing: 2,\n },\n action2: {\n fontFamily: fontFamily.ROBOTO_CONDENSED,\n fontSize: 16,\n letterSpacing: 1.5,\n },\n\n header1: {\n fontFamily: fontFamily.ROBOTO,\n fontSize: 26,\n fontWeight: 'bold',\n letterSpacing: 3,\n },\n header2: { fontFamily: fontFamily.ROBOTO, fontSize: 22, letterSpacing: 2 },\n header3: {\n fontFamily: fontFamily.ROBOTO,\n fontSize: 20,\n fontWeight: 'bold',\n letterSpacing: 2,\n },\n header4: {\n fontFamily: fontFamily.ROBOTO,\n fontSize: 14,\n letterSpacing: 1,\n fontWeight: 500,\n },\n\n h1: undefined,\n h2: undefined,\n h3: undefined,\n h4: undefined,\n h5: undefined,\n h6: undefined,\n subtitle1: undefined,\n subtitle2: undefined,\n body1: undefined,\n body2: undefined,\n button: undefined,\n caption: undefined,\n overline: undefined,\n};\n\nexport { fontFamily, typography };\n","import { createTheme } from '@mui/material';\n\nimport { components } from './components';\nimport { distances } from './distances';\nimport { darkPalette, lightPalette } from './palette';\nimport { sizes } from './sizes';\nimport { fontFamily, typography } from './typography';\n\nconst lightTheme = createTheme({\n palette: lightPalette,\n typography,\n components,\n sizes,\n distances,\n});\n\nconst darkTheme = createTheme({\n palette: darkPalette,\n typography,\n components,\n sizes,\n distances,\n});\n\nexport { darkTheme, fontFamily, lightTheme };\n","export const DOMAIN_TYPE = 'aggregated';\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'activityHour';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\nconst add = createAction(\n ADD,\n (payload: Data.AggregatedActivityHour) => payload,\n)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(\n SET,\n (payload: Data.AggregatedActivityHour) => payload,\n)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","const MISSING = 'missing';\n\nexport { MISSING };\n","const JANUARY = 0;\nconst DECEMBER = 11;\nconst MONDAY = 1;\nconst SUNDAY = 0;\nconst FIRST_DAY_OF_MONTH = 1;\nconst MS_DAY = 24 * 60 * 60 * 1000;\nconst MS_WEEK = MS_DAY * 7;\n\nexport type DisplayLocation =\n | 'calendar'\n | 'selected-list'\n | 'flexhour-pivot-table-cell-header'\n | 'dashboard-pivot-table-cell-header'\n | 'x-axis-productivity-modal'\n | 'x-axis'\n | 'x-axis-detailed'\n | 'stepper'\n | 'dashboard-selected-week'\n | 'forecast-selected-week'\n | 'forecast-table-day'\n | 'integrations';\n\nexport type StrippedDate = Omit;\nconst weekdayConverter: Record = {\n 0: 'sunday',\n 1: 'monday',\n 2: 'thuesday',\n 3: 'wednesday',\n 4: 'thursday',\n 5: 'friday',\n 6: 'saturday',\n};\n\nconst shortMonthConverter: Record = {\n 0: 'jan',\n 1: 'feb',\n 2: 'mar',\n 3: 'apr',\n 4: 'may',\n 5: 'jun',\n 6: 'jul',\n 7: 'aug',\n 8: 'sep',\n 9: 'oct',\n 10: 'nov',\n 11: 'dec',\n};\nconst monthConverter: Record = {\n 0: 'january',\n 1: 'february',\n 2: 'march',\n 3: 'april',\n 4: 'may',\n 5: 'june',\n 6: 'july',\n 7: 'august',\n 8: 'september',\n 9: 'october',\n 10: 'november',\n 11: 'december',\n};\n\nexport {\n DECEMBER,\n FIRST_DAY_OF_MONTH,\n JANUARY,\n MONDAY,\n monthConverter,\n MS_DAY,\n MS_WEEK,\n shortMonthConverter,\n SUNDAY,\n weekdayConverter,\n};\n","import { misc } from 'variables';\n\nimport {\n DisplayLocation,\n monthConverter,\n shortMonthConverter,\n StrippedDate,\n weekdayConverter,\n} from './constants';\n\nfunction stringify(dateNumber: number, pad = false) {\n const dateString = dateNumber.toString();\n\n if (pad) return dateString.padStart(2, '0');\n\n return dateString;\n}\n\nfunction formatYear(date: StrippedDate, location: DisplayLocation) {\n const { year } = date;\n\n switch (location) {\n case 'calendar':\n case 'selected-list':\n case 'flexhour-pivot-table-cell-header':\n case 'stepper':\n case 'x-axis':\n case 'x-axis-detailed':\n return stringify(year);\n\n default:\n return misc.MISSING;\n }\n}\n\nfunction formatMonth(\n date: StrippedDate,\n location: DisplayLocation,\n) {\n const { year, month } = date;\n switch (location) {\n case 'calendar':\n return monthConverter[month] ?? misc.MISSING;\n\n case 'x-axis':\n return shortMonthConverter[month] ?? misc.MISSING;\n case 'selected-list':\n case 'flexhour-pivot-table-cell-header':\n return `${stringify(year)}, ${monthConverter[month] ?? misc.MISSING}`;\n case 'x-axis-detailed':\n return `${stringify(year)}, ${\n shortMonthConverter[month] ?? misc.MISSING\n }`;\n case 'stepper':\n return `${monthConverter[month] ?? misc.MISSING}, ${stringify(year)}`;\n default:\n return misc.MISSING;\n }\n}\n\nfunction formatWeek(date: StrippedDate, location: DisplayLocation) {\n const { week, year } = date;\n\n switch (location) {\n case 'calendar':\n case 'x-axis':\n return stringify(week);\n case 'selected-list':\n case 'flexhour-pivot-table-cell-header':\n case 'x-axis-detailed':\n return `${stringify(year)}, w.${week}`;\n case 'x-axis':\n return `w.${stringify(week)}`;\n case 'dashboard-pivot-table-cell-header':\n case 'dashboard-selected-week':\n case 'forecast-selected-week':\n case 'stepper':\n return `Week ${stringify(week)}, ${stringify(year)}`;\n case 'x-axis-productivity-modal':\n return `Week ${stringify(week)}`;\n default:\n return misc.MISSING;\n }\n}\n\nfunction formatDay(date: StrippedDate, location: DisplayLocation) {\n const { year, dayOfMonth, month, dayOfWeek } = date;\n switch (location) {\n case 'calendar':\n return stringify(dayOfMonth);\n case 'x-axis':\n case 'x-axis-detailed':\n case 'selected-list':\n case 'forecast-table-day':\n case 'flexhour-pivot-table-cell-header':\n case 'stepper':\n case 'integrations':\n return `${stringify(year)}-${stringify(month + 1, true)}-${stringify(\n dayOfMonth,\n true,\n )}`;\n\n case 'dashboard-pivot-table-cell-header':\n return `${weekdayConverter[dayOfWeek]}, ${dayOfMonth} ${monthConverter[month]}`;\n default:\n return misc.MISSING;\n }\n}\n\nexport { formatDay, formatMonth, formatWeek, formatYear, stringify };\n","import * as dateFns from 'date-fns';\nimport * as R from 'remeda';\nimport { misc } from 'variables';\n\nimport {\n DECEMBER,\n DisplayLocation,\n JANUARY,\n MONDAY,\n monthConverter,\n SUNDAY,\n weekdayConverter,\n} from './constants';\nimport * as formatters from './formatters';\n\nfunction getCalendarMonth(year: number, month: number) {\n const SHOW_NUMBER_OF_WEEKS = 6;\n\n const days: Time.Day[] = [];\n\n const startDate = new Date(year, month, 1);\n const endDate = new Date(year, month + 1, 0);\n\n // Since displayed calendar month can contain days from other months\n // We need to find actual start / end date.\n // Calendar month is displayed by week, and week start with MONDAY\n // And end with SUNDAY\n while (startDate.getDay() !== MONDAY)\n startDate.setDate(startDate.getDate() - 1);\n while (endDate.getDay() !== SUNDAY) endDate.setDate(endDate.getDate() + 1);\n\n // To keep the UI not jumpy, we need a static number of weeks.\n // A month can at most contain 6 separate weeks.\n const weeksBetween = dateFns.differenceInWeeks(endDate, startDate, {\n roundingMethod: 'ceil',\n });\n\n for (let i = weeksBetween; i < SHOW_NUMBER_OF_WEEKS; i++) {\n endDate.setDate(endDate.getDate() + 7);\n }\n\n // Go through all dates from startDate - endDate\n const currentDate = new Date(startDate);\n const endTimestamp = endDate.getTime();\n let currentTimestamp = startDate.getTime();\n\n while (currentTimestamp <= endTimestamp) {\n days.push(timestampToDay(currentDate.getTime()));\n currentTimestamp = currentDate.setDate(currentDate.getDate() + 1);\n }\n\n // A week is 7 days long, only whole weeks are present here\n const weeks = R.pipe(days, R.chunk(7));\n\n // eslint-disable-next-line no-console\n\n const allWeeks: string[] = [];\n const byWeek: Record = {};\n if (weeks.some((week) => week.length !== 7))\n return {\n allWeeks,\n byWeek,\n };\n\n // We want to sort on week id to get correct order\n R.forEach(weeks, (week) => {\n const weekDetails = getWeekDetails(week);\n if (!R.isDefined(weekDetails)) return;\n const { id } = weekDetails;\n allWeeks.push(id);\n byWeek[id] = week;\n });\n\n return { byWeek, allWeeks };\n}\n\n// Weeks is a pain.\n// We have the need to reliably go on id when sorting date.\n// Also we want to factory a week from days correctly.\nfunction getWeekDetails(\n week: Time.Day[],\n):\n | { id: string; year: number; week: number; startDayOfMonth: number }\n | undefined {\n const firstDay = R.first(week);\n const lastDay = R.last(week);\n if (!R.isDefined(firstDay)) return;\n if (!R.isDefined(lastDay)) return;\n const weekNbr = lastDay.week;\n\n let id = `y${lastDay.year}-w${lastDay.week}`;\n let year = lastDay.year;\n if (\n lastDay.month === JANUARY &&\n firstDay.month === DECEMBER &&\n weekNbr !== 1\n ) {\n id = `y${firstDay.year}-w${firstDay.week}`;\n year = firstDay.year;\n }\n\n return { id, year, week: weekNbr, startDayOfMonth: firstDay.dayOfMonth };\n}\n\nfunction weekFromDay(\n year: number,\n month: number,\n dayOfMonth: number,\n): Time.Week {\n const date = new Date(year, month, dayOfMonth);\n const day = timestampToDay(date.getTime());\n const week = convertDay('week', day) as Time.Week;\n return week;\n}\n\nfunction timestampToDay(timestamp: number): Time.Day {\n const date = new Date(timestamp);\n\n const year = dateFns.getYear(date);\n const month = dateFns.getMonth(date);\n const dayOfMonth = dateFns.getDate(date);\n const dayOfWeek = dateFns.getDay(date);\n const week = dateFns.getISOWeek(date);\n\n return factory({\n type: 'day',\n dayOfMonth,\n dayOfWeek,\n month,\n week,\n year,\n });\n}\n\n// TODO: rewrite?\nfunction getMonthsFromYear(year: number): Record {\n const months = R.pipe(\n monthConverter,\n R.mapValues((value, key) => {\n return factory({\n type: 'month',\n month: Number(key),\n year,\n });\n }),\n R.mapKeys((_key, value) => value.id),\n );\n return months;\n}\n\nfunction getWeeksFromMonth(\n year: number,\n month: number,\n): Record {\n // 1st day of month\n let date = new Date(year, month);\n const weeksInMonth = dateFns.getWeeksInMonth(date, { weekStartsOn: MONDAY });\n\n // ISO week starts at monday\n if (!dateFns.isMonday(date)) date = dateFns.previousMonday(date);\n\n // how many weeks in month?\n\n const weekById: Record = {};\n\n for (let i = 0; i < weeksInMonth; i++) {\n const isoWeek = dateFns.getISOWeek(date);\n const year = dateFns.getYear(date);\n const week = factory({\n type: 'week',\n week: isoWeek,\n year,\n });\n\n weekById[week.id] = week;\n\n date = dateFns.nextMonday(date);\n }\n\n return weekById;\n}\n\n// TODO: Does this consider week 53 in january for example?\nfunction getDaysFromWeek(\n year: number,\n weekNbr: number,\n): Record {\n let date = new Date(year, 3, 5);\n\n date = dateFns.setISOWeek(date, weekNbr); // ISO week starts at monday\n if (!dateFns.isMonday(date)) date = dateFns.previousMonday(date);\n const dayById: Record = {};\n\n for (let i = 0; i < dateFns.daysInWeek; i++) {\n const year = dateFns.getYear(date);\n const month = dateFns.getMonth(date);\n const dayOfMonth = dateFns.getDate(date);\n const dayOfWeek = dateFns.getDay(date);\n const day = factory({\n type: 'day',\n week: weekNbr,\n dayOfMonth,\n dayOfWeek,\n month,\n year,\n });\n\n dayById[day.id] = day;\n\n date = dateFns.addDays(date, 1);\n }\n\n return dayById;\n}\n\n// TODO day december week 1\nfunction convertDay(\n type: Exclude,\n day: Time.Day,\n): Time.Date {\n switch (type) {\n case 'year':\n return factory({ type: 'year', year: day.year });\n case 'month':\n return factory({\n type: 'month',\n year: day.year,\n month: day.month,\n });\n case 'week':\n let year = day.year;\n if (day.week > 50 && day.month === JANUARY) year = year - 1;\n if (day.week === 1 && day.month === DECEMBER) year = year + 1;\n\n return factory({\n type: 'week',\n year,\n week: day.week,\n });\n }\n}\n\nfunction step(args: {\n timeDate: T;\n step: System.Step;\n stepSize?: Time.DateType;\n}): T {\n const { step, timeDate, stepSize = timeDate.type } = args;\n const derivate = step === 'next' ? 1 : -1;\n\n const steppedDate = (date: Date): Date => {\n switch (stepSize) {\n case 'year':\n return dateFns.addYears(date, derivate);\n case 'month':\n return dateFns.addMonths(date, derivate);\n case 'day':\n return dateFns.addDays(date, derivate);\n case 'week':\n return dateFns.addWeeks(date, derivate);\n }\n };\n\n // Year\n if (timeDate.type === 'year') {\n const yearDate = steppedDate(new Date(timeDate.year, 0));\n const year = dateFns.getYear(yearDate);\n return factory({ type: 'year', year }) as T;\n }\n\n // Month\n else if (timeDate.type === 'month') {\n const monthDate = steppedDate(new Date(timeDate.year, timeDate.month));\n const year = dateFns.getYear(monthDate);\n const month = dateFns.getMonth(monthDate);\n return factory({ type: 'month', year, month }) as T;\n }\n\n // Day\n else if (timeDate.type === 'day') {\n const dayDate = steppedDate(\n new Date(timeDate.year, timeDate.month, timeDate.dayOfMonth),\n );\n\n const year = dateFns.getYear(dayDate);\n const month = dateFns.getMonth(dayDate);\n const dayOfMonth = dateFns.getDate(dayDate);\n const dayOfWeek = dateFns.getDay(dayDate);\n const isoWeek = dateFns.getISOWeek(dayDate);\n\n const day = factory({\n type: 'day',\n year,\n month,\n dayOfMonth,\n dayOfWeek,\n week: isoWeek,\n }) as T;\n\n return day;\n }\n\n // Week\n let weekDate = dateFns.setISOWeek(\n new Date(timeDate.year, 9, 3),\n timeDate.week,\n );\n\n // weekDate = dateFns.startOfISOWeek(weekDate);\n\n weekDate = steppedDate(weekDate);\n\n const year = dateFns.getISOWeekYear(weekDate);\n const isoWeek = dateFns.getISOWeek(weekDate);\n const week = factory({\n type: 'week',\n year,\n week: isoWeek,\n }) as T;\n\n return week;\n}\n\nfunction hasDate(args: { date: Time.Date; dateItem: Data.DateItem }) {\n const { dateItem, date } = args;\n const isYear = date.year === dateItem.year;\n switch (date.type) {\n case 'year':\n return isYear;\n case 'month':\n if (!isYear && dateItem) return false;\n return date.month === dateItem.month;\n case 'week':\n if (!isYear) return false;\n return date.week === dateItem.week;\n case 'day':\n if (!isYear) return false;\n if (date.month !== dateItem.month) return false;\n return date.dayOfMonth === dateItem.dayOfMonth;\n }\n}\n\nfunction readableHours(hours: number) {\n const integer = Math.floor(hours);\n const decimal = hours % 1;\n\n let minutes = Number((decimal * 60).toFixed(0));\n if (minutes < 0) minutes = minutes * -1;\n return `${integer}:${minutes.toString().padStart(2, '0')}`;\n}\n\nfunction format(date: Time.Date, location: DisplayLocation) {\n switch (date.type) {\n case 'year':\n return formatters.formatYear(date, location);\n case 'month':\n return formatters.formatMonth(date, location);\n case 'week':\n return formatters.formatWeek(date, location);\n case 'day':\n return formatters.formatDay(date, location);\n default:\n return misc.MISSING;\n }\n}\n\nfunction getDisplayDate(baseDate: Data.DateItem, type: Time.DateType | 'date') {\n const { year, month, dayOfWeek, week, dayOfMonth } = baseDate;\n\n const yearString = `${year}`;\n const monthString = month.toString().padStart(2, '0');\n const dayOfMonthString = dayOfMonth.toString().padStart(2, '0');\n const weekString = week.toString().padStart(2, '0');\n const dayName = weekdayConverter[dayOfWeek] ?? 'ERROR';\n const monthName = monthConverter[month] ?? 'ERROR';\n switch (type) {\n case 'year':\n return yearString;\n case 'month':\n return `${yearString}, ${monthName}`;\n case 'week':\n return `${yearString}, v.${weekString}`;\n case 'day':\n return `${yearString}, v.${weekString} - ${dayName}`;\n case 'date':\n return `${yearString}-${monthString}-${dayOfMonthString}`;\n }\n}\n\nfunction toTimeDate(date: Date) {\n const year = dateFns.getYear(date);\n const month = dateFns.getMonth(date);\n const week = dateFns.getWeek(date);\n const dayOfMonth = dateFns.getDate(date);\n const dayOfWeek = dateFns.getDay(date);\n const day = factory({\n type: 'day',\n year,\n month,\n week,\n dayOfMonth,\n dayOfWeek,\n });\n return day;\n}\nconst generateYearId = (year: number) => `y${year}`;\nconst generateMonthId = (year: number, month: number) =>\n `y${year}-m${formatters.stringify(month, true)}`;\n\nconst generateWeekId = (year: number, weekNbr: number) =>\n `y${year}-w${formatters.stringify(weekNbr, true)}`;\nconst generateDayId = (year: number, month: number, dayOfMonth: number) =>\n `y${year}-m${formatters.stringify(month, true)}-d${formatters.stringify(\n dayOfMonth,\n true,\n )}`;\n\nfunction factory(date: DistributiveOmit): T {\n switch (date.type) {\n case 'year':\n return { id: generateYearId(date.year), ...date } as Time.Year as T;\n case 'month':\n return {\n id: generateMonthId(date.year, date.month),\n ...date,\n } as Time.Month as T;\n case 'week':\n return {\n id: generateWeekId(date.year, date.week),\n ...date,\n } as Time.Week as T;\n case 'day':\n return {\n id: generateDayId(date.year, date.month, date.dayOfMonth),\n ...date,\n } as Time.Day as T;\n }\n}\n\nfunction getToday(): Time.Day {\n return toTimeDate(new Date());\n}\n\nfunction toDate(timeDate: Time.Date) {\n const year = timeDate.year;\n\n switch (timeDate.type) {\n case 'year':\n return new Date(year, 0);\n case 'month':\n return new Date(year, timeDate.month);\n case 'day':\n return new Date(year, timeDate.month, timeDate.dayOfMonth);\n case 'week':\n return dateFns.setISOWeek(new Date(year, 3), timeDate.week);\n }\n}\n\nfunction compareDates(\n date: Date,\n dateToCompare: Date,\n): 'past' | 'present' | 'future' {\n const isAfter = dateFns.isAfter(date, dateToCompare);\n if (isAfter) return 'future';\n\n const isBefore = dateFns.isBefore(date, dateToCompare);\n if (isBefore) return 'past';\n\n return 'present';\n}\n\n/**\n * Generate date from a dateId\n */\nfunction dateFromId(dateId: string): Time.Date | null {\n let year: number | undefined;\n let month: number | undefined;\n let week: number | undefined;\n let dayOfMonth: number | undefined;\n\n R.pipe(\n dateId.split('-'),\n R.forEach((datePart) => {\n // charAt position 0 determines\n const type = datePart.charAt(0);\n const value = Number(datePart.substring(1, datePart.length));\n if (type === 'y') year = value;\n else if (type === 'm') month = value;\n else if (type === 'w') week = value;\n else if (type === 'd') dayOfMonth = value;\n }),\n );\n\n if (!R.isDefined(year)) return null;\n\n // Time.Day\n if (R.isDefined(month) && R.isDefined(dayOfMonth))\n return toTimeDate(new Date(year, month, dayOfMonth));\n\n // Time.Week\n if (R.isDefined(week))\n return factory({ type: 'week', year, week });\n\n if (R.isDefined(month))\n return factory({ type: 'month', year, month });\n\n return factory({ type: 'year', year });\n}\n\nfunction temporalAssessor(day: Time.Day, compareTo?: Time.Date) {\n const date = toDate(day);\n\n let dateToCompare = new Date();\n\n if (!R.isDefined(compareTo)) return compareDates(date, dateToCompare);\n\n dateToCompare = toDate(compareTo);\n\n if (compareTo.type === 'day') return compareDates(date, dateToCompare);\n\n const interval: Interval = { start: new Date(), end: new Date() };\n\n if (compareTo.type === 'year') {\n interval.start = dateFns.set(dateToCompare, { month: 0, date: 1 });\n interval.end = dateFns.lastDayOfYear(dateToCompare);\n } else if (compareTo.type === 'month') {\n interval.start = dateFns.set(dateToCompare, { date: 1 });\n interval.end = dateFns.lastDayOfMonth(dateToCompare);\n } else if (compareTo.type === 'week') {\n interval.start = dateFns.isMonday(dateToCompare)\n ? dateToCompare\n : dateFns.previousMonday(dateToCompare);\n interval.end = dateFns.lastDayOfWeek(dateToCompare, { weekStartsOn: 1 });\n }\n\n if (dateFns.isWithinInterval(date, interval)) return 'present';\n\n return compareDates(date, interval.start as Date);\n}\n\nfunction getSurroundingWeeks(args: {\n fromDay: Time.Day;\n surroundingWeeks: number;\n}) {\n const { fromDay, surroundingWeeks } = args;\n\n let days: Time.Day[] = R.pipe(\n getDaysFromWeek(fromDay.year, fromDay.week),\n R.values,\n );\n\n let nextWeekDay = fromDay;\n let lastWeekDay = fromDay;\n for (let i = 0; i < surroundingWeeks; i++) {\n nextWeekDay = step({\n timeDate: nextWeekDay,\n stepSize: 'week',\n step: 'next',\n });\n\n // Week 1 can occur in december, get correct year for week\n const nextWeekISOYear = dateFns.getISOWeekYear(\n new Date(nextWeekDay.year, nextWeekDay.month, nextWeekDay.dayOfMonth),\n );\n const nextWeek = R.pipe(\n getDaysFromWeek(nextWeekISOYear, nextWeekDay.week),\n R.values,\n );\n\n lastWeekDay = step({\n timeDate: lastWeekDay,\n stepSize: 'week',\n step: 'previous',\n });\n\n // Week 52/53 can occur in january, get correct year for week\n const lastWeekISOYear = dateFns.getISOWeekYear(\n new Date(lastWeekDay.year, lastWeekDay.month, lastWeekDay.dayOfMonth),\n );\n const lastWeek = R.pipe(\n getDaysFromWeek(lastWeekISOYear, lastWeekDay.week),\n R.values,\n );\n\n days = R.pipe(days, R.concat(lastWeek), R.concat(nextWeek));\n }\n\n const hej = R.pipe(\n days,\n R.sortBy((day) => day.id),\n );\n return hej;\n}\n\nfunction zoomOut(time: Time.Date) {\n if (time.type === 'month')\n return factory({ type: 'year', year: time.year });\n\n if (time.type === 'week') {\n const month = dateFns\n .setISOWeek(new Date(time.year, 3), time.week) // week starts on thursday\n .getMonth();\n return factory({ type: 'month', year: time.year, month });\n }\n\n if (time.type === 'day')\n return factory({\n type: 'week',\n year: time.year,\n week: time.week,\n });\n\n // Can't zoom out, for year\n return time;\n}\n\nfunction readableTime(date: Date) {\n const timeDate = toTimeDate(date);\n\n const hours = dateFns.getHours(date).toString().padStart(2, '0');\n const minutes = dateFns.getMinutes(date).toString().padStart(2, '0');\n\n return `${format(timeDate, 'integrations')} ${hours}:${minutes}`;\n}\n\nexport {\n convertDay,\n dateFromId,\n factory,\n format,\n generateDayId,\n generateMonthId,\n generateWeekId,\n generateYearId,\n getCalendarMonth,\n getDaysFromWeek,\n getDisplayDate,\n getMonthsFromYear,\n getSurroundingWeeks,\n getToday,\n getWeekDetails,\n getWeeksFromMonth,\n hasDate,\n readableHours,\n readableTime,\n step,\n temporalAssessor,\n timestampToDay,\n toTimeDate,\n weekFromDay,\n zoomOut,\n};\n","import * as R from 'remeda';\nimport * as timeUtility from 'utility/time';\nimport { misc } from 'variables';\n\nfunction addDateId(\n record: Record,\n dateId: string,\n id: string,\n) {\n if (!R.isDefined(record[dateId])) record[dateId] = [id];\n else record[dateId]?.push(id);\n}\n\n// Organize into dateId & ids[]\n// precalulation to make it easy to calculate date-specifics\nfunction groupByDate(list: Data.PartialDateItem[]) {\n const byDate: Record = {};\n\n const length = list.length;\n\n for (let i = 0; i < length; i++) {\n const current = list[i];\n if (!R.isDefined(current)) continue;\n\n const { dayOfMonth, year, month, week, id } = current;\n\n // Add year\n const yearId = timeUtility.generateYearId(year);\n addDateId(byDate, yearId, id);\n\n // Add Month\n\n if (R.isDefined(month)) {\n const monthId = timeUtility.generateMonthId(year, month);\n addDateId(byDate, monthId, id);\n }\n\n // Add Week\n if (R.isDefined(week)) {\n const weekId = timeUtility.generateWeekId(year, week);\n addDateId(byDate, weekId, id);\n }\n\n if (R.isDefined(month) && R.isDefined(dayOfMonth)) {\n // Add Day\n const dayId = timeUtility.generateDayId(year, month, dayOfMonth);\n addDateId(byDate, dayId, id);\n }\n }\n\n return byDate;\n}\n\nfunction groupBy(list: T[], _key: keyof T) {\n const key = R.isDefined(_key) ? (_key as string) : misc.MISSING;\n return R.pipe(\n list,\n R.groupBy((item) => R.pipe(item, R.prop(key as any))),\n R.mapValues((items) => R.map(items, (item) => item.id)),\n );\n}\n\nexport { groupBy, groupByDate };\n","import * as R from 'remeda';\n\nfunction iterator(args: {\n list: A[] | null;\n transformer(item: A): void;\n}) {\n const { list, transformer } = args;\n\n if (!R.isDefined(list)) return;\n\n const length = list.length;\n\n for (let index = 0; index < length; index++) {\n const item = list[index];\n if (!R.isDefined(item)) continue;\n transformer(item);\n }\n}\n\nfunction toDateResolution(dates: Time.Date[]) {\n const dateResolutions = dates.map((date) => {\n const year = date.year;\n let monthNumber: number | undefined = undefined;\n let weekNumber: number | undefined = undefined;\n let dayOfMonth: number | undefined = undefined;\n\n switch (date.type) {\n case 'year':\n break;\n case 'month':\n monthNumber = date.month + 1;\n break;\n case 'week':\n weekNumber = date.week;\n break;\n case 'day':\n monthNumber = date.month + 1;\n dayOfMonth = date.dayOfMonth;\n }\n const dateResolution: API.DateResolution = {\n year,\n monthNumber,\n weekNumber,\n dayOfMonth,\n };\n\n return dateResolution;\n });\n return dateResolutions;\n}\n\nexport { iterator, toDateResolution };\n","import * as R from 'remeda';\n\nfunction wrapAroundIndex(index: number, array: any[]): number {\n const length = array.length;\n\n // Convert negative index to positive equivalent\n if (index < 0) {\n index = (index % length) + length;\n }\n\n // Wrap around for positive index\n if (index >= length) {\n index = index % length;\n }\n\n return index;\n}\n\n// Using hash table intersecting approach.\n// two-pointer approach is on average faster though if sorted.\nfunction intersectingIds(list1: string[], list2: string[]) {\n const hashTable: Record = {};\n const intersections: string[] = [];\n // Add to hashtable\n for (let i = 0; i < list1.length; i++) {\n const id = list1[i] as string;\n hashTable[id] = true;\n }\n\n for (let i = 0; i < list2.length; i++) {\n const id = list2[i] as string;\n const exists = R.isTruthy(hashTable[id]);\n if (!exists) continue;\n intersections.push(id);\n }\n return intersections;\n}\n\n/**\n *\n * @param list1 unique ids in this list will remain\n * @param list2 filter away these ids\n * @returns ids unique from list1\n */\nfunction rejectIds(list1: string[], list2: string[]) {\n const hashTable: Record = {};\n const remaining: string[] = [];\n\n // Add to hashtable\n for (let i = 0; i < list2.length; i++) {\n const id = list2[i] as string;\n hashTable[id] = true;\n }\n\n for (let i = 0; i < list1.length; i++) {\n const id = list1[i] as string;\n const exists = R.isTruthy(hashTable[id]);\n if (exists) continue;\n remaining.push(id);\n }\n\n return remaining;\n}\n\nexport { intersectingIds, rejectIds, wrapAroundIndex };\n","import * as R from 'remeda';\n\nfunction add>(\n state: NormalizedDomain,\n item: T,\n): NormalizedDomain {\n return {\n byId: R.addProp(state.byId, item.id, item),\n allIds: [...state.allIds, item.id],\n };\n}\n\nfunction update>(\n state: NormalizedDomain,\n item: PartialWithId,\n): NormalizedDomain {\n return {\n ...state,\n byId: R.set(state.byId, item.id, R.merge(state.byId[item.id], item)),\n };\n}\n\nfunction set>(\n state: NormalizedDomain,\n item: T,\n): NormalizedDomain {\n return {\n byId: R.set(state.byId, item.id, item),\n allIds: state.allIds,\n };\n}\n\nfunction remove>(\n state: NormalizedDomain,\n id: string,\n): NormalizedDomain {\n return {\n byId: R.omit(state.byId, [id]),\n allIds: R.reject(state.allIds, (i) => i === id),\n };\n}\n\n/**\n * Immutable update would be slower.\n * Since it could be alot of items,\n * and we're only interested in the final normalized domain.\n * @param normalizedDomain, the domain in question\n * @param item, current domainObject\n */\nfunction mutateAdd(\n normalizedDomain: NormalizedDomain,\n item: T,\n) {\n const { allIds, byId } = normalizedDomain;\n\n const { id } = item;\n\n allIds.push(id);\n byId[id] = item;\n}\n\nfunction mutateSet(\n normalizedDomain: NormalizedDomain,\n item: T, // ! if used from multiple locations in future, this should not be undefined\n) {\n normalizedDomain.byId[item.id] = item;\n}\nexport { add, mutateAdd, mutateSet, remove, set, update };\n","import * as R from 'remeda';\n\nfunction readableHours(hours: number | null) {\n if (!R.isDefined(hours)) return '';\n const integer = Math.floor(hours);\n const decimal = hours % 1;\n\n let minutes = Number((decimal * 60).toFixed(0));\n if (minutes < 0) minutes = minutes * -1;\n return `${integer}:${minutes.toString().padStart(2, '0')}`;\n}\n\nfunction readableValue(value: number | null) {\n if (!R.isDefined(value)) return '';\n if (value === 0) return '';\n\n const [integer, decimal] = value.toString().split('.');\n\n if (!R.isDefined(integer)) return '';\n\n const thousandSeparated = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','); // Add comma separator to the integer part\n return R.isDefined(decimal)\n ? [thousandSeparated, decimal].join('.')\n : thousandSeparated;\n}\n\nfunction sanitize(value: number) {\n value = Number(value.toFixed(2));\n\n if (value === 0) return null;\n return value;\n}\n\nfunction calculateProductivity(\n noPickingRows: number | null,\n hours: number | null,\n) {\n // can't calculate productivity if value is missing or if something is 0\n if (!R.isTruthy(noPickingRows)) return null;\n if (!R.isTruthy(hours)) return null;\n\n const productivity = sanitize(noPickingRows / hours);\n\n return productivity;\n}\n\nfunction calculateHoursFromGoal(\n noPickingRows: number | null,\n hours: number | null,\n target: number | null,\n) {\n if (!R.isTruthy(noPickingRows)) return null;\n if (!R.isTruthy(hours)) return null;\n if (!R.isTruthy(target)) return null;\n\n const hoursFromGoal = sanitize(noPickingRows / target - hours);\n\n return hoursFromGoal;\n}\n\nfunction calculateDeviation(\n projectedValue: number | null,\n actualValue: number | null,\n) {\n if (!R.isTruthy(actualValue)) return null; // can't be zero\n\n if (!R.isDefined(projectedValue)) return null; // 0 is allowed\n\n const deviation = ((projectedValue - actualValue) / actualValue) * 100;\n return sanitize(deviation);\n}\n\nfunction latestProjection(projections: KPI.Projection[]) {\n // first in list is most current projection\n const currentProjection = R.pipe(projections, R.first());\n return R.isDefined(currentProjection) ? currentProjection.value : null;\n}\n\nexport {\n calculateDeviation,\n calculateHoursFromGoal,\n calculateProductivity,\n latestProjection,\n readableHours,\n readableValue,\n sanitize,\n};\n","import * as R from 'remeda';\nfunction pxToNumber(value: `${number}px`) {\n return Number(value.replace('px', ''));\n}\n\nfunction hexToRgb(hexColor: string): [number, number, number] {\n // Remove any leading '#' character\n if (hexColor.startsWith('#')) {\n hexColor = hexColor.slice(1);\n }\n\n // Convert hex color to RGB values\n const red = parseInt(hexColor.slice(0, 2), 16);\n const green = parseInt(hexColor.slice(2, 4), 16);\n const blue = parseInt(hexColor.slice(4, 6), 16);\n\n // Return RGB values as an array of three integers\n return [red, green, blue];\n}\n\n// TODO: not safe for non color\nfunction convertToRgba(args: {\n hexColor: `#${string}`;\n opacity: number;\n}): `rgba(${number}, ${number}, ${number}, ${number})` {\n const { hexColor, opacity } = args;\n const rgba = 'rgba(0, 0, 0, 1)';\n const hexString = R.pipe(hexColor.split('#'), R.last());\n\n const hexToDecimal = (hex: string) => parseInt(hex, 16);\n\n if (!R.isDefined(hexString)) return rgba;\n if (hexString.length !== 6) return rgba;\n\n const hexR = hexToDecimal(hexString.substring(0, 2));\n const hexG = hexToDecimal(hexString.substring(2, 4));\n const hexB = hexToDecimal(hexString.substring(4, 6));\n\n return `rgba(${hexR}, ${hexG}, ${hexB}, ${opacity})`;\n}\n\nexport { convertToRgba, hexToRgb, pxToNumber };\n","import { timeUtility } from 'utility';\n\nfunction findTarget(\n targets: Data.ProductivityTarget[],\n date: Time.Date,\n): number | null {\n let productivityTarget: number | null = null;\n\n targets.every((target) => {\n const targetTemporalPosition = timeUtility.temporalAssessor(\n target.date,\n date,\n );\n\n if (targetTemporalPosition === 'future') return false;\n\n productivityTarget = target.productivity;\n return true;\n });\n\n return productivityTarget;\n}\n\nexport { findTarget };\n","import {\n ActivityHourAction,\n activityHourActions as actions,\n ActivityHourState,\n} from 'store/aggregated/activityHour';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: ActivityHourState = { allIds: [], byId: {} };\n\nconst activityHourReducer = (\n state: ActivityHourState = initialState,\n action: ActivityHourAction,\n): ActivityHourState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default activityHourReducer;\n","export const DOMAIN_TYPE = 'data';\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'activity';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.Activity) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Activity) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n ActivityAction,\n activityActions as actions,\n ActivityState,\n} from 'store/data/activity';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: ActivityState = { allIds: [], byId: {} };\n\nconst activityReducer = (\n state: ActivityState = initialState,\n action: ActivityAction,\n): ActivityState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default activityReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\nimport { misc } from 'variables';\n\nexport const domain = (state: Types.RootState) => state.data.activity;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n\n// TODO: Remove\nexport const byZoneId2 = createSelector(list, (list) =>\n R.pipe(\n list,\n R.groupBy((activity) => activity.zoneId ?? misc.MISSING),\n ),\n);\n\nexport const byZone = createSelector(list, (list) =>\n R.pipe(\n list,\n R.groupBy((activity) => activity.zoneId ?? misc.MISSING),\n R.mapValues((activities) => activities.map((activity) => activity.id)),\n ),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'activityType';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.ActivityType) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.ActivityType) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n ActivityTypeAction,\n activityTypeActions as actions,\n ActivityTypeState,\n} from 'store/data/activityType';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: ActivityTypeState = { allIds: [], byId: {} };\n\nconst activityTypeReducer = (\n state: ActivityTypeState = initialState,\n action: ActivityTypeAction,\n): ActivityTypeState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default activityTypeReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.activityType;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import * as R from 'remeda';\nimport { arrayUtility } from 'utility';\n\n/**\n * Will do a callback on each relevant item\n * used for extracting KPI in a reusable way\n */\nfunction onRelevantItems(args: {\n entityIds: string[];\n filterEntityIds?: string[];\n dateId: string;\n byDate: Record;\n byEntity: Record;\n byId: Dictionary;\n itemCallback(entity: T): void;\n}) {\n const {\n byDate,\n byEntity,\n dateId,\n byId,\n entityIds,\n filterEntityIds,\n itemCallback,\n } = args;\n\n const dateIds = byDate[dateId];\n let ids: string[] = [];\n\n entityIds.forEach((entityId) => {\n const rowIds = byEntity[entityId] ?? []; // If entity does not have any matching ids, no result should be found\n ids = ids.length === 0 ? rowIds : arrayUtility.intersectingIds(ids, rowIds);\n });\n\n if (!R.isDefined(dateIds)) return;\n if (!R.isDefined(entityIds)) return;\n\n ids = arrayUtility.intersectingIds(dateIds, ids);\n\n if (R.isDefined(filterEntityIds)) {\n let filteredIds: string[] = [];\n\n filterEntityIds.forEach((entityId) => {\n const rowIds = byEntity[entityId] ?? []; // If entity does not have any matching ids, no result should be found\n filteredIds = R.pipe(filteredIds, R.concat(rowIds), R.uniq());\n });\n\n ids = arrayUtility.rejectIds(ids, filteredIds);\n }\n\n R.pipe(\n ids,\n R.map((id) => byId[id]),\n R.filter(R.isDefined),\n R.forEach((item) => itemCallback(item)),\n );\n}\n\nexport { onRelevantItems };\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport { activitySelectors } from 'store/data/activity';\nimport { activityTypeSelectors } from 'store/data/activityType';\nimport Types from 'Types';\nimport { aggregationUtility, kpiUtility } from 'utility';\n\nimport { onRelevantItems } from '../helpers';\n\nexport const domain = (state: Types.RootState) => state.aggregated.activityHour;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n\nconst byDate = createSelector(list, (list) =>\n aggregationUtility.groupByDate(list),\n);\n\nexport const byActivity = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'activityId'),\n);\nexport const byActivityType = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'activityTypeId'),\n);\n\nexport const byZone = createSelector(\n byActivity,\n activitySelectors.byZone,\n (byActivity, activityIdsbyZone) => {\n const byZone: Record = R.pipe(\n activityIdsbyZone,\n R.mapValues((activityIds) =>\n R.pipe(\n activityIds,\n R.map((activityId) => byActivity[activityId]),\n R.filter(R.isDefined),\n R.flatten(),\n R.uniq(),\n ),\n ),\n );\n\n return byZone;\n },\n);\n\nexport const byEntity = createSelector(\n byZone,\n byActivityType,\n byActivity,\n (byZone, byActivityType, byActivity) => ({\n ...byZone,\n ...byActivityType,\n ...byActivity,\n }),\n);\n\nexport const kpi = createSelector(\n (\n state: Types.RootState,\n ownProps: {\n entityIds: string[];\n dateId: string;\n filterEntityIds?: string[];\n },\n ) => ownProps,\n byDate,\n byEntity,\n byId,\n ({ dateId, entityIds, filterEntityIds }, byDate, byEntity, byId) => {\n let hours = 0;\n let modifiedHours = 0;\n onRelevantItems({\n byId,\n byDate,\n byEntity,\n dateId,\n filterEntityIds,\n itemCallback: (item) => {\n modifiedHours = modifiedHours + item.modifiedSpentTime;\n hours = hours + item.spentTime;\n },\n entityIds,\n });\n\n const kpiValues: KPI.ActivityValues = {\n hours: kpiUtility.sanitize(hours),\n modifiedHours: kpiUtility.sanitize(modifiedHours),\n };\n\n return kpiValues;\n },\n);\n\n/**\n * Sorted hierarchy for activities available.\n * - sorted\n * - used in filter\n * - only activities reported on\n */\nconst activityHierarchy = createSelector(\n list,\n activityTypeSelectors.byId,\n activitySelectors.byId,\n (list, activityTypeById, activityById) => {\n const hierarchy: (LabelItem & { children: LabelItem[] })[] = [];\n\n function getChildren(list: Data.AggregatedActivityHour[]) {\n const children = R.pipe(\n list,\n R.groupBy((item) => item.activityId),\n R.keys,\n R.map((activityId) => {\n const activity = activityById[activityId];\n if (!R.isDefined(activity)) return;\n\n return {\n id: activity.id,\n name: `${activity.code} - ${activity.name}`,\n } as LabelItem;\n }),\n R.filter(R.isDefined),\n R.sortBy((activity) => activity.name),\n );\n return children;\n }\n\n R.pipe(\n list,\n R.groupBy((item) => item.activityTypeId),\n R.forEachObj.indexed((activityHours, activityTypeId) => {\n const activityType = activityTypeById[activityTypeId.toString()];\n if (!R.isDefined(activityType)) return;\n\n const children: LabelItem[] = getChildren(activityHours);\n\n hierarchy.push({\n id: activityType.id,\n name: `${activityType.code} - ${activityType.name}`,\n children,\n });\n }),\n );\n\n return R.sortBy(hierarchy, (item) => item.name);\n },\n);\n\nexport { activityHierarchy, byDate };\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'employeeHour';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(\n ADD,\n (payload: Data.AggregatedEmployeeHour) => payload,\n)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(\n SET,\n (payload: Data.AggregatedEmployeeHour) => payload,\n)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n EmployeeHourAction,\n employeeHourActions as actions,\n EmployeeHourState,\n} from 'store/aggregated/employeeHour';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: EmployeeHourState = { allIds: [], byId: {} };\n\nconst employeeHourReducer = (\n state: EmployeeHourState = initialState,\n action: EmployeeHourAction,\n): EmployeeHourState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default employeeHourReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\nimport { aggregationUtility, kpiUtility } from 'utility';\n\nimport { onRelevantItems } from '../helpers';\nexport const domain = (state: Types.RootState) => state.aggregated.employeeHour;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n\nexport const byDate = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'dateId'),\n);\n\nexport const byActivity = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'activityId'),\n);\n\nexport const byActivityType = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'activityTypeId'),\n);\n\nexport const byEmployee = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'employeeId'),\n);\n\nexport const byEntity = createSelector(\n byActivity,\n byActivityType,\n byEmployee,\n (byActivity, byActivityType, byEmployee) => ({\n ...byActivity,\n ...byActivityType,\n ...byEmployee,\n }),\n);\nexport const kpi = createSelector(\n (state: Types.RootState, ownProps: { entityIds: string[]; dateId: string }) =>\n ownProps,\n byDate,\n byEntity,\n byId,\n ({ dateId, entityIds }, byDate, byEntity, byId) => {\n let hours = 0;\n\n onRelevantItems({\n byId,\n byDate,\n byEntity,\n dateId,\n itemCallback: (item) => {\n hours = hours + item.spentTime;\n },\n entityIds,\n });\n\n const kpiValues: KPI.ActivityValues = {\n hours: kpiUtility.sanitize(hours),\n modifiedHours: null,\n };\n\n return kpiValues;\n },\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'external';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.External) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.External) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n ExternalAction,\n externalActions as actions,\n ExternalState,\n} from 'store/aggregated/external';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: ExternalState = { allIds: [], byId: {} };\n\nconst externalReducer = (\n state: ExternalState = initialState,\n action: ExternalAction,\n): ExternalState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default externalReducer;\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'subZone';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.SubZone) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.SubZone) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n SubZoneAction,\n subZoneActions as actions,\n SubZoneState,\n} from 'store/data/subZone';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: SubZoneState = { allIds: [], byId: {} };\n\nconst subZoneReducer = (\n state: SubZoneState = initialState,\n action: SubZoneAction,\n): SubZoneState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default subZoneReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.subZone;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'zone';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.Zone) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Zone) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import { ZoneAction, zoneActions as actions, ZoneState } from 'store/data/zone';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: ZoneState = { allIds: [], byId: {} };\n\nconst zoneReducer = (\n state: ZoneState = initialState,\n action: ZoneAction,\n): ZoneState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default zoneReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.zone;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport { activitySelectors } from 'store/data/activity';\nimport { subZoneSelectors } from 'store/data/subZone';\nimport { zoneSelectors } from 'store/data/zone';\nimport Types from 'Types';\nimport { aggregationUtility, kpiUtility } from 'utility';\n\nimport { onRelevantItems } from '../helpers';\n\nexport const domain = (state: Types.RootState) => state.aggregated.external;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n\nexport const byDate = createSelector(list, (list) =>\n aggregationUtility.groupByDate(list),\n);\nexport const byZone = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'zoneId'),\n);\n\nexport const byEntity = createSelector(byZone, (byZone) => ({\n ...byZone,\n}));\n\nexport const kpi = createSelector(\n (\n state: Types.RootState,\n ownProps: {\n entityIds: string[];\n dateId: string;\n },\n ) => ownProps,\n byDate,\n byEntity,\n byId,\n zoneSelectors.byId, // To get target\n subZoneSelectors.byId, // To get target\n activitySelectors.byId, // To get target\n ({ dateId, entityIds }, byDate, byEntity, byId) => {\n let noReceived = 0;\n\n onRelevantItems({\n byId,\n byDate,\n byEntity,\n dateId,\n itemCallback: (item) => {\n noReceived = noReceived + item.noReceived;\n },\n entityIds,\n });\n\n const kpiValues: KPI.ExternalValues = {\n noExternalReceived: kpiUtility.sanitize(noReceived),\n };\n\n return kpiValues;\n },\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'forecast';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\nconst add = createAction(ADD, (payload: Data.Projection) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Projection) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n ForecastAction,\n forecastActions as actions,\n ForecastState,\n} from 'store/aggregated/forecast';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: ForecastState = { allIds: [], byId: {} };\n\nconst forecastReducer = (\n state: ForecastState = initialState,\n action: ForecastAction,\n): ForecastState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default forecastReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\nimport { aggregationUtility, kpiUtility } from 'utility';\n\nimport { onRelevantItems } from '../helpers';\n\nexport const domain = (state: Types.RootState) => state.aggregated.forecast;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n\nconst byDate = createSelector(list, (list) =>\n aggregationUtility.groupByDate(list),\n);\n\nexport const byZone = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'zoneId'),\n);\n\nexport const byEntity = createSelector(byZone, (byZone) => ({\n ...byZone,\n}));\n\nexport const kpi = createSelector(\n (\n state: Types.RootState,\n ownProps: {\n entityIds: string[];\n dateId: string;\n filterEntityIds?: string[];\n },\n ) => ownProps,\n byDate,\n byEntity,\n byId,\n ({ dateId, entityIds, filterEntityIds }, byDate, byEntity, byId) => {\n let forecasts: KPI.Projection[] = [];\n\n onRelevantItems({\n byId,\n byDate,\n byEntity,\n dateId,\n filterEntityIds,\n itemCallback: (item) => {\n const value = kpiUtility.sanitize(item.value);\n if (!R.isDefined(value)) {\n return;\n }\n const timestamp = item.timestamp;\n forecasts.push({ value, timestamp });\n },\n entityIds,\n });\n\n // First in list is prediction\n forecasts = R.pipe(\n forecasts,\n R.sortBy([(forecast) => forecast.timestamp, 'desc']),\n );\n\n const forecast = R.first(forecasts);\n\n const kpi: KPI.ForecastValues = {\n forecast: forecast?.value ?? null,\n forecastHistory: forecasts,\n };\n return kpi;\n },\n);\n\nexport { byDate };\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'internal';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.Internal) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Internal) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n InternalAction,\n internalActions as actions,\n InternalState,\n} from 'store/aggregated/internal';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: InternalState = { allIds: [], byId: {} };\n\nconst internalReducer = (\n state: InternalState = initialState,\n action: InternalAction,\n): InternalState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default internalReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport { activitySelectors } from 'store/data/activity';\nimport { subZoneSelectors } from 'store/data/subZone';\nimport { zoneSelectors } from 'store/data/zone';\nimport Types from 'Types';\nimport {\n aggregationUtility,\n kpiUtility,\n targetNewUtility,\n timeUtility,\n} from 'utility';\n\nimport { onRelevantItems } from '../helpers';\n\nexport const domain = (state: Types.RootState) => state.aggregated.internal;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n\nexport const byDate = createSelector(list, (list) =>\n aggregationUtility.groupByDate(list),\n);\n\nexport const byZone = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'zoneId'),\n);\n\nexport const bySubZone = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'subZoneId'),\n);\n\nexport const byActivity = createSelector(\n bySubZone,\n activitySelectors.list,\n (bySubZone, activities) =>\n R.pipe(\n activities,\n R.map((activity) => {\n if (!R.isDefined(activity.subZoneIds)) return;\n\n const internalIds = R.pipe(\n activity.subZoneIds,\n R.map((subZoneId) => bySubZone[subZoneId]),\n R.filter(R.isDefined),\n R.flatten(),\n R.uniq(),\n );\n\n return { id: activity.id, internalIds };\n }),\n R.filter(R.isDefined),\n R.mapToObj((a) => [String(a.id), a.internalIds]),\n ),\n);\n\nexport const byEntity = createSelector(\n byZone,\n bySubZone,\n byActivity,\n (byZone, bySubZone, byActivity) => ({\n ...byZone,\n ...bySubZone,\n ...byActivity,\n }),\n);\n\nexport const kpi = createSelector(\n (\n state: Types.RootState,\n ownProps: {\n entityIds: string[];\n dateId: string;\n },\n ) => ownProps,\n byDate,\n byEntity,\n byId,\n zoneSelectors.byId, // To get target\n subZoneSelectors.byId, // To get target\n activitySelectors.byId, // To get target\n (\n { dateId, entityIds },\n byDate,\n byEntity,\n byId,\n zoneById,\n subZoneById,\n activityById,\n ) => {\n let noReceived = 0;\n let noBacklog = 0;\n let noProcessed = 0;\n\n const date = timeUtility.dateFromId(dateId);\n const target = R.pipe(entityIds, R.last(), (mainEntityId) => {\n if (!R.isDefined(mainEntityId)) return null;\n\n let target: number | null = null;\n if (!R.isDefined(date)) return null;\n const zone = zoneById[mainEntityId];\n const subZone = subZoneById[mainEntityId];\n const activity = activityById[mainEntityId];\n\n if (R.isDefined(zone)) {\n target = targetNewUtility.findTarget(zone.targets, date);\n } else if (R.isDefined(subZone)) {\n target = targetNewUtility.findTarget(subZone.targets, date);\n } else if (R.isDefined(activity) && R.isDefined(activity.subZoneIds)) {\n target = R.pipe(\n activity.subZoneIds,\n R.map((subZoneId) => subZoneById[subZoneId]),\n R.filter(R.isDefined),\n R.map((subZone) =>\n targetNewUtility.findTarget(subZone.targets, date),\n ),\n R.filter(R.isDefined),\n R.reduce((accTarget, target) => accTarget + target, 0),\n );\n }\n return target;\n });\n\n onRelevantItems({\n byId,\n byDate,\n byEntity,\n dateId,\n itemCallback: (item) => {\n noProcessed = noProcessed + item.noProcessed;\n noBacklog = noBacklog + item.noBacklog;\n noReceived = noReceived + item.noReceived;\n },\n entityIds,\n });\n\n const kpiValues: KPI.InternalValues = {\n noInternalBacklog: kpiUtility.sanitize(noBacklog),\n noInternalProcessed: kpiUtility.sanitize(noProcessed),\n noInternalReceived: kpiUtility.sanitize(noReceived),\n target,\n };\n\n return kpiValues;\n },\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'prediction';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\nconst add = createAction(ADD, (payload: Data.Projection) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Projection) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n PredictionAction,\n predictionActions as actions,\n PredictionState,\n} from 'store/aggregated/prediction';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: PredictionState = { allIds: [], byId: {} };\n\nconst predictionReducer = (\n state: PredictionState = initialState,\n action: PredictionAction,\n): PredictionState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default predictionReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\nimport { aggregationUtility, kpiUtility } from 'utility';\n\nimport { onRelevantItems } from '../helpers';\n\nexport const domain = (state: Types.RootState) => state.aggregated.prediction;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n\nconst byDate = createSelector(list, (list) =>\n aggregationUtility.groupByDate(list),\n);\n\nexport const byZone = createSelector(list, (list) =>\n aggregationUtility.groupBy(list, 'zoneId'),\n);\n\nexport const byEntity = createSelector(byZone, (byZone) => ({\n ...byZone,\n}));\n\nexport const kpi = createSelector(\n (\n state: Types.RootState,\n ownProps: {\n entityIds: string[];\n dateId: string;\n filterEntityIds?: string[];\n },\n ) => ownProps,\n byDate,\n byEntity,\n byId,\n ({ dateId, entityIds, filterEntityIds }, byDate, byEntity, byId) => {\n let predictions: KPI.Projection[] = [];\n\n onRelevantItems({\n byId,\n byDate,\n byEntity,\n dateId,\n filterEntityIds,\n itemCallback: (item) => {\n const value = kpiUtility.sanitize(item.value);\n if (!R.isDefined(value)) {\n return;\n }\n const timestamp = item.timestamp;\n predictions.push({ value, timestamp });\n },\n entityIds,\n });\n\n // First in list is prediction\n predictions = R.pipe(\n predictions,\n R.sortBy([(prediction) => prediction.timestamp, 'desc']),\n );\n\n const prediction = R.first(predictions);\n\n const kpi: KPI.PredictionValues = {\n prediction: prediction?.value ?? null,\n predictionHistory: predictions,\n };\n return kpi;\n },\n);\n\nexport { byDate };\n","import { combineReducers } from 'redux';\n\nimport { activityHourReducer } from './activityHour';\nimport { employeeHourReducer } from './employeeHour';\nimport { externalReducer } from './external';\nimport { forecastReducer } from './forecast';\nimport { internalReducer } from './internal';\nimport { predictionReducer } from './prediction';\n\nconst aggregatedReducers = combineReducers({\n employeeHour: employeeHourReducer,\n activityHour: activityHourReducer,\n forecast: forecastReducer,\n prediction: predictionReducer,\n internal: internalReducer,\n external: externalReducer,\n});\n\nexport default aggregatedReducers;\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'area';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.Area) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Area) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import { AreaAction, areaActions as actions, AreaState } from 'store/data/area';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: AreaState = { allIds: [], byId: {} };\n\nconst areaReducer = (\n state: AreaState = initialState,\n action: AreaAction,\n): AreaState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default areaReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.area;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'branch';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.Branch) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Branch) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n BranchAction,\n branchActions as actions,\n BranchState,\n} from 'store/data/branch';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: BranchState = { allIds: [], byId: {} };\n\nconst branchReducer = (\n state: BranchState = initialState,\n action: BranchAction,\n): BranchState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default branchReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.branch;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'company';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.Company) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Company) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n CompanyAction,\n companyActions as actions,\n CompanyState,\n} from 'store/data/company';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: CompanyState = { allIds: [], byId: {} };\n\nconst companyReducer = (\n state: CompanyState = initialState,\n action: CompanyAction,\n): CompanyState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default companyReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.company;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'distributionCenter';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.DistributionCenter) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.DistributionCenter) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n DistributionCenterAction,\n distributionCenterActions as actions,\n DistributionCenterState,\n} from 'store/data/distributionCenter';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: DistributionCenterState = { allIds: [], byId: {} };\n\nconst distributionCenterReducer = (\n state: DistributionCenterState = initialState,\n action: DistributionCenterAction,\n): DistributionCenterState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default distributionCenterReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.distributionCenter;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'employee';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.Employee) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Employee) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n EmployeeAction,\n employeeActions as actions,\n EmployeeState,\n} from 'store/data/employee';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: EmployeeState = { allIds: [], byId: {} };\n\nconst employeeReducer = (\n state: EmployeeState = initialState,\n action: EmployeeAction,\n): EmployeeState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default employeeReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.employee;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'errorMessage';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.ErrorMessage) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.ErrorMessage) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n ErrorMessageAction,\n errorMessageActions as actions,\n ErrorMessageState,\n} from 'store/data/errorMessage';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: ErrorMessageState = { allIds: [], byId: {} };\n\nconst errorMessageReducer = (\n state: ErrorMessageState = initialState,\n action: ErrorMessageAction,\n): ErrorMessageState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default errorMessageReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.errorMessage;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'file';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.File) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.File) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import { FileAction, fileActions as actions, FileState } from 'store/data/file';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: FileState = { allIds: [], byId: {} };\n\nconst fileReducer = (\n state: FileState = initialState,\n action: FileAction,\n): FileState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default fileReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.file;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'producedActivity';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.ProducedActivity) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.ProducedActivity) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n ProducedActivityAction,\n producedActivityActions as actions,\n ProducedActivityState,\n} from 'store/data/producedActivity';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: ProducedActivityState = { allIds: [], byId: {} };\n\nconst producedActivityReducer = (\n state: ProducedActivityState = initialState,\n action: ProducedActivityAction,\n): ProducedActivityState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default producedActivityReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.producedActivity;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'suggestion';\n\nexport const ADD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD` as const;\nexport const UPDATE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE` as const;\nexport const REMOVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE` as const;\nexport const SET = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET` as const;\n\nexport const SET_DOMAIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_DOMAIN` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { ADD, REMOVE, SET, SET_DOMAIN, UPDATE } from './constants';\n\nconst add = createAction(ADD, (payload: Data.Suggestion) => payload)();\n\nconst update = createAction(\n UPDATE,\n (payload: PartialWithId) => payload,\n)();\n\nconst remove = createAction(REMOVE, (payload: string) => payload)();\n\nconst set = createAction(SET, (payload: Data.Suggestion) => payload)();\n\nconst setDomain = createAction(\n SET_DOMAIN,\n (payload: NormalizedDomain) => payload,\n)();\n\nexport { add, remove, set, setDomain, update };\n","import {\n SuggestionAction,\n suggestionActions as actions,\n SuggestionState,\n} from 'store/data/suggestion';\nimport { getType } from 'typesafe-actions';\nimport { domainUtility } from 'utility';\n\nconst initialState: SuggestionState = { allIds: [], byId: {} };\n\nconst suggestionReducer = (\n state: SuggestionState = initialState,\n action: SuggestionAction,\n): SuggestionState => {\n switch (action.type) {\n case getType(actions.add):\n return domainUtility.add(state, action.payload);\n case getType(actions.set):\n return domainUtility.set(state, action.payload);\n case getType(actions.update):\n return domainUtility.update(state, action.payload);\n case getType(actions.remove):\n return domainUtility.remove(state, action.payload);\n case getType(actions.setDomain):\n const { allIds, byId } = action.payload;\n return { allIds, byId };\n default:\n return state;\n }\n};\n\nexport default suggestionReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.data.suggestion;\n\nexport const byId = createSelector(domain, (domain) => domain.byId);\nexport const allIds = createSelector(domain, (domain) => domain.allIds);\n\nexport const item = createSelector(\n (state: Types.RootState, ownProps: { id: string }) => ownProps.id,\n byId,\n (id, byId) => R.pipe(byId, R.prop(id)),\n);\n","import { combineReducers } from 'redux';\n\nimport { activityReducer } from './activity';\nimport { activityTypeReducer } from './activityType';\nimport { areaReducer } from './area';\nimport { branchReducer } from './branch';\nimport { companyReducer } from './company';\nimport { distributionCenterReducer } from './distributionCenter';\nimport { employeeReducer } from './employee';\nimport { errorMessageReducer } from './errorMessage';\nimport { fileReducer } from './file';\nimport { producedActivityReducer } from './producedActivity';\nimport { subZoneReducer } from './subZone';\nimport { suggestionReducer } from './suggestion';\nimport { zoneReducer } from './zone';\n\nconst dataReducers = combineReducers({\n company: companyReducer,\n branch: branchReducer,\n zone: zoneReducer,\n subZone: subZoneReducer,\n distributionCenter: distributionCenterReducer,\n area: areaReducer,\n activity: activityReducer,\n activityType: activityTypeReducer,\n employee: employeeReducer,\n producedActivity: producedActivityReducer,\n errorMessage: errorMessageReducer,\n suggestion: suggestionReducer,\n file: fileReducer,\n});\n\nexport default dataReducers;\n","export const DOMAIN_TYPE = 'glue';\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'loading';\n\nexport const UPDATE_LOADING_STATUS =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/UPDATE_LOADING_STATUS` as const;\n","import Glue from 'Glue';\nimport { createAction } from 'typesafe-actions';\n\nimport { UPDATE_LOADING_STATUS } from './constants';\n\nexport const updateLoadingStatus = createAction(\n UPDATE_LOADING_STATUS,\n (payload: {\n type: Glue.LoadingType;\n status: Glue.LoadingStatus;\n error?: any;\n }) => payload,\n)();\n","import * as R from 'remeda';\nimport { getType } from 'typesafe-actions';\n\nimport { LoadingAction, loadingActions, LoadingState } from '.';\nconst initialState: LoadingState = {\n 'glue/app/START_INITIALIZE': { status: 'loading' },\n 'glue/user/START_LOGIN': { status: 'idle' },\n 'glue/user/START_VERIFY': { status: 'idle' },\n 'glue/user/START_LOGOUT': { status: 'idle' },\n 'page/flexHours/START_SELECT_DATES': { status: 'idle' },\n 'page/dashboard/START_TOGGLE_HOURS': { status: 'idle' },\n 'page/forecast/START_CREATE_FORECAST': { status: 'idle' },\n 'page/forecast/START_CREATE_PREDICTION': { status: 'idle' },\n 'page/zoneManagement/START_UPDATE_SUB_ZONES': { status: 'idle' },\n 'page/integrations/START_UPLOAD_FILE': { status: 'idle' },\n 'page/integrations/START_FETCH_PAGE': { status: 'idle' },\n};\n\nconst loadingReducer = (\n state: LoadingState = initialState,\n action: LoadingAction,\n): LoadingState => {\n switch (action.type) {\n case getType(loadingActions.updateLoadingStatus):\n const { status, type, error } = action.payload;\n\n const updatedLoadingStatus = R.pipe(\n state,\n R.prop(type),\n R.set('status', status),\n R.set('error', error),\n );\n\n return R.set(state, type, updatedLoadingStatus);\n default:\n return state;\n }\n};\n\nexport default loadingReducer;\n","import Glue from 'Glue';\nimport * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\n\nexport const domain = (state: Types.RootState) => state.glue.loading;\n\nexport const isLoading = createSelector(\n domain,\n (state: Types.RootState, ownProps: { types: Glue.LoadingType[] }) =>\n ownProps.types,\n (domain, types) => {\n const isLoading = R.pipe(\n types,\n R.find((type) => domain[type].status === 'loading'),\n R.isDefined,\n );\n\n return isLoading;\n },\n);\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'user';\n\nexport const SET_TOKEN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_TOKEN` as const;\n\nexport const START_LOGIN = `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_LOGIN` as const;\n\nexport const START_LOGOUT =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_LOGOUT` as const;\n\nexport const START_VERIFY =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_VERIFY` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport {\n SET_TOKEN,\n START_LOGIN,\n START_LOGOUT,\n START_VERIFY,\n} from './constants';\n\nexport const setToken = createAction(\n SET_TOKEN,\n (payload: string | null) => payload,\n)();\n\nexport const startLogin = createAction(START_LOGIN)();\nexport const startLogout = createAction(START_LOGOUT)();\n\nexport const startVerify = createAction(\n START_VERIFY,\n (payload: { savedToken?: string }) => payload,\n)();\n","import * as R from 'remeda';\nimport { UserAction, userActions as actions, UserState } from 'store/glue/user';\nimport { getType } from 'typesafe-actions';\n\nconst initialState: UserState = {\n bearerToken: null,\n};\n\nconst userReducer = (\n state: UserState = initialState,\n action: UserAction,\n): UserState => {\n switch (action.type) {\n case getType(actions.setToken):\n const selectedDates = action.payload;\n return R.set(state, 'bearerToken', selectedDates);\n\n default:\n return state;\n }\n};\n\nexport default userReducer;\n","import { IS_DEVELOPMENT } from 'config/env';\n\nconst baseEndpoint = IS_DEVELOPMENT\n ? '/api/actual'\n : 'https://api.rope.software/actual/v1';\n\nexport { baseEndpoint };\n","import * as R from 'remeda';\nimport { domainUtility, timeUtility } from 'utility';\nimport { mutateAdd } from 'utility/domain';\n\nfunction transformFiles(apiFiles: API.File[]) {\n const fileDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n for (let index = 0; index < apiFiles.length; index++) {\n const currentApiFile = apiFiles[index];\n if (!R.isDefined(currentApiFile)) break;\n\n const {\n fileId,\n // fileName,\n friendlyFileName,\n\n // errorRecords,\n skippedRecordsCount,\n processedRecordsCount,\n skippedRecordsDetails: { errorRecordsCount, noMatchRecordsCount },\n totalRecordsCount,\n importedAt,\n isProcessed,\n // processedRecords,\n // totalRecords,\n } = currentApiFile;\n\n const file: Data.File = {\n id: fileId,\n name: friendlyFileName,\n errors: errorRecordsCount,\n isProcessed,\n proccessed: processedRecordsCount,\n importedAt,\n total: totalRecordsCount,\n skipped: noMatchRecordsCount,\n };\n\n domainUtility.mutateAdd(fileDomain, file);\n }\n\n return fileDomain;\n}\n\nfunction transformProducedActivities(\n producedActivities: API.ProducedActivity[],\n errorMessages: API.ErrorMessage[],\n) {\n const producedActivityDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n const errorMessageDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n for (let index = 0; index < errorMessages.length; index++) {\n const currentErrorMessage = errorMessages[index];\n\n if (!R.isDefined(currentErrorMessage)) break;\n\n const {\n id,\n action,\n companyId,\n error,\n errorTypeId,\n isAcknowledged,\n message,\n producedActivityId,\n } = currentErrorMessage;\n\n if (!R.isDefined(producedActivityId)) continue;\n\n const errorMessage: Data.ErrorMessage = {\n id,\n action,\n companyId,\n error,\n errorTypeId,\n isAcknowledged,\n message,\n producedActivityId,\n };\n\n domainUtility.mutateAdd(errorMessageDomain, errorMessage);\n }\n\n const errorBySomething = R.pipe(\n errorMessageDomain.allIds,\n R.map((id) => R.pipe(errorMessageDomain.byId, R.prop(id))),\n R.filter(R.isDefined),\n R.groupBy((errorMessage) => errorMessage.producedActivityId),\n R.mapValues((errors) => R.map(errors, (error) => error.id)),\n );\n\n for (let index = 0; index < producedActivities.length; index++) {\n const currentProducedActivity = producedActivities[index];\n\n if (!R.isDefined(currentProducedActivity)) continue;\n\n const {\n id,\n activityId,\n activityTypeId,\n companyId,\n date,\n dayOfWeek,\n employeeId,\n importedActivitCode,\n importedDate,\n monthNumber,\n importedActivityTypeCode,\n importedEmployeeNumber,\n spentTime,\n weekNumber,\n year,\n } = currentProducedActivity;\n\n const producedActivity: Data.ProducedActivity = {\n id,\n activityId,\n activityTypeId,\n companyId,\n date,\n dayOfWeek,\n employeeId,\n importedDate,\n monthNumber: monthNumber ? monthNumber - 1 : null, // goes from 1-12\n importedActivitCode,\n importedActivityTypeCode,\n importedEmployeeNumber,\n spentTime,\n weekNumber,\n year,\n errorIds: errorBySomething[id] ?? null,\n };\n\n domainUtility.mutateAdd(producedActivityDomain, producedActivity);\n }\n\n return { errorMessageDomain, producedActivityDomain };\n}\n\nfunction transformAggregatedEmployeeProducedActivities(args: {\n aggregatedProducedActivities: API.AggregatedProducedActivity[];\n}) {\n const { aggregatedProducedActivities } = args;\n\n const employeeHourDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n for (let index = 0; index < aggregatedProducedActivities.length; index++) {\n const currentAggregatedProducedActivity =\n aggregatedProducedActivities[index];\n if (!R.isDefined(currentAggregatedProducedActivity)) continue;\n let { monthNumber } = currentAggregatedProducedActivity;\n const {\n year,\n dayOfWeek,\n dayOfMonth,\n weekNumber,\n activityId,\n activityTypeId,\n employeeId,\n spentTime,\n } = currentAggregatedProducedActivity;\n\n if (\n !R.isDefined(employeeId) ||\n !R.isDefined(activityId) ||\n !R.isDefined(activityTypeId) ||\n !R.isDefined(year)\n )\n continue;\n\n let dateId = '';\n if (R.isDefined(monthNumber)) monthNumber = monthNumber - 1;\n // Day\n if (\n R.isDefined(monthNumber) &&\n R.isDefined(dayOfMonth)\n // && R.isDefined(weekNumber) should contain weeknumber\n ) {\n dateId = timeUtility.generateDayId(year, monthNumber, dayOfMonth);\n }\n // Week\n else if (\n !R.isDefined(monthNumber) &&\n R.isDefined(weekNumber) &&\n !R.isDefined(dayOfMonth)\n )\n dateId = timeUtility.generateWeekId(year, weekNumber);\n // Month\n else if (\n R.isDefined(monthNumber) &&\n !R.isDefined(weekNumber) &&\n !R.isDefined(dayOfMonth)\n )\n dateId = timeUtility.generateMonthId(year, monthNumber);\n // Year\n else if (\n !R.isDefined(monthNumber) &&\n !R.isDefined(weekNumber) &&\n !R.isDefined(dayOfMonth)\n )\n dateId = timeUtility.generateYearId(year);\n // Never\n else {\n }\n const employeeHour: Data.AggregatedEmployeeHour = {\n id: R.randomString(12),\n dateId,\n activityId,\n activityTypeId,\n employeeId,\n spentTime,\n year,\n dayOfMonth: R.isDefined(dayOfMonth) ? dayOfMonth : undefined,\n // ! day of week always null for this call\n dayOfWeek: R.isDefined(dayOfWeek) ? dayOfWeek : undefined,\n month: R.isDefined(monthNumber) ? monthNumber : undefined,\n week: R.isDefined(weekNumber) ? weekNumber : undefined,\n };\n\n mutateAdd(employeeHourDomain, employeeHour);\n }\n return { employeeHourDomain };\n}\n\nfunction transformAggregatedProducedActivities(args: {\n aggregatedProducedActivities: API.AggregatedProducedActivity[];\n}) {\n const { aggregatedProducedActivities } = args;\n const activityHourDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n for (let index = 0; index < aggregatedProducedActivities.length; index++) {\n const currentAggregatedProducedActivity =\n aggregatedProducedActivities[index];\n if (!R.isDefined(currentAggregatedProducedActivity)) continue;\n\n const {\n year,\n monthNumber,\n dayOfWeek,\n dayOfMonth,\n weekNumber,\n activityId,\n activityTypeId,\n spentTime,\n } = currentAggregatedProducedActivity;\n if (\n !R.isDefined(year) ||\n !R.isDefined(monthNumber) ||\n !R.isDefined(dayOfMonth) ||\n !R.isDefined(weekNumber) ||\n !R.isDefined(dayOfWeek) ||\n !R.isDefined(activityId)\n )\n continue;\n\n const activityHour: Data.AggregatedActivityHour = {\n id: R.randomString(12),\n dayOfWeek,\n month: monthNumber - 1,\n year,\n week: weekNumber,\n dayOfMonth,\n activityId,\n activityTypeId,\n modifiedSpentTime: spentTime,\n spentTime,\n };\n\n mutateAdd(activityHourDomain, activityHour);\n }\n\n return { activityHourDomain };\n}\n\nfunction transformCalculatedInternal(args: {\n item: API.CalculatedInternal;\n domain: NormalizedDomain;\n}) {\n const { domain, item } = args;\n\n const {\n year,\n monthNumber,\n dayOfWeek,\n dayOfMonth,\n weekNumber,\n companyId,\n id,\n zoneId,\n backlogItemCount,\n processedItemCount,\n receivedItemCount,\n subZoneId,\n } = item;\n\n if (\n !R.isDefined(year) ||\n !R.isDefined(monthNumber) ||\n !R.isDefined(dayOfMonth) ||\n !R.isDefined(weekNumber) ||\n !R.isDefined(dayOfWeek) ||\n !R.isDefined(zoneId) ||\n !R.isDefined(subZoneId)\n )\n throw 'something fishy';\n\n const internal: Data.Internal = {\n id,\n dayOfWeek,\n month: monthNumber - 1,\n year,\n week: weekNumber,\n dayOfMonth,\n companyId,\n noReceived: receivedItemCount ?? 0,\n zoneId,\n subZoneId,\n noBacklog: backlogItemCount ?? 0,\n noProcessed: processedItemCount ?? 0,\n };\n\n domainUtility.mutateAdd(domain, internal);\n}\n\nfunction transformaCalculatedExternal(args: {\n item: API.CalculatedExternal;\n domain: NormalizedDomain;\n}) {\n const { domain, item } = args;\n const {\n year,\n monthNumber,\n dayOfWeek,\n dayOfMonth,\n weekNumber,\n companyId,\n id,\n zoneId,\n receivedItemCount,\n } = item;\n\n if (\n !R.isDefined(year) ||\n !R.isDefined(monthNumber) ||\n !R.isDefined(dayOfMonth) ||\n !R.isDefined(weekNumber) ||\n !R.isDefined(dayOfWeek) ||\n !R.isDefined(zoneId)\n )\n throw 'something fishy';\n\n const external: Data.External = {\n id,\n dayOfWeek,\n month: monthNumber - 1,\n year,\n week: weekNumber,\n dayOfMonth,\n companyId,\n noReceived: receivedItemCount ?? 0,\n zoneId,\n };\n\n domainUtility.mutateAdd(domain, external);\n}\n\nfunction transformCalculatedInternals(args: {\n calculatedInternals: API.CalculatedInternal[];\n}) {\n const { calculatedInternals } = args;\n\n const internalDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n for (let index = 0; index < calculatedInternals.length; index++) {\n const currentCalculatedInternal = calculatedInternals[index];\n if (!R.isDefined(currentCalculatedInternal)) continue;\n\n transformCalculatedInternal({\n item: currentCalculatedInternal,\n domain: internalDomain,\n });\n }\n\n return internalDomain;\n}\n\nfunction transformCalculatedExternals(args: {\n calculatedExternals: API.CalculatedExternal[];\n}) {\n const { calculatedExternals } = args;\n\n const externalDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n for (let index = 0; index < calculatedExternals.length; index++) {\n const currentCalculatedExternal = calculatedExternals[index];\n if (!R.isDefined(currentCalculatedExternal)) continue;\n transformaCalculatedExternal({\n item: currentCalculatedExternal,\n domain: externalDomain,\n });\n }\n\n return externalDomain;\n}\n\nexport {\n transformAggregatedEmployeeProducedActivities,\n transformAggregatedProducedActivities,\n transformCalculatedExternals,\n transformCalculatedInternals,\n transformFiles,\n transformProducedActivities,\n};\n","import axios from 'axios';\nimport { USE_MOCK } from 'config/app';\nimport * as R from 'remeda';\nimport { apiUtility } from 'utility';\n\nimport { baseEndpoint } from './config';\nimport mockedGetAggregatedActivityHoursJson from './mocked/getAggregatedActivityHours.json';\nimport mockedGetProducedActivitiesJson from './mocked/getProducedActivities.json';\nimport {\n transformAggregatedEmployeeProducedActivities,\n transformAggregatedProducedActivities,\n transformCalculatedExternals,\n transformCalculatedInternals,\n transformFiles,\n transformProducedActivities,\n} from './transformers';\nconst getProducedActivities = (params: {\n companyId: string;\n bearerToken: string;\n useMocked?: boolean;\n}) => {\n const { companyId, useMocked = USE_MOCK, bearerToken } = params;\n if (useMocked)\n return Promise.resolve(\n mockedGetProducedActivitiesJson as ReturnType<\n typeof transformProducedActivities\n >,\n );\n\n return axios\n .get<{\n producedActivities: API.ProducedActivity[];\n errorMessages: API.ErrorMessage[];\n startDate: string;\n endDate: string;\n }>(`${baseEndpoint}/producedactivities/${companyId}`, {\n headers: { Authorization: `Bearer ${bearerToken}` },\n })\n .then((response) => {\n const { data } = response;\n\n const transformed = transformProducedActivities(\n data.producedActivities,\n data.errorMessages,\n );\n return transformed;\n });\n};\n\nconst getAggregatedEmployeeHours = (params: {\n companyId: string;\n bearerToken: string;\n useMocked?: boolean;\n dates: Time.Date[];\n}) => {\n const { bearerToken, companyId, dates, useMocked = USE_MOCK } = params;\n\n if (useMocked) {\n // eslint-disable-next-line no-console\n console.warn('Get Aggregated EmployeeHour has no mock');\n return Promise.resolve({\n employeeHourDomain: { allIds: [], byId: {} },\n } as ReturnType);\n }\n\n // Empty dates will result in all history in response,\n // Not ideal.\n if (dates.length === 0)\n return Promise.resolve({\n employeeHourDomain: { allIds: [], byId: {} },\n } as ReturnType);\n\n const _dates: API.DateResolution[] = apiUtility.toDateResolution(dates);\n\n return axios\n .post<\n API.AggregatedProducedActivity[]\n >(`${baseEndpoint}/aggregatedactivities/${companyId}`, { resolution: 'employee', dates: _dates }, { headers: { Authorization: `Bearer ${bearerToken}` } })\n .then((response) => {\n const { data } = response;\n const transformed = transformAggregatedEmployeeProducedActivities({\n aggregatedProducedActivities: data,\n });\n\n return transformed;\n });\n};\n/**\n * We want to get all the history for now.\n * In the future we can ask for history relevant for specific date interval.\n * Logic & Synchronization is much easier if we just have everything.\n */\nconst getAggregatedActivityHours = (params: {\n companyId: string;\n bearerToken: string;\n useMocked?: boolean;\n}) => {\n const { bearerToken, companyId, useMocked = USE_MOCK } = params;\n\n if (useMocked) {\n return Promise.resolve(\n mockedGetAggregatedActivityHoursJson as ReturnType<\n typeof transformAggregatedProducedActivities\n >,\n );\n }\n\n return axios\n .post<\n API.AggregatedProducedActivity[]\n >(`${baseEndpoint}/aggregatedactivities/${companyId}`, { resolution: 'activity' }, { headers: { Authorization: `Bearer ${bearerToken}` } })\n .then((response) => {\n const { data } = response;\n const transformed = transformAggregatedProducedActivities({\n aggregatedProducedActivities: data,\n });\n\n return transformed;\n });\n};\n\nconst getCalculatedExternals = (params: {\n companyId: string;\n bearerToken: string;\n useMocked?: boolean;\n}) => {\n const { bearerToken, companyId } = params;\n\n const body = {\n resolution: 'SubZoneId', // ZoneId, SubZoneId\n //\"unitOfMeasureId\": \"952303de-5041-44de-9613-df730ac7bfe1\",\n returnRawData: true, // returnRawData = true, aggregated per day\n dates: [], // Empty list === all dates\n };\n\n return axios\n .post(\n `${baseEndpoint}/companies/${companyId}/calculated-externals`,\n body,\n {\n headers: { Authorization: `Bearer ${bearerToken}` },\n },\n )\n .then((response) => {\n const { data } = response;\n const transformed = transformCalculatedExternals({\n calculatedExternals: data,\n });\n return transformed;\n });\n};\n\nconst getCalculatedInternals = (params: {\n companyId: string;\n bearerToken: string;\n useMocked?: boolean;\n}) => {\n const { bearerToken, companyId } = params;\n\n const body = {\n resolution: 'SubZoneId', // ZoneId, SubZoneId\n unitOfMeasureId: '952303DE-5041-44DE-9613-DF730AC7BA9B', // TODO: hardcoded for now because we had rows without subZoneID\n returnRawData: true, // returnRawData = true, aggregated per day\n dates: [], // Empty list === all dates\n };\n\n return axios\n .post(\n `${baseEndpoint}/companies/${companyId}/calculated-internals`,\n body,\n {\n headers: { Authorization: `Bearer ${bearerToken}` },\n },\n )\n .then((response) => {\n const { data } = response;\n const transformed = transformCalculatedInternals({\n calculatedInternals: data,\n });\n return transformed;\n });\n};\n\nconst getFiles = (params: {\n companyId: string;\n bearerToken: string;\n page: number;\n pageSize: number;\n}) => {\n const { companyId, bearerToken, page, pageSize } = params;\n\n return axios\n .get>(\n `${baseEndpoint}/companies/${companyId}/files`,\n {\n headers: { Authorization: `Bearer ${bearerToken}` },\n params: { pageNumber: page, pageSize },\n },\n )\n .then((response) => {\n const {\n data: { data, error, hasSucceeded },\n headers,\n } = response;\n\n const { CurrentPage, PageSize, TotalPages, TotalCount } = JSON.parse(\n headers['x-pagination'],\n ) as API.Pagination;\n\n const pagination: System.Pagination = {\n page: CurrentPage,\n totalPages: TotalPages,\n };\n\n const transformed = transformFiles(data);\n\n return { fileDomain: transformed, pagination };\n });\n};\n\nconst uploadFile = (params: {\n companyId: string;\n bearerToken: string;\n file: File;\n}) => {\n const { companyId, bearerToken, file } = params;\n\n const formData = new FormData();\n formData.append('file', file);\n\n return axios.post(`${baseEndpoint}/companies/${companyId}/upload`, formData, {\n headers: {\n Authorization: `Bearer ${bearerToken}`,\n 'Content-Type': 'multipart/form-data',\n },\n });\n};\n\nexport {\n getAggregatedActivityHours,\n getAggregatedEmployeeHours,\n getCalculatedExternals,\n getCalculatedInternals,\n getFiles,\n getProducedActivities,\n uploadFile,\n};\n","import { IS_DEVELOPMENT } from 'config/env';\n\nconst baseEndpoint = IS_DEVELOPMENT\n ? '/api/company'\n : 'https://api.rope.software/company/v1';\n\nexport { baseEndpoint };\n","import * as R from 'remeda';\nimport { apiUtility, domainUtility, timeUtility } from 'utility';\n\nfunction transformCompanies(\n companies: API.Company[],\n): NormalizedDomain {\n const domain: NormalizedDomain = { allIds: [], byId: {} };\n\n for (let index = 0; index < companies.length; index++) {\n const currentCompany = companies[index];\n\n if (!R.isDefined(currentCompany)) break;\n\n const company: Data.Company = {\n id: currentCompany.id,\n branchIds: [],\n activityTypeIds: [],\n employeeIds: [],\n description: currentCompany.description ?? '',\n name: currentCompany.name ?? '',\n };\n\n domainUtility.mutateAdd(domain, company);\n }\n\n return domain;\n}\n\nfunction transformCompany(args: { _company: API.Company }) {\n const { _company } = args;\n const {\n activityTypes,\n activities,\n areas,\n // boundaries,\n branches,\n distributionCenters,\n employees,\n subZones,\n zones,\n } = _company;\n const employeeDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n const branchDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n const distributionCenterDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n const zoneDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n const subZoneDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n const areaDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n const activityTypeDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n const activityDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n apiUtility.iterator({\n list: branches,\n transformer: (item) => transformBranch({ item, domain: branchDomain }),\n });\n\n apiUtility.iterator({\n list: distributionCenters,\n transformer: (item) =>\n transformDistributionCenter({ item, domain: distributionCenterDomain }),\n });\n apiUtility.iterator({\n list: areas,\n transformer: (item) => transformArea({ item, domain: areaDomain }),\n });\n apiUtility.iterator({\n list: employees,\n transformer: (item) => transformEmployee({ item, domain: employeeDomain }),\n });\n apiUtility.iterator({\n list: activityTypes,\n transformer: (item) =>\n transformActivityType({ item, domain: activityTypeDomain }),\n });\n\n apiUtility.iterator({\n list: activities,\n transformer: (item) => transformActivity({ item, domain: activityDomain }),\n });\n apiUtility.iterator({\n list: zones,\n transformer: (item) => transformZone({ item, domain: zoneDomain }),\n });\n apiUtility.iterator({\n list: subZones,\n transformer: (item) => transformSubZone({ item, domain: subZoneDomain }),\n });\n\n return {\n employeeDomain,\n distributionCenterDomain,\n areaDomain,\n branchDomain,\n activityTypeDomain,\n activityDomain,\n zoneDomain,\n subZoneDomain,\n };\n}\n\nfunction transformBranch(args: {\n item: API.Branch;\n domain: NormalizedDomain;\n}) {\n const { item, domain } = args;\n\n const { companyId, description, distributionCenterIds, name, id } = item;\n\n const branch: Data.Branch = {\n id,\n companyId,\n description: description ?? '',\n distributionCenterIds: distributionCenterIds ?? [],\n name: name ?? '',\n };\n domainUtility.mutateAdd(domain, branch);\n}\n\nfunction transformProductivityGoals(\n productivityGoals: API.ProductivityGoal[] | null,\n) {\n if (!R.isDefined(productivityGoals)) return [];\n\n const targets = R.pipe(\n productivityGoals,\n R.map((productivityGoal) => {\n if (!R.isDefined(productivityGoal.validFrom)) return;\n const timestamp = new Date(productivityGoal.validFrom).getTime();\n const day = timeUtility.timestampToDay(timestamp);\n\n const productivityTarget: Data.ProductivityTarget = {\n date: day,\n id: productivityGoal.id,\n productivity: productivityGoal.productivityNumber,\n };\n return productivityTarget;\n }),\n R.filter(R.isDefined),\n R.sortBy((productivityTarget) => productivityTarget.date.id),\n );\n\n return targets;\n}\n\nfunction transformZone(args: {\n item: API.Zone;\n domain: NormalizedDomain;\n}) {\n const { item, domain } = args;\n\n const { description, subZoneIds, name, id, productivityGoals } = item;\n\n const zone: Data.Zone = {\n id,\n description: description ?? '',\n name: name ?? '',\n subZoneIds: subZoneIds ?? [],\n targets: transformProductivityGoals(productivityGoals),\n };\n domainUtility.mutateAdd(domain, zone);\n}\n\nfunction transformSubZone(args: {\n item: API.SubZone;\n domain: NormalizedDomain;\n}) {\n const { item, domain } = args;\n\n const {\n description,\n name,\n id,\n subZoneCode,\n zoneId,\n isActive = false,\n productivityGoals,\n } = item;\n\n if (!R.isDefined(zoneId)) return;\n\n const subZone: Data.SubZone = {\n id,\n description: description ?? '',\n name: name ?? '',\n code: subZoneCode ?? '',\n zoneId,\n isActive,\n targets: transformProductivityGoals(productivityGoals),\n };\n\n domainUtility.mutateAdd(domain, subZone);\n}\n\nfunction transformDistributionCenter(args: {\n item: API.DistributionCenter;\n domain: NormalizedDomain;\n}) {\n const { item, domain } = args;\n\n const { areaIds, id, name, zoneIds, description, branchId } = item;\n\n if (!R.isDefined(branchId)) return;\n\n const distrubutionCenter: Data.DistributionCenter = {\n id,\n branchId,\n areaIds: areaIds ?? [],\n description: description ?? '',\n zoneIds: zoneIds ?? [],\n name: name ?? '',\n };\n\n domainUtility.mutateAdd(domain, distrubutionCenter);\n}\n\nfunction transformArea(args: {\n item: API.Area;\n domain: NormalizedDomain;\n}) {\n const { item, domain } = args;\n\n const { description, id, name, zoneIds, distributionCenterId } = item;\n\n const area: Data.Area = {\n id,\n description: description ?? '',\n name: name ?? '',\n distributionCenterId,\n zoneIds: zoneIds ?? [],\n };\n\n domainUtility.mutateAdd(domain, area);\n}\n\nfunction transformEmployee(args: {\n item: API.Employee;\n domain: NormalizedDomain;\n}) {\n const { item, domain } = args;\n\n let { firstName, lastName } = item;\n const { id, employeeNumbers } = item;\n firstName = firstName ?? '';\n lastName = lastName ?? '';\n\n const employeeNumber = R.isDefined(employeeNumbers)\n ? R.pipe(\n employeeNumbers,\n R.first(),\n (employeeNumber) => employeeNumber?.employeeNumber ?? '',\n )\n : '';\n\n const employee: Data.Employee = {\n id,\n\n name: `${firstName} ${lastName}`,\n nbr: employeeNumber,\n };\n domainUtility.mutateAdd(domain, employee);\n}\n\nfunction transformActivityType(args: {\n item: API.ActivityType;\n domain: NormalizedDomain;\n}) {\n const { item, domain } = args;\n\n const { description, id, name, activityIds, activityTypeCode } = item;\n\n // const activityIds = R.isDefined(activities)\n // ? activities.map((activity) => activity.id)\n // : [];\n\n const activityType: Data.ActivityType = {\n id,\n description: description ?? '',\n name: name ?? '',\n activityIds: activityIds ?? [],\n code: activityTypeCode ?? '',\n };\n\n domainUtility.mutateAdd(domain, activityType);\n}\n\nfunction transformActivity(args: {\n item: API.Activity;\n domain: NormalizedDomain;\n}) {\n const { item, domain } = args;\n\n const {\n description,\n id,\n name,\n activityCode,\n activityTypeId,\n isActive,\n subZoneIds,\n zoneId,\n separateInvoice,\n } = item;\n\n const activity: Data.Activity = {\n id,\n description: description ?? '',\n name: name ?? '',\n activityTypeId,\n code: activityCode ?? '',\n isActive,\n separateInvoice,\n subZoneIds,\n zoneId,\n };\n\n domainUtility.mutateAdd(domain, activity);\n}\n\nfunction transformSuggestions(\n suggestions: API.Suggestion[],\n): NormalizedDomain {\n const domain: NormalizedDomain = { allIds: [], byId: {} };\n\n for (let index = 0; index < suggestions.length; index++) {\n const currentSuggestion = suggestions[index];\n\n if (!R.isDefined(currentSuggestion)) break;\n\n const suggestion: Data.Suggestion = {\n id: currentSuggestion.id,\n description: currentSuggestion.problemStatement ?? '',\n name: currentSuggestion.title ?? '',\n imageUris: currentSuggestion.imageUris,\n solution: currentSuggestion.solutionProposal ?? '',\n };\n\n domainUtility.mutateAdd(domain, suggestion);\n }\n\n return domain;\n}\n\nexport { transformCompanies, transformCompany, transformSuggestions };\n","import axios from 'axios';\nimport { USE_MOCK } from 'config/app';\nimport * as R from 'remeda';\n\nimport { baseEndpoint } from './config';\nimport mockedGetCompaniesJson from './mocked/getCompanies.json';\nimport mockedGetCompanyJson from './mocked/getCompany.json';\nimport mockedGetSuggestionsJson from './mocked/getSuggestions.json';\nimport {\n transformCompanies,\n transformCompany,\n transformSuggestions,\n} from './transformers';\n\nconst getCompanies = (params: { bearerToken: string; useMocked?: boolean }) => {\n const { bearerToken, useMocked = USE_MOCK } = params;\n\n if (useMocked)\n return Promise.resolve(\n mockedGetCompaniesJson as ReturnType,\n );\n\n return axios\n .get<{ data: API.Company[] }>(`${baseEndpoint}/companies`, {\n headers: { Authorization: `Bearer ${bearerToken}` },\n })\n .then((response) => {\n const {\n data: { data },\n } = response;\n const transformed = transformCompanies(data);\n return transformed;\n });\n};\n\nfunction getOrganization(params: {\n companyId: string;\n useMocked?: boolean;\n bearerToken: string;\n}) {\n const { companyId, useMocked = USE_MOCK, bearerToken } = params;\n\n if (useMocked)\n return Promise.resolve(\n mockedGetCompanyJson as ReturnType,\n );\n\n return axios\n .get<{ data: API.Company }>(`${baseEndpoint}/companies/${companyId}`, {\n headers: { Authorization: `Bearer ${bearerToken}` },\n })\n .then((response) => {\n const {\n data: { data: company },\n } = response;\n if (!R.isDefined(company)) return;\n\n const transformed = transformCompany({\n _company: company,\n });\n\n return transformed;\n });\n}\nfunction getSuggestions(params: {\n companyId: string;\n useMocked?: boolean;\n bearerToken: string;\n}) {\n const { companyId, useMocked = USE_MOCK, bearerToken } = params;\n\n if (useMocked)\n return Promise.resolve(\n mockedGetSuggestionsJson as ReturnType,\n );\n\n return axios\n .get<{ data: API.Suggestion[] }>(\n `${baseEndpoint}/companies/${companyId}/suggestions`,\n {\n headers: { Authorization: `Bearer ${bearerToken}` },\n },\n )\n .then((response) => {\n const {\n data: { data: suggestions },\n } = response;\n\n console.log(JSON.stringify(suggestions));\n const transformed = transformSuggestions(suggestions);\n return transformed;\n });\n}\n\nexport { getCompanies, getOrganization, getSuggestions };\n","import { IS_DEVELOPMENT } from 'config/env';\n\nconst baseEndpoint = IS_DEVELOPMENT\n ? '/api/forecast'\n : 'https://api.rope.software/forecast/v1';\n\nexport { baseEndpoint };\n","import * as R from 'remeda';\nimport { domainUtility } from 'utility';\n\nfunction transformForecasts(args: { forecasts: API.Forecast[] }) {\n const { forecasts } = args;\n const forecastDomain: NormalizedDomain = {\n allIds: [],\n byId: {},\n };\n\n for (let index = 0; index < forecasts.length; index++) {\n const currentForecast = forecasts[index];\n if (!R.isDefined(currentForecast)) continue;\n const {\n year,\n monthNumber,\n dayOfWeek,\n dayOfMonth,\n weekNumber,\n companyId,\n forecastDate,\n id,\n createdAt,\n unitOfMeasureId,\n value,\n zoneId,\n } = currentForecast;\n\n if (\n !R.isDefined(year) ||\n !R.isDefined(monthNumber) ||\n !R.isDefined(dayOfMonth) ||\n !R.isDefined(weekNumber) ||\n !R.isDefined(dayOfWeek) ||\n !R.isDefined(createdAt)\n )\n continue;\n\n const timestamp = new Date(createdAt).getTime();\n\n const forecast: Data.Projection = {\n id,\n dayOfWeek,\n month: monthNumber - 1,\n timestamp,\n year,\n week: weekNumber,\n dayOfMonth,\n companyId,\n unitOfMeasureId,\n value,\n forecastDate,\n zoneId,\n };\n\n domainUtility.mutateAdd(forecastDomain, forecast);\n }\n\n return { forecastDomain };\n}\n\nexport { transformForecasts };\n","import axios from 'axios';\nimport { USE_MOCK } from 'config/app';\nimport * as R from 'remeda';\n\nimport { baseEndpoint } from './config';\nimport { transformForecasts } from './transformers';\n\nconst getPrediction = (params: {\n companyId: string;\n zoneId?: string;\n bearerToken: string;\n useMocked?: boolean;\n}) => {\n const { bearerToken, companyId, zoneId } = params;\n\n return axios\n .post<\n API.Forecast[]\n >(`${baseEndpoint}/companies/${companyId}/predictions`, { zoneId }, { headers: { Authorization: `Bearer ${bearerToken}` } })\n .then((response) => {\n const { data } = response;\n const { forecastDomain: predictionDomain } = transformForecasts({\n forecasts: data,\n });\n return { predictionDomain };\n });\n};\n\nconst getForecasts = (params: {\n companyId: string;\n zoneId?: string;\n bearerToken: string;\n useMocked?: boolean;\n}) => {\n const { bearerToken, companyId, zoneId } = params;\n\n return axios\n .post<\n API.Forecast[]\n >(`${baseEndpoint}/forecasts/${companyId}`, { zoneId }, { headers: { Authorization: `Bearer ${bearerToken}` } })\n .then((response) => {\n const { data } = response;\n const transformed = transformForecasts({ forecasts: data });\n return transformed;\n });\n};\n\nconst createForecast = (params: {\n companyId: string;\n zoneId: string;\n date: Time.Day;\n value: number;\n unitOfMeasureId?: string;\n bearerToken: string;\n useMocked?: boolean;\n}) => {\n const {\n bearerToken,\n companyId,\n zoneId,\n date,\n unitOfMeasureId = '4977c495-137c-4de8-a589-d80438d7111a',\n value,\n\n useMocked = USE_MOCK,\n } = params;\n // \"2021-03-31T00:00:00.0000000+00:00\"\n const today = new Date();\n\n const forecast: Data.Projection = {\n id: R.randomString(10),\n companyId,\n year: date.year,\n month: date.month,\n dayOfMonth: date.dayOfMonth,\n week: date.week,\n dayOfWeek: date.dayOfWeek,\n forecastDate: today.toISOString(),\n timestamp: today.getTime(),\n unitOfMeasureId,\n value,\n zoneId,\n };\n\n if (useMocked) {\n return Promise.resolve(forecast);\n }\n\n return axios\n .post<{ id: string }>(\n `${baseEndpoint}/forecasts/${companyId}/create`,\n {\n zoneId,\n year: date.year,\n monthNumber: date.month + 1, // Javascript month normalization\n dayOfMonth: date.dayOfMonth,\n value,\n unitOfMeasureId,\n },\n { headers: { Authorization: `Bearer ${bearerToken}` } },\n )\n .then((response) => {\n const { data } = response;\n\n forecast.id = data.id;\n\n return forecast;\n });\n};\n\nconst createPrediction = (params: {\n companyId: string;\n zoneId: string;\n date: Time.Day;\n value: number;\n unitOfMeasureId?: string;\n bearerToken: string;\n useMocked?: boolean;\n}) => {\n const {\n bearerToken,\n companyId,\n zoneId,\n date,\n unitOfMeasureId = '4977c495-137c-4de8-a589-d80438d7111a',\n value,\n\n useMocked = USE_MOCK,\n } = params;\n // \"2021-03-31T00:00:00.0000000+00:00\"\n const today = new Date();\n\n const prediction: Data.Projection = {\n id: R.randomString(10),\n companyId,\n year: date.year,\n month: date.month,\n dayOfMonth: date.dayOfMonth,\n week: date.week,\n dayOfWeek: date.dayOfWeek,\n forecastDate: today.toISOString(),\n timestamp: today.getTime(),\n unitOfMeasureId,\n value,\n zoneId,\n };\n\n if (useMocked) {\n return Promise.resolve(prediction);\n }\n\n return axios\n .post<{ id: string }>(\n `${baseEndpoint}/companies/${companyId}/predictions/create`,\n {\n zoneId,\n year: date.year,\n monthNumber: date.month + 1, // Javascript month normalization\n dayOfMonth: date.dayOfMonth,\n value,\n unitOfMeasureId,\n },\n { headers: { Authorization: `Bearer ${bearerToken}` } },\n )\n .then((response) => {\n const { data } = response;\n\n prediction.id = data.id;\n\n return prediction;\n });\n};\n\nexport { createForecast, createPrediction, getForecasts, getPrediction };\n","import { IS_DEVELOPMENT } from 'config/env';\nimport { UserManagerSettings } from 'oidc-client-ts';\n\nconst baseEndpoint = IS_DEVELOPMENT\n ? '/api/identityserver'\n : 'https://identity.rope.software';\n\nconst redirectUri = IS_DEVELOPMENT\n ? 'http://localhost:3000/signin-oidc'\n : 'https://rope.software/signin-oidc';\n\nconst localSettings: UserManagerSettings = {\n client_id: 'MvcTestApplication',\n client_secret: 'secret',\n authority: baseEndpoint,\n response_type: 'code',\n redirect_uri: redirectUri,\n extraTokenParams: { company_id: '' },\n scope:\n 'openid profile CompanyAPI ActualAPI ForecastAPI ScheduleAPI ColdStorageAPI offline_access',\n};\n\nexport { baseEndpoint, localSettings };\n","import { USE_MOCKED_USER } from 'config/app';\nimport { User, UserManager } from 'oidc-client-ts';\n\nimport { localSettings } from './config';\n/**\n * 1. The Relying Parties (RP) (Client) sends and request to the OpenID Provider (OP)\n * 2. OP authenticates the end user and obtains authorization (redirect page)\n * 3. OP responds with an ID Token (JWT) and ususally an Access Token (Bearer?)\n * 4. RP can send rquest with the access token to the userinfo endpoint\n * 5. User Info endpoint returns claims about the end-user\n */\nconst fakeUser: Pick = {\n access_token: 'Mocke Karlsson',\n};\n\nconst userManager = new UserManager(localSettings);\n\n// Get authenticated user\nconst getUser = () => {\n if (USE_MOCKED_USER) return Promise.resolve(fakeUser);\n return userManager.getUser();\n};\n\n// Redirect to signin page\nconst signinRedirect = () => {\n if (USE_MOCKED_USER) return Promise.resolve();\n return userManager.signinRedirect();\n};\n\n// When redirected after succes\nconst signinRedirectCallback = () => {\n if (USE_MOCKED_USER) return Promise.resolve(fakeUser);\n return userManager.signinRedirectCallback();\n};\n\nconst signoutRedirect = () => {\n if (USE_MOCKED_USER) return Promise.resolve();\n return userManager.signoutRedirect();\n};\n\nexport { getUser, signinRedirect, signinRedirectCallback, signoutRedirect };\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'app';\n\nexport const START_INITIALIZE =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_INITIALIZE` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport { START_INITIALIZE } from './constants';\n\nexport const startInitialize = createAction(START_INITIALIZE)();\n","import { LOG_SAGA_TIME, SLOW_DOWN_SAGA } from 'config/app';\nimport Glue from 'Glue';\nimport { call, delay, put, SagaReturnType } from 'redux-saga/effects';\nimport { loadingActions } from 'store/glue/loading';\n\nconst SLOW_REQUEST = 500;\n\n/**\n * call this function with an effect to achieve desired result.\n * most case, it will be called with a simple call\n */\n\nfunction* sagaWrapper(args: {\n saga: () => Generator;\n\n type: Glue.LoadingType;\n logTime?: boolean;\n}) {\n const { saga, type } = args;\n const { logTime = false } = args;\n\n const startTime = new Date().getTime();\n\n let event: SagaReturnType;\n\n try {\n yield put(loadingActions.updateLoadingStatus({ type, status: 'loading' }));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n event = yield call(saga);\n // Slow down\n const excecutionTime = new Date().getTime() - startTime;\n if (SLOW_DOWN_SAGA && excecutionTime < SLOW_REQUEST)\n yield delay(SLOW_REQUEST - excecutionTime);\n\n yield put(\n loadingActions.updateLoadingStatus({ type, status: 'succeeded' }),\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n yield put(\n loadingActions.updateLoadingStatus({\n type,\n status: 'failed',\n error,\n }),\n );\n } finally {\n const endTime = new Date().getTime();\n const duration = endTime - startTime;\n yield put(loadingActions.updateLoadingStatus({ type, status: 'idle' }));\n if (logTime || LOG_SAGA_TIME)\n // eslint-disable-next-line no-console\n console.log(`EVENT: ${type} took ${duration}ms`);\n }\n}\n\nexport { sagaWrapper };\n","import { oidcAPI } from 'api';\nimport {\n all,\n call,\n put,\n SagaReturnType,\n takeLeading,\n} from 'redux-saga/effects';\nimport * as R from 'remeda';\nimport * as appActions from 'store/glue/app/actions';\nimport { sagaWrapper } from 'store/helpers';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as userActions from './actions';\nimport * as userConstants from './constants';\nconst LOCAL_STORAGE_ITEM = 'token';\n\nfunction* startLoginSaga(action: ActionType) {\n function* saga() {\n const user: SagaReturnType = yield call(\n oidcAPI.getUser,\n );\n\n if (!R.isDefined(user)) {\n localStorage.removeItem(LOCAL_STORAGE_ITEM);\n yield put(userActions.setToken(null));\n\n yield call(oidcAPI.signinRedirect);\n return;\n }\n\n const bearer = user.access_token;\n localStorage.setItem(LOCAL_STORAGE_ITEM, bearer);\n\n yield put(userActions.setToken(bearer));\n yield put(appActions.startInitialize());\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nfunction* startLogoutSaga(action: ActionType) {\n function* saga() {\n localStorage.removeItem(LOCAL_STORAGE_ITEM);\n yield put(userActions.setToken(null));\n\n yield call(oidcAPI.signoutRedirect);\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nfunction* startVerifySaga(action: ActionType) {\n function* saga() {\n const user: SagaReturnType =\n yield call(oidcAPI.signinRedirectCallback);\n const bearer = user.access_token;\n localStorage.setItem(LOCAL_STORAGE_ITEM, bearer);\n yield put(userActions.setToken(bearer));\n yield put(appActions.startInitialize());\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nexport function* watcher() {\n yield all([\n takeLeading(userConstants.START_LOGIN, startLoginSaga),\n takeLeading(userConstants.START_VERIFY, startVerifySaga),\n takeLeading(userConstants.START_LOGOUT, startLogoutSaga),\n ]);\n}\n","import { COMPANY_ID } from 'config/app';\nimport * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport Types from 'Types';\nimport { jwtUtility } from 'utility';\n\nconst domain = (state: Types.RootState) => state.glue.user;\n\nconst bearerToken = createSelector(domain, (domain) => domain.bearerToken);\n\nconst companyId = createSelector(bearerToken, (token) => {\n if (!R.isDefined(token)) return COMPANY_ID;\n const parsedToken = jwtUtility.parseJwt<{ company_id: string }>(token);\n if (!R.isDefined(parsedToken)) return COMPANY_ID;\n const companyId = parsedToken.company_id;\n if (!R.isDefined(companyId)) return COMPANY_ID;\n return companyId;\n});\nexport { bearerToken, companyId };\n","function parseJwt>(token: string) {\n const base64Url = token.split('.')[1];\n if (!base64Url) return;\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(''),\n );\n return JSON.parse(jsonPayload) as T;\n}\n\nexport { parseJwt };\n","import { combineReducers } from 'redux';\n\nimport { loadingReducer } from './loading';\nimport { userReducer } from './user';\nconst glueReducers = combineReducers({\n loading: loadingReducer,\n user: userReducer,\n});\n\nexport default glueReducers;\n","import * as R from 'remeda';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as userActions from './actions';\nimport * as userConstants from './constants';\nimport userReducer from './reducer';\nimport * as userSagas from './sagas';\nimport * as userSelectors from './selectors';\n\nexport type UserState = {\n bearerToken: null | string;\n};\n\nexport type UserAction = ActionType;\n\nconst userSagaActions = R.pick(userActions, [\n 'startLogin',\n 'startVerify',\n 'startLogout',\n]);\n\nexport type UserSagaAction = ActionType;\n\nexport {\n userActions,\n userConstants,\n userReducer,\n userSagaActions,\n userSagas,\n userSelectors,\n};\n","export const DOMAIN_TYPE = 'page';\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'dashboard';\n\nexport const SET_SELECTED_WEEK =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_SELECTED_WEEK` as const;\n\nexport const SET_SELECTED_DAY =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_SELECTED_DAY` as const;\n\nexport const TOGGLE_PIVOT =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/TOGGLE_PIVOT` as const;\n\nexport const START_TOGGLE_HOURS =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_TOGGLE_HOURS` as const;\n","import { createAction } from 'typesafe-actions';\n\nimport {\n SET_SELECTED_DAY,\n SET_SELECTED_WEEK,\n START_TOGGLE_HOURS,\n TOGGLE_PIVOT,\n} from './constants';\nimport { DashboardState } from './index';\n\nexport const togglePivot = createAction(\n TOGGLE_PIVOT,\n (payload: { id: string }) => payload,\n)();\n\nexport const setSelectedWeek = createAction(\n SET_SELECTED_WEEK,\n (payload: DashboardState['selectedWeek']) => payload,\n)();\n\nexport const setSelectedDay = createAction(\n SET_SELECTED_DAY,\n (payload: DashboardState['selectedDay']) => payload,\n)();\n\nexport const startToggleHours = createAction(\n START_TOGGLE_HOURS,\n (payload: { dateId: string; entityId: string; isOff: boolean }) => payload,\n)();\n","import * as R from 'remeda';\nimport {\n DashboardAction,\n dashboardActions as actions,\n DashboardState,\n} from 'store/page/dashboard';\nimport { getType } from 'typesafe-actions';\nimport { timeUtility } from 'utility';\n\nconst selectedDay = timeUtility.step({\n timeDate: timeUtility.getToday(),\n step: 'previous',\n stepSize: 'day',\n});\nconst selectedWeek = timeUtility.convertDay('week', selectedDay) as Time.Week;\nconst initialState: DashboardState = {\n selectedWeek,\n selectedDay: selectedDay!,\n kpis: [],\n pivotById: {},\n};\n\nconst dashboardReducer = (\n state: DashboardState = initialState,\n action: DashboardAction,\n): DashboardState => {\n switch (action.type) {\n case getType(actions.togglePivot):\n let pivotById = R.clone(state.pivotById);\n\n const pivotted = R.isTruthy(pivotById[action.payload.id]);\n if (pivotted) pivotById = R.omit(pivotById, [action.payload.id]);\n else pivotById[action.payload.id] = true;\n\n return R.set(state, 'pivotById', pivotById);\n\n case getType(actions.setSelectedWeek):\n const selectedWeek = action.payload;\n return R.set(state, 'selectedWeek', selectedWeek);\n case getType(actions.setSelectedDay):\n const selectedDay = action.payload;\n return R.set(state, 'selectedDay', selectedDay);\n\n default:\n return state;\n }\n};\n\nexport default dashboardReducer;\n","import { all, call, put, select, takeLeading } from 'redux-saga/effects';\nimport * as R from 'remeda';\nimport {\n activityHourActions,\n activityHourSelectors,\n} from 'store/aggregated/activityHour';\nimport { sagaWrapper } from 'store/helpers';\nimport { ActionType } from 'typesafe-actions';\nimport { arrayUtility } from 'utility';\nimport { mutateSet } from 'utility/domain';\n\nimport * as dashboardActions from './actions';\nimport * as dashboardConstants from './constants';\n\n/**\n * This will update modifiedSpentTime which will recalculate view\n */\nfunction* startToggleHourSaga(\n action: ActionType,\n) {\n function* saga() {\n const { dateId, entityId, isOff } = action.payload;\n\n // Get Activity hour ids on clicked date\n const byDate: ReturnType =\n yield select(activityHourSelectors.byDate);\n const dateIds = byDate[dateId];\n if (!R.isDefined(dateIds)) return;\n\n const byEntity: ReturnType =\n yield select(activityHourSelectors.byEntity);\n const entityIds = byEntity[entityId];\n if (!R.isDefined(entityIds)) return;\n\n const intersectingIds = arrayUtility.intersectingIds(dateIds, entityIds);\n\n const domain: ReturnType =\n yield select(activityHourSelectors.domain);\n\n intersectingIds.forEach((id) => {\n const item = domain.byId[id];\n // will not happen\n if (!R.isDefined(item)) throw 'will not happen';\n\n if (isOff) item.modifiedSpentTime = item.spentTime;\n else item.modifiedSpentTime = 0;\n\n mutateSet(domain, item);\n });\n\n yield put(activityHourActions.setDomain(domain));\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nexport function* watcher() {\n yield all([\n takeLeading(dashboardConstants.START_TOGGLE_HOURS, startToggleHourSaga),\n ]);\n}\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport { activitySelectors } from 'store/data/activity';\nimport { subZoneSelectors } from 'store/data/subZone';\nimport { zoneSelectors } from 'store/data/zone';\nimport Types from 'Types';\nimport { timeUtility } from 'utility';\nimport { misc } from 'variables';\n\nconst domain = (state: Types.RootState) => state.page.dashboard;\n\nconst pivotById = createSelector(domain, (domain) => domain.pivotById);\n\nconst selectedWeek = createSelector(domain, (domain) => {\n const label = timeUtility.format(\n domain.selectedWeek,\n 'dashboard-pivot-table-cell-header',\n );\n\n const labeledDate: Time.LabeledDate = { ...domain.selectedWeek, name: label };\n\n return labeledDate;\n});\nconst selectedDay = createSelector(domain, (domain) => {\n const label = timeUtility.format(\n domain.selectedDay,\n 'dashboard-pivot-table-cell-header',\n );\n\n const labeledDate: Time.LabeledDate = { ...domain.selectedDay, name: label };\n\n return labeledDate;\n});\n\n/**\n * Generate pivot strucuture for KPI dashboard page.\n * The one data object which knows all the connections is Data.Activity\n */\nconst pivotStructure = createSelector(\n zoneSelectors.byId,\n activitySelectors.list,\n subZoneSelectors.byId,\n\n (zoneById, activities, subZoneById) => {\n const pivotTable: PivotTable.Row[] = [];\n\n // Organize activities by zoneId\n const activitiesByZone = R.pipe(\n activities,\n R.groupBy((activity) => activity.zoneId ?? misc.MISSING),\n );\n\n function subZoneRows(subZoneIds: string[], ancestorIds: string[]) {\n const rows: PivotTable.Row[] = R.pipe(\n subZoneIds,\n R.map((subZoneId) => {\n // extract subzone\n const subZone = subZoneById[subZoneId.toString()];\n // early return, if not defined\n if (!R.isDefined(subZone)) return;\n\n const row: PivotTable.Row = {\n id: subZone.id,\n name: `${subZone.code} - ${subZone.name}`,\n ancestorIds,\n indentLevel: 3,\n };\n\n return row;\n }),\n R.filter(R.isDefined),\n R.sortBy((row) => row.name),\n );\n return rows;\n }\n\n function activityRows(activities: Data.Activity[], ancestorIds: string[]) {\n const rows: PivotTable.Row[] = R.pipe(\n activities,\n R.sortBy(\n [(activity) => !R.isDefined(activity.subZoneIds), 'desc'],\n (activity) => activity.code,\n ),\n R.map((activity) => {\n const childRows = R.isDefined(activity.subZoneIds)\n ? subZoneRows(activity.subZoneIds, [...ancestorIds, activity.id])\n : undefined;\n\n const row: PivotTable.Row = {\n id: activity.id,\n name: `${activity.code} - ${activity.name}`,\n ancestorIds,\n childRows,\n indentLevel: 2,\n };\n return row;\n }),\n );\n return rows;\n }\n\n // Main iteration for activities in zone\n R.pipe(\n activitiesByZone,\n R.forEachObj.indexed((activities, zoneId) => {\n // extract zone\n\n const zone = zoneById[zoneId.toString()];\n // early return, if not defined\n if (!R.isDefined(zone)) return;\n\n pivotTable.push({\n id: zone.id,\n name: zone.name,\n ancestorIds: [],\n childRows: activityRows(activities, [zone.id]),\n indentLevel: 1,\n });\n }),\n );\n\n return pivotTable;\n },\n);\n\nconst displayRows = createSelector(\n pivotStructure,\n pivotById,\n (pivotStructure, pivotById) => {\n function recursiveAddRows(\n rows: PivotTable.Row[],\n returnList: PivotTable.Row[],\n ) {\n rows.forEach((row) => {\n returnList.push(row);\n const pivotted = R.isTruthy(pivotById[row.id]);\n if (pivotted && row.childRows)\n recursiveAddRows(row.childRows, returnList);\n });\n }\n\n const returnRows: PivotTable.Row[] = [];\n\n recursiveAddRows(pivotStructure, returnRows);\n\n return returnRows;\n },\n);\n\nexport { displayRows, pivotById, pivotStructure, selectedDay, selectedWeek };\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'flexHours';\n\nexport const TOGGLE_PIVOT =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/TOGGLE_PIVOT` as const;\n\nexport const SET_SELECTED_DATES =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_SELECTED_DATES` as const;\n\nexport const SET_CHART_MODE =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_CHART_MODE` as const;\n\nexport const SET_CHART_EXPLORE_DATE =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_CHART_EXPLORE_DATE_HISTORY` as const;\n\nexport const SET_CHART_SELECTED_DATE_TYPE =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_CHART_SELECTED_DATE_TYPE` as const;\n\nexport const SET_CHART_FILTER =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_CHART_FILTER` as const;\n\nexport const START_SELECT_DATES =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_SELECT_DATES` as const;\n","import * as R from 'remeda';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as dashboardActions from './actions';\nimport * as dashboardConstants from './constants';\nimport dashboardReducer from './reducer';\nimport * as dashboardSagas from './sagas';\nimport * as dashboardSelectors from './selectors';\n\nexport type DashboardState = {\n selectedWeek: Time.Week;\n selectedDay: Time.Day;\n kpis: KPI.Key[];\n pivotById: Record;\n};\nexport type DashboardAction = ActionType;\n\nconst dashboardSagaActions = R.pick(dashboardActions, ['startToggleHours']);\n\nexport type DashboardSagaAction = ActionType;\nexport {\n dashboardActions,\n dashboardConstants,\n dashboardReducer,\n dashboardSagas,\n dashboardSelectors,\n};\n","import { createAction } from 'typesafe-actions';\n\nimport {\n SET_CHART_EXPLORE_DATE,\n SET_CHART_FILTER,\n SET_CHART_MODE,\n SET_CHART_SELECTED_DATE_TYPE,\n SET_SELECTED_DATES,\n START_SELECT_DATES,\n TOGGLE_PIVOT,\n} from './constants';\nimport { FlexHoursState } from './index';\nexport const setSelectedDates = createAction(\n SET_SELECTED_DATES,\n (payload: Time.Date[]) => payload,\n)();\n\nexport const togglePivot = createAction(\n TOGGLE_PIVOT,\n (payload: { id: string }) => payload,\n)();\n\nexport const setChartMode = createAction(\n SET_CHART_MODE,\n (payload: FlexHoursState['chartMode']) => payload,\n)();\n\nexport const setChartExploreDate = createAction(\n SET_CHART_EXPLORE_DATE,\n (payload: FlexHoursState['chartExploreDate']) => payload,\n)();\n\nexport const setChartFilter = createAction(\n SET_CHART_FILTER,\n (payload: FlexHoursState['chartFilter']) => payload,\n)();\n\nexport const setChartSelectedDateType = createAction(\n SET_CHART_SELECTED_DATE_TYPE,\n (payload: FlexHoursState['chartSelectedDateType']) => payload,\n)();\n\nexport const startSelectDates = createAction(\n START_SELECT_DATES,\n (payload: { selectedDates: Time.Date[] }) => payload,\n)();\n","import * as R from 'remeda';\nimport {\n FlexHoursAction,\n flexHoursActions as actions,\n FlexHoursState,\n} from 'store/page/flexHours';\nimport { getType } from 'typesafe-actions';\nimport { timeUtility } from 'utility';\n\nconst initialState: FlexHoursState = {\n selectedDates: [],\n chartMode: 'exploration',\n chartExploreDate: timeUtility.convertDay('year', timeUtility.getToday()),\n chartSelectedDateType: 'year',\n chartFilter: {},\n pivotById: {},\n};\n\nconst flexHoursReducer = (\n state: FlexHoursState = initialState,\n action: FlexHoursAction,\n): FlexHoursState => {\n switch (action.type) {\n case getType(actions.togglePivot):\n let pivotById = R.clone(state.pivotById);\n\n const pivotted = R.isTruthy(pivotById[action.payload.id]);\n if (pivotted) pivotById = R.omit(pivotById, [action.payload.id]);\n else pivotById[action.payload.id] = true;\n\n return R.set(state, 'pivotById', pivotById);\n\n case getType(actions.setSelectedDates):\n const selectedDates = action.payload;\n return R.set(state, 'selectedDates', selectedDates);\n\n case getType(actions.setChartMode):\n return R.set(state, 'chartMode', action.payload);\n case getType(actions.setChartSelectedDateType):\n return R.set(state, 'chartSelectedDateType', action.payload);\n case getType(actions.setChartExploreDate):\n return R.set(state, 'chartExploreDate', action.payload);\n case getType(actions.setChartFilter):\n return R.set(state, 'chartFilter', action.payload);\n default:\n return state;\n }\n};\n\nexport default flexHoursReducer;\n","import { actualAPI } from 'api';\nimport {\n all,\n call,\n delay,\n put,\n SagaReturnType,\n select,\n takeLeading,\n} from 'redux-saga/effects';\nimport * as R from 'remeda';\nimport { employeeHourActions } from 'store/aggregated/employeeHour';\nimport { userSelectors } from 'store/glue/user';\nimport { sagaWrapper } from 'store/helpers';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as flexHoursActions from './actions';\nimport * as flexHoursConstants from './constants';\n\n/**\n *\n * When selecting dates from calendar modal.\n * - always fetches and replaces aggregatedEmployeeHours.\n */\nfunction* startSelectDatesSaga(\n action: ActionType,\n) {\n function* saga() {\n yield delay(1);\n const { selectedDates } = action.payload;\n\n const bearerToken: ReturnType =\n yield select(userSelectors.bearerToken);\n if (!R.isDefined(bearerToken)) return;\n\n const companyId: ReturnType = yield select(\n userSelectors.companyId,\n );\n\n yield put(flexHoursActions.setSelectedDates(selectedDates));\n const {\n employeeHourDomain,\n }: SagaReturnType = yield call(\n actualAPI.getAggregatedEmployeeHours,\n {\n bearerToken,\n companyId,\n useMocked: false,\n dates: selectedDates,\n },\n );\n\n yield put(employeeHourActions.setDomain(employeeHourDomain));\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nexport function* watcher() {\n yield all([\n takeLeading(flexHoursConstants.START_SELECT_DATES, startSelectDatesSaga),\n ]);\n}\n","import {\n amber,\n deepOrange,\n lightBlue,\n lightGreen,\n teal,\n} from '@mui/material/colors';\nimport { typography } from 'material/typography';\n\nconst scaleFontVariant = typography.text2;\n\nconst scaleFont = {\n family: scaleFontVariant.fontFamily,\n size: scaleFontVariant.fontSize as any,\n weight: scaleFontVariant.fontWeight as any,\n letterSpacing:\n scaleFontVariant.letterSpacing && `${scaleFontVariant.letterSpacing}px`,\n};\n\nconst chartColors = [\n amber['300'],\n lightGreen['400'],\n lightBlue['400'],\n teal['300'],\n deepOrange['400'],\n];\n\nconst CATEGORY_PERCENTAGE = 1;\nconst BAR_PERCENTAGE = 0.5;\n\nconst AXIS_WIDTH = 2;\n\nconst AXIS_OFFSET = 55;\n\nexport {\n AXIS_OFFSET,\n AXIS_WIDTH,\n BAR_PERCENTAGE,\n CATEGORY_PERCENTAGE,\n chartColors,\n scaleFont,\n};\n","import { Palette } from '@mui/material';\nimport { ChartDataset, ChartOptions, Point } from 'chart.js';\nimport { error, success } from 'material/palette';\nimport * as R from 'remeda';\nimport { arrayUtility, stylingUtility, timeUtility } from 'utility';\n\nimport {\n AXIS_OFFSET,\n AXIS_WIDTH,\n BAR_PERCENTAGE,\n CATEGORY_PERCENTAGE,\n chartColors,\n scaleFont,\n} from './constants';\n\nfunction xAxisCustom(\n config: Charts.XAxisConfigCustom,\n stacked: boolean,\n): ChartOptions['scales'] {\n return {\n [config.id]: {\n stacked: stacked,\n display: false,\n },\n };\n}\n\nfunction xAxisDaysToWeek(\n config: Charts.XAxisConfigDaysToWeek,\n dateIds: string[],\n stacked: boolean,\n palette: Palette,\n xAxisHeight: number,\n): ChartOptions['scales'] {\n return {\n [config.id]: {\n display: true,\n position: 'bottom',\n stacked,\n afterFit(scaleInstance) {\n scaleInstance.height = xAxisHeight;\n },\n\n grid: { color: palette.divider, offset: true },\n\n ticks: {\n autoSkip: false,\n\n callback(_tickValue, index, _ticks) {\n const dateId = dateIds[index];\n\n if (!R.isDefined(dateId)) throw 'date id should be defined';\n\n const date = timeUtility.dateFromId(dateId);\n if (!R.isDefined(date)) throw 'Not a date passed in';\n if (date.type !== 'day') throw 'date.type !== \"day\"';\n\n if ((index - 3) % 7 === 0) {\n const week = timeUtility.weekFromDay(\n date.year,\n date.month,\n date.dayOfMonth,\n );\n return timeUtility.format(week, 'x-axis-productivity-modal');\n }\n\n return '';\n },\n\n font: {\n family: scaleFont.family,\n size: scaleFont.size,\n weight: scaleFont.weight,\n },\n color: palette.text.secondary,\n padding: 5,\n },\n },\n };\n}\n\nfunction xAxis(\n config: Charts.XAxisConfig,\n dateIds: string[],\n stacked: boolean,\n palette: Palette,\n xAxisHeight: number,\n): ChartOptions['scales'] {\n switch (config.type) {\n case 'x_axis_custom':\n return xAxisCustom(config, stacked);\n case 'x_axis_days_to_week':\n return xAxisDaysToWeek(config, dateIds, stacked, palette, xAxisHeight);\n default:\n return undefined;\n }\n}\n\nfunction yAxis(\n config: Charts.YAxisConfig,\n multiAxis: boolean,\n palette: Palette,\n yAxisWidth: number,\n): ChartOptions['scales'] {\n return {\n [config.id]: {\n display: true,\n stacked: config.stacked,\n beginAtZero: false,\n\n afterFit(scaleInstance) {\n scaleInstance.width = yAxisWidth;\n },\n\n ...(R.isDefined(config.expandDataLimit) && {\n afterDataLimits(axis) {\n if (config.stacked) return;\n\n const diff = (axis.max - axis.min) * 0.1;\n\n axis.max = axis.max + diff;\n axis.min = axis.min - diff;\n },\n }),\n\n grid: { color: palette.divider, display: !multiAxis },\n position: config.id === 'yAxisPrimary' ? 'left' : 'right',\n ticks: {\n callback(tickValue, index) {\n if (index % 2 === 0) return ''; // cleaner y axis\n if (!R.isDefined(config.tickPrefix)) return tickValue;\n return `${tickValue} ${config.tickPrefix}`;\n },\n font: {\n family: scaleFont.family,\n size: scaleFont.size,\n weight: scaleFont.weight,\n },\n align: 'end',\n color: palette.text.secondary,\n },\n },\n };\n}\n\n/**\n * Annotation is for now used to mark out different weeks in chart area\n */\nfunction getAnnotationPlugin(args: {\n xAxisConfig: Charts.XAxisConfig;\n palette: Palette;\n}): ChartOptions['plugins'] {\n const { xAxisConfig, palette } = args;\n\n if (xAxisConfig.type !== 'x_axis_days_to_week') return undefined;\n\n function weekAnnotation(week: number, backgroundColor: string): any {\n const OFFSET = 0.5;\n\n const startDay = (week - 1) * 7 - OFFSET;\n const endDay = (week - 1) * 7 + 7 - OFFSET;\n\n return {\n type: 'box',\n borderWidth: 0,\n xMin: startDay,\n xMax: endDay,\n yMin: '100%',\n yMax: '100%',\n drawTime: 'beforeDraw',\n backgroundColor,\n };\n }\n\n const plugins: any = {\n annotation: {\n annotations: {},\n },\n };\n\n const thisWeek = xAxisConfig.surroundingWeeks + 1;\n const nbrOWeeks = thisWeek + xAxisConfig.surroundingWeeks;\n\n R.times(nbrOWeeks, (time) => {\n const color =\n time % 2 !== 0 ? palette.background.default : palette.background.paper;\n\n const week = time + 1;\n plugins.annotation.annotations[`week${week}`] = weekAnnotation(week, color);\n });\n\n return plugins as ChartOptions['plugins'];\n}\n\n/**\n * Generates chart options, not considering charts with no x or y axis.\n */\nfunction generateOptions(args: {\n xAxisConfig: Charts.XAxisConfig;\n yAxisConfigs: Charts.YAxisConfig[];\n dateIds: string[];\n fastAnimation: boolean;\n stacked: boolean;\n palette: Palette;\n yAxisWidth: number;\n xAxisHeight: number;\n}) {\n const {\n fastAnimation,\n xAxisConfig,\n yAxisConfigs,\n dateIds,\n stacked,\n palette,\n yAxisWidth,\n xAxisHeight,\n } = args;\n\n const multiAxis = yAxisConfigs.length !== 1;\n\n const scaleX = xAxis(xAxisConfig, dateIds, stacked, palette, xAxisHeight);\n const scalesY = R.pipe(\n yAxisConfigs,\n R.mapToObj((yAxisConfig) => {\n const scale = yAxis(yAxisConfig, multiAxis, palette, yAxisWidth);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return [yAxisConfig.id, R.pipe(scale, R.prop(yAxisConfig.id))];\n }),\n );\n\n // ! does not work for some reason\n const annotation = getAnnotationPlugin({ xAxisConfig, palette });\n const options: ChartOptions = {\n /**\n * Responsive charts,\n * Resizes the chart when its container does.\n * Don't care about maintaining aspect ratio when resizing\n * I think scroll behaviour can be implemented with responsive: false\n */\n responsive: true,\n maintainAspectRatio: false,\n\n ...(fastAnimation && { animation: { duration: 100 } }),\n layout: {\n padding: {\n // top: AXIS_OFFSET + AXIS_WIDTH,\n // right: multiAxis ? undefined : AXIS_OFFSET + AXIS_WIDTH + yAxisWidth,\n top: AXIS_OFFSET + AXIS_WIDTH,\n right: multiAxis ? undefined : yAxisWidth,\n bottom: 10, // arrow size + tail size\n },\n autoPadding: true, // Apply automatic padding so visible elements are completely drawn\n },\n scales: {\n ...scaleX,\n ...scalesY,\n },\n parsing: {},\n plugins: {\n filler: {\n propagate: true,\n },\n legend: { display: false },\n ...annotation,\n },\n };\n\n return options;\n}\n\n/**\n * Used when an uncertain number of categories exist\n * Index of dataset is used as color decider.\n * Will generate a\n */\nfunction getDatasetColor(datasetIndex: number) {\n const index = arrayUtility.wrapAroundIndex(datasetIndex, chartColors);\n const color = chartColors[index];\n\n if (!R.isDefined(color)) throw 'Color should always be defined';\n\n return color;\n}\n\n/**\n * dataset unique properties, could probably work on naming a bit\n */\nfunction generateDataset(\n dataset: Charts.Dataset,\n _data: (number | null | KPI.Projection[])[],\n): ChartDataset {\n const { color, name, xAxisId: xAxisID, yAxisId: yAxisID } = dataset;\n\n const successColor = stylingUtility.convertToRgba({\n hexColor: success.main as any,\n opacity: 0.5,\n });\n\n const failureColor = stylingUtility.convertToRgba({\n hexColor: error.main as any,\n opacity: 0.5,\n });\n\n const data: (number | null | Point)[] = [];\n // Make scatter points of projections\n R.forEach.indexed(_data, (item, index) => {\n if (Array.isArray(item)) {\n item.forEach((entry, i) => {\n if (i === 0) return;\n data.push({ x: index + 1, y: entry.value }); // we don't want to draw current\n });\n } else {\n data.push(item);\n }\n });\n\n switch (dataset.type) {\n case 'grouped-bar':\n return {\n data,\n label: name,\n type: 'bar',\n backgroundColor: color,\n xAxisID,\n yAxisID,\n categoryPercentage: CATEGORY_PERCENTAGE,\n barPercentage: BAR_PERCENTAGE,\n\n hoverBorderWidth: 0,\n\n borderWidth: 0,\n };\n case 'line-fill-to-dataset':\n return {\n data,\n type: 'line',\n label: name,\n borderColor: color,\n fill: { target: 1, above: successColor, below: failureColor },\n xAxisID,\n yAxisID,\n spanGaps: true,\n borderJoinStyle: 'bevel',\n cubicInterpolationMode: 'monotone',\n pointBackgroundColor: 'transparent',\n pointBorderColor: 'transparent',\n\n borderWidth: 10,\n };\n\n case 'stepped-line':\n return {\n data,\n type: 'line',\n label: name,\n borderColor: color,\n borderDash: [2, 16],\n borderCapStyle: 'square',\n stepped: true,\n xAxisID,\n yAxisID,\n spanGaps: true,\n pointBackgroundColor: 'transparent',\n pointBorderColor: 'transparent',\n borderJoinStyle: 'bevel',\n borderWidth: 8,\n };\n\n case 'line':\n return {\n data,\n type: 'line',\n label: name,\n borderColor: color,\n xAxisID,\n yAxisID,\n\n spanGaps: true,\n borderJoinStyle: 'bevel',\n cubicInterpolationMode: 'monotone',\n pointBackgroundColor: 'transparent',\n pointBorderColor: 'transparent',\n\n borderWidth: 10,\n };\n\n case 'bar':\n return {\n data,\n label: name,\n type: 'bar',\n backgroundColor: color,\n xAxisID,\n yAxisID,\n };\n\n case 'scatter':\n return {\n data,\n label: name,\n pointRadius: 7,\n type: 'scatter',\n borderColor: color,\n backgroundColor: color,\n xAxisID,\n yAxisID,\n };\n }\n}\n\nexport { generateDataset, generateOptions, getDatasetColor };\n","import { getDatasetColor } from 'components/Chart/helpers';\nimport * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport { activityHourSelectors } from 'store/aggregated/activityHour';\nimport { employeeHourSelectors } from 'store/aggregated/employeeHour';\nimport { activitySelectors } from 'store/data/activity';\nimport { activityTypeSelectors } from 'store/data/activityType';\nimport { employeeSelectors } from 'store/data/employee';\nimport Types from 'Types';\nimport { timeUtility } from 'utility';\n\n/**\n * From State\n */\nconst domain = (state: Types.RootState) => state.page.flexHours;\nconst chartMode = createSelector(domain, (domain) => domain.chartMode);\nconst selectedDates = createSelector(domain, (domain) => domain.selectedDates);\nconst pivotById = createSelector(domain, (domain) => domain.pivotById);\n\nconst chartExploreDate = createSelector(\n domain,\n (domain) => domain.chartExploreDate,\n);\n\nconst chartSelectedDateType = createSelector(\n domain,\n (domain) => domain.chartSelectedDateType,\n);\n\nconst chartFilter = createSelector(domain, (domain) => domain.chartFilter);\n\nconst chartFilterCount = createSelector(chartFilter, (chartFilter) =>\n R.pipe(chartFilter, R.keys, (keys) => keys.length),\n);\n\n/**\n * Derived, PivotView\n */\nconst labeledSelectedDates = createSelector(selectedDates, (selectedDates) =>\n R.pipe(\n selectedDates,\n R.map(\n (selectedDate) =>\n ({\n ...selectedDate,\n name: timeUtility.format(\n selectedDate,\n 'flexhour-pivot-table-cell-header',\n ),\n }) as Time.LabeledDate,\n ),\n ),\n);\n\nconst pivotStructure = createSelector(\n employeeHourSelectors.byId,\n employeeHourSelectors.byActivityType,\n employeeHourSelectors.byActivity,\n activityTypeSelectors.byId,\n activitySelectors.byId,\n employeeSelectors.byId,\n\n (\n byId,\n byActivityType,\n byActivity,\n activityTypeById,\n activityById,\n employeeById,\n ) => {\n const pivotTable: PivotTable.Row[] = [];\n const activityTypeIds = R.keys(byActivityType);\n\n function activityRows(activityIds: string[], ancestorIds: string[]) {\n const activityRows: PivotTable.Row[] = [];\n\n R.pipe(\n activityIds,\n R.map((activityId) => activityById[activityId]),\n R.filter(R.isDefined),\n R.sortBy((activity) => activity.code),\n R.forEach((activity) => {\n // Which ids exist for activityType\n const validIds = byActivity[activity.id];\n if (!R.isDefined(validIds)) return;\n\n activityRows.push({\n id: activity.id,\n name: `${activity.code} - ${activity.name}`,\n ancestorIds,\n childRows: employeeRows(validIds, [...ancestorIds, activity.id]),\n indentLevel: 2,\n });\n }),\n );\n return activityRows;\n }\n\n function employeeRows(validIds: string[], ancestorIds: string[]) {\n const employeeRows: PivotTable.Row[] = [];\n R.pipe(\n validIds,\n R.map((validId) => byId[validId]?.employeeId),\n R.filter(R.isDefined),\n R.uniq(),\n R.map((employeeId) => employeeById[employeeId]),\n R.filter(R.isDefined),\n R.sortBy((employee) => employee.name),\n R.forEach((employee) => {\n employeeRows.push({\n id: employee.id,\n name: employee.name,\n ancestorIds,\n indentLevel: 3,\n });\n }),\n );\n return employeeRows;\n }\n\n R.pipe(\n activityTypeIds,\n R.map((activityTypeId) => activityTypeById[activityTypeId]),\n R.filter(R.isDefined),\n R.sortBy((activityType) => activityType.code),\n R.forEach((activityType) => {\n // Which ids exist for activityType\n const validIds = byActivityType[activityType.id];\n if (!R.isDefined(validIds)) return;\n\n pivotTable.push({\n id: activityType.id,\n ancestorIds: [],\n name: `${activityType.code} - ${activityType.name}`,\n childRows: activityRows(activityType.activityIds, [activityType.id]),\n indentLevel: 1,\n });\n }),\n );\n\n return pivotTable;\n },\n);\n\nconst displayRows = createSelector(\n pivotStructure,\n pivotById,\n (pivotStructure, pivotById) => {\n function recursiveAddRows(\n rows: PivotTable.Row[],\n returnList: PivotTable.Row[],\n ) {\n rows.forEach((row) => {\n returnList.push(row);\n const pivotted = R.isTruthy(pivotById[row.id]);\n if (pivotted && row.childRows)\n recursiveAddRows(row.childRows, returnList);\n });\n }\n\n const returnRows: PivotTable.Row[] = [];\n\n recursiveAddRows(pivotStructure, returnRows);\n\n return returnRows;\n },\n);\n\n/**\n * Derived, ChartView\n */\n\nconst chartSelectedLabels = createSelector(\n chartSelectedDateType,\n selectedDates,\n (dateType, selectedDates) =>\n R.pipe(\n selectedDates,\n R.filter((selectedDate) => selectedDate.type === dateType),\n ),\n);\n\nconst chartExploreLabels = createSelector(chartExploreDate, (date) => {\n // should never happen\n if (!R.isDefined(date)) return [];\n\n if (date.type === 'year')\n return R.values(timeUtility.getMonthsFromYear(date.year)) as Time.Date[];\n if (date.type === 'month')\n return R.values(\n timeUtility.getWeeksFromMonth(date.year, date.month),\n ) as Time.Date[];\n if (date.type === 'week')\n return R.values(\n timeUtility.getDaysFromWeek(date.year, date.week),\n ) as Time.Date[];\n return [] as Time.Date[];\n});\n\n// Also chart labels\nconst chartLabels = createSelector(\n chartMode,\n chartExploreLabels,\n chartSelectedLabels,\n (mode, exploreLabels, selectedLabels) => {\n // should never happen\n\n switch (mode) {\n case 'exploration':\n return exploreLabels;\n case 'selected':\n return selectedLabels;\n }\n },\n);\n\n/**\n * Responsible for building the datasets configuration\n * For the Assembly Chart component,\n */\nconst datasets = createSelector(\n activityHourSelectors.byActivityType,\n activityTypeSelectors.byId,\n chartFilter,\n (byActivityTypeId, activityTypeById, chartFilter) => {\n const datasets: Charts.Dataset[] = [];\n\n R.pipe(\n byActivityTypeId,\n R.forEachObj.indexed((_, activityTypeId) => {\n const activityType = activityTypeById[activityTypeId.toString()];\n if (!R.isDefined(activityType)) throw 'should never happen';\n\n const { id, name, activityIds } = activityType;\n\n // filter away toggled activities\n const filterEntityIds = R.pipe(\n activityIds,\n R.filter((activityId) => R.isDefined(chartFilter[activityId])),\n );\n\n const dataset: Charts.Dataset = {\n id,\n name,\n color: '', // Colorize later\n entityIds: [id],\n filterEntityIds,\n kpi: 'hours',\n type: 'grouped-bar',\n xAxisId: 'xAxis',\n yAxisId: 'yAxisPrimary',\n };\n\n datasets.push(dataset);\n }),\n );\n\n // Colorize\n return R.map.indexed(datasets, (dataset, datasetIndex) => ({\n ...dataset,\n color: getDatasetColor(datasetIndex),\n }));\n },\n);\n\nexport {\n chartExploreDate,\n chartFilter,\n chartFilterCount,\n chartLabels,\n chartMode,\n chartSelectedDateType,\n datasets,\n displayRows,\n labeledSelectedDates,\n pivotById,\n pivotStructure,\n selectedDates,\n};\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'forecast';\n\nexport const SET_SELECTED_WEEK =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_SELECTED_WEEK` as const;\n\nexport const START_CREATE_FORECAST =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_CREATE_FORECAST` as const;\n\nexport const START_CREATE_PREDICTION =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_CREATE_PREDICTION` as const;\n","import * as R from 'remeda';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as flexHoursActions from './actions';\nimport * as flexHoursConstants from './constants';\nimport flexHoursReducer from './reducer';\nimport * as flexHoursSagas from './sagas';\nimport * as flexHoursSelectors from './selectors';\n\nexport type FlexHoursState = {\n selectedDates: Time.Date[];\n chartMode: 'selected' | 'exploration';\n chartExploreDate: Time.Date;\n chartSelectedDateType: Time.DateType;\n chartFilter: Record;\n pivotById: Record;\n};\n\nexport type FlexHoursAction = ActionType;\n\nconst flexHoursSagaActions = R.pick(flexHoursActions, ['startSelectDates']);\n\nexport type FlexHoursSagaAction = ActionType;\n\nexport {\n flexHoursActions,\n flexHoursConstants,\n flexHoursReducer,\n flexHoursSagas,\n flexHoursSelectors,\n};\n","import { createAction } from 'typesafe-actions';\n\nimport {\n SET_SELECTED_WEEK,\n START_CREATE_FORECAST,\n START_CREATE_PREDICTION,\n} from './constants';\nimport { ForecastState } from './index';\n\nexport const setSelectedWeek = createAction(\n SET_SELECTED_WEEK,\n (payload: ForecastState['selectedWeek']) => payload,\n)();\n\nexport const startCreateForecast = createAction(\n START_CREATE_FORECAST,\n (payload: { zoneId: string; date: Time.Day; value: number }) => payload,\n)();\nexport const startCreatePrediction = createAction(\n START_CREATE_PREDICTION,\n (payload: { zoneId: string; date: Time.Day; value: number }) => payload,\n)();\n","import * as R from 'remeda';\nimport {\n ForecastAction,\n forecastActions as actions,\n ForecastState,\n} from 'store/page/forecast';\nimport { getType } from 'typesafe-actions';\n\nconst selectedWeek: Time.Week = {\n id: 'y2021-w16',\n type: 'week',\n week: 16,\n year: 2021,\n};\nconst initialState: ForecastState = {\n selectedWeek,\n};\n\nconst forecastReducer = (\n state: ForecastState = initialState,\n action: ForecastAction,\n): ForecastState => {\n switch (action.type) {\n case getType(actions.setSelectedWeek):\n const selectedWeek = action.payload;\n return R.set(state, 'selectedWeek', selectedWeek);\n default:\n return state;\n }\n};\n\nexport default forecastReducer;\n","import { forecastAPI } from 'api';\nimport {\n all,\n call,\n put,\n SagaReturnType,\n select,\n takeLeading,\n} from 'redux-saga/effects';\nimport * as R from 'remeda';\nimport { forecastActions as aggregatedForecastActions } from 'store/aggregated/forecast';\nimport { predictionActions as aggregatedPredictionActions } from 'store/aggregated/prediction';\nimport { userSelectors } from 'store/glue/user';\nimport { sagaWrapper } from 'store/helpers';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as forecastActions from './actions';\nimport * as forecastConstants from './constants';\n\nfunction* startCreateForecast(\n action: ActionType,\n) {\n function* saga() {\n const { zoneId, date, value } = action.payload;\n\n const bearerToken: ReturnType =\n yield select(userSelectors.bearerToken);\n if (!R.isDefined(bearerToken)) return;\n const companyId: ReturnType = yield select(\n userSelectors.companyId,\n );\n const forecast: SagaReturnType =\n yield call(forecastAPI.createForecast, {\n bearerToken,\n companyId,\n zoneId,\n date,\n value,\n useMocked: false,\n });\n\n yield put(aggregatedForecastActions.add(forecast));\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nfunction* startCreatePrediction(\n action: ActionType,\n) {\n function* saga() {\n const { zoneId, date, value } = action.payload;\n\n const bearerToken: ReturnType =\n yield select(userSelectors.bearerToken);\n if (!R.isDefined(bearerToken)) return;\n const companyId: ReturnType = yield select(\n userSelectors.companyId,\n );\n const prediction: SagaReturnType =\n yield call(forecastAPI.createPrediction, {\n bearerToken,\n companyId,\n zoneId,\n date,\n value,\n useMocked: false,\n });\n\n yield put(aggregatedPredictionActions.add(prediction));\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nexport function* watcher() {\n yield all([\n takeLeading(forecastConstants.START_CREATE_FORECAST, startCreateForecast),\n takeLeading(\n forecastConstants.START_CREATE_PREDICTION,\n startCreatePrediction,\n ),\n ]);\n}\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport { forecastSelectors } from 'store/aggregated/forecast';\nimport { zoneSelectors } from 'store/data/zone';\nimport Types from 'Types';\nimport { timeUtility } from 'utility';\n\nconst domain = (state: Types.RootState) => state.page.forecast;\n\nconst selectedWeek = createSelector(domain, (domain) => domain.selectedWeek);\n/**\n * We need to have the selected week in day format\n * so we can list days in the zone cards.\n */\nconst selectedDays = createSelector(selectedWeek, (selectedWeek) => {\n const days = R.pipe(\n timeUtility.getDaysFromWeek(selectedWeek.year, selectedWeek.week),\n R.values,\n R.sortBy((day) => day.id),\n );\n return days;\n});\n\n/**\n * The card structure for the view,\n * necessary to relevant zones\n */\nconst zoneCards = createSelector(\n forecastSelectors.byZone,\n zoneSelectors.byId,\n (forecastByZone, zoneById) => {\n const zoneIds = R.keys(forecastByZone);\n\n const zones = R.pipe(\n zoneIds,\n R.map((zoneId) => zoneById[zoneId]),\n R.filter(R.isDefined),\n R.sortBy((zone) => zone.name),\n );\n\n return zones as LabelItem[];\n },\n);\n\nexport { selectedDays, selectedWeek, zoneCards };\n","import { DOMAIN_TYPE } from '../constants';\n\nconst DOMAIN_NAME = 'integrations';\n\nexport const SET_PAGINATION =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/SET_PAGINATION` as const;\n\nexport const START_UPLOAD_FILE =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_UPLOAD_FILE` as const;\n\nexport const START_FETCH_PAGE =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_FETCH_PAGE` as const;\n","import * as R from 'remeda';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as forecastActions from './actions';\nimport * as forecastConstants from './constants';\nimport forecastReducer from './reducer';\nimport * as forecastSagas from './sagas';\nimport * as forecastSelectors from './selectors';\nexport type ForecastState = { selectedWeek: Time.Week };\n\nexport type ForecastAction = ActionType;\n\nconst forecastSagaActions = R.pick(forecastActions, [\n 'startCreateForecast',\n 'startCreatePrediction',\n]);\n\nexport type ForecastSagaAction = ActionType;\n\nexport {\n forecastActions,\n forecastConstants,\n forecastReducer,\n forecastSagas,\n forecastSelectors,\n};\n","import { createAction } from 'typesafe-actions';\n\nimport {\n SET_PAGINATION,\n START_FETCH_PAGE,\n START_UPLOAD_FILE,\n} from './constants';\n\nexport const setPagination = createAction(\n SET_PAGINATION,\n (payload: System.Pagination | null) => payload,\n)();\n\nexport const startUploadFile = createAction(\n START_UPLOAD_FILE,\n (payload: File | null) => payload,\n)();\n\nexport const startFetchPage = createAction(START_FETCH_PAGE)();\n","import * as R from 'remeda';\nimport {\n IntegrationsAction,\n integrationsActions as actions,\n IntegrationsState,\n} from 'store/page/integrations';\n\nconst initialState: IntegrationsState = { pagination: null };\n\nconst integrationsReducer = (\n state: IntegrationsState = initialState,\n action: IntegrationsAction,\n): IntegrationsState => {\n switch (action.type) {\n case 'page/integrations/SET_PAGINATION':\n return R.set(state, 'pagination', action.payload);\n default:\n return state;\n }\n};\n\nexport default integrationsReducer;\n","import { actualAPI } from 'api';\nimport {\n all,\n call,\n delay,\n put,\n SagaReturnType,\n select,\n takeLatest,\n takeLeading,\n} from 'redux-saga/effects';\nimport * as R from 'remeda';\nimport { fileActions } from 'store/data/file';\nimport { userSelectors } from 'store/glue/user';\nimport { sagaWrapper } from 'store/helpers';\nimport { ActionType } from 'typesafe-actions';\n\nimport {\n integrationsActions,\n integrationsConstants,\n integrationsSelectors,\n} from './';\n\nfunction* startFetchPageSaga(\n action: ActionType,\n) {\n function* saga() {\n const bearerToken: ReturnType =\n yield select(userSelectors.bearerToken);\n if (!R.isDefined(bearerToken)) return;\n\n const companyId: ReturnType = yield select(\n userSelectors.companyId,\n );\n\n let currentPagination: ReturnType =\n yield select(integrationsSelectors.pagination);\n\n if (!R.isDefined(currentPagination)) currentPagination = { page: 1 };\n\n const {\n fileDomain,\n pagination,\n }: SagaReturnType = yield call(\n actualAPI.getFiles,\n { companyId, bearerToken, page: currentPagination.page, pageSize: 10 },\n );\n\n yield put(fileActions.setDomain(fileDomain));\n yield put(integrationsActions.setPagination(pagination));\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nfunction* startUploadFileSaga(\n action: ActionType,\n) {\n function* saga() {\n const bearerToken: ReturnType =\n yield select(userSelectors.bearerToken);\n if (!R.isDefined(bearerToken)) return;\n\n const companyId: ReturnType = yield select(\n userSelectors.companyId,\n );\n\n const file = action.payload;\n\n if (!R.isDefined(file)) return;\n\n yield call(actualAPI.uploadFile, { companyId, bearerToken, file });\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nexport function* watcher() {\n yield all([\n takeLeading(integrationsConstants.START_UPLOAD_FILE, startUploadFileSaga),\n takeLatest(integrationsConstants.START_FETCH_PAGE, startFetchPageSaga),\n ]);\n}\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport { fileSelectors } from 'store/data/file';\nimport Types from 'Types';\n\nconst domain = (state: Types.RootState) => state.page.integrations;\nconst pagination = createSelector(domain, (domain) => domain.pagination);\n\nconst displayRows = createSelector(fileSelectors.list, (files) => {\n const rows: PivotTable.Row[] = R.pipe(\n files,\n R.sortBy([R.prop('importedAt'), 'desc']),\n R.map((file) => {\n const row: PivotTable.Row = {\n id: file.id,\n indentLevel: 1,\n name: file.name,\n ancestorIds: [],\n childRows: [],\n };\n return row;\n }),\n );\n return rows;\n});\n\nexport { displayRows, pagination };\n","import { DOMAIN_TYPE } from '../constants';\n\nexport const MISSING_VALUE = '-';\nexport const OUTSIDE_ZONE_NAME = 'Outside zone';\n\nconst DOMAIN_NAME = 'zoneManagement';\n\nexport const INIT = `${DOMAIN_TYPE}/${DOMAIN_NAME}/INIT` as const;\n\nexport const MOVE_ACTIVITY =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/MOVE_ACTIVITY` as const;\n\nexport const ADD_SUBZONE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/ADD_SUBZONE` as const;\n\nexport const START_UPDATE_SUB_ZONES =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/START_UPDATE_SUB_ZONES` as const;\n\nexport const REMOVE_SUBZONE =\n `${DOMAIN_TYPE}/${DOMAIN_NAME}/REMOVE_SUBZONE` as const;\n\nexport const DISCARD = `${DOMAIN_TYPE}/${DOMAIN_NAME}/DISCARD` as const;\n\nexport const SAVE = `${DOMAIN_TYPE}/${DOMAIN_NAME}/SAVE` as const;\n","import * as R from 'remeda';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as integrationsActions from './actions';\nimport * as integrationsConstants from './constants';\nimport integrationsReducer from './reducer';\nimport * as integrationsSagas from './sagas';\nimport * as integrationsSelectors from './selectors';\n\nexport type IntegrationsState = {\n pagination: System.Pagination | null;\n};\nexport type IntegrationsAction = ActionType;\n\nconst integrationsSagaActions = R.pick(integrationsActions, [\n 'startUploadFile',\n 'startFetchPage',\n]);\n\nexport type IntegrationsSagaAction = ActionType;\nexport {\n integrationsActions,\n integrationsConstants,\n integrationsReducer,\n integrationsSagas,\n integrationsSelectors,\n};\n","import { ActivityState } from 'store/data/activity';\nimport { createAction } from 'typesafe-actions';\n\nimport {\n ADD_SUBZONE,\n DISCARD,\n INIT,\n MOVE_ACTIVITY,\n REMOVE_SUBZONE,\n SAVE,\n START_UPDATE_SUB_ZONES,\n} from './constants';\n\nexport const init = createAction(\n INIT,\n (payload: { activity: ActivityState }) => payload,\n)();\n\nexport const moveActivity = createAction(\n MOVE_ACTIVITY,\n (payload: { activityId: string; zoneId: string }) => payload,\n)();\n\nexport const startUpdateSubZones = createAction(\n START_UPDATE_SUB_ZONES,\n (payload: { activityId: string; subZoneIds: string[] }) => payload,\n)();\n\nexport const addSubZone = createAction(\n ADD_SUBZONE,\n (payload: { activityId: string; subZoneId: string }) => payload,\n)();\n\nexport const removeSubZone = createAction(\n REMOVE_SUBZONE,\n (payload: { activityId: string; subZoneId: string }) => payload,\n)();\n\nexport const discard = createAction(\n DISCARD,\n (payload: { activity: ActivityState }) => payload,\n)();\n\nexport const save = createAction(SAVE)();\n","import * as R from 'remeda';\nimport { getType } from 'typesafe-actions';\n\nimport { ZoneManagementAction, ZoneManagementState } from '.';\nimport * as actions from './actions';\n\nconst initialState: ZoneManagementState = {\n editedActivityDomain: { allIds: [], byId: {} },\n};\n\nexport const zoneManagementReducer = (\n state: ZoneManagementState = initialState,\n action: ZoneManagementAction,\n): ZoneManagementState => {\n switch (action.type) {\n case getType(actions.init):\n return R.set(state, 'editedActivityDomain', action.payload.activity);\n case getType(actions.moveActivity):\n const { activityId, zoneId } = action.payload;\n\n const editedActivityDomain = R.clone(state.editedActivityDomain);\n\n editedActivityDomain.byId[activityId] = {\n ...editedActivityDomain.byId[activityId]!,\n zoneId, // Update zone id\n subZoneIds: [], // When moving to another zone, remove connected subzones\n };\n\n return R.set(state, 'editedActivityDomain', editedActivityDomain);\n\n case getType(actions.discard):\n return R.set(state, 'editedActivityDomain', action.payload.activity);\n case getType(actions.save):\n return initialState;\n default:\n return state;\n }\n};\n\nexport default zoneManagementReducer;\n","import * as R from 'remeda';\nimport { createSelector } from 'reselect';\nimport { activitySelectors } from 'store/data/activity';\nimport { subZoneSelectors } from 'store/data/subZone';\nimport { zoneSelectors } from 'store/data/zone';\nimport { Types } from 'Types';\n\nimport { MISSING_VALUE, OUTSIDE_ZONE_NAME } from './constants';\n\nexport type Hierarchy = {\n id: string;\n name: string;\n children: PivotTable.Row[];\n code?: string;\n};\n\nexport const editedActivityDomain = (state: Types.RootState) =>\n state.page.zoneManagement.editedActivityDomain;\n\nexport const byId = createSelector(\n editedActivityDomain,\n (editedActivityDomain) => editedActivityDomain.byId,\n);\nexport const allIds = createSelector(\n editedActivityDomain,\n (editedActivityDomain) => editedActivityDomain.allIds,\n);\n\nexport const list = createSelector(allIds, byId, (allIds, byId) =>\n R.pipe(\n allIds,\n R.map((id) => R.pipe(byId, R.prop(id))),\n R.filter(R.isDefined),\n ),\n);\n\nconst zoneStructure = createSelector(\n list,\n zoneSelectors.byId,\n subZoneSelectors.byId,\n (activities, zoneById, subZoneById) => {\n const hierarchy: Hierarchy[] = [];\n\n function getSubZoneChildren(subZoneIds: string[]) {\n const children: PivotTable.Row[] = R.pipe(\n subZoneIds,\n R.map((subZoneId) => {\n const subZone = subZoneById[subZoneId];\n if (!R.isDefined(subZone)) return;\n\n const child: PivotTable.Row = {\n id: subZone.id,\n name: `${subZone.code} - ${subZone.name}`,\n ancestorIds: [],\n indentLevel: 1,\n };\n\n return child;\n }),\n R.filter(R.isDefined),\n );\n return children;\n }\n\n function getActivityChildren(activities: Data.Activity[]) {\n const children: PivotTable.Row[] = R.pipe(\n activities,\n R.map((activity) => {\n const child: PivotTable.Row = {\n id: activity.id,\n name: `${activity.code} - ${activity.name}`,\n ancestorIds: [],\n indentLevel: 1,\n childRows:\n (activity.subZoneIds &&\n getSubZoneChildren(activity.subZoneIds)) ??\n undefined,\n };\n return child;\n }),\n );\n\n return children || [];\n }\n\n const sortZones = (zones: Hierarchy[]) => {\n const sortOrder = ['Outbound', 'Inbound', 'Outside zone'];\n\n return zones.sort((a: Hierarchy, b: Hierarchy) => {\n const aIndex = sortOrder.indexOf(a.name);\n const bIndex = sortOrder.indexOf(b.name);\n return aIndex - bIndex;\n });\n };\n\n R.pipe(\n activities,\n R.groupBy((activity) => activity.zoneId ?? MISSING_VALUE),\n R.forEachObj.indexed((activities, zoneId) => {\n const zone = zoneById[zoneId.toString()];\n\n const children: PivotTable.Row[] = getActivityChildren(activities);\n\n hierarchy.push({\n id: zoneId.toString(),\n name: zone?.name ?? OUTSIDE_ZONE_NAME,\n children,\n });\n }),\n );\n\n return sortZones(hierarchy);\n },\n);\n\nconst selectableActivitiesForZone = createSelector(\n (state: Types.RootState, ownProps: { zone: Hierarchy }) => ownProps.zone.id,\n byId,\n zoneSelectors.byId,\n (zoneId, editedActivityDomain) => {\n return R.pipe(\n editedActivityDomain,\n R.pickBy((activity: Data.Activity) => {\n return (activity?.zoneId || '-') !== zoneId;\n }),\n Object.values,\n R.map((activity) => R.pick(activity, ['id', 'name', 'code'])),\n );\n },\n);\n\nexport const selectableSubZones = createSelector(\n (state: Types.RootState, ownProps: { zoneId: string }) => ownProps.zoneId,\n zoneSelectors.byId,\n subZoneSelectors.byId,\n (zoneId, zoneById, subZoneById) => {\n const zone = zoneById[zoneId];\n\n if (!R.isDefined(zone)) return [];\n\n const { subZoneIds } = zone;\n\n const selectableSubZones: LabelItem[] = R.pipe(\n subZoneIds,\n R.map((subZoneId) => {\n const subZone = subZoneById[subZoneId];\n\n if (!R.isDefined(subZone)) return;\n\n return {\n id: subZone.id,\n name: `${subZone.code} - ${subZone.name}`,\n } as LabelItem;\n }),\n R.filter(R.isDefined),\n );\n\n return selectableSubZones;\n },\n);\n\ntype ActivityChange = {\n activityName: string;\n changes: string[];\n};\n\nexport type ActivityDomainDiff = {\n [key: string]: ActivityChange;\n};\n\nconst activityDomainDiff = createSelector(\n activitySelectors.byId,\n byId,\n zoneSelectors.byId,\n subZoneSelectors.byId,\n (activityById, editedActivityById, zonesById, subZoneById) => {\n const diff: { [key: string]: ActivityChange } = {};\n\n R.pipe(\n activityById,\n Object.values,\n R.map((activity) => {\n const editedActivity = editedActivityById[activity.id];\n\n if (!editedActivity) return;\n\n let changes: string[] = [];\n\n if (activity.zoneId !== editedActivity.zoneId) {\n const sourceZoneName =\n activityById[activity.zoneId]?.name || OUTSIDE_ZONE_NAME;\n\n const destZoneName = editedActivity.zoneId\n ? zonesById[activity.zoneId]?.name\n : OUTSIDE_ZONE_NAME;\n\n changes = [\n ...changes,\n `Moved from \"${destZoneName}\" to \"${sourceZoneName}\"`,\n ];\n }\n\n const subZonesRemoved = R.pipe(\n R.difference(\n activity.subZoneIds || [],\n editedActivity.subZoneIds || [],\n ),\n R.map((subZoneId: string) => {\n const subZoneName = subZoneById[subZoneId]?.name;\n return `Removed subZone \"${subZoneName}\"`;\n }),\n );\n\n const subZonesAdded = R.pipe(\n R.difference(\n editedActivity.subZoneIds || [],\n activity.subZoneIds || [],\n ),\n R.map((subZoneId: string) => {\n const subZoneName = subZoneById[subZoneId]?.name;\n return `Added subZone \"${subZoneName}\"`;\n }),\n );\n\n changes = [...changes, ...subZonesRemoved, ...subZonesAdded];\n\n if (changes.length)\n diff[activity.id] = {\n activityName: activity.name,\n changes,\n };\n }),\n );\n\n return diff;\n },\n);\n\nexport { activityDomainDiff, selectableActivitiesForZone, zoneStructure };\n","import { all, call, put, select, takeLeading } from 'redux-saga/effects';\nimport * as R from 'remeda';\nimport { sagaWrapper } from 'store/helpers';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as zoneManagementActions from './actions';\nimport * as zoneManagementConstants from './constants';\nimport * as zoneManagementSelectors from './selectors';\n\nfunction* startUpdateSubZonesSaga(\n action: ActionType,\n) {\n function* saga() {\n const { activityId, subZoneIds } = action.payload;\n\n const editedActivityDomain: ReturnType<\n typeof zoneManagementSelectors.editedActivityDomain\n > = yield select(zoneManagementSelectors.editedActivityDomain);\n\n const currentActivity = editedActivityDomain.byId[activityId];\n if (!R.isDefined(currentActivity)) throw 'Activity must exist';\n\n // We need to remove these ids from other activities\n const removeSubZoneIds = R.difference(\n subZoneIds,\n currentActivity.subZoneIds ?? [],\n );\n\n editedActivityDomain.byId[activityId] = { ...currentActivity, subZoneIds };\n\n editedActivityDomain.byId = R.mapValues(\n editedActivityDomain.byId,\n (activity) => {\n if (!R.isDefined(activity)) return undefined;\n\n const editiedActivity: Data.Activity = {\n ...activity,\n subZoneIds:\n activity.id === activityId\n ? subZoneIds\n : R.pipe(\n activity.subZoneIds ?? [],\n R.filter((subZoneId) => {\n const isMoved = R.find(\n removeSubZoneIds,\n (removedSubZoneId) => removedSubZoneId === subZoneId,\n );\n return !isMoved;\n }),\n ),\n };\n return editiedActivity;\n },\n );\n\n yield put(\n zoneManagementActions.init({ activity: R.clone(editedActivityDomain) }),\n );\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nexport function* watcher() {\n yield all([\n takeLeading(\n zoneManagementConstants.START_UPDATE_SUB_ZONES,\n startUpdateSubZonesSaga,\n ),\n ]);\n}\n","import * as R from 'remeda';\nimport { ActivityState } from 'store/data/activity';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as zoneManagementActions from './actions';\nimport * as zoneManagementConstants from './constants';\nimport zoneManagementReducer from './reducer';\nimport * as zoneManagementSagas from './sagas';\nimport * as zoneManagementSelectors from './selectors';\n\nexport type ZoneManagementState = {\n editedActivityDomain: ActivityState;\n};\n\nexport type ZoneManagementAction = ActionType;\n\nconst zoneManagementSagaActions = R.pick(zoneManagementActions, [\n 'startUpdateSubZones',\n]);\n\nexport type ZoneManagementSagaAction = ActionType<\n typeof zoneManagementSagaActions\n>;\n\nexport {\n zoneManagementActions,\n zoneManagementConstants,\n zoneManagementReducer,\n zoneManagementSagas,\n zoneManagementSelectors,\n};\n","import { combineReducers } from 'redux';\n\nimport { dashboardReducer } from './dashboard';\nimport { flexHoursReducer } from './flexHours';\nimport { forecastReducer } from './forecast';\nimport { integrationsReducer } from './integrations';\nimport { zoneManagementReducer } from './zoneManagement';\n\nconst pageReducers = combineReducers({\n flexHours: flexHoursReducer,\n forecast: forecastReducer,\n dashboard: dashboardReducer,\n zoneManagement: zoneManagementReducer,\n integrations: integrationsReducer,\n});\n\nexport default pageReducers;\n","import { combineReducers } from 'redux';\nimport aggregatedReducers from 'store/aggregated/combinedReducers';\nimport dataReducers from 'store/data/combinedReducers';\nimport glueReducers from 'store/glue/combinedReducers';\nimport pageReducers from 'store/page/combinedReducers';\n\nconst rootReducer = combineReducers({\n data: dataReducers,\n glue: glueReducers,\n page: pageReducers,\n aggregated: aggregatedReducers,\n});\n\nexport default rootReducer;\n","import { actualAPI, companyAPI, forecastAPI } from 'api';\nimport { all, call, put, SagaReturnType } from 'redux-saga/effects';\nimport * as R from 'remeda';\nimport { activityHourActions } from 'store/aggregated/activityHour';\nimport { externalActions } from 'store/aggregated/external';\nimport { forecastActions } from 'store/aggregated/forecast';\nimport { internalActions } from 'store/aggregated/internal';\nimport { predictionActions } from 'store/aggregated/prediction';\nimport { activityActions } from 'store/data/activity';\nimport { activityTypeActions } from 'store/data/activityType';\nimport { areaActions } from 'store/data/area';\nimport { branchActions } from 'store/data/branch';\nimport { companyActions } from 'store/data/company';\nimport { distributionCenterActions } from 'store/data/distributionCenter';\nimport { employeeActions } from 'store/data/employee';\nimport { subZoneActions } from 'store/data/subZone';\nimport { suggestionActions } from 'store/data/suggestion';\nimport { zoneActions } from 'store/data/zone';\n\nfunction* initializeOrganization(args: {\n companyId: string;\n bearerToken: string;\n}) {\n const { companyId, bearerToken } = args;\n\n const organization: SagaReturnType =\n yield call(companyAPI.getOrganization, {\n companyId,\n bearerToken,\n });\n\n if (!R.isDefined(organization)) return;\n const {\n areaDomain,\n activityDomain,\n activityTypeDomain,\n branchDomain,\n // branchIds,\n subZoneDomain,\n zoneDomain,\n distributionCenterDomain,\n employeeDomain,\n // employeeIds,\n // activityTypeIds,\n } = organization;\n\n yield all([\n put(branchActions.setDomain(branchDomain)),\n put(distributionCenterActions.setDomain(distributionCenterDomain)),\n put(areaActions.setDomain(areaDomain)),\n put(employeeActions.setDomain(employeeDomain)),\n put(activityActions.setDomain(activityDomain)),\n put(activityTypeActions.setDomain(activityTypeDomain)),\n put(subZoneActions.setDomain(subZoneDomain)),\n put(zoneActions.setDomain(zoneDomain)),\n ]);\n\n yield put(\n companyActions.update({\n id: companyId,\n branchIds: branchDomain.allIds,\n employeeIds: employeeDomain.allIds,\n activityTypeIds: activityTypeDomain.allIds,\n }),\n );\n}\n\nfunction* initializeActual(args: { companyId: string; bearerToken: string }) {\n const { companyId, bearerToken } = args;\n if (!R.isDefined(companyId)) return;\n\n const {\n activityHourDomain,\n }: SagaReturnType = yield call(\n actualAPI.getAggregatedActivityHours,\n {\n bearerToken,\n companyId,\n },\n );\n // const {\n // externalDomain,\n // internalDomain,\n // }: SagaReturnType = yield call(\n // actualAPI.getOldActuals,\n // {\n // companyId,\n // bearerToken,\n // },\n // );\n\n const externalDomain: SagaReturnType<\n typeof actualAPI.getCalculatedExternals\n > = yield call(actualAPI.getCalculatedExternals, { companyId, bearerToken });\n\n const internalDomain: SagaReturnType<\n typeof actualAPI.getCalculatedInternals\n > = yield call(actualAPI.getCalculatedInternals, { companyId, bearerToken });\n\n yield put(internalActions.setDomain(internalDomain));\n yield put(externalActions.setDomain(externalDomain));\n\n yield all([put(activityHourActions.setDomain(activityHourDomain))]);\n}\n\nfunction* initializeForecast(args: { companyId: string; bearerToken: string }) {\n const { companyId, bearerToken } = args;\n\n if (!R.isDefined(companyId)) return;\n\n const { forecastDomain }: SagaReturnType =\n yield call(forecastAPI.getForecasts, {\n companyId,\n bearerToken,\n });\n\n const { predictionDomain }: SagaReturnType =\n yield call(forecastAPI.getPrediction, {\n companyId,\n bearerToken,\n });\n\n yield put(forecastActions.setDomain(forecastDomain));\n yield put(predictionActions.setDomain(predictionDomain));\n}\n\nfunction* initializeImprovements(args: {\n companyId: string;\n bearerToken: string;\n}) {\n const { companyId, bearerToken } = args;\n\n if (!R.isDefined(companyId)) return;\n\n const suggestionDomain: SagaReturnType =\n yield call(companyAPI.getSuggestions, {\n bearerToken,\n companyId,\n });\n\n yield put(suggestionActions.setDomain(suggestionDomain));\n}\n\nexport {\n initializeActual,\n initializeForecast,\n initializeImprovements,\n initializeOrganization,\n};\n","import { companyAPI } from 'api';\nimport {\n all,\n call,\n put,\n SagaReturnType,\n select,\n takeLeading,\n} from 'redux-saga/effects';\nimport * as R from 'remeda';\nimport { companyActions } from 'store/data/company';\nimport { sagaWrapper } from 'store/helpers';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as userSelectors from '../user/selectors';\nimport * as appActions from './actions';\nimport * as appConstants from './constants';\nimport * as appHelpers from './helpers';\n\nfunction* startInitializeSaga(\n action: ActionType,\n) {\n function* saga() {\n const bearerToken: ReturnType =\n yield select(userSelectors.bearerToken);\n\n if (!R.isDefined(bearerToken)) return;\n\n const companyId: ReturnType = yield select(\n userSelectors.companyId,\n );\n const companyDomain: SagaReturnType =\n yield call(companyAPI.getCompanies, { bearerToken });\n\n yield put(companyActions.setDomain(companyDomain));\n\n yield call(appHelpers.initializeOrganization, {\n companyId,\n bearerToken,\n });\n yield call(appHelpers.initializeActual, {\n companyId,\n bearerToken,\n });\n\n yield call(appHelpers.initializeForecast, {\n companyId,\n bearerToken,\n });\n\n yield call(appHelpers.initializeImprovements, {\n companyId,\n bearerToken,\n });\n }\n\n yield call(sagaWrapper, { saga, type: action.type });\n}\n\nexport function* watcher() {\n yield all([takeLeading(appConstants.START_INITIALIZE, startInitializeSaga)]);\n}\n","import * as R from 'remeda';\nimport { ActionType } from 'typesafe-actions';\n\nimport * as appActions from './actions';\nimport * as appConstants from './constants';\nimport * as appSagas from './sagas';\n\nconst appSagaActions = R.pick(appActions, ['startInitialize']);\n\nexport type AppAction = ActionType;\nexport type AppSagaAction = ActionType;\n\nexport { appActions, appConstants, appSagas };\n","import { all, spawn } from 'redux-saga/effects';\nimport { appSagas } from 'store/glue/app';\nimport { userSagas } from 'store/glue/user';\nimport { flexHoursSagas } from 'store/page/flexHours';\n\nimport { dashboardSagas } from './page/dashboard';\nimport { forecastSagas } from './page/forecast';\nimport { integrationsSagas } from './page/integrations';\nimport { zoneManagementSagas } from './page/zoneManagement';\n\n// ! typesafety is not very helpful from this perspective anyway\nexport function* rootSaga(): any {\n return yield all([\n spawn(appSagas.watcher),\n spawn(flexHoursSagas.watcher),\n spawn(userSagas.watcher),\n spawn(dashboardSagas.watcher),\n spawn(forecastSagas.watcher),\n spawn(zoneManagementSagas.watcher),\n spawn(integrationsSagas.watcher),\n ]);\n}\n","import { DETECT_MUTATIONS } from 'config/app';\nimport { IS_DEVELOPMENT } from 'config/env';\nimport {\n applyMiddleware,\n compose,\n legacy_createStore as createStore, // ! it's legacy, not deprecated. Redux as is will never be replaced by redux-toolkit.\n Store,\n} from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport mutationDetector from 'redux-immutable-state-invariant';\nimport createSagaMiddleware from 'redux-saga';\nimport Types from 'Types';\n\nimport rootReducer from './root-reducer';\nimport { rootSaga } from './root-saga';\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst middlewares =\n IS_DEVELOPMENT && DETECT_MUTATIONS\n ? [sagaMiddleware, mutationDetector()]\n : [sagaMiddleware];\n\n// In QA environments, we still want devtools\nconst enhancer = IS_DEVELOPMENT\n ? composeWithDevTools(applyMiddleware(...middlewares))\n : compose(applyMiddleware(...middlewares));\n\nfunction configureStore() {\n const store = createStore(rootReducer, enhancer) as Store<\n Types.RootState,\n Types.RootAction\n >;\n\n sagaMiddleware.run(rootSaga);\n\n return store;\n}\n\nexport { configureStore };\n","import { configureStore } from './store';\n\nconst store = configureStore();\nexport { store };\n","import { Breadcrumbs, Typography } from '@mui/material';\nimport { useRouteName } from 'hooks';\nimport React, { FunctionComponent } from 'react';\n\nconst BreadcrumbRoute: FunctionComponent = () => {\n const route = useRouteName();\n\n return (\n \n {route.map((name, index) => (\n \n {name}\n \n ))}\n \n );\n};\n\nexport default BreadcrumbRoute;\n","import { useLocation } from 'react-router-dom';\nimport { routeNames } from 'router/constants';\n\nfunction useRouteName(): string[] {\n const location = useLocation();\n const name = routeNames[location.pathname] ?? ['no name / no place'];\n\n return name;\n}\n\nexport { useRouteName };\n","import { Box } from '@mui/material';\nimport LogoImage from 'assets/logo.png';\nimport React, { FunctionComponent } from 'react';\nconst Logo: FunctionComponent = () => {\n return ({ width: theme.sizes['144'] })} />;\n // return (\n // ({ width: theme.sizes['144'] })}\n // alt=\"logo\"\n // // src={LogoImage}\n // />\n // );\n};\n\nexport default Logo;\n","import {\n Box,\n MenuItem,\n MenuList,\n Stack,\n Typography,\n useTheme,\n} from '@mui/material';\nimport React, { FunctionComponent } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { MenuCategory } from 'router/constants';\n\ntype Props = MenuCategory & { navigate(routeId: string): void };\n\nconst NavigationMenuCategory: FunctionComponent = (props) => {\n const { imageSource, name, routes, navigate } = props;\n const { pathname } = useLocation();\n const theme = useTheme();\n return (\n \n \n \n \n\n \n {name}\n \n \n {routes.map((route) => {\n const selected = route.id === pathname;\n return (\n {\n !selected && navigate(route.id);\n }}\n >\n \n {route.name}\n \n \n );\n })}\n \n \n );\n};\n\nexport default NavigationMenuCategory;\n","import { Menu as MenuIcon } from '@mui/icons-material';\nimport { Box, Drawer, IconButton, Stack, ThemeProvider } from '@mui/material';\nimport { darkTheme } from 'material';\nimport React, { FunctionComponent, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { menuCategories } from 'router/constants';\n\nimport NavigationMenuCategory from './NavigationMenuCategory';\n\nconst NavigationMenu: FunctionComponent = () => {\n const navigate = useNavigate();\n const [open, setOpen] = useState(false);\n\n function handleNavigate(routeId: string) {\n setOpen(false);\n navigate(routeId);\n }\n\n // time / productivity\n const menuButton = (\n setOpen(true)}\n >\n \n \n );\n\n const navigationDrawer = (\n \n setOpen((open) => !open)}\n PaperProps={{\n sx: (theme) => ({\n backgroundColor: theme.palette.background.default,\n }),\n }}\n >\n \n {menuCategories.map((category) => (\n \n ))}\n \n \n \n );\n\n return (\n \n {menuButton}\n {navigationDrawer}\n \n );\n};\n\nexport default NavigationMenu;\n","import {\n Logout as LogoutIcon,\n Person as PersonIcon,\n Settings as SettingsIcon,\n} from '@mui/icons-material';\nimport {\n Divider,\n IconButton,\n ListItemIcon,\n Menu,\n MenuItem,\n SxProps,\n Theme,\n ThemeProvider,\n Typography,\n} from '@mui/material';\nimport { darkTheme } from 'material';\nimport React, { FunctionComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { userActions } from 'store/glue/user';\nimport Types from 'Types';\n\nconst mapDispatchToProps = (dispatch: Types.Dispatch) => ({\n startLogout: () => dispatch(userActions.startLogout()),\n});\n\ntype DispatchProps = ReturnType;\ntype Props = DispatchProps;\n\nconst UserMenu: FunctionComponent = (props) => {\n const { startLogout } = props;\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n return (\n <>\n \n \n \n\n \n ({\n overflow: 'visible',\n filter: 'drop-shadow(0px 2px 8px rgba(0,0,0,0.32))',\n mt: theme.distances.tiny,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n top: 0,\n right: 19,\n width: 10,\n height: 10,\n bgcolor: theme.palette.background.paper,\n transform: 'translateY(-50%) rotate(45deg)',\n zIndex: 0,\n },\n }),\n },\n }}\n transformOrigin={{ horizontal: 'right', vertical: 'top' }}\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\n >\n \n \n \n \n Profile\n \n \n\n \n \n \n \n Settings\n \n {\n handleClose();\n startLogout();\n }}\n >\n \n \n \n Logout\n \n \n \n \n );\n};\n\nconst menuItemSx: SxProps = (theme) => ({\n pr: theme.distances.medium,\n height: theme.sizes[34],\n display: 'flex',\n gap: theme.distances.small,\n alignItems: 'center',\n});\n\nexport default connect(null, mapDispatchToProps)(UserMenu);\n","import { AppBar, Box, Toolbar, useTheme } from '@mui/material';\nimport React, { FunctionComponent } from 'react';\n\nimport BreadcrumbRoute from './BreadcrumbRoute';\nimport Logo from './Logo';\nimport NavigationMenu from './NavigationMenu';\nimport UserMenu from './UserMenu';\n\nconst AppBarComponent: FunctionComponent = () => {\n const theme = useTheme();\n\n return (\n \n ({\n pt: theme.distances.tiny,\n pb: theme.distances.tiny,\n display: 'flex',\n justifyContent: 'space-between',\n })}\n >\n ({\n display: 'flex',\n gap: theme.distances.huge,\n alignItems: 'center',\n width: '50%',\n })}\n >\n \n \n \n\n \n\n \n \n \n \n \n );\n};\n\nexport default AppBarComponent;\n","import { Box, Stack } from '@mui/material';\nimport React, { FunctionComponent } from 'react';\nimport { Outlet } from 'react-router-dom';\n\nimport AppBar from './AppBar';\n\nconst NavigationRoute: FunctionComponent = () => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport { NavigationRoute };\n","import { Backdrop, Box, CircularProgress, Stack } from '@mui/material';\nimport React, { FunctionComponent } from 'react';\n\ntype Props = {\n children?: React.ReactNode;\n direction?: 'row' | 'column';\n isLoading?: boolean;\n};\n\n/**\n * ScrollableView,\n * - Stacked component\n * - Making content scrollable\n * - Add standard padding\n * - Relative parent for fixed contet\n *\n */\nconst ScrollableView: FunctionComponent = (props) => {\n const { children, direction = 'row', isLoading = false } = props;\n return (\n ({\n maxHeight: '100%',\n height: '100%',\n width: '100%',\n overflow: 'scroll',\n position: 'relative',\n padding: theme.distances.medium,\n })}\n >\n \n \n \n\n ({\n gap: theme.distances.medium,\n minWidth: '100%',\n width: 'fit-content',\n height: 'fit-content',\n flexShrink: 1,\n })}\n >\n {children}\n \n \n );\n};\n\nexport { ScrollableView };\n","import { Box, Stack, Tab, Tabs, Typography } from '@mui/material';\nimport React, { FunctionComponent } from 'react';\nimport * as R from 'remeda';\n\ntype Props = {\n tabs: (LabelItem & { component: React.ReactNode })[];\n pageActions?: React.ReactNode;\n};\n\nconst TabsPage: FunctionComponent = (props) => {\n const { pageActions, tabs } = props;\n const [value, setValue] = React.useState(0);\n\n if (!R.isDefined(value)) throw 'No tab passed to TabPage template';\n\n const handleChange = (_event: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n };\n\n return (\n \n ({\n pl: theme.distances.medium,\n pr: theme.distances.medium,\n pt: theme.distances.small,\n pb: theme.distances.small,\n })}\n >\n \n {tabs.map((tab) => (\n \n {tab.name}\n \n }\n id={tab.id}\n />\n ))}\n \n {pageActions}\n \n {tabs.map((tab, index) => (\n