@dexteel/mesf-core 4.5.9 → 4.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../src/controls/charts/genericChart.tsx","../src/controls/filters/dialogFilter.tsx","../src/controls/filters/filters.tsx","../src/controls/tables/GenericTable.tsx","../src/controls/tables/dataGrid.tsx","../src/controls/panels.tsx","../src/utils.ts","../src/configuration/pages/job/reducers/JobsReducer.ts","../src/configuration/pages/job/context/JobsContext.tsx","../src/configuration/pages/job/repositories/JobsRepository.ts","../src/controls/alert.tsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/controls/LazyLoading/LazyLoading.tsx","../src/configuration/pages/job/components/JobsTable/customHooks/useJobsTableData.tsx","../src/components/modals/modal.mesf.tsx","../src/components/modals/error-modal.tsx","../src/configuration/pages/job/components/ResetJob.tsx","../src/configuration/pages/job/components/onEnableJob.tsx","../src/configuration/pages/job/components/JobsTable/TableJobs.tsx","../src/configuration/pages/job/JobsPage.tsx","../src/configuration/pages/job/index.tsx","../src/configuration/pages/log/reducers/LogsReducer.ts","../src/configuration/pages/log/context/LogsContext.tsx","../src/configuration/pages/log/data/LogTypeCodes.ts","../src/configuration/pages/log/components/LogsTable/customHooks/useLogTableData.tsx","../src/configuration/pages/log/repositories/LogsRepository.ts","../src/configuration/pages/log/components/hook/useGetLogsFromAPI.ts","../src/configuration/pages/log/components/ModalLogSelected/ModalLogSelected.tsx","../src/configuration/pages/log/components/Filters/dateFilter.tsx","../src/configuration/pages/log/components/Filters/codeFilter.tsx","../src/configuration/pages/log/components/Filters/searchFilter.tsx","../src/configuration/pages/log/components/LogsTable/TableLogs.tsx","../src/configuration/pages/log/LogsPage.tsx","../src/configuration/pages/log/index.tsx","../src/configuration/pages/profiles/reducers/ProfilesReducer.ts","../src/configuration/pages/profiles/context/ProfileContext.tsx","../src/configuration/pages/profiles/models/FormInitialValues.ts","../src/configuration/pages/profiles/repositories/ProfilesRepository.ts","../src/configuration/pages/profiles/components/Create/CreateProfile.tsx","../src/configuration/pages/profiles/components/Delete/DeleteProfile.tsx","../src/configuration/pages/profiles/components/ProfilesTable/customHooks/useTableData.tsx","../src/configuration/pages/profiles/components/ProceduresOfProfile/ProceduresDataTable/index.tsx","../src/configuration/pages/profiles/components/ProceduresOfProfile/ActionsOfProfile.tsx","../src/configuration/pages/profiles/components/ProfilesTable/TableProfiles.tsx","../src/configuration/pages/profiles/ProfilesPage.tsx","../src/configuration/pages/profiles/index.tsx","../src/configuration/pages/shifCrew/models/FormInitialValues.ts","../src/configuration/pages/shifCrew/reducers/ShiftsCrewsReducer.ts","../src/configuration/pages/shifCrew/context/ShiftsCrewsContext.tsx","../src/configuration/pages/shifCrew/repositories/ShiftsCrewsRepository.ts","../src/configuration/pages/shifCrew/components/Create/CreateShift.tsx","../src/configuration/pages/shifCrew/components/Delete/DeleteShift.tsx","../src/configuration/pages/shifCrew/components/Edit/EditShift.tsx","../src/configuration/pages/shifCrew/components/customHooks/useTableShift.tsx","../src/configuration/pages/shifCrew/components/TableShifts.tsx","../src/configuration/pages/shifCrew/ShiftsCrewsPage.tsx","../src/configuration/pages/shifCrew/index.tsx","../src/configuration/pages/asset/components/AssetConfiguration/TypeIcon.tsx","../src/configuration/pages/asset/models/InitialValueDataAsset.ts","../src/configuration/pages/asset/reducers/ConfigurationAssetReducer.ts","../src/configuration/pages/asset/context/ConfigurationAssetContext.tsx","../src/configuration/pages/asset/components/AssetConfiguration/CustomNode.tsx","../src/configuration/pages/asset/components/AssetConfiguration/MultipleDragPreview.tsx","../src/configuration/pages/asset/components/AssetConfiguration/CustomDragPreview.tsx","../src/configuration/pages/asset/repositories/ConfigurationAssetRepository.ts","../src/configuration/pages/asset/components/hooks/useAssetActions.ts","../src/reducers/AssetReducer.tsx","../src/context/assetContext.tsx","../src/configuration/pages/asset/hooks/TransformAssetModelData.ts","../src/configuration/pages/asset/hooks/useSearchAssets.ts","../src/configuration/pages/asset/components/hooks/useAssetCodes.ts","../src/configuration/pages/asset/components/dialogs/create-new-asset-dialog.tsx","../src/configuration/pages/asset/components/dialogs/viewer-asset-dialog.tsx","../src/configuration/pages/asset/components/dialogs/remove-asset-dialog.tsx","../src/configuration/pages/asset/components/dialogs/edit-asset-dialog.tsx","../src/configuration/pages/asset/components/AssetConfiguration/AssetView.tsx","../src/configuration/pages/asset/components/AssetConfiguration/ConfigurationAssetComponent.tsx","../src/configuration/pages/asset/ConfigurationAssetPage.tsx","../src/configuration/pages/asset/index.tsx","../src/configuration/pages/users/reducers/UsersReducer.ts","../src/configuration/pages/users/context/UsersContext.tsx","../src/configuration/pages/users/repositories/UsersRepository.ts","../src/configuration/pages/users/components/common/ProfilesPicker.tsx","../src/configuration/pages/users/models/FormInitialValues.ts","../src/configuration/pages/users/components/common/AuthTypeSelector.tsx","../src/configuration/pages/users/components/Create/CreateUser.tsx","../src/configuration/pages/users/components/EditUser/EditUser.tsx","../src/configuration/pages/users/components/Delete/DeleteUser.tsx","../src/configuration/pages/users/components/UsersDataTable/customHooks/useTableData.tsx","../src/configuration/pages/users/components/ChangePassword/ChangePassword.tsx","../src/configuration/pages/users/components/UsersDataTable/TableUsers.tsx","../src/configuration/pages/users/UsersPage.tsx","../src/configuration/pages/users/index.tsx","../src/configuration/formatters.ts","../src/configuration/stylesGetters.tsx","../src/configuration/configuration.ts","../src/services/ApiService.ts","../src/repositorie/MESF-frontend-Repositorie.ts","../src/account/changePassword.tsx","../src/reducers/UserReducer.tsx","../src/context/userContext.tsx","../src/context/axiosInstance.ts","../src/account/useToken.ts","../src/account/account.tsx","../src/account/AuthProvider.tsx","../src/account/login-strategies/LoginWithEmailAndPassword.tsx","../src/account/login-strategies/azure-ad/AzureADAuthConfig.ts","../src/account/login-strategies/azure-ad/LoginWithAzureADForm.tsx","../src/account/login-strategies/azure-ad/LoginWithAzureAD.tsx","../src/account/login-strategies/LoginAsGuest.tsx","../src/account/login-strategies/LoginWithWindowsAuthentication.tsx","../src/account/login.tsx","../src/account/logout.tsx","../src/globalContext.tsx","../src/hooks/useSearchAssets.ts","../src/reducers/UTLSettingsReducer.tsx","../src/context/UTLSettingContext.tsx","../src/hooks/useSearchUTLSetting.ts","../src/components/navigation/Header.tsx","../src/configurationMenu.tsx","../src/components/home/home.tsx","../node_modules/chartjs-adapter-moment/dist/chartjs-adapter-moment.esm.js","../src/pages/trendings/components/chart/styles/TagColorsStyles.tsx","../src/pages/trendings/components/chart/utils/tagColors.ts","../src/pages/trendings/components/chart/components/ColorPicker.tsx","../src/pages/trendings/components/chart/components/modals/addTagModal/TagSelectionModal.tsx","../src/pages/trendings/components/chart/components/modals/addTagModal/AddTagModal.tsx","../src/pages/trendings/components/chart/hooks/useTagsDataTable.ts","../src/pages/trendings/components/chart/styles/TagsTableStyles.tsx","../src/pages/trendings/components/chart/utils/timeDifference.ts","../src/pages/trendings/components/chart/TableComponent.tsx","../src/pages/trendings/reducers/trendings.reducer.ts","../src/pages/trendings/components/chart/context/TrendingContext.tsx","../src/pages/trendings/components/chart/utils/formatDateTimeToString.ts","../src/pages/trendings/components/chart/sections/chart/hooks/useChartOptions.ts","../src/pages/trendings/components/chart/styles/TrendingStyles.tsx","../src/pages/trendings/components/chart/customOptionsComponent.tsx","../src/pages/trendings/components/chart/utils/dateNavigator.ts","../src/pages/trendings/components/chart/sections/header.tsx","../src/pages/trendings/components/chart/components/DraggableLineControl.tsx","../src/pages/trendings/components/chart/hooks/useGetVerticalLinePlugin.ts","../src/pages/trendings/components/chart/hooks/useUpdateCursorData.ts","../src/pages/trendings/components/chart/hooks/useXAxisDatePlugin.ts","../src/pages/trendings/components/chart/hooks/useYAxisPlugin.ts","../src/pages/trendings/components/chart/utils/areRangeSimilar.ts","../src/pages/trendings/components/chart/utils/calculateScales.ts","../src/pages/trendings/components/chart/sections/trending-chart.tsx","../src/pages/trendings/components/chart/Trending.tsx","../src/pages/trendings/index.tsx","../src/routes/MESFMainRouter.tsx","../src/components/navigation/MainContainer.tsx","../src/components/navigation/Navigation.tsx","../src/MESFMain.tsx","../src/components/navigation/hooks/useDefaultAreaId.tsx","../src/components/navigation/areaSelector/area-selector.tsx"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { ResponsiveBar } from \"@nivo/bar\";\n\nconst BarChartControl = (props: any) => {\n\tconst {\n\t\theight,\n\t\tminWidth,\n\t\tdata,\n\t\tkeys,\n\t\tindexBy,\n\t\tlegendX,\n\t\tlegendY,\n\t\tcolors,\n\t\t...other\n\t} = props;\n\treturn (\n\t\t<React.Fragment>\n\t\t\t<div\n\t\t\t\tclassName=\"container-fluid my-2 p-2\"\n\t\t\t\tstyle={{ height: height, minWidth: minWidth }}\n\t\t\t>\n\t\t\t\t<ResponsiveBar\n\t\t\t\t\tdata={data}\n\t\t\t\t\tkeys={keys}\n\t\t\t\t\tindexBy={indexBy}\n\t\t\t\t\tmargin={{ top: 50, right: 130, bottom: 50, left: 60 }}\n\t\t\t\t\tpadding={0.3}\n\t\t\t\t\tvalueScale={{ type: \"linear\" }}\n\t\t\t\t\tindexScale={{ type: \"band\", round: true }}\n\t\t\t\t\tcolors={colors === undefined ? { scheme: \"nivo\" } : colors}\n\t\t\t\t\tdefs={[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \"dots\",\n\t\t\t\t\t\t\ttype: \"patternDots\",\n\t\t\t\t\t\t\tbackground: \"inherit\",\n\t\t\t\t\t\t\tcolor: \"#38bcb2\",\n\t\t\t\t\t\t\tsize: 4,\n\t\t\t\t\t\t\tpadding: 1,\n\t\t\t\t\t\t\tstagger: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \"lines\",\n\t\t\t\t\t\t\ttype: \"patternLines\",\n\t\t\t\t\t\t\tbackground: \"inherit\",\n\t\t\t\t\t\t\tcolor: \"#eed312\",\n\t\t\t\t\t\t\trotation: -45,\n\t\t\t\t\t\t\tlineWidth: 6,\n\t\t\t\t\t\t\tspacing: 10,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t\tfill={[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmatch: {\n\t\t\t\t\t\t\t\tid: \"fries\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tid: \"dots\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmatch: {\n\t\t\t\t\t\t\t\tid: \"sandwich\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tid: \"lines\",\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t\tborderColor={{ from: \"color\", modifiers: [[\"darker\", 1.6]] }}\n\t\t\t\t\taxisTop={null}\n\t\t\t\t\taxisRight={null}\n\t\t\t\t\taxisBottom={{\n\t\t\t\t\t\ttickSize: 5,\n\t\t\t\t\t\ttickPadding: 5,\n\t\t\t\t\t\ttickRotation: 0,\n\t\t\t\t\t\tlegend: legendX === undefined ? \"\" : legendX,\n\t\t\t\t\t\tlegendPosition: \"middle\",\n\t\t\t\t\t\tlegendOffset: 32,\n\t\t\t\t\t}}\n\t\t\t\t\taxisLeft={{\n\t\t\t\t\t\ttickSize: 5,\n\t\t\t\t\t\ttickPadding: 5,\n\t\t\t\t\t\ttickRotation: 0,\n\t\t\t\t\t\tlegend: legendY === undefined ? \"\" : legendY,\n\t\t\t\t\t\tlegendPosition: \"middle\",\n\t\t\t\t\t\tlegendOffset: -40,\n\t\t\t\t\t}}\n\t\t\t\t\tlabelSkipWidth={12}\n\t\t\t\t\tlabelSkipHeight={12}\n\t\t\t\t\tlabelTextColor={{ from: \"color\", modifiers: [[\"darker\", 1.6]] }}\n\t\t\t\t\t// legends={[\n\t\t\t\t\t// {\n\t\t\t\t\t// dataFrom: 'keys',\n\t\t\t\t\t// anchor: 'bottom-right',\n\t\t\t\t\t// direction: 'column',\n\t\t\t\t\t// justify: false,\n\t\t\t\t\t// translateX: 120,\n\t\t\t\t\t// translateY: 0,\n\t\t\t\t\t// itemsSpacing: 2,\n\t\t\t\t\t// itemWidth: 100,\n\t\t\t\t\t// itemHeight: 20,\n\t\t\t\t\t// itemDirection: 'left-to-right',\n\t\t\t\t\t// itemOpacity: 0.85,\n\t\t\t\t\t// symbolSize: 20,\n\t\t\t\t\t// effects: [\n\t\t\t\t\t// {\n\t\t\t\t\t// on: 'hover',\n\t\t\t\t\t// style: {\n\t\t\t\t\t// itemOpacity: 1\n\t\t\t\t\t// }\n\t\t\t\t\t// }\n\t\t\t\t\t// ]\n\t\t\t\t\t// }\n\t\t\t\t\t// ]}\n\t\t\t\t\tanimate={true}\n\t\t\t\t\tmotionStiffness={90}\n\t\t\t\t\tmotionDamping={15}\n\t\t\t\t\t{...other}\n\t\t\t\t></ResponsiveBar>\n\t\t\t</div>\n\t\t</React.Fragment>\n\t);\n};\nBarChartControl.propTypes = {\n\tdata: PropTypes.array,\n\tkeys: PropTypes.array,\n};\n\nexport { BarChartControl };\n","import PropTypes from \"prop-types\";\nimport React, {ChangeEvent, useEffect, useRef, useState} from \"react\";\n\nimport {Typography} from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\nimport Collapse from \"@material-ui/core/Collapse\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\nimport {alpha, makeStyles, withStyles} from \"@material-ui/core/styles\";\nimport Code from \"@material-ui/icons/Code\";\nimport Folder from \"@material-ui/icons/Folder\";\nimport TreeItem from \"@material-ui/lab/TreeItem\";\nimport TreeView from \"@material-ui/lab/TreeView\";\nimport {animated, useSpring} from \"react-spring\"; // web.cjs is required for IE 11 support\n/**********************MATERIAL UI STYLES********************** */\n\n/*************************************************************** */\nfunction MinusSquare(props: any) {\n\treturn (\n\t\t<SvgIcon fontSize=\"inherit\" style={{ width: 14, height: 14 }} {...props}>\n\t\t\t{/* tslint:disable-next-line: max-line-length */}\n\t\t\t<path d=\"M22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0zM17.873 11.023h-11.826q-.375 0-.669.281t-.294.682v0q0 .401.294 .682t.669.281h11.826q.375 0 .669-.281t.294-.682v0q0-.401-.294-.682t-.669-.281z\" />\n\t\t</SvgIcon>\n\t);\n}\n\nfunction PlusSquare(props: any) {\n\treturn (\n\t\t<SvgIcon fontSize=\"inherit\" style={{ width: 14, height: 14 }} {...props}>\n\t\t\t{/* tslint:disable-next-line: max-line-length */}\n\t\t\t<path d=\"M22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0zM17.873 12.977h-4.923v4.896q0 .401-.281.682t-.682.281v0q-.375 0-.669-.281t-.294-.682v-4.896h-4.923q-.401 0-.682-.294t-.281-.669v0q0-.401.281-.682t.682-.281h4.923v-4.896q0-.401.294-.682t.669-.281v0q.401 0 .682.281t.281.682v4.896h4.923q.401 0 .682.281t.281.682v0q0 .375-.281.669t-.682.294z\" />\n\t\t</SvgIcon>\n\t);\n}\nfunction TransitionComponent(props: any) {\n\tconst style = useSpring({\n\t\tfrom: { opacity: 0, transform: \"translate3d(20px,0,0)\" },\n\t\tto: {\n\t\t\topacity: props.in ? 1 : 0,\n\t\t\ttransform: `translate3d(${props.in ? 0 : 20}px,0,0)`,\n\t\t},\n\t});\n\n\treturn (\n\t\t<animated.div style={style}>\n\t\t\t<Collapse {...props} />\n\t\t</animated.div>\n\t);\n}\nTransitionComponent.propTypes = {\n\t/**\n\t * Show the component; triggers the enter or exit states\n\t */\n\tin: PropTypes.bool,\n};\n\nconst StyledTreeItem = withStyles((theme) => ({\n\ticonContainer: {\n\t\t\"& .close\": {\n\t\t\topacity: 0.3,\n\t\t},\n\t},\n\tgroup: {\n\t\tmarginLeft: 7,\n\t\tpaddingLeft: 18,\n\t\tborderLeft: `1px dashed ${alpha(theme.palette.text.primary, 0.4)}`,\n\t},\n}))((props:any) => (\n\t<TreeItem {...props} TransitionComponent={TransitionComponent} />\n));\nconst useTreviewStyle = makeStyles((theme) => ({\n\troot: {\n\t\t\"min-height\": 264,\n\t\tflexGrow: 1,\n\t\tmaxWidth: 400,\n\t},\n\ttreLabelIcon: {\n\t\tmarginRight: theme.spacing(1),\n\t},\n\ttreeLabelRoot: {\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tpadding: theme.spacing(0.5, 0),\n\t},\n\ttreeLabelText: {\n\t\tfontWeight: \"inherit\",\n\t\tflexGrow: 1,\n\t},\n\ttreeLabelInactive: {\n\t\ttextDecoration: \"line-through\",\n\t\ttextDecorationColor: \"red\",\n\t},\n}));\nconst ModalTreeFilterControl = (props: any) => {\n\tconst {\n\t\tonClose,\n\t\tvalue: valueProp,\n\t\topen,\n\t\ttitle,\n\t\tdata,\n\t\tselectBranch,\n\t\tselectActive,\n\t\tselectInternal,\n\t\t...other\n\t} = props;\n\tconst [value, setValue] = useState(valueProp);\n\tconst [expanded, setExpanded] = useState([]);\n\tconst treeRef = useRef<any>(null);\n\n\tuseEffect(() => {\n\t\tif (!open) {\n\t\t\tsetValue(valueProp);\n\t\t} else {\n\t\t\tif (valueProp !== undefined) expandNode(valueProp);\n\t\t}\n\t}, [valueProp, open]);\n\n\tconst handleEntering = () => {\n\t\tif (treeRef.current != null) {\n\t\t\ttreeRef.current.focus();\n\t\t}\n\t};\n\tconst handleCancel = () => {\n\t\tonClose();\n\t};\n\tconst handleOk = () => {\n\t\tlet findNode = getNodeData(data, parseInt(value));\n\t\tif (findNode === null) findNode = {};\n\t\tvar activeFilter =\n\t\t\t(selectActive && findNode.isActive) || selectActive !== true;\n\t\tvar internalFilter =\n\t\t\t(selectInternal && findNode.isInternal) || selectInternal !== true;\n\t\tvar branchFilter = selectBranch && !findNode.isLeaf;\n\t\tif (findNode.isLeaf) {\n\t\t\tif (activeFilter && internalFilter)\n\t\t\t\tonClose(value, findNode.name, findNode);\n\t\t} else {\n\t\t\tif (branchFilter) onClose(value, findNode.name, findNode);\n\t\t}\n\t};\n\n\tconst handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (event.key === \"Escape\") {\n\t\t onClose();\n\t\t}\n\t };\n\n\tconst getNodeParent = (node: any, id: number, chain: any[] = []): any[] => {\n\t\tif (!node || node.id === undefined) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (node.id === id) {\n\t\t\tchain.push(node.id.toString());\n\t\t\treturn chain;\n\t\t}\n\n\t\tif (Array.isArray(node.children)) {\n\t\t\tchain.push(node.id.toString());\n\t\t\tfor (let i = 0; i < node.children.length; i++) {\n\t\t\t\tconst result = getNodeParent(node.children[i], id, chain.slice());\n\t\t\t\tif (result.length > 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn [];\n\t};\n\n\tconst expandNode = (node: any, same: boolean = false) => {\n\t\tconst expandedNode = getNodeParent(data, node, []);\n\t\texpandedNode.push(node.toString());\n\t\tsetExpanded(expandedNode as any);\n\t};\n\n\tconst handleChange = (event: ChangeEvent<{}>, nodeIds: string) => {\n\t\tsetValue(nodeIds as any);\n\t};\n\n\tconst handleToogle = (event: ChangeEvent<{}>, nodeIds: string[]) => {\n\t\tsetExpanded(nodeIds as any);\n\t};\n\tconst getNodeData = (node: any, id: number): any => {\n\t\tif (id === undefined) return null;\n\t\tif (node.id === id) return node;\n\t\tif (Array.isArray(node.children)) {\n\t\t\tvar i;\n\t\t\tvar result = null;\n\t\t\tfor (i = 0; result == null && i < node.children.length; i++) {\n\t\t\t\tresult = getNodeData(node.children[i], id);\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t};\n\tconst classes: any = useTreviewStyle();\n\n\tconst renderTree = (nodes: any) => (\n\t\t/* @ts-ignore */\n\t\t<StyledTreeItem\n\t\t\tkey={nodes.id}\n\t\t\tnodeId={nodes.id.toString()}\n\t\t\tlabel={\n\t\t\t\t<div className={classes.treeLabelRoot}>\n\t\t\t\t\t{nodes.isCode === true && (\n\t\t\t\t\t\t<Code className={classes.treeLabelIcon} htmlColor={\"#1ABC9C\"} />\n\t\t\t\t\t)}\n\t\t\t\t\t{nodes.isCode === false && (\n\t\t\t\t\t\t<Folder className={classes.treeLabelIcon} htmlColor={\"#F1C40F\"} />\n\t\t\t\t\t)}\n\t\t\t\t\t<Typography\n\t\t\t\t\t\tvariant=\"body2\"\n\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\tclasses.treeLabelText,\n\t\t\t\t\t\t\tnodes.isActive ? \"\" : classes.treeLabelInactive,\n\t\t\t\t\t\t].join(\" \")}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{nodes.isCode && (\n\t\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\t\tclassName=\"fas fa-square mr-2\"\n\t\t\t\t\t\t\t\t\tstyle={{ color: nodes.delayCategoryColor || \"#FFFFFF\" }}\n\t\t\t\t\t\t\t\t></i>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{nodes.name}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Typography>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\tclassName={\"delay-item-node\"}\n\t\t\tid={nodes.id}\n\t\t\tdata-isbranch={!nodes.isCode}\n\t\t>\n\t\t\t{Array.isArray(nodes.children)\n\t\t\t\t? nodes.children.map((node: any) => renderTree(node))\n\t\t\t\t: null}\n\t\t</StyledTreeItem>\n\t);\n\n\treturn (\n\t\t<Dialog\n\t\t\tonClose={(event, reason) => null}\n\t\t\taria-label={title}\n\t\t\tmaxWidth=\"xs\"\n\t\t\tTransitionProps={{ onEntering: handleEntering }}\n\t\t\taria-labelledby=\"confirmation-dialog-title\"\n\t\t\topen={open}\n\t\t\t{...other}\n\t\t\tonKeyDown={handleKeyDown} \n\t\t>\n\t\t\t<DialogTitle id=\"confirmation-dialog-title\">{title}</DialogTitle>\n\t\t\t<DialogContent dividers>\n\t\t\t\t<TreeView\n\t\t\t\t\tclassName={classes.root}\n\t\t\t\t\tdefaultCollapseIcon={<MinusSquare />}\n\t\t\t\t\tdefaultExpandIcon={<PlusSquare />}\n\t\t\t\t\tref={treeRef}\n\t\t\t\t\tselected={value === undefined ? \"\" : value.toString()}\n\t\t\t\t\texpanded={expanded}\n\t\t\t\t\tonNodeSelect={handleChange}\n\t\t\t\t\tonNodeToggle={handleToogle}\n\t\t\t\t>\n\t\t\t\t\t{data && data.id !== undefined && renderTree(data)}\n\t\t\t\t</TreeView>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions>\n\t\t\t\t<Button autoFocus onClick={handleCancel} color=\"primary\">\n\t\t\t\t\tCancel\n\t\t\t\t</Button>\n\t\t\t\t<Button onClick={handleOk} color=\"primary\">\n\t\t\t\t\tOk\n\t\t\t\t</Button>\n\t\t\t</DialogActions>\n\t\t</Dialog>\n\t);\n};\nModalTreeFilterControl.propTypes = {\n\tonClose: PropTypes.func.isRequired,\n\topen: PropTypes.bool.isRequired,\n\ttitle: PropTypes.string.isRequired,\n\tdata: PropTypes.object.isRequired,\n};\n\nexport { ModalTreeFilterControl };\n","import { TextField, Typography } from \"@material-ui/core\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport Select from \"@material-ui/core/Select\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport React, { Component } from \"react\";\nimport { ModalTreeFilterControl } from \"./dialogFilter\";\nimport Grid from \"@material-ui/core/Grid\";\nimport AccountTreeIcon from \"@material-ui/icons/AccountTree\";\n\ntype TreePickerControlProps = {\n\tonSelect: (value: string, description: string, findNode: any) => void;\n\t[key: string]: any;\n};\nexport const TreePickerControl = (props: TreePickerControlProps) => {\n\tconst useStyles = makeStyles((theme) => ({\n\t\troot: {\n\t\t\twidth: \"100%\",\n\t\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\t\"& .MuiInputBase-input\": {\n\t\t\t\tcolor: \"black\",\n\t\t\t\tcursor: \"pointer\",\n\t\t\t\tpaddingRight: 45,\n\t\t\t},\n\t\t},\n\t\tpaper: {\n\t\t\twidth: \"100%\",\n\t\t\tmaxWidth: 600,\n\t\t\tmaxHeight: 600,\n\t\t},\n\t}));\n\tconst classes = useStyles();\n\tconst {\n\t\tonSelect,\n\t\tvalue,\n\t\tstyleLabel,\n\t\tdataSource,\n\t\tinputTitle = \"Asset\",\n\t\t...other\n\t}: TreePickerControlProps = props;\n\tconst [open, setOpen] = React.useState(false);\n\tconst handleClickListItem = (\n\t\te: React.MouseEvent<\n\t\t\tHTMLDivElement | HTMLTextAreaElement | HTMLInputElement\n\t\t>,\n\t) => {\n\t\te.stopPropagation();\n\t\tsetOpen(true);\n\t};\n\n\tconst handleClose = (newValue: any, newDescription: any, findNode: any) => {\n\t\tsetOpen(false);\n\t\tif (newValue) {\n\t\t\tif (onSelect !== undefined) onSelect(newValue, newDescription, findNode);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Grid container className={classes.root}>\n\t\t\t<Grid container item md={12} xs={12} style={{ position: \"relative\" }}>\n\t\t\t\t<Grid item style={{ position: \"relative\",width:\"100%\" }}>\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tlabel={inputTitle}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tvalue={props.description}\n\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tdisabled\n\t\t\t\t\t/>\n\t\t\t\t\t<AccountTreeIcon\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\tright: 15,\n\t\t\t\t\t\t\ttop: 16,\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t}}\n\t\t\t\t\tonClick={handleClickListItem}\n\t\t\t\t></div>\n\t\t\t</Grid>\n\n\t\t\t<ModalTreeFilterControl\n\t\t\t\tclasses={{\n\t\t\t\t\tpaper: classes.paper,\n\t\t\t\t}}\n\t\t\t\tid=\"modal-treeview-filter\"\n\t\t\t\ttitle={props.title}\n\t\t\t\tkeepMounted\n\t\t\t\topen={open}\n\t\t\t\tonClose={handleClose}\n\t\t\t\tvalue={value}\n\t\t\t\tdata={dataSource}\n\t\t\t\tonBackdropClick={() => setOpen(false)}\n\t\t\t\t{...(other as any)}\n\t\t\t></ModalTreeFilterControl>\n\t\t</Grid>\n\t);\n};\n\ninterface SimpleInputSearchControlProps {\n\ttitle?: string;\n\tonChange?: any;\n\tstyleLabel?: any;\n\tisNumeric?: boolean;\n\treadOnly?: boolean;\n\tvalue?: any;\n\tname?: any;\n\tstyleTextBox?: any;\n\tonKeyDown?: any;\n\tlengthCharacters?: any;\n}\nexport class SimpleTextControl extends Component<any> {\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"input-group\">\n\t\t\t\t<div className=\"input-group-prepend\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"input-group-text\"\n\t\t\t\t\t\tstyle={this.props.styleLabel || {}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.props.title}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tclassName={\n\t\t\t\t\t\t\"form-control \" + (this.props.isNumeric ? \"mes-numeric\" : \"\")\n\t\t\t\t\t}\n\t\t\t\t\tplaceholder={this.props.title}\n\t\t\t\t\treadOnly={this.props.readOnly}\n\t\t\t\t\tvalue={this.props.value || \"\"}\n\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\tthis.props.onChange(e.target.value, this.props.name || \"\")\n\t\t\t\t\t}\n\t\t\t\t\tstyle={this.props.styleTextBox || {}}\n\t\t\t\t\tmaxLength={this.props.lengthCharacters || \"\"}\n\t\t\t\t></input>\n\t\t\t</div>\n\t\t);\n\t}\n}\nexport class SimplePasswordControl extends Component<any> {\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"input-group\">\n\t\t\t\t<div className=\"input-group-prepend\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"input-group-text\"\n\t\t\t\t\t\tstyle={this.props.styleLabel || {}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.props.title}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<input\n\t\t\t\t\tclassName={\"form-control \"}\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\tplaceholder={this.props.title}\n\t\t\t\t\treadOnly={this.props.readOnly}\n\t\t\t\t\tvalue={this.props.value || \"\"}\n\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\tthis.props.onChange(e.target.value, this.props.name || \"\")\n\t\t\t\t\t}\n\t\t\t\t\tstyle={this.props.styleTextBox || {}}\n\t\t\t\t\tmaxLength={this.props.lengthCharacters || \"\"}\n\t\t\t\t></input>\n\t\t\t</div>\n\t\t);\n\t}\n}\nexport const formatNumber = (value: number) => {\n\tconst number = Number(value);\n\tif (Number.isNaN(number)) return \"\";\n\treturn number.toString();\n};\n\nexport type NumericTextControlProps = {\n\tvalue: any;\n\ttitle: any;\n\tstyleLabel: any;\n\treadOnly: any;\n\tstyleTextBox: any;\n\tonChange: any;\n\tname: any;\n\ttypeNumber: any;\n};\n\nexport const NumericTextControl = (props: NumericTextControlProps) => {\n\tconst {\n\t\tvalue,\n\t\ttitle,\n\t\tstyleLabel,\n\t\treadOnly,\n\t\tstyleTextBox,\n\t\tonChange,\n\t\tname,\n\t\ttypeNumber,\n\t} = props; //typeNumber 1 = real, 2 = integer, 3 = natural\n\tconst [formattedValue, setFormattedValue] = React.useState(\n\t\tformatNumber(value),\n\t);\n\tconst changedValue = (e: any) => {\n\t\tsetFormattedValue(e.target.value);\n\t};\n\tconst valueBlured = (inputValue: string) => {\n\t\tconst number = Number(inputValue);\n\t\tif (Number.isNaN(number)) setFormattedValue(formatNumber(value));\n\t\telse if (typeNumber === 2 && !Number.isInteger(number))\n\t\t\tsetFormattedValue(formatNumber(value));\n\t\telse if (typeNumber === 3 && (!Number.isInteger(number) || number < 0))\n\t\t\tsetFormattedValue(formatNumber(value));\n\t\telse onChange(number, name || \"\");\n\t};\n\tReact.useEffect(() => {\n\t\tsetFormattedValue(formatNumber(value));\n\t}, [value]); // eslint-disable-line react-hooks/exhaustive-deps\n\treturn (\n\t\t<div className=\"input-group\">\n\t\t\t<div className=\"input-group-prepend\">\n\t\t\t\t<span className=\"input-group-text\" style={styleLabel || {}}>\n\t\t\t\t\t{title}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tclassName={\"form-control mes-numeric\"}\n\t\t\t\tplaceholder={title}\n\t\t\t\treadOnly={readOnly}\n\t\t\t\tvalue={formattedValue || \"\"}\n\t\t\t\tonChange={(e) => changedValue(e)}\n\t\t\t\tonBlur={(e) => valueBlured(e.target.value)}\n\t\t\t\tstyle={styleTextBox || {}}\n\t\t\t></input>\n\t\t</div>\n\t);\n};\nexport class HorizontalTextControl extends Component<any> {\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"input-group\">\n\t\t\t\t\t<div className=\"input-group-prepend\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"input-group-text\"\n\t\t\t\t\t\t\tstyle={this.props.styleLabel || {}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.props.title}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\"form-control \" + (this.props.isNumeric ? \"mes-numeric\" : \"\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={this.props.title}\n\t\t\t\t\t\treadOnly={this.props.readOnly}\n\t\t\t\t\t\tvalue={this.props.value || \"\"}\n\t\t\t\t\t\tstyle={this.props.styleText || {}}\n\t\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\t\tthis.props.onChange(e.target.value, this.props.name || \"\")\n\t\t\t\t\t\t}\n\t\t\t\t\t></input>\n\t\t\t\t\t<div className=\"input-group-append\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"input-group-text\"\n\t\t\t\t\t\t\tstyle={this.props.styleSubLabel || {}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.props.subTitle || \"\"}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n}\nexport class SimpleTextAreaControl extends Component<any> {\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"input-group\">\n\t\t\t\t<div className=\"input-group-prepend\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"input-group-text\"\n\t\t\t\t\t\tstyle={this.props.styleLabel || {}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.props.title}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<textarea\n\t\t\t\t\tclassName=\"form-control\"\n\t\t\t\t\tplaceholder={this.props.title}\n\t\t\t\t\tvalue={this.props.value || \"\"}\n\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\tthis.props.onChange(e.target.value, this.props.name || \"\")\n\t\t\t\t\t}\n\t\t\t\t\tstyle={this.props.styleText || {}}\n\t\t\t\t\tdisabled={!!this.props.disabled}\n\t\t\t\t></textarea>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\ninterface SimpleSelectorControlProps {\n\ttitle?: string;\n\tdataSource?: any;\n\tselectedValue?: any;\n\tonChange?: any;\n\tshowColor?: boolean;\n\tstyleLabel?: any;\n\tstyleList?: any;\n\thasChoose?: boolean;\n}\nexport function SimpleSelectorControl({\n\ttitle,\n\tdataSource,\n\tselectedValue,\n\tonChange,\n\tshowColor,\n\tstyleLabel,\n\tstyleList,\n\thasChoose,\n}: SimpleSelectorControlProps) {\n\tconst options = dataSource.map((item: any, index: number) => (\n\t\t<MenuItem value={item.id.toString()} key={index}>\n\t\t\t{showColor === true && (\n\t\t\t\t<i\n\t\t\t\t\tclassName=\"fas fa-square mr-2\"\n\t\t\t\t\tstyle={{ color: item.color || \"#FFFFFF\" }}\n\t\t\t\t></i>\n\t\t\t)}\n\t\t\t<span>{item.description}</span>\n\t\t</MenuItem>\n\t));\n\treturn (\n\t\t<>\n\t\t\t<div className=\"input-group\">\n\t\t\t\t<div className=\"input-group-prepend\">\n\t\t\t\t\t<span className=\"input-group-text\" style={styleLabel || {}}>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<Select\n\t\t\t\t\tclassName={\"custom-select mes-custom-select\"}\n\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\tonChange(e.target.value === \"DEFAULT\" ? \"\" : e.target.value)\n\t\t\t\t\t}\n\t\t\t\t\tvalue={selectedValue || \"DEFAULT\"}\n\t\t\t\t\tstyle={styleList || {}}\n\t\t\t\t>\n\t\t\t\t\t{hasChoose && (\n\t\t\t\t\t\t<MenuItem value={\"DEFAULT\"}>{\"Choose \" + title}</MenuItem>\n\t\t\t\t\t)}\n\t\t\t\t\t{options}\n\t\t\t\t</Select>\n\t\t\t</div>\n\t\t</>\n\t);\n}\nexport const MultipleSelectorControl = (props: any) => {\n\tconst options = (props.dataSource || []).map((item: any, index: number) => (\n\t\t<option value={item[props.valueField]} key={index} className=\"p-1\">\n\t\t\t{item[props.textField]}\n\t\t</option>\n\t));\n\treturn (\n\t\t<div className=\"card\">\n\t\t\t<div className=\"card-header\">{props.title || \"\"}</div>\n\t\t\t<div className=\"card-body p-0\">\n\t\t\t\t<select\n\t\t\t\t\tclassName=\"form-select col-md-12 p-0 mes-no-border\"\n\t\t\t\t\tmultiple\n\t\t\t\t\taria-label={props.title || \"\"}\n\t\t\t\t\tvalue={props.value || []}\n\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\tlet value = Array.from(\n\t\t\t\t\t\t\te.target.selectedOptions,\n\t\t\t\t\t\t\t(option) => option.value,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tprops.onChange(value);\n\t\t\t\t\t}}\n\t\t\t\t\tonDoubleClick={props.onDoubleClick || undefined}\n\t\t\t\t>\n\t\t\t\t\t{options}\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\nexport const CheckBoxControl = (props: any) => {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"input-group\">\n\t\t\t\t<div className=\"input-group-prepend\">\n\t\t\t\t\t<div className=\"input-group-text\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tchecked={props.value}\n\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\tprops.onCheck(e.target.checked);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdisabled={props.disabled}\n\t\t\t\t\t\t></input>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tclassName=\"form-control\"\n\t\t\t\t\taria-label={props.title}\n\t\t\t\t\tvalue={props.title}\n\t\t\t\t\treadOnly\n\t\t\t\t\tstyle={props.styleTextBox || []}\n\t\t\t\t></input>\n\t\t\t</div>\n\t\t</>\n\t);\n};\nexport const UploadFileControl = (props: any) => {\n\tconst FileChanged = (e: any) => {\n\t\tprops.onChange(e.target.files[0]);\n\t};\n\treturn (\n\t\t<>\n\t\t\t<div className=\"input-group mes-upload-control\">\n\t\t\t\t<div className=\"input-group-prepend\">\n\t\t\t\t\t<div className=\"input-group-text p-0 file-box\">\n\t\t\t\t\t\t<div className=\"file-detail\" style={{}}>\n\t\t\t\t\t\t\t{props.selectedFile && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<h5>File Details:</h5>\n\t\t\t\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>File Name: {props.selectedFile.name}</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>File Type: {props.selectedFile.type}</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\tLast Modified:{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{props.selectedFile.lastModifiedDate.toDateString()}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.selectedFile === undefined && (\n\t\t\t\t\t\t\t\t<div className=\"pt-4\">\n\t\t\t\t\t\t\t\t\t<Typography>Select or drag a file</Typography>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tid=\"myFile\"\n\t\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t\tclassName=\"formcontrol\"\n\t\t\t\t\t\t\tstyle={{}}\n\t\t\t\t\t\t\tonChange={FileChanged}\n\t\t\t\t\t\t\taccept={props.acceptFile || \"*.*\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"input-group-append\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"btn btn-primary mes-button-primary\"\n\t\t\t\t\t\tdisabled={props.selectedFile === undefined}\n\t\t\t\t\t\tonClick={props.onUpload}\n\t\t\t\t\t>\n\t\t\t\t\t\t<i className=\"fas fa-upload pr-2\"></i>\n\t\t\t\t\t\t<span>Upload</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n","import React, { Component } from \"react\";\n\nfunction GenericRow(props: any) {\n\tconst cells = props.row.map((cell: any, index: number) => (\n\t\t<td key={index}>{cell}</td>\n\t));\n\treturn <tr>{cells}</tr>;\n}\nclass GenericTable extends Component<any> {\n\trender() {\n\t\tconst theads = this.props.columns.map((column: any, index: number) => (\n\t\t\t<th scope=\"col\" key={index}>\n\t\t\t\t{column}\n\t\t\t</th>\n\t\t));\n\t\tconst tbody = this.props.data.map((row: any, index: number) => (\n\t\t\t<GenericRow row={row} key={index}></GenericRow>\n\t\t));\n\n\t\treturn (\n\t\t\t<React.Fragment>\n\t\t\t\t<div className=\"container-fluid my-3\">\n\t\t\t\t\t<div className=\"table-responsive-md\">\n\t\t\t\t\t\t<table className=\"table table-hover table-striped table-sm\">\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr>{theads}</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t<tbody>{tbody}</tbody>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</React.Fragment>\n\t\t);\n\t}\n}\nexport { GenericTable };\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {DataGrid, GridOverlay} from \"@material-ui/data-grid\";\nimport {makeStyles} from \"@material-ui/core/styles\";\n\nconst useStylesForOverlay = makeStyles((theme) => ({\n\troot: {\n\t\tflexDirection: \"column\",\n\t\t\"& .ant-empty-img-1\": {\n\t\t\tfill: theme.palette.type === \"light\" ? \"#aeb8c2\" : \"#262626\",\n\t\t},\n\t\t\"& .ant-empty-img-2\": {\n\t\t\tfill: theme.palette.type === \"light\" ? \"#f5f5f7\" : \"#595959\",\n\t\t},\n\t\t\"& .ant-empty-img-3\": {\n\t\t\tfill: theme.palette.type === \"light\" ? \"#dce0e6\" : \"#434343\",\n\t\t},\n\t\t\"& .ant-empty-img-4\": {\n\t\t\tfill: theme.palette.type === \"light\" ? \"#fff\" : \"#1c1c1c\",\n\t\t},\n\t\t\"& .ant-empty-img-5\": {\n\t\t\tfillOpacity: theme.palette.type === \"light\" ? \"0.8\" : \"0.08\",\n\t\t\tfill: theme.palette.type === \"light\" ? \"#f5f5f5\" : \"#fff\",\n\t\t},\n\t},\n\tlabel: {\n\t\tmarginTop: theme.spacing(1),\n\t},\n}));\n\nfunction CustomNoRowsOverlay() {\n\tconst classes = useStylesForOverlay();\n\n\treturn (\n\t\t<GridOverlay className={classes.root}>\n\t\t\t<svg\n\t\t\t\twidth=\"120\"\n\t\t\t\theight=\"100\"\n\t\t\t\tviewBox=\"0 0 184 152\"\n\t\t\t\taria-hidden\n\t\t\t\tfocusable=\"false\"\n\t\t\t>\n\t\t\t\t<g fill=\"none\" fillRule=\"evenodd\">\n\t\t\t\t\t<g transform=\"translate(24 31.67)\">\n\t\t\t\t\t\t<ellipse\n\t\t\t\t\t\t\tclassName=\"ant-empty-img-5\"\n\t\t\t\t\t\t\tcx=\"67.797\"\n\t\t\t\t\t\t\tcy=\"106.89\"\n\t\t\t\t\t\t\trx=\"67.797\"\n\t\t\t\t\t\t\try=\"12.668\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\tclassName=\"ant-empty-img-1\"\n\t\t\t\t\t\t\td=\"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\tclassName=\"ant-empty-img-2\"\n\t\t\t\t\t\t\td=\"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\tclassName=\"ant-empty-img-3\"\n\t\t\t\t\t\t\td=\"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t\t<path\n\t\t\t\t\t\tclassName=\"ant-empty-img-3\"\n\t\t\t\t\t\td=\"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<g className=\"ant-empty-img-4\" transform=\"translate(149.65 15.383)\">\n\t\t\t\t\t\t<ellipse cx=\"20.654\" cy=\"3.167\" rx=\"2.849\" ry=\"2.815\" />\n\t\t\t\t\t\t<path d=\"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\" />\n\t\t\t\t\t</g>\n\t\t\t\t</g>\n\t\t\t</svg>\n\t\t\t<div className={classes.label}>No Rows</div>\n\t\t</GridOverlay>\n\t);\n}\n\nconst DataGridControl = (props: any) => {\n\tconst { columns, rows, ...other } = props;\n\treturn (\n\t\t<React.Fragment>\n\t\t\t<div className=\"container-fluid my-3\">\n\t\t\t\t<DataGrid\n\t\t\t\t\tcomponents={{\n\t\t\t\t\t\tNoRowsOverlay: CustomNoRowsOverlay,\n\t\t\t\t\t}}\n\t\t\t\t\trows={rows}\n\t\t\t\t\tcolumns={columns || []}\n\t\t\t\t\tautoHeight={true}\n\t\t\t\t\trowHeight={25}\n\t\t\t\t\t{...(other as any)}\n\t\t\t\t></DataGrid>\n\t\t\t</div>\n\t\t</React.Fragment>\n\t);\n};\n\nDataGridControl.propTypes = {\n\tcolumns: PropTypes.array,\n\trows: PropTypes.array,\n};\n\nexport { DataGridControl };\n","import React, { Component, MouseEventHandler } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Card from \"@material-ui/core/Card\";\nimport CardActions from \"@material-ui/core/CardActions\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { Alert } from \"react-bootstrap\";\n\ntype GenericPanelProps = {\n\ttitle: string;\n\tdescription?: string;\n\tshowPromptSuccess?: boolean;\n\tshowPromptError?: boolean;\n\tonDismissSuccess?: MouseEventHandler;\n\tonDismissError?: MouseEventHandler;\n\tsuccessMessage?: string;\n\terror?: any;\n\tchildren: any;\n};\n\n/********************MATERIAL UI STYLES********************************** */\n\n/************************************************************************* */\n\nconst GenericPanel = ({\n\ttitle,\n\tdescription = \"\",\n\tshowPromptSuccess = false,\n\tshowPromptError = false,\n\tonDismissSuccess = () => null,\n\tonDismissError = () => null,\n\tsuccessMessage,\n\terror,\n\tchildren,\n}: GenericPanelProps) => (\n\t<div className=\"content-wrapper\">\n\t\t<div className=\"row\">\n\t\t\t<div className=\"col-lg-12\">\n\t\t\t\t<Alert\n\t\t\t\t\tshow={showPromptError}\n\t\t\t\t\tvariant=\"danger\"\n\t\t\t\t\tdismissible={true}\n\t\t\t\t\tonClose={onDismissError}\n\t\t\t\t>\n\t\t\t\t\t<strong>There was an error</strong>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{error === undefined\n\t\t\t\t\t\t\t? \"There was an error\"\n\t\t\t\t\t\t\t: error?.internalError.message === undefined\n\t\t\t\t\t\t\t ? error?.internalError\n\t\t\t\t\t\t\t : error?.internalError?.message}\n\t\t\t\t\t</p>\n\t\t\t\t</Alert>\n\t\t\t\t<Alert\n\t\t\t\t\tshow={showPromptSuccess}\n\t\t\t\t\tvariant=\"success\"\n\t\t\t\t\tonClose={onDismissSuccess}\n\t\t\t\t>\n\t\t\t\t\t<p>{successMessage || \"Operation was success\"}</p>\n\t\t\t\t</Alert>\n\t\t\t</div>\n\t\t</div>\n\t\t<h3>\n\t\t\t{title}\n\t\t\t<small>{description}</small>\n\t\t</h3>\n\t\t{children}\n\t</div>\n);\n\ntype MasterDetailPanelProps = {\n\ttitle: string;\n\tonSave: MouseEventHandler;\n\tonCancel: MouseEventHandler;\n\tonDelete: MouseEventHandler;\n\tsaveStatus: boolean;\n\tdeleteStatus: boolean;\n\tshowSave: boolean;\n\tshowDelete: boolean;\n};\n\nclass MasterDetailPanel extends Component<MasterDetailPanelProps> {\n\tuseStyles() {\n\t\treturn makeStyles((theme) => ({\n\t\t\troot: {\n\t\t\t\t\"& > *\": {\n\t\t\t\t\tmargin: theme.spacing(1),\n\t\t\t\t},\n\t\t\t\tmarginBottom: theme.spacing(1),\n\t\t\t},\n\t\t}));\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<div className=\"pb-2\">\n\t\t\t\t<Card variant=\"outlined\">\n\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t<Typography gutterBottom variant=\"h5\" component=\"h2\">\n\t\t\t\t\t\t\t{this.props.title || \"\"}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t{this.props.children}\n\t\t\t\t\t</CardContent>\n\t\t\t\t\t<CardActions className=\"px-3 \">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"btn btn-danger\"\n\t\t\t\t\t\t\tonClick={this.props.onCancel}\n\t\t\t\t\t\t\tdisabled={!this.props.saveStatus}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t{(this.props.showSave === undefined || this.props.showSave) && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"btn btn-primary mes-button-primary\"\n\t\t\t\t\t\t\t\tonClick={this.props.onSave}\n\t\t\t\t\t\t\t\tdisabled={!this.props.saveStatus}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{this.props.showDelete && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"btn btn-primary mes-button-primary\"\n\t\t\t\t\t\t\t\tonClick={this.props.onDelete}\n\t\t\t\t\t\t\t\tdisabled={!this.props.deleteStatus}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</CardActions>\n\t\t\t\t</Card>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\ntype ExtraButton = {\n\tname: string;\n\tonClick: MouseEventHandler;\n};\n\ntype FilterPanelProps = {\n\tonClickExport?: Function;\n\tonClickReset: Function;\n\tOnClickGo: Function;\n\tshowButtons: boolean;\n\tshowExport: boolean;\n\textraButtons?: ExtraButton[];\n};\n\nclass FilterPanel extends Component<FilterPanelProps> {\n\tpublic onClickGo: MouseEventHandler;\n\tpublic onClickReset: MouseEventHandler;\n\tpublic onClickExport: MouseEventHandler;\n\n\tconstructor(props: FilterPanelProps) {\n\t\tsuper(props);\n\t\tthis.state = {};\n\t\tthis.onClickGo = this.GetFilterValues.bind(this);\n\t\tthis.onClickReset = this.ResetFilterValues.bind(this);\n\t\tthis.onClickExport = this.ExportData.bind(this);\n\t}\n\n\tExportData() {\n\t\tif (this.props.onClickExport !== undefined) this.props.onClickExport();\n\t}\n\n\tResetFilterValues() {\n\t\tif (this.props.onClickReset !== undefined) this.props.onClickReset();\n\t}\n\n\tGetFilterValues() {\n\t\tif (this.props.OnClickGo !== undefined) this.props.OnClickGo();\n\t}\n\n\trender() {\n\t\tconst buttonList =\n\t\t\tthis.props.extraButtons === undefined ? [] : this.props.extraButtons;\n\t\tconst extraButtons = buttonList.map((button, index) => (\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName=\"btn btn-primary btn-sm mr-2\"\n\t\t\t\tonClick={button.onClick}\n\t\t\t\tkey={index}\n\t\t\t>\n\t\t\t\t{button.name}\n\t\t\t</button>\n\t\t));\n\t\treturn (\n\t\t\t<div className=\"container-fluid\">\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-md-12\">\n\t\t\t\t\t\t<div className=\"row\">\n\t\t\t\t\t\t\t{this.props.children}\n\n\t\t\t\t\t\t\t<div className=\"me-auto\">\n\t\t\t\t\t\t\t\t{!!this.props.showButtons && (\n\t\t\t\t\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t\t\t\t\t<div className=\"pt-2\">\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"btn btn-primary btn mr-2\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={this.onClickGo}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tGo\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"btn btn-danger btn-sm mr-2\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={this.onClickReset}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tReset\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{extraButtons}\n\t\t\t\t\t\t\t\t{!!this.props.showExport && (\n\t\t\t\t\t\t\t\t\t<div className=\"pt-2\">\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"btn btn-success\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={this.onClickExport}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<i className=\"fa fa-download\"></i>Excel\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* <div className=\"col-md-1\"> \n \n <div className=\"btn-group ml-auto mr-0 my-auto\" role=\"group\" aria-label=\"Basic example\"> \n \n </div> \n </div> \n } */}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nclass LongFilterPanel extends Component<FilterPanelProps> {\n\tpublic onClickGo: MouseEventHandler;\n\tpublic onClickReset: MouseEventHandler;\n\tpublic onClickExport: MouseEventHandler;\n\n\tconstructor(props: any) {\n\t\tsuper(props);\n\t\tthis.state = {};\n\t\tthis.onClickGo = this.GetFilterValues.bind(this);\n\t\tthis.onClickReset = this.ResetFilterValues.bind(this);\n\t\tthis.onClickExport = this.ExportData.bind(this);\n\t}\n\tExportData() {\n\t\tif (this.props.onClickExport !== undefined) this.props.onClickExport();\n\t}\n\tResetFilterValues() {\n\t\tif (this.props.onClickReset !== undefined) this.props.onClickReset();\n\t}\n\tGetFilterValues() {\n\t\tif (this.props.OnClickGo !== undefined) this.props.OnClickGo();\n\t}\n\n\trender() {\n\t\tconst buttonList =\n\t\t\tthis.props.extraButtons === undefined ? [] : this.props.extraButtons;\n\t\tconst extraButtons = buttonList.map((button, index) => (\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName=\"btn btn-primary btn-sm mr-2\"\n\t\t\t\tonClick={button.onClick}\n\t\t\t\tkey={index}\n\t\t\t>\n\t\t\t\t{button.name}\n\t\t\t</button>\n\t\t));\n\t\treturn (\n\t\t\t<div className=\"container-fluid\">\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-md-12\">\n\t\t\t\t\t\t{this.props.children}\n\n\t\t\t\t\t\t<div className=\"me-auto\">\n\t\t\t\t\t\t\t{!!this.props.showButtons && (\n\t\t\t\t\t\t\t\t<div className=\"container-fluid\">\n\t\t\t\t\t\t\t\t\t<div className=\"col-md-10\">\n\t\t\t\t\t\t\t\t\t\t<div className=\"pt-2\">\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"btn btn-primary btn mr-2\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={this.onClickGo}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tGo\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"btn btn-danger btn-sm mr-2\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={this.onClickReset}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tReset\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t{!!this.props.showExport && (\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"btn btn-success\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={this.onClickExport}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<i className=\"fa fa-download\"></i>Excel\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{extraButtons}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport { GenericPanel, FilterPanel, MasterDetailPanel, LongFilterPanel };\n","import { get, values } from \"lodash-es\";\n\nexport const getError = (error: any) => {\n\tconst arrayOfErrors: string[][] = values(\n\t\tget(error, \"response.data.errors\", null),\n\t);\n\tlet allErrors: string = \"\";\n\n\tif (arrayOfErrors.length) {\n\t\tallErrors = concatErrorMessagges(arrayOfErrors, allErrors);\n\t}\n\n\treturn get(\n\t\terror,\n\t\t\"response.data.result\",\n\t\tget(\n\t\t\terror,\n\t\t\t\"internalError.message\",\n\t\t\tget(\n\t\t\t\terror,\n\t\t\t\t\"response.data.detail\",\n\t\t\t\tget(error, \"response.data.title\", error.toString()) + \" \" + allErrors,\n\t\t\t),\n\t\t),\n\t);\n};\n\nconst concatErrorMessagges = (arrayOfErrors: string[][], string: string) => {\n\tarrayOfErrors.forEach((element: string[], index: number): void => {\n\t\tif (index !== 0) {\n\t\t\tstring += \". \";\n\t\t}\n\t\tstring += element.join(\"\");\n\t});\n\n\treturn string;\n};\n\nexport const MESSAGE_API = {\n\tERROR_MESSAGE: \"There was an error to connect to server.\",\n\tERROR_EMPTY_SEARCH: \"Empty rows\",\n};\nexport const MESSAGE_ERRORS = {\n\tERROR_TITLE: \"There was an error\",\n\tERROR_EMPTY_SEARCH: \"Empty rows\",\n\tERROR_USER_API: \"Error on fetching data\",\n\tERROR_USER_DEFAULT: \"Unknow error\",\n\tERROR_SAVE_DATA: \"Error on saving data\",\n\tSUCCESS_SAVE_DATA: \"Data was saved successfully\",\n};\nexport const USER_LABELS = {\n\tCHOOSE_OPTION: \"Choose an option\",\n};\n\nexport class FetchError extends Error {\n\tstatus: number;\n\tinternalError: string;\n\n\tconstructor(message: string, status: number, internalError: string) {\n\t\tsuper(message);\n\t\tthis.name = \"FetchError\";\n\t\tthis.message = message || \"Error al procesar la solicitud\";\n\t\tthis.status = status;\n\t\tthis.internalError = internalError;\n\t\tthis.stack = this.stack || \"\";\n\t}\n\n\tgetMessageUser = () => {\n\t\tif (this.name === \"FetchError\") return MESSAGE_ERRORS.ERROR_USER_API;\n\t\treturn MESSAGE_ERRORS.ERROR_USER_DEFAULT;\n\t};\n}\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport { Job } from \"../models/Job\";\n\nconst JobsInitialState: {\n\tjobsData: Job[];\n\tblockButtons: boolean;\n} = {\n\tjobsData: [],\n\tblockButtons: false,\n};\n\nexport const JobsReducer = createSlice({\n\tname: \"__\",\n\tinitialState: JobsInitialState,\n\treducers: {\n\t\tsetJobs(state, { payload }) {\n\t\t\tstate.jobsData = payload;\n\t\t},\n\t\tsetBlockButtons(state, { payload }) {\n\t\t\tstate.blockButtons = payload;\n\t\t},\n\t},\n});\n","import { createContext, default as React, ReactNode, useContext } from \"react\";\nimport { JobsReducer } from \"../reducers/JobsReducer\";\nimport { useComplexState } from \"use-complex-state\";\n\nconst JobsContext = createContext({\n\tstate: JobsReducer.getInitialState(),\n\tactions: JobsReducer.actions,\n});\n\nexport const useJobsContext = () => useContext(JobsContext);\n\nexport const JobsProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: JobsReducer.getInitialState(),\n\t\treducers: JobsReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<JobsContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</JobsContext.Provider>\n\t);\n};\n","import { MESApiService, spParameter } from \"../../../../services/ApiService\";\n\nexport const GetJobsStatus = async () => {\n\tconst apiService = new MESApiService();\n\n\tconst resp = await apiService.callV2(\"[SYSTEM].[GetJobsStatus]\", []);\n\treturn resp;\n};\n\nexport const SetJobEnable = async (Enable: boolean, sProcedure: string) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"Enable\", value: !Enable });\n\tparameters.push({ name: \"sProcedure\", value: sProcedure });\n\n\tconst resp = await apiService.callV2(\"[SYSTEM].[SetJobEnable]\", parameters);\n\treturn resp;\n};\n\nexport const RestartJob = async (sProcedure: string) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"sProcedure\", value: sProcedure });\n\n\tconst resp = await apiService.callV2(\"[SYSTEM].[RestartJob]\", parameters);\n\treturn resp;\n};\n","import React from \"react\";\nimport MuiAlert, {AlertProps} from \"@material-ui/lab/Alert\";\n\nexport const Alert = (props: AlertProps) => {\n\treturn <MuiAlert elevation={6} variant=\"filled\" {...props} />;\n};\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export default n;\n","import React from \"react\";\nimport \"./LazyLoading.css\";\n\nexport const LazyLoading = () => {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"lds-ring\">\n\t\t\t\t<div></div>\n\t\t\t\t<div></div>\n\t\t\t\t<div></div>\n\t\t\t\t<div></div>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n","import React from \"react\";\nimport { useJobsContext } from \"../../../context/JobsContext\";\nimport { Job } from \"../../../models/Job\";\nimport moment from \"moment\";\nimport {\n\tColDef,\n\tEditableCallbackParams,\n\tICellRendererParams,\n} from \"ag-grid-community\";\nimport { Button, Grid, Theme, makeStyles } from \"@material-ui/core\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tbuttons: {\n\t\topacity: 0,\n\t\ttransition: \"opacity 0.1s ease-in-out\",\n\t\t\".ag-row-hover &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-focus &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-selected &\": {\n\t\t\topacity: 1,\n\t\t},\n\t},\n}));\n\ntype Props = {\n\tgetJobsFromAPI: () => Promise<void>;\n\tsetRowSelected: (job: Job | null) => void;\n};\n\nexport const useJobsTableData = ({ setRowSelected }: Props) => {\n\tconst {\n\t\tstate: { jobsData, blockButtons },\n\t} = useJobsContext();\n\tconst classes = useStyles();\n\n\tconst rows = jobsData.map(\n\t\t({\n\t\t\tJobId,\n\t\t\tsProcedure,\n\t\t\tRunning,\n\t\t\tLastStarted,\n\t\t\tLastCounter,\n\t\t\tEnabled,\n\t\t\tRestartAfterFailure,\n\t\t\tPeriodTime,\n\t\t\tStartTime,\n\t\t\tNextExecutionTime\n\t\t}: Job) => ({\n\t\t\tid: JobId,\n\t\t\tsProcedure,\n\t\t\tRunning,\n\t\t\tLastStarted,\n\t\t\tLastCounter,\n\t\t\tEnabled,\n\t\t\tRestartAfterFailure,\n\t\t\tPeriodTime,\n\t\t\tStartTime,\n\t\t\tNextExecutionTime\n\t\t}),\n\t);\n\n\tconst onActionsClick = (\n\t\te: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n\t\tparams: EditableCallbackParams,\n\t) => {\n\t\t(params.api as any).contextMenuFactory.showMenu(\n\t\t\tparams.node,\n\t\t\tparams.column,\n\t\t\tundefined,\n\t\t\te,\n\t\t);\n\t};\n\n\tconst renderButtonEnable = (params: ICellRendererParams) => {\n\t\tconst isDisabled = params.data.Enabled || blockButtons;\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tpadding: 5,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Button\n\t\t\t\t\tstyle={{ height: \"100%\", maxHeight: \"27px\" }}\n\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\tfullWidth\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tsetRowSelected(params.data);\n\t\t\t\t\t}}\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t>\n\t\t\t\t\tENABLE\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst renderButtonDisable = (params: ICellRendererParams) => {\n\t\tconst isDisabled = !params.data.Enabled || blockButtons;\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tpadding: 5,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Button\n\t\t\t\t\tstyle={{ height: \"100%\", maxHeight: \"27px\" }}\n\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\tfullWidth\n\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tsetRowSelected(params.data);\n\t\t\t\t\t}}\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t>\n\t\t\t\t\tDISABLE\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst renderButtonReset = (params: ICellRendererParams) => {\n\t\tconst isDisabled = !params.data.Enabled || blockButtons;\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tpadding: 5,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Button\n\t\t\t\t\tstyle={{ height: \"100%\", maxHeight: \"27px\" }}\n\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\tfullWidth\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tsetRowSelected(params.data);\n\t\t\t\t\t}}\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t>\n\t\t\t\t\tRESET\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst renderButtonMenu = (params: any) => {\n\t\treturn (\n\t\t\t<Grid\n\t\t\t\tcontainer\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t\tclassName={classes.buttons}\n\t\t\t>\n\t\t\t\t<Grid\n\t\t\t\t\titem\n\t\t\t\t\txs={12}\n\t\t\t\t\tmd={12}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Button style={{}} onClick={(e) => onActionsClick(e, params)}>\n\t\t\t\t\t\t<FormatListBulletedSharpIcon\n\t\t\t\t\t\t\tstyle={{ height: \"auto\" }}\n\t\t\t\t\t\t\tcolor=\"action\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t);\n\t};\n\n\tconst columnDefs: ColDef[] = [\n\t\t{\n\t\t\tfield: \"sProcedure\",\n\t\t\tminWidth: 260,\n\t\t\theaderName: \"Procedure\",\n\t\t\ttype: \"string\",\n\t\t\tflex: 2,\n\t\t},\n\t\t{\n\t\t\tfield: \"Running\",\n\t\t\tminWidth: 60,\n\t\t\tmaxWidth: 60,\n\t\t\theaderName: \"Status\",\n\t\t\tvalueFormatter: ({ value }) => (value ? \"Running\" : \"Inactive\"),\n\t\t\tflex: 1,\n\t\t},\n\t\t{\n\t\t\tfield: \"PeriodTime\",\n\t\t\tminWidth: 80,\n\t\t\tmaxWidth: 80,\n\t\t\theaderName: \"Period Time\",\n\t\t\tflex: 1,\n\t\t\tvalueFormatter: ({ value }) => {\n\t\t\t\tif (value === null || value === undefined) return \"\";\n\t\t\n\t\t\t\tconst horas = Math.floor(value / 3600);\n\t\t\t\tconst minutos = Math.floor((value % 3600) / 60);\n\t\t\t\tconst segundos = value % 60;\n\t\t\n\t\t\t\treturn `${horas}h ${minutos}min ${segundos}s`;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfield: \"StartTime\",\n\t\t\tminWidth: 130,\n\t\t\tmaxWidth: 130,\n\t\t\theaderName: \"Start Time\",\n\t\t\tvalueFormatter: ({ value }) =>\n\t\t\t\tvalue === null ? \"NULL\" : moment(value).format(\"DD/MM/YYYY HH:mm\"),\n\t\t\tflex: 1,\n\t\t},\n\t\t{\n\t\t\tfield: \"NextExecutionTime\",\n\t\t\tminWidth: 115,\n\t\t\tmaxWidth: 115,\n\t\t\theaderName: \"Next Execution\",\n\t\t\tvalueFormatter: ({ value }) =>\n\t\t\t\tvalue === null ? \"NULL\" : moment(value).format(\"DD/MM/YYYY HH:mm\"),\n\t\t\tflex: 1,\n\t\t},\n\t\t{\n\t\t\tfield: \"LastStarted\",\n\t\t\tminWidth: 100,\n\t\t\tmaxWidth: 100,\n\t\t\theaderName: \"Started\",\n\t\t\tvalueFormatter: ({ value }) =>\n\t\t\t\tvalue === null ? \"NULL\" : moment(value).format(\"DD/MM/YYYY HH:mm\"),\n\t\t\tflex: 1,\n\t\t},\n\t\t{\n\t\t\tfield: \"LastCounter\",\n\t\t\tminWidth: 115,\n\t\t\tmaxWidth: 115,\n\t\t\theaderName: \"Last Seen\",\n\t\t\tvalueFormatter: ({ value }) =>\n\t\t\t\tvalue === null ? \"NULL\" : moment(value).format(\"DD/MM/YYYY HH:mm\"),\n\t\t\tflex: 2,\n\t\t},\n\t\t{\n\t\t\tfield: \"Enabled\",\n\t\t\tminWidth: 50,\n\t\t\tmaxWidth: 50,\n\t\t\theaderName: \"Enabled\",\n\t\t\tvalueFormatter: ({ value }) => (!value ? \"N\" : \"Y\"),\n\t\t\tflex: 1,\n\t\t},\n\t\t{\n\t\t\tfield: \"RestartAfterFailure\",\n\t\t\tminWidth: 70,\n\t\t\tmaxWidth: 70,\n\t\t\theaderName: \"AutoRecover\",\n\t\t\tvalueFormatter: ({ value }) => (!value ? \"N\" : \"Y\"),\n\t\t\tflex: 1,\n\t\t},\n\t\t{\n\t\t\tfield: \"Enable\",\n\t\t\theaderName: \"\",\n\t\t\tminWidth: 80,\n\t\t\tcellRenderer: renderButtonEnable,\n\t\t\tflex: 1,\n\t\t\twrapText: false,\n\t\t\tautoHeight: false,\n\t\t\twrapHeaderText: false,\n\t\t\tsortable: false,\n\t\t},\n\t\t{\n\t\t\tfield: \"Disable\",\n\t\t\theaderName: \"Actions\",\n\t\t\tminWidth: 80,\n\t\t\tcellRenderer: renderButtonDisable,\n\t\t\tflex: 1,\n\t\t\twrapText: false,\n\t\t\tautoHeight: false,\n\t\t\twrapHeaderText: false,\n\t\t\tsortable: false,\n\t\t},\n\t\t{\n\t\t\tfield: \"Reset\",\n\t\t\theaderName: \" \",\n\t\t\tminWidth: 80,\n\t\t\tcellRenderer: renderButtonReset,\n\t\t\tflex: 1,\n\t\t\twrapText: false,\n\t\t\tautoHeight: false,\n\t\t\twrapHeaderText: false,\n\t\t\tsortable: false,\n\t\t},\n\t\t{\n\t\t\tfield: \"Menu\",\n\t\t\theaderName: \" \",\n\t\t\tminWidth: 80,\n\t\t\tmaxWidth: 80,\n\t\t\tcellRenderer: renderButtonMenu,\n\t\t\tflex: 1,\n\t\t\twrapText: false,\n\t\t\tautoHeight: false,\n\t\t\twrapHeaderText: false,\n\t\t\tsortable: false,\n\t\t},\n\t];\n\n\treturn { rows, columnDefs };\n};\n","import React, { ReactNode } from \"react\";\nimport {\n\tcreateStyles,\n\tTheme,\n\twithStyles,\n\tWithStyles,\n} from \"@material-ui/core/styles\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport Typography from \"@material-ui/core/Typography\";\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tmargin: 0,\n\t\t\tpadding: theme.spacing(2),\n\t\t},\n\t\tcloseButton: {\n\t\t\tposition: \"absolute\",\n\t\t\tright: theme.spacing(1),\n\t\t\ttop: theme.spacing(1),\n\t\t\tcolor: theme.palette.grey[500],\n\t\t},\n\t});\n\nexport interface DialogTitleProps extends WithStyles<typeof styles> {\n\tid: string;\n\tchildren: React.ReactNode;\n\tonClose: () => void;\n}\n\nconst DialogTitle = withStyles(styles)((props: DialogTitleProps) => {\n\tconst { children, classes, onClose, ...other } = props;\n\treturn (\n\t\t<MuiDialogTitle\n\t\t\tdisableTypography\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexWrap: \"nowrap\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\talignItems: \"baseline\",\n\t\t\t}}\n\t\t\t{...other}\n\t\t>\n\t\t\t<Typography variant=\"h6\">{children}</Typography>\n\t\t\t{onClose ? (\n\t\t\t\t<IconButton\n\t\t\t\t\taria-label=\"close\"\n\t\t\t\t\tclassName={classes.closeButton}\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t>\n\t\t\t\t\t<CloseIcon />\n\t\t\t\t</IconButton>\n\t\t\t) : (\n\t\t\t\t<></>\n\t\t\t)}\n\t\t</MuiDialogTitle>\n\t);\n});\n\nconst DialogContent = withStyles((theme: Theme) => ({\n\troot: {\n\t\tpadding: theme.spacing(2),\n\t\tminWidth: 300,\n\t},\n}))(MuiDialogContent);\n\nconst DialogActions = withStyles((theme: Theme) => ({\n\troot: {\n\t\tmargin: 0,\n\t\tpadding: theme.spacing(1),\n\t},\n}))(MuiDialogActions);\n\ninterface MESFModalProps {\n\thandleClose: (shouldUpdate?: boolean) => void;\n\topen: boolean;\n\tid?: string;\n\tmaxWidth?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | false;\n\tchildren: ReactNode;\n\ttitle?: string;\n}\n\nfunction Modal({\n\tchildren,\n\ttitle,\n\thandleClose,\n\topen,\n\tid = \"mesf-modal\",\n\tmaxWidth = \"lg\",\n}: MESFModalProps) {\n\treturn (\n\t\t<Dialog\n\t\t\tonClose={() => handleClose()}\n\t\t\taria-labelledby={id}\n\t\t\topen={open}\n\t\t\tmaxWidth={maxWidth}\n\t\t\tstyle={{ minWidth: 320 }}\n\t\t>\n\t\t\t<DialogTitle id={id} onClose={() => handleClose()}>\n\t\t\t\t{title}\n\t\t\t</DialogTitle>\n\t\t\t{children}\n\t\t</Dialog>\n\t);\n}\n\nexport const MesfModal = Object.assign(Modal, {\n\tContent: DialogContent,\n\tActions: DialogActions,\n});\n\nexport default MesfModal;\n","import React from \"react\";\nimport Modal from \"./modal.mesf\";\nimport { Button, Grid } from \"@material-ui/core\";\n\ninterface Props {\n\terror: string | null;\n\tonHide: () => void;\n\ttitle?: string;\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | false;\n}\n\nexport const ErrorModal = ({\n\terror,\n\tonHide,\n\ttitle = \"Something went wrong!\",\n\tsize = \"md\",\n}: Props) => {\n\treturn !!error ? (\n\t\t\t<Modal\n\t\t\t\topen={true}\n\t\t\t\thandleClose={() => {\n\t\t\t\t\tonHide();\n\t\t\t\t}}\n\t\t\t\ttitle={title}\n\t\t\t\tmaxWidth={size}\n\t\t\t>\n\t\t\t\t<Modal.Content >\n\t\t\t\t\t<div>{error}</div>\n\t\t\t\t</Modal.Content>\n\t\t\t\t<Modal.Actions>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tspacing={2}\n\t\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\t\tstyle={{ padding: \"1rem\",minWidth:\"600px\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid item md={2} xs={12}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tonHide();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tOk\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Modal.Actions>\n\t\t\t</Modal>\n\t) : null;\n};\n","import {\n\tButton,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\tDialogContentText,\n\tDialogTitle,\n} from \"@material-ui/core\";\nimport { ErrorModal } from \"../../../../components/modals/error-modal\";\nimport React, { useState } from \"react\";\nimport { Job } from \"../models/Job\";\nimport { RestartJob } from \"../repositories/JobsRepository\";\nimport { useJobsContext } from \"../context/JobsContext\";\n\ntype Props = {\n\trowSelected: Job;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n\tsetSnackbarLoading: Function;\n\tsetSnackbarSuccessfulMessage: Function;\n};\n\nexport const ResetJob = ({\n\trowSelected,\n\tshow,\n\tonHide,\n\tsetSnackbarLoading,\n\tsetSnackbarSuccessfulMessage,\n}: Props) => {\n\tconst [error, setError] = useState(\"\");\n\tconst [isLoading, setIsLoading] = useState<boolean>(false);\n\tconst {\n\t\tactions: { setBlockButtons },\n\t} = useJobsContext();\n\n\tconst onSubmit = async () => {\n\t\tconst { sProcedure } = rowSelected;\n\t\tsetSnackbarLoading(true);\n\t\tsetBlockButtons(true);\n\t\tsetIsLoading(true);\n\t\tRestartJob(sProcedure)\n\t\t\t.then((res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tonHide(true);\n\t\t\t\t\tsetSnackbarSuccessfulMessage(true);\n\t\t\t\t} else {\n\t\t\t\t\tsetError(res.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetIsLoading(false);\n\t\t\t\tsetSnackbarLoading(false);\n\t\t\t\tsetBlockButtons(false);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Dialog\n\t\t\t\topen={show}\n\t\t\t\tonClose={() => onHide(false)}\n\t\t\t\taria-labelledby=\"responsive-dialog-title\"\n\t\t\t>\n\t\t\t\t<DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<DialogContentText style={{ padding: 0, margin: 0 }}>\n\t\t\t\t\t\tAre you sure you want to reset? This action leaves the task in\n\t\t\t\t\t\tenable\n\t\t\t\t\t</DialogContentText>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions style={{ padding: \"16px 24px\" }}>\n\t\t\t\t\t<Button onClick={() => onHide(false)} autoFocus color=\"default\">\n\t\t\t\t\t\tDISAGREE\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tonSubmit();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdisabled={isLoading}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t>\n\t\t\t\t\t\tAGREE\n\t\t\t\t\t</Button>\n\t\t\t\t</DialogActions>\n\t\t\t</Dialog>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import {\n\tButton,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\tDialogContentText,\n\tDialogTitle,\n} from \"@material-ui/core\";\nimport { ErrorModal } from \"../../../../components/modals/error-modal\";\nimport React, { useState } from \"react\";\nimport { Job } from \"../models/Job\";\nimport { useJobsContext } from \"../context/JobsContext\";\nimport { SetJobEnable } from \"../repositories/JobsRepository\";\n\ntype Props = {\n\trowSelected: Job;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const OnEnableJob = ({ rowSelected, show, onHide }: Props) => {\n\tconst [error, setError] = useState(\"\");\n\tconst [isLoading, setIsLoading] = useState<boolean>(false);\n\tconst {\n\t\tactions: { setBlockButtons },\n\t} = useJobsContext();\n\n\tconst onSubmit = async () => {\n\t\tconst { Enabled, sProcedure } = rowSelected;\n\t\tsetBlockButtons(true);\n\t\tsetIsLoading(true);\n\t\tSetJobEnable(Enabled, sProcedure)\n\t\t\t.then((res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tonHide(true);\n\t\t\t\t} else {\n\t\t\t\t\tsetError(res.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetIsLoading(false);\n\t\t\t\tsetBlockButtons(false);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Dialog\n\t\t\t\topen={show}\n\t\t\t\tonClose={() => onHide(false)}\n\t\t\t\taria-labelledby=\"responsive-dialog-title\"\n\t\t\t>\n\t\t\t\t<DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<DialogContentText style={{ padding: 0, margin: 0 }}>\n\t\t\t\t\t\tAre you sure you want to reset? This action leaves the task in\n\t\t\t\t\t\tenable\n\t\t\t\t\t</DialogContentText>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions style={{ padding: \"16px 24px\" }}>\n\t\t\t\t\t<Button onClick={() => onHide(false)} autoFocus color=\"default\">\n\t\t\t\t\t\tDISAGREE\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tonSubmit();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdisabled={isLoading}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t>\n\t\t\t\t\t\tAGREE\n\t\t\t\t\t</Button>\n\t\t\t\t</DialogActions>\n\t\t\t</Dialog>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { Theme, makeStyles } from \"@material-ui/core/styles\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { GetJobsStatus } from \"../../repositories/JobsRepository\";\nimport { useJobsContext } from \"../../context/JobsContext\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport {\n\tColDef,\n\tGetContextMenuItemsParams,\n\tGridApi,\n\tMenuItemDef,\n} from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { useJobsTableData } from \"./customHooks/useJobsTableData\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { ResetJob } from \"../ResetJob\";\nimport { Job } from \"../../models/Job\";\nimport { OnEnableJob } from \"../onEnableJob\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\t\"& .MuiDataGrid-row\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t\t\"& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption\": {\n\t\t\tfontWeight: \"bold\",\n\t\t},\n\t\t\"& .ag-icon-menu\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .ag-header-cell-label\": {\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\n\t\t\"& .ag-header-cell-text\": {\n\t\t\ttextAlign: \"center !important\",\n\t\t},\n\n\t\t\"& .ag-checkbox-input-wrapper\": {\n\t\t\tmargin: \"0 10px\",\n\t\t},\n\t\t\"& .ag-cell\": {\n\t\t\talignItems: \"center\",\n\t\t\tpadding: \"0 !important\",\n\t\t\tborder: \"unset !important\",\n\t\t},\n\t\t\"& .ag-header-cell\": {\n\t\t\tpadding: \"0px !important\",\n\t\t\ttextAlign: \"center !important\",\n\t\t\tfontSize: 10,\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\t\t\"& .ag-cell-wrapper\": {\n\t\t\ttextAlign: \"center\",\n\t\t},\n\t\t\"& .ag-menu-option\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t},\n\tcard: {\n\t\tbackgroundColor: \"#e9f2f8\",\n\t},\n\tfilters: {\n\t\tposition: \"relative\",\n\t\tmargin: \"0 10px\",\n\t},\n\ttextfield: {\n\t\tmargin: theme.spacing(2),\n\t},\n\tJobsTable: {\n\t\tpadding: theme.spacing(1, 2),\n\t},\n\tform: {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t},\n}));\n\nexport const TableJobs = () => {\n\tconst classes = useStyles();\n\tconst [error, setError] = useState(\"\");\n\tconst [loading, setLoading] = useState<boolean>(true);\n\tconst [rowSelected, setRowSelected] = useState<Job | null>(null);\n\tconst { actions } = useJobsContext();\n\tconst [snackbarLoading, setSnackbarLoading] = useState(false);\n\tconst [snackbarSuccessfulMessage, setSnackbarSuccessfulMessage] =\n\t\tuseState(false);\n\tconst gridStyle = useMemo(() => ({ height: \"100%\", width: \"100%\" }), []);\n\tconst [gridApi, setGridApi] = useState<GridApi | null>(null);\n\n\tconst defaultColDef = useMemo<ColDef>(() => {\n\t\treturn {\n\t\t\tsortable: true,\n\t\t\twrapText: true,\n\t\t\tautoHeight: true,\n\t\t\twrapHeaderText: true,\n\t\t};\n\t}, []);\n\n\tconst loadingOverlayComponent = useMemo<any>(() => {\n\t\treturn LazyLoading;\n\t}, []);\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetSnackbarSuccessfulMessage(false);\n\t};\n\n\tconst getJobsFromAPI = async () => {\n\t\tsetLoading(true);\n\t\tconst resp = await GetJobsStatus();\n\t\tif (resp.ok) {\n\t\t\tactions.setJobs(resp.data.tables[0].rows);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tsetError(resp.message);\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tconst { rows, columnDefs } = useJobsTableData({\n\t\tgetJobsFromAPI,\n\t\tsetRowSelected,\n\t});\n\n\tconst getContextMenuItems = useCallback(\n\t\t(params: GetContextMenuItemsParams): (string | MenuItemDef)[] => {\n\t\t\tconst rowSelectedInGrid = params.node?.data;\n\n\t\t\tconst result: (string | MenuItemDef)[] = [];\n\n\t\t\tif (rowSelectedInGrid) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Enable\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetRowSelected(rowSelectedInGrid);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (rowSelectedInGrid) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Disable\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetRowSelected(rowSelectedInGrid);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (rowSelectedInGrid) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Reset\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetRowSelected(rowSelectedInGrid);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tresult.push({\n\t\t\t\tname: \"Refresh\",\n\t\t\t\taction: () => getJobsFromAPI(),\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\t\t[rows, gridApi],\n\t);\n\n\tuseEffect(() => {\n\t\tif (loading) {\n\t\t\tgridApi?.showLoadingOverlay();\n\t\t} else {\n\t\t\tgridApi?.hideOverlay();\n\t\t}\n\t}, [loading, rows, gridApi]);\n\n\tuseEffect(() => {\n\t\tgetJobsFromAPI();\n\t}, []);\n\n\treturn (\n\t\t<Grid\n\t\t\tcontainer\n\t\t\tjustifyContent=\"center\"\n\t\t\talignItems=\"center\"\n\t\t\tclassName={classes.root}\n\t\t>\n\t\t\t<Grid\n\t\t\t\titem\n\t\t\t\tmd={12}\n\t\t\t\txs={12}\n\t\t\t\tstyle={{ padding: \"0 15px\" }}\n\t\t\t\tclassName={classes.filters}\n\t\t\t>\n\t\t\t\t<Typography\n\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\tstyle={{ margin: \"20px 0 20px\", fontWeight: 600 }}\n\t\t\t\t>\n\t\t\t\t\tSystem Jobs\n\t\t\t\t</Typography>\n\t\t\t\t<Grid\n\t\t\t\t\titem\n\t\t\t\t\tmd={12}\n\t\t\t\t\txs={12}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"70vh\",\n\t\t\t\t\t\tborder: \"4px solid #ccc\",\n\t\t\t\t\t\tborderRadius: 10,\n\t\t\t\t\t\tpadding: 10,\n\t\t\t\t\t\tmargin: \"20px 0 10px\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div style={gridStyle} className=\"ag-theme-alpine\">\n\t\t\t\t\t\t<AgGridReact\n\t\t\t\t\t\t\trowData={rows}\n\t\t\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\t\t\tdefaultColDef={defaultColDef}\n\t\t\t\t\t\t\tsuppressContextMenu={false}\n\t\t\t\t\t\t\tgetContextMenuItems={getContextMenuItems}\n\t\t\t\t\t\t\tloadingOverlayComponent={loadingOverlayComponent}\n\t\t\t\t\t\t\trowHeight={38}\n\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\tanimateRows={true}\n\t\t\t\t\t\t\tpagination={true}\n\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\tonGridReady={(params) => setGridApi(params.api)}\n\t\t\t\t\t\t></AgGridReact>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<ResetJob\n\t\t\t\t\t\tshow={!!rowSelected}\n\t\t\t\t\t\tsetSnackbarLoading={setSnackbarLoading}\n\t\t\t\t\t\tsetSnackbarSuccessfulMessage={setSnackbarSuccessfulMessage}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetRowSelected(null);\n\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\tgetJobsFromAPI();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trowSelected={rowSelected as Job}\n\t\t\t\t\t/>\n\t\t\t\t\t<OnEnableJob\n\t\t\t\t\t\tshow={!!rowSelected}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetRowSelected(null);\n\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\tgetJobsFromAPI();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trowSelected={rowSelected as Job}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Snackbar\n\t\t\t\t\t\topen={snackbarLoading}\n\t\t\t\t\t\tautoHideDuration={3500}\n\t\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Alert\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"250px\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tseverity=\"info\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Grid container alignItems=\"center\" spacing={2}>\n\t\t\t\t\t\t\t\t<Grid item>Waiting for reset</Grid>\n\t\t\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t\t\t<CircularProgress\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"#FFF\",\n\t\t\t\t\t\t\t\t\t\t\twidth: 18,\n\t\t\t\t\t\t\t\t\t\t\theight: 18,\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: 4,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Alert>\n\t\t\t\t\t</Snackbar>\n\t\t\t\t\t<Snackbar\n\t\t\t\t\t\topen={snackbarSuccessfulMessage}\n\t\t\t\t\t\tautoHideDuration={2500}\n\t\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Alert\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"250px\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tseverity=\"success\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tReset was successful\n\t\t\t\t\t\t</Alert>\n\t\t\t\t\t</Snackbar>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</Grid>\n\t);\n};\n","import * as React from \"react\";\nimport Paper from \"@material-ui/core/Paper\";\nimport { TableJobs } from \"./components/JobsTable/TableJobs\";\nimport Grid from \"@material-ui/core/Grid\";\n\ntype Props = {};\n\nexport const Jobs = (prop: Props) => {\n\treturn (\n\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t<Grid item md={12} xs={12} style={{ margin: 0 }}>\n\t\t\t\t<Paper\n\t\t\t\t\televation={1}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tpadding: \"10px 0 20px\",\n\t\t\t\t\t\tborderRadius: \"0.75rem\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<TableJobs />\n\t\t\t\t</Paper>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import * as React from \"react\";\nimport { JobsProvider } from \"./context/JobsContext\";\nimport { Jobs } from \"./JobsPage\";\n\ntype Props = {};\n\nconst JobsPage = (props: Props) => {\n\treturn (\n\t\t<JobsProvider>\n\t\t\t<Jobs />\n\t\t</JobsProvider>\n\t);\n};\n\nexport default JobsPage;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport moment from \"moment\";\nimport { Log } from \"../models/Log\";\nimport { SearchData } from \"../models/SearchData\";\n\nconst LogsInitialState: {\n\tlogs: Log[];\n\tsearchData: SearchData;\n} = {\n\tlogs: [],\n\tsearchData: {\n\t\tStart: moment().add(-5, \"days\").hour(0).minute(0).second(0).toDate(),\n\t\tEnd: moment().hour(23).minute(59).second(59).toDate(),\n\t\tSearch: \"\",\n\t\tLogTypeCode: \"A\",\n\t},\n};\n\nexport const LogsReducer = createSlice({\n\tname: \"__\",\n\tinitialState: LogsInitialState,\n\treducers: {\n\t\tsetLogs(state, { payload }) {\n\t\t\tstate.logs = payload;\n\t\t},\n\t\tsetSearchData(state, { payload }) {\n\t\t\tstate.searchData = payload;\n\t\t},\n\t\tsetStartFilter(state, { payload }) {\n\t\t\tstate.searchData.Start = payload;\n\t\t},\n\t\tsetEndFilter(state, { payload }) {\n\t\t\tstate.searchData.End = payload;\n\t\t},\n\t\tsetSearchFilter(state, { payload }) {\n\t\t\tstate.searchData.Search = payload;\n\t\t},\n\t\tsetLogTypeCodeFilter(state, { payload }) {\n\t\t\tstate.searchData.LogTypeCode = payload;\n\t\t},\n\t\tresetFilters(state, { payload }) {\n\t\t\tstate.searchData = {\n\t\t\t\tStart: moment().add(-5, \"days\").hour(0).minute(0).second(0).toDate(),\n\t\t\t\tEnd: moment().hour(23).minute(59).second(59).toDate(),\n\t\t\t\tSearch: \"\",\n\t\t\t\tLogTypeCode: \"A\",\n\t\t\t};\n\t\t},\n\t},\n});\n","import { createContext, default as React, ReactNode, useContext } from \"react\";\nimport { LogsReducer as LogsReducer } from \"../reducers/LogsReducer\";\nimport { useComplexState } from \"use-complex-state\";\n\nconst LogsContext = createContext({\n\tstate: LogsReducer.getInitialState(),\n\tactions: LogsReducer.actions,\n});\n\nexport const useLogsContext = () => useContext(LogsContext);\n\nexport const LogsProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: LogsReducer.getInitialState(),\n\t\treducers: LogsReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<LogsContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</LogsContext.Provider>\n\t);\n};\n","export const LOG_TYPE_CODES = [\n\t{ id: \"A\", description: \"All\" },\n\t{ id: \"I\", description: \"Info\" },\n\t{ id: \"E\", description: \"Error\" },\n];\n","import React from \"react\";\nimport { useLogsContext } from \"../../../context/LogsContext\";\nimport { Log } from \"../../../models/Log\";\nimport { LOG_TYPE_CODES } from \"../../../data/LogTypeCodes\";\nimport { useState } from \"react\";\nimport { ColDef, EditableCallbackParams } from \"ag-grid-community\";\nimport { isNil } from \"lodash\";\nimport { Button, Grid, Theme, makeStyles } from \"@material-ui/core\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tbuttons: {\n\t\topacity: 0,\n\t\ttransition: \"opacity 0.1s ease-in-out\",\n\t\t\".ag-row-hover &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-focus &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-selected &\": {\n\t\t\topacity: 1,\n\t\t},\n\t},\n}));\n\nexport const useLogTableData = () => {\n\tconst { state } = useLogsContext();\n\tconst classes = useStyles();\n\n\tconst formatTime = (nowTime: any) => {\n\t\treturn (\n\t\t\tnowTime.toLocaleDateString(\"en-US\") + \" \" + nowTime.toLocaleTimeString()\n\t\t);\n\t};\n\tconst formatUser = (nowUser: any) => {\n\t\treturn nowUser === null ? \" \" : nowUser;\n\t};\n\n\tconst getLogTypeByCodeId = (logTypeCodeId: string) => {\n\t\treturn (\n\t\t\tLOG_TYPE_CODES.find((ltc) => ltc.id === logTypeCodeId)?.description ||\n\t\t\t`CodeId: ${logTypeCodeId}`\n\t\t);\n\t};\n\n\tconst onActionsClick = (\n\t\te: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n\t\tparams: EditableCallbackParams,\n\t) => {\n\t\t(params.api as any).contextMenuFactory.showMenu(\n\t\t\tparams.node,\n\t\t\tparams.column,\n\t\t\tundefined,\n\t\t\te,\n\t\t);\n\t};\n\n\tconst rows = state.logs?.map(\n\t\t({ LogId, Timestamp, Source, Message, LogTypeCode, User }: Log) => ({\n\t\t\tid: LogId,\n\t\t\tTimestamp: Timestamp === null ? null : new Date(Timestamp),\n\t\t\tSource,\n\t\t\tMessage: isNil(Message) ? \"\" : Message.replaceAll(\"Added\", \" Added\"),\n\t\t\tLogTypeCode: getLogTypeByCodeId(LogTypeCode as string),\n\t\t\tUser,\n\t\t}),\n\t);\n\n\tconst [columnDefs] = useState<ColDef[]>([\n\t\t{\n\t\t\tfield: \"Timestamp\",\n\t\t\theaderName: \"Time\",\n\t\t\tminWidth: 150,\n\t\t\tflex: 4,\n\t\t\tvalueFormatter: ({ value }: { value: any }) =>\n\t\t\t\tvalue === null ? \"\" : formatTime(value),\n\t\t},\n\t\t{\n\t\t\tfield: \"Source\",\n\t\t\theaderName: \"Source\",\n\t\t\tminWidth: 150,\n\t\t\tflex: 4,\n\t\t\ttype: \"string\",\n\t\t},\n\t\t{\n\t\t\tfield: \"Message\",\n\t\t\theaderName: \"Message\",\n\t\t\tminWidth: 100,\n\t\t\tflex: 8,\n\t\t\ttype: \"string\",\n\t\t},\n\t\t{\n\t\t\tfield: \"LogTypeCode\",\n\t\t\theaderName: \"Type\",\n\t\t\tminWidth: 130,\n\t\t\tflex: 3,\n\t\t},\n\t\t{\n\t\t\tfield: \"User\",\n\t\t\theaderName: \"User\",\n\t\t\tminWidth: 130,\n\t\t\tflex: 3,\n\t\t\ttype: \"string\",\n\t\t\tvalueFormatter: ({ value }: { value: any }) => formatUser(value),\n\t\t},\n\t\t{\n\t\t\tcellRenderer: (params: EditableCallbackParams) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={classes.buttons}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button style={{}} onClick={(e) => onActionsClick(e, params)}>\n\t\t\t\t\t\t\t\t<FormatListBulletedSharpIcon\n\t\t\t\t\t\t\t\t\tstyle={{ height: \"auto\" }}\n\t\t\t\t\t\t\t\t\tcolor=\"action\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t);\n\t\t\t},\n\t\t\twrapText: false,\n\t\t\tautoHeight: false,\n\t\t\twrapHeaderText: false,\n\t\t\theaderName: \" \",\n\t\t\tsortable: false,\n\t\t\tflex: 1,\n\t\t},\n\t]);\n\n\treturn { rows, columnDefs };\n};\n","import { MESApiService, spParameter } from \"../../../../services/ApiService\";\n\n//fx obtener logs\nexport const GetLogs = async (\n\tStart: Date,\n\tEnd: Date,\n\tSearch: string,\n\tLogTypeCode: number | string | null,\n) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"Start\", value: Start });\n\tparameters.push({ name: \"End\", value: End });\n\tparameters.push({ name: \"Search\", value: Search });\n\tparameters.push({\n\t\tname: \"LogTypeCode\",\n\t\tvalue: LogTypeCode === \"A\" ? null : LogTypeCode,\n\t});\n\n\tconst resp = await apiService.callV2(\"[MES].[GetLogs]\", parameters);\n\treturn resp;\n};\n","import { useEffect } from \"react\";\nimport { useLogsContext } from \"../../context/LogsContext\";\nimport { GetLogs } from \"../../repositories/LogsRepository\";\nimport { get } from \"lodash-es\";\nimport { useState } from \"react\";\n\ntype Props = {\n\tStart: Date;\n\tEnd: Date;\n\tSearch: string;\n\tLogTypeCode: number | string | null;\n\tsetLoading: Function;\n\tsetError: (err: string) => void;\n};\n\nexport const useGetLogsFromAPI = ({\n\tStart,\n\tEnd,\n\tSearch,\n\tLogTypeCode,\n\tsetError,\n\tsetLoading,\n}: Props): (() => void) => {\n\tconst { actions } = useLogsContext();\n\tconst [shouldUpdate, setShouldUpdate] = useState(0);\n\n\tconst update = () => {\n\t\tsetShouldUpdate(shouldUpdate + 1);\n\t};\n\n\tuseEffect(() => {\n\t\tlet canceled = false;\n\t\tGetLogs(Start, End, Search, LogTypeCode)\n\t\t\t.then((res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tconst logs = get(res, \"data.tables[0].rows\", []);\n\t\t\t\t\tif (canceled) return;\n\t\t\t\t\tactions.setLogs(logs);\n\t\t\t\t} else setError(res.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tif (canceled) return;\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t\treturn () => {\n\t\t\tcanceled = true;\n\t\t};\n\t}, [shouldUpdate]);\n\n\treturn update;\n};\n","import React from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { Log } from \"../../models/Log\";\nimport { Theme, makeStyles } from \"@material-ui/core/styles\";\nimport Button from \"@material-ui/core/Button\";\nimport Card from \"@material-ui/core/Card\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Typography from \"@material-ui/core/Typography\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\ttitle: {\n\t\tfontSize: 15,\n\t},\n\tmessageTitle: {\n\t\tmarginBottom: 5,\n\t\tfontSize: 12,\n\t\tcolor: \"#0000008A\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (show: boolean) => void;\n\tselectedLog: Log | undefined;\n};\n\nconst formatTime = (nowTime: any) => {\n\tif (nowTime == undefined) return;\n\treturn nowTime.toLocaleDateString() + \" \" + nowTime.toLocaleTimeString();\n};\n\nexport const ModalLogSelected = ({ show, onHide, selectedLog }: Props) => {\n\tconst classes = useStyles();\n\treturn (\n\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t<Modal\n\t\t\t\t{...{ show }}\n\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\tsize=\"lg\"\n\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\tLOG DETAILS\n\t\t\t\t\t</Modal.Title>\n\t\t\t\t</Modal.Header>\n\t\t\t\t<Modal.Body style={{ padding: \"15px 30px\" }}>\n\t\t\t\t\t<Grid container spacing={1} alignItems=\"flex-start\">\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tstyle={{ paddingRight: 20, paddingLeft: 5 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t// disabled\n\t\t\t\t\t\t\t\tvariant=\"standard\"\n\t\t\t\t\t\t\t\t// variant=\"outline\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\tlabel=\"User\"\n\t\t\t\t\t\t\t\tdefaultValue={selectedLog?.User}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tstyle={{ paddingRight: 20, paddingLeft: 5 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t// disabled\n\t\t\t\t\t\t\t\tvariant=\"standard\"\n\t\t\t\t\t\t\t\t// variant=\"outline\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\tlabel=\"Time\"\n\t\t\t\t\t\t\t\tdefaultValue={formatTime(selectedLog?.Timestamp)}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tstyle={{ paddingRight: 20, paddingLeft: 5 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t// disabled\n\t\t\t\t\t\t\t\tvariant=\"standard\"\n\t\t\t\t\t\t\t\t// variant=\"outline\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\tlabel=\"Source\"\n\t\t\t\t\t\t\t\tdefaultValue={selectedLog?.Source}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tstyle={{ paddingRight: 20, paddingLeft: 5 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t// disabled\n\t\t\t\t\t\t\t\tvariant=\"standard\"\n\t\t\t\t\t\t\t\t// variant=\"outline\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\tlabel=\"Type\"\n\t\t\t\t\t\t\t\tdefaultValue={selectedLog?.LogTypeCode}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tstyle={{ paddingRight: 20, paddingLeft: 5, marginBottom: 20 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Card variant=\"outlined\" style={{ backgroundColor: \"#E9F2F8\" }}>\n\t\t\t\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t\t\t\t<Typography className={classes.messageTitle}>\n\t\t\t\t\t\t\t\t\t\tMessage:\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t<Typography style={{ fontSize: 17 }}>\n\t\t\t\t\t\t\t\t\t\t{selectedLog?.Message}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t\t\t</Card>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Modal.Body>\n\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\tonClick={() => onHide(true)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tClose\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Modal.Footer>\n\t\t\t</Modal>\n\t\t</Grid>\n\t);\n};\n","import React from \"react\";\nimport {KeyboardDatePicker, MuiPickersUtilsProvider,} from \"@material-ui/pickers\";\nimport {MaterialUiPickersDate} from \"@material-ui/pickers/typings/date\";\nimport MomentUtils from \"@date-io/moment\";\n\ntype Props = {\n\tdate: Date;\n\tsetDate: (date: Date) => void;\n\tlabel: string | undefined;\n};\n\nexport const DateFilter = ({ date, setDate, label = \"Date\" }: Props) => {\n\tconst handleDateChange = (datePicker: MaterialUiPickersDate) => {\n\t\tsetDate(datePicker!.toDate());\n\t};\n\n\treturn (\n\t\t<MuiPickersUtilsProvider utils={MomentUtils}>\n\t\t\t<KeyboardDatePicker\n\t\t\t\tdisableToolbar\n\t\t\t\tvariant=\"inline\"\n\t\t\t\tformat=\"MM/DD/yyyy\"\n\t\t\t\tid=\"date-picker-inline\"\n\t\t\t\tstyle={{\n\t\t\t\t\tminWidth: \"100%\",\n\t\t\t\t\tborderTopLeftRadius: 3,\n\t\t\t\t\tborderTopRightRadius: 3,\n\t\t\t\t}}\n\t\t\t\tlabel={label}\n\t\t\t\tvalue={date}\n\t\t\t\tonChange={handleDateChange}\n\t\t\t\tKeyboardButtonProps={{\n\t\t\t\t\t\"aria-label\": \"change date\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t</MuiPickersUtilsProvider>\n\t);\n};\n","import React from \"react\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport {LOG_TYPE_CODES} from \"../../data/LogTypeCodes\";\n\ntype Props = {\n\tLogTypeCode: number | string | null;\n\tsetLogTypeCodeFilter: (logTypeCode: number | string | null) => void;\n};\n\nexport const CodeFilter = ({ LogTypeCode, setLogTypeCodeFilter }: Props) => {\n\treturn (\n\t\t<div\n\t\t\tstyle={{ marginTop: 6, borderTopLeftRadius: 3, borderTopRightRadius: 3 }}\n\t\t>\n\t\t\t<InputLabel\n\t\t\t\tid=\"demo-simple-select-label\"\n\t\t\t\tstyle={{ fontSize: 10, marginBottom: 0 }}\n\t\t\t>\n\t\t\t\tType\n\t\t\t</InputLabel>\n\t\t\t<Select\n\t\t\t\tlabelId=\"demo-simple-select-label\"\n\t\t\t\tid=\"demo-simple-select\"\n\t\t\t\tvalue={LogTypeCode}\n\t\t\t\tonChange={(newLogTypeCode) =>\n\t\t\t\t\tsetLogTypeCodeFilter(newLogTypeCode.target.value as any)\n\t\t\t\t}\n\t\t\t\tstyle={{ minWidth: \"100%\" }}\n\t\t\t>\n\t\t\t\t{LOG_TYPE_CODES.map((log) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MenuItem key={`logId-${log.id}`} value={log.id}>\n\t\t\t\t\t\t\t{log.description}\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Select>\n\t\t</div>\n\t);\n};\n","import React from \"react\";\nimport TextField from \"@material-ui/core/TextField\";\nimport { FormHelperText } from \"@material-ui/core\";\ntype Props = {\n\tsearch: string;\n\tsetSearch: Function;\n};\n\nexport const SearchFilter = ({ search, setSearch }: Props) => {\n\treturn (\n\t\t<>\n\t\t\t<TextField\n\t\t\t\tstyle={{\n\t\t\t\t\tminWidth: \"100%\",\n\t\t\t\t\tmargin: \"15px 0px\",\n\t\t\t\t\tbackgroundColor: \"#f5f8fa\",\n\t\t\t\t\tborderTopLeftRadius: 3,\n\t\t\t\t\tborderTopRightRadius: 3,\n\t\t\t\t\tpaddingBottom: 0,\n\t\t\t\t}}\n\t\t\t\tlabel=\"Search\"\n\t\t\t\tvariant=\"outlined\"\n\t\t\t\tmargin=\"dense\"\n\t\t\t\tvalue={search}\n\t\t\t\tonChange={(e) => setSearch(e.target.value)}\n\t\t\t\tautoComplete=\"off\"\n\t\t\t/>\n\t\t\t<FormHelperText style={{ marginBottom: 10, marginTop: -15 }}>\n\t\t\t\tSearch by Source, Message or User\n\t\t\t</FormHelperText>\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport { useMemo, useRef, useState } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport Card from \"@material-ui/core/Card\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport { Theme, makeStyles } from \"@material-ui/core/styles\";\nimport { useLogTableData } from \"./customHooks/useLogTableData\";\nimport { useGetLogsFromAPI } from \"../hook/useGetLogsFromAPI\";\nimport { Log } from \"../../models/Log\";\nimport { useLogsContext } from \"../../context/LogsContext\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { ModalLogSelected } from \"../ModalLogSelected/ModalLogSelected\";\nimport { DateFilter } from \"../Filters/dateFilter\";\nimport { CodeFilter } from \"../Filters/codeFilter\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport {\n\tColDef,\n\tGetContextMenuItemsParams,\n\tMenuItemDef,\n\tRowDoubleClickedEvent,\n} from \"ag-grid-community\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport { SearchFilter } from \"../Filters/searchFilter\";\n\nimport \"ag-grid-enterprise\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\t\"& .MuiDataGrid-row\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t\t\"& .MuiPaper-root \": {\n\t\t\theight: \"26vh !important\",\n\t\t},\n\t\t\"& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption\": {\n\t\t\tfontWeight: \"bold\",\n\t\t},\n\t\t\"& .ag-icon-menu\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .ag-header-cell-label\": {\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\n\t\t\"& .ag-header-cell-text\": {\n\t\t\ttextAlign: \"center !important\",\n\t\t},\n\n\t\t\"& .ag-checkbox-input-wrapper\": {\n\t\t\tmargin: \"0 10px\",\n\t\t},\n\t\t\"& .ag-cell\": {\n\t\t\talignItems: \"center\",\n\t\t\tpadding: \"0 !important\",\n\t\t\tborder: \"unset !important\",\n\t\t},\n\t\t\"& .ag-header-cell\": {\n\t\t\tpadding: \"0px !important\",\n\t\t\ttextAlign: \"center !important\",\n\t\t\tfontSize: 10,\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\t\t\"& .ag-cell-wrapper\": {\n\t\t\ttextAlign: \"center\",\n\t\t},\n\t\t\"& .ag-menu-option\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t},\n\tcard: {\n\t\tbackgroundColor: \"#e9f2f8\",\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\t// justifyContent: \"center\",\n\t},\n\tfilters: {\n\t\tposition: \"relative\",\n\t\tmargin: \"0 10px\",\n\t},\n\tform: {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t},\n}));\n\nexport const TableLogs = () => {\n\tconst {\n\t\tstate: { searchData: { Start, End, Search, LogTypeCode } },\n\t\tactions: {\n\t\t\tsetStartFilter,\n\t\t\tsetEndFilter,\n\t\t\tsetSearchFilter,\n\t\t\tsetLogTypeCodeFilter,\n\t\t\tresetFilters,\n\t\t},\n\t} = useLogsContext();\n\tconst classes = useStyles();\n\tconst gridStyle = useMemo(() => ({ height: \"100%\", width: \"100%\" }), []);\n\tconst gridRef = useRef<AgGridReact>(null);\n\tconst [showLogModal, setShowLogModal] = useState<boolean>(false);\n\tconst [loading, setLoading] = useState<boolean>(true);\n\tconst [selectedLog, setSelectedLog] = useState<Log | undefined>(undefined);\n\tconst [error, setError] = useState<string>(\"\");\n\tconst [messegaTable, setMessegaTable] = useState(\"\");\n\n\t// Data grid\n\tconst { rows, columnDefs } = useLogTableData();\n\tconst defaultColDef = useMemo<ColDef>(() => {\n\t\treturn {\n\t\t\tsortable: true,\n\t\t\twrapText: true,\n\t\t\tautoHeight: true,\n\t\t\twrapHeaderText: true,\n\t\t};\n\t}, []);\n\n\tconst loadingOverlayComponent = useMemo<any>(() => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<LazyLoading />\n\t\t\t</div>\n\t\t);\n\t}, []);\n\n\t// Btn reset data\n\tconst resetFilter = () => {\n\t\tresetFilters(null);\n\t\tsetSelectedLog(undefined);\n\t};\n\n\tconst rowClicked = (rowClickedEvent: RowDoubleClickedEvent<any>) => {\n\t\tlet data = rowClickedEvent.data;\n\t\tif (data === undefined) return;\n\t\tsetSelectedLog(data as Log);\n\t\tsetShowLogModal(true);\n\t};\n\n\tconst getLogs = useGetLogsFromAPI({\n\t\tStart,\n\t\tEnd,\n\t\tSearch,\n\t\tLogTypeCode,\n\t\tsetError,\n\t\tsetLoading,\n\t});\n\n\tconst getContextMenuItems = React.useCallback(\n\t\t(params: GetContextMenuItemsParams): (string | MenuItemDef)[] => {\n\t\t\tconst data: Log = params.node?.data;\n\t\t\tconst result: (string | MenuItemDef)[] = [];\n\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"View Log\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetSelectedLog(data as Log);\n\t\t\t\t\t\tsetShowLogModal(true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Reset Filters\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\thandleResetButtonClick();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t\t[rows],\n\t);\n\n\tconst handleSubmit = (ev: React.FormEvent<HTMLFormElement>) => {\n\t\tev.preventDefault();\n\t\tgetLogs();\n\t};\n\n\tconst handleResetButtonClick = () => {\n\t\tresetFilter();\n\t\tgetLogs();\n\t\tsetError(\"\");\n\t};\n\n\tif (rows.length) {\n\t\treturn (\n\t\t\t<Grid\n\t\t\t\tcontainer\n\t\t\t\tjustifyContent=\"center\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<Grid\n\t\t\t\t\titem\n\t\t\t\t\tmd={12}\n\t\t\t\t\txs={12}\n\t\t\t\t\tclassName={classes.filters}\n\t\t\t\t\tstyle={{ padding: \"0 15px\" }}\n\t\t\t\t>\n\t\t\t\t\t<ModalLogSelected\n\t\t\t\t\t\tshow={showLogModal}\n\t\t\t\t\t\tonHide={() => setShowLogModal(false)}\n\t\t\t\t\t\tselectedLog={selectedLog}\n\t\t\t\t\t/>\n\t\t\t\t\t<Typography\n\t\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\t\tstyle={{ margin: \"20px 0 20px\", fontWeight: 600 }}\n\t\t\t\t\t>\n\t\t\t\t\t\tMES and System Logs\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<Grid container direction=\"row\" style={{ margin: \"20px 0 0\" }}>\n\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t<Card className={classes.card}>\n\t\t\t\t\t\t\t\t<CardContent\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \"16px !important\", width: \"100%\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit} className={classes.form}>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t\t\t\tspacing={2}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item md={4} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<DateFilter\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"From\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdate={Start}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetDate={setStartFilter}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item md={4} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<DateFilter\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"To\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdate={End}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetDate={setEndFilter}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item md={4} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<CodeFilter\n\t\t\t\t\t\t\t\t\t\t\t\t\tLogTypeCode={LogTypeCode}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetLogTypeCodeFilter={setLogTypeCodeFilter}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid container direction=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<SearchFilter\n\t\t\t\t\t\t\t\t\t\t\t\t\tsearch={Search}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSearch={setSearchFilter}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent=\"flex-start\"\n\t\t\t\t\t\t\t\t\t\t\tspacing={2}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleResetButtonClick}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tReset\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tSearch\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t\t\t</Card>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\theight: \"55vh\",\n\t\t\t\t\t\t\t\tborder: \"4px solid #ccc\",\n\t\t\t\t\t\t\t\tborderRadius: 10,\n\t\t\t\t\t\t\t\tpadding: 10,\n\t\t\t\t\t\t\t\tmargin: \"20px 0 10px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div style={gridStyle} className=\"ag-theme-alpine\">\n\t\t\t\t\t\t\t\t<AgGridReact\n\t\t\t\t\t\t\t\t\tref={gridRef}\n\t\t\t\t\t\t\t\t\trowData={rows}\n\t\t\t\t\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\t\t\t\t\tdefaultColDef={defaultColDef}\n\t\t\t\t\t\t\t\t\trowHeight={38}\n\t\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\t\tanimateRows={true}\n\t\t\t\t\t\t\t\t\tloadingOverlayComponent={loadingOverlayComponent}\n\t\t\t\t\t\t\t\t\tgetContextMenuItems={(e: any) => getContextMenuItems(e)}\n\t\t\t\t\t\t\t\t\tpagination={true}\n\t\t\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\t\t\toverlayNoRowsTemplate={messegaTable}\n\t\t\t\t\t\t\t\t\tonRowDoubleClicked={(e) => {\n\t\t\t\t\t\t\t\t\t\trowClicked(e);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t></AgGridReact>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t</Grid>\n\t\t);\n\t} else\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Grid\n\t\t\t\t\tcontainer\n\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\tstyle={{ height: \"70vh\", width: \"100%\" }}\n\t\t\t\t>\n\t\t\t\t\t<LazyLoading />\n\t\t\t\t</Grid>\n\t\t\t</>\n\t\t);\n};\n","import * as React from \"react\";\nimport { useLogsContext } from \"./context/LogsContext\";\nimport Paper from \"@material-ui/core/Paper\";\nimport { TableLogs } from \"./components/LogsTable/TableLogs\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\n\ntype Props = {};\n\nexport const Logs = (prop: Props) => {\n\tconst {\n\t\tstate: { logs },\n\t} = useLogsContext();\n\n\tif (logs) {\n\t\treturn (\n\t\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t\t<Grid item md={12} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t<Paper\n\t\t\t\t\t\televation={1}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\tpadding: \"10px 0 20px\",\n\t\t\t\t\t\t\tborderRadius: \"0.75rem\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TableLogs />\n\t\t\t\t\t</Paper>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t);\n\t}\n\treturn <LazyLoading />;\n};\n","import * as React from \"react\";\nimport { LogsProvider } from \"./context/LogsContext\";\nimport { Logs } from \"./LogsPage\";\n\ntype Props = {};\n\nconst LogsPage = (props: Props) => {\n\treturn (\n\t\t<LogsProvider>\n\t\t\t<Logs />\n\t\t</LogsProvider>\n\t);\n};\n\nexport default LogsPage;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport { Profile } from \"../../profiles/models/Profile\";\nimport { Permission } from \"../models/Permission\";\n\nconst ProfilesInitialState: {\n\tprofiles: Profile[];\n\tpermissions: Permission[] | null;\n} = {\n\tprofiles: [],\n\tpermissions: null,\n};\n\nexport const ProfilesReducer = createSlice({\n\tname: \"__\",\n\tinitialState: ProfilesInitialState,\n\treducers: {\n\t\tsetProfiles(state, { payload }) {\n\t\t\tstate.profiles = payload;\n\t\t},\n\t\tsetPermissions(state, { payload }) {\n\t\t\tstate.permissions = payload;\n\t\t},\n\t},\n});\n","import { createContext, default as React, ReactNode, useContext } from \"react\";\nimport { ProfilesReducer } from \"../reducers/ProfilesReducer\";\nimport { useComplexState } from \"use-complex-state\";\n\nconst ProfilesContext = createContext({\n\tstate: ProfilesReducer.getInitialState(),\n\tactions: ProfilesReducer.actions,\n});\n\nexport const useProfilesContext = () => useContext(ProfilesContext);\n\nexport const ProfilesProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: ProfilesReducer.getInitialState(),\n\t\treducers: ProfilesReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<ProfilesContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</ProfilesContext.Provider>\n\t);\n};\n","import { Profile } from \"../../profiles/models/Profile\";\n\nexport const INITIAL_VALUES: Profile = {\n\tProfileId: null,\n\tProfileName: \"\",\n};\n","import { MESApiService, spParameter } from \"../../../../services/ApiService\";\nimport { Profile } from \"../../profiles/models/Profile\";\nimport { Action } from \"../models/Action\";\n\n//fx obtener profiles\nexport const getProfiles = async () => {\n\tconst apiService = new MESApiService();\n\tconst resp = await apiService.callV2(\"[SEC].[GetProfiles]\", []);\n\treturn resp;\n};\n\nexport const upsertProfile = async (ProfileId: number, ProfileName: string) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ProfileId\", value: ProfileId });\n\tparameters.push({ name: \"ProfileName\", value: ProfileName });\n\n\tconst resp = await apiService.callV2(\"[SEC].[UpsertProfile]\", parameters);\n\treturn resp;\n};\n\n// PROFILES PROCEDURES\nexport const getActions = async () => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tconst resp = await apiService.callV2(\"[SEC].[GetActions]\", parameters);\n\treturn resp;\n};\n\nexport const getActionsByProfileId = async (profile: Profile) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ProfileId\", value: profile.ProfileId });\n\n\tconst resp = await apiService.callV2(\n\t\t\"[SEC].[GetActionsByProfileId]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const upsertProfileActions = async (\n\tprofile: Profile,\n\tactions: Action[],\n) => {\n\tconst apiService = new MESApiService();\n\n\tconst actionsIds = actions.map((item) => item.ActionId);\n\tconst actionIdsString = actionsIds.join(\",\");\n\n\tconst parameters: spParameter[] = [];\n\tparameters.push({ name: \"ProfileId\", value: profile.ProfileId });\n\tparameters.push({ name: \"ActionIds\", value: actionIdsString });\n\n\tconst resp = await apiService.callV2(\n\t\t\"[SEC].[UpsertProfileActions]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n//fx setear profiles de un profile\n\n// fx eliminar profile\nexport const deleteProfile = async (profileId: number) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ProfileId\", value: profileId });\n\tconst resp = await apiService.callV2(\"[SEC].[DeleteProfile]\", parameters);\n\treturn resp;\n};\n","import {CircularProgress, TextField} from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport {makeStyles, Theme} from \"@material-ui/core/styles\";\nimport * as React from \"react\";\nimport {useEffect, useState} from \"react\";\nimport {Modal} from \"react-bootstrap\";\nimport {SubmitHandler, useForm} from \"react-hook-form\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\nimport {Alert} from \"../../../../../controls/alert\";\nimport {INITIAL_VALUES} from \"../../models/FormInitialValues\";\nimport {Profile} from \"../../models/Profile\";\nimport {upsertProfile} from \"../../repositories/ProfilesRepository\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\ttitle: {\n\t\tfontSize: 15,\n\t},\n\tmodalTitle: {\n\t\tfontSize: 15,\n\t\tmarginTop: theme.spacing(1),\n\t},\n\tchip: {\n\t\tmargin: 2,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const CreateProfile = ({ show, onHide }: Props) => {\n\tconst [openSnackbar, setOpenSnackbar] = useState(false);\n\tconst [message, setMessage] = useState(\"\");\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst classes = useStyles();\n\n\tconst {\n\t\tregister,\n\t\thandleSubmit,\n\t\treset,\n\t\tformState: { errors },\n\t} = useForm<Profile>({ defaultValues: INITIAL_VALUES });\n\n\tconst onSubmit: SubmitHandler<Profile> = async (data) => {\n\t\tsetIsSubmitLoading(true);\n\n\t\tconst res = await upsertProfile(data.ProfileId as number, data.ProfileName);\n\t\tif (!res.ok) setError(res.message);\n\t\telse {\n\t\t\tsetMessage(\"The profile was created successfully\");\n\t\t\tsetOpenSnackbar(true);\n\t\t\tonHide(true);\n\t\t}\n\t\tsetIsSubmitLoading(false);\n\t};\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpenSnackbar(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid container>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<Modal\n\t\t\t\t\t\tshow={show}\n\t\t\t\t\t\tonHide={() => {\n\t\t\t\t\t\t\tonHide(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\tcentered\n\t\t\t\t\t>\n\t\t\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tPROFILE\n\t\t\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t\t\t<Modal.Body style={{ padding: \"15px 30px\" }}>\n\t\t\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\t\t\tclassName={classes.title}\n\t\t\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tNEW PROFILE\n\t\t\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t\t\t\t<Grid container spacing={1}>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t{...register(\"ProfileName\", { required: true })}\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Profile name\"\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\terror={!!errors.ProfileName}\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t/>{\" \"}\n\t\t\t\t\t\t\t\t\t\t{errors.ProfileName?.type === \"required\" && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tProfile name is required\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\t\tisSubmitLoading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isSubmitLoading}\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Modal.Footer>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</Modal>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<Snackbar\n\t\t\t\topen={openSnackbar}\n\t\t\t\tautoHideDuration={2500}\n\t\t\t\tonClose={handleClose}\n\t\t\t>\n\t\t\t\t<Alert severity=\"success\" onClose={handleClose}>\n\t\t\t\t\t{message}\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import {CircularProgress, Typography} from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport React, {useEffect, useState} from \"react\";\nimport {Modal} from \"react-bootstrap\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\nimport {LazyLoading} from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport {Alert} from \"../../../../../controls/alert\";\nimport {Profile} from \"../../models/Profile\";\nimport {deleteProfile} from \"../../repositories/ProfilesRepository\";\n\ntype Props = {\n\tprofileForDelete: Profile | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const DeleteProfile = ({ profileForDelete, show, onHide }: Props) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [deleteAlert, setDeleteAlert] = useState(false);\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(false);\n\t\tsetDeleteAlert(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\tsetIsLoading(false);\n\t\t\tsetIsSubmitLoading(false);\n\t\t}\n\t}, [show]);\n\n\tconst onDelete: (data: number) => Promise<void> = async (data: number) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst res = await deleteProfile(data as number);\n\t\tif (res.ok) {\n\t\t\tsetDeleteAlert(false);\n\t\t\tsetOpen(true);\n\t\t\tonHide(true);\n\t\t\tsetIsSubmitLoading(false);\n\t\t} else {\n\t\t\tsetError(res.message), setIsSubmitLoading(false);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Modal\n\t\t\t\t{...{ show }}\n\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\tsize=\"lg\"\n\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t<form>\n\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{profileForDelete?.ProfileName} PROFILE\n\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t<Modal.Body style={{ padding: \"15px 30px\" }}>\n\t\t\t\t\t\t{isLoading && (\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\tstyle={{ minHeight: \"150px\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<LazyLoading />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!isLoading && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Grid container spacing={1}>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<Typography>\n\t\t\t\t\t\t\t\t\t\t\tAre you sure you want to delete{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t<strong>{profileForDelete?.ProfileName}</strong> profile?\n\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\t\tonClick={() => setDeleteAlert(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tDELETE\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Modal.Footer>\n\t\t\t\t\t<Dialog\n\t\t\t\t\t\topen={deleteAlert}\n\t\t\t\t\t\tonClose={() => handleClose()}\n\t\t\t\t\t\taria-labelledby=\"responsive-dialog-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n\t\t\t\t\t\t<DialogContent>\n\t\t\t\t\t\t\t<DialogContentText style={{ padding: 0, margin: 0 }}>\n\t\t\t\t\t\t\t\tBe careful, once deleted you will not be able to recover this\n\t\t\t\t\t\t\t\tprofile, are you sure you want to delete it?\n\t\t\t\t\t\t\t</DialogContentText>\n\t\t\t\t\t\t</DialogContent>\n\t\t\t\t\t\t<DialogActions style={{ padding: \"16px 24px\" }}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setDeleteAlert(false)}\n\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tCANCEL\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tstartIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />}\n\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={() => onDelete(profileForDelete?.ProfileId as number)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</DialogActions>\n\t\t\t\t\t</Dialog>\n\t\t\t\t</form>\n\t\t\t</Modal>\n\t\t\t<Snackbar open={open} autoHideDuration={2500} onClose={handleClose}>\n\t\t\t\t<Alert severity=\"success\" onClose={handleClose}>\n\t\t\t\t\tThe profile was deleted successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport React, { useState } from \"react\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { useProfilesContext } from \"../../../context/ProfileContext\";\nimport { Profile } from \"../../../models/Profile\";\nimport { ColDef, EditableCallbackParams } from \"ag-grid-community\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tbuttons: {\n\t\topacity: 0,\n\t\ttransition: \"opacity 0.1s ease-in-out\",\n\t\t\".ag-row-hover &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-focus &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-selected &\": {\n\t\t\topacity: 1,\n\t\t},\n\t},\n}));\n\ntype Props = {\n\tsetProfileForEdit: (profile: Profile) => void;\n\tsetModalProceduresProfile: (showModal: boolean) => void;\n\tsetProfileForDelete: (profile: Profile) => void;\n\tsetModalDeleteProfile: (showModal: boolean) => void;\n};\n\nexport const useTableData = ({\n\tsetProfileForEdit,\n\tsetModalProceduresProfile,\n\tsetProfileForDelete,\n\tsetModalDeleteProfile,\n}: Props) => {\n\tconst { state } = useProfilesContext();\n\tconst classes = useStyles();\n\n\tconst rows = state.profiles.map(({ ProfileId, ProfileName }: Profile) => ({\n\t\tid: ProfileId,\n\t\tProfileId,\n\t\tProfileName: ProfileName,\n\t}));\n\n\tconst onActionsClick = (\n\t\te: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n\t\tparams: EditableCallbackParams,\n\t) => {\n\t\t(params.api as any).contextMenuFactory.showMenu(\n\t\t\tparams.node,\n\t\t\tparams.column,\n\t\t\tundefined,\n\t\t\te,\n\t\t);\n\t};\n\n\tconst [columnDefs] = useState<ColDef[]>([\n\t\t{\n\t\t\tfield: \"ProfileName\",\n\t\t\theaderName: \"Profile name\",\n\t\t\tminWidth: 170,\n\t\t\tflex: 2,\n\t\t},\n\t\t{\n\t\t\tfield: \"Actions\",\n\t\t\tcellRenderer: (params: EditableCallbackParams) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={classes.buttons}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\t\tsetProfileForEdit(params.data as Profile);\n\t\t\t\t\t\t\t\t\t\tsetModalProceduresProfile(true);\n\t\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<EditIcon color=\"primary\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\t\tsetProfileForDelete(params.data as Profile);\n\t\t\t\t\t\t\t\t\t\tsetModalDeleteProfile(true);\n\t\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DeleteIcon color=\"secondary\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button style={{}} onClick={(e) => onActionsClick(e, params)}>\n\t\t\t\t\t\t\t\t<FormatListBulletedSharpIcon\n\t\t\t\t\t\t\t\t\tstyle={{ height: \"auto\" }}\n\t\t\t\t\t\t\t\t\tcolor=\"action\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t);\n\t\t\t},\n\t\t\theaderName: \" \",\n\t\t\twrapText: false,\n\t\t\tautoHeight: false,\n\t\t\twrapHeaderText: false,\n\t\t\tsortable: false,\n\t\t\tflex: 2,\n\t\t\tminWidth: 300,\n\t\t},\n\t]);\n\n\treturn { rows, columnDefs };\n};\n","import React, {\n\tChangeEvent,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport \"ag-grid-enterprise/styles/ag-grid.css\";\nimport \"ag-grid-enterprise/styles/ag-theme-balham.min.css\";\nimport {\n\tAgGridEvent,\n\tColDef,\n\tColumnApi,\n\tFirstDataRenderedEvent,\n\tGridApi,\n\tGridReadyEvent,\n\tSelectionChangedEvent,\n} from \"ag-grid-community\";\nimport { Grid, TextField } from \"@material-ui/core\";\nimport { get, isNil } from \"lodash-es\";\nimport { Action } from \"../../../models/Action\";\nimport { getActions } from \"../../../repositories/ProfilesRepository\";\nimport { ErrorModal } from \"../../../../../../components/modals/error-modal\";\nimport { Modal } from \"react-bootstrap\";\n\ninterface Props {\n\tactionsOfProfile: Action[];\n\tonSelectionChanged: Function;\n}\n\nexport const DataTable = ({ actionsOfProfile, onSelectionChanged }: Props) => {\n\tconst [filterInput, setFilterInput] = useState(\"\");\n\n\tconst [allActions, setAllActions] = useState<Action[]>([]);\n\tconst [error, setError] = useState<string>(\"\");\n\n\tconst [gridApi, setGridApi] = useState<GridApi | null>(null);\n\tconst [columnApi, setColumnApi] = useState<ColumnApi | null>(null);\n\n\tconst handlerFilter = (e: any) => {\n\t\tsetFilterInput(e.target.value);\n\t};\n\n\tconst sortRows = (event: AgGridEvent) => {\n\t\tevent.columnApi.applyColumnState({\n\t\t\tstate: [{ colId: \"ActionName\", sort: \"asc\", sortIndex: 0 }],\n\t\t});\n\t};\n\n\tconst rows = useMemo(() => {\n\t\treturn allActions.map(({ ActionId, ActionName }) => {\n\t\t\treturn {\n\t\t\t\tActionId: ActionId,\n\t\t\t\tActionName: ActionName,\n\t\t\t};\n\t\t});\n\t}, [allActions]);\n\n\tconst columns: ColDef[] = [\n\t\t{\n\t\t\tfield: \"ActionId\",\n\t\t\theaderName: \"#\",\n\t\t\tflex: 1,\n\t\t\tmaxWidth: 100,\n\t\t\tcheckboxSelection: true,\n\t\t\tshowDisabledCheckboxes: true,\n\t\t\tsortIndex: 1,\n\t\t},\n\t\t{\n\t\t\tfield: \"ActionName\",\n\t\t\theaderName: \"Name\",\n\t\t\tflex: 4,\n\t\t\tsortIndex: 0,\n\n\t\t\tcomparator: (a: any, b: any, nodeA, nodeB, isInverted) => {\n\t\t\t\tif (nodeA.isSelected() && !nodeB.isSelected()) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else if (!nodeA.isSelected() && nodeB.isSelected()) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else {\n\t\t\t\t\treturn nodeA.data.ActionName?.localeCompare(nodeB.data.ActionName);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t];\n\n\tconst defaultColDef = useMemo(\n\t\t() => ({\n\t\t\tresizable: true,\n\t\t\tsortable: true,\n\t\t\tfilter: true,\n\t\t}),\n\t\t[],\n\t);\n\n\tconst onAgGridSelectionChanged = (event: SelectionChangedEvent) => {\n\t\tsortRows(event);\n\t\tconst selectedRows = event.api.getSelectedRows();\n\t\tonSelectionChanged(selectedRows);\n\t};\n\n\tconst onFirstDataRendered = useCallback(\n\t\t(params: FirstDataRenderedEvent) => {\n\t\t\tparams.api.forEachNode((node) => {\n\t\t\t\tnode.setSelected(\n\t\t\t\t\t!!node.data &&\n\t\t\t\t\t\t!isNil(\n\t\t\t\t\t\t\tactionsOfProfile.find((p) => p.ActionId === node.data.ActionId),\n\t\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t});\n\t\t\tsortRows(params);\n\t\t},\n\t\t[sortRows],\n\t);\n\n\tconst onGridReady = useCallback(\n\t\t(event: GridReadyEvent) => {\n\t\t\tsetGridApi(event.api);\n\t\t\tsetColumnApi(event.columnApi);\n\t\t},\n\t\t[setGridApi],\n\t);\n\n\tuseEffect(() => {\n\t\tgridApi?.setQuickFilter(filterInput.trim());\n\t}, [filterInput, gridApi]);\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst resp = await getActions();\n\t\t\tif (resp.ok) setAllActions(get(resp, \"data.tables[0].rows\", []));\n\t\t\telse setError(resp.message);\n\t\t})();\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid\n\t\t\t\tcontainer\n\t\t\t\tmd={12}\n\t\t\t\txs={12}\n\t\t\t\tstyle={{ padding: \"0 0 10px\", justifyContent: \"space-between\" }}\n\t\t\t>\n\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\tstyle={{ width: \"100%\", fontSize: 20, margin: \"5px 0 0\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\tActions\n\t\t\t\t\t</Modal.Title>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tid=\"outlined-basic\"\n\t\t\t\t\t\tlabel=\"Search\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tvalue={filterInput}\n\t\t\t\t\t\tonChange={handlerFilter}\n\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\tstyle={{ width: \"100%\" }}\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t{/* <Grid item md={6} xs={12} style={{ paddingLeft: 15 }}>\n <TextField\n id=\"outlined-basic\"\n label=\"Profile name to edit\"\n variant=\"outlined\"\n value={profileName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n onChange={(e: ChangeEvent) => handleChangeProfielName(e)}\n InputLabelProps={{\n shrink: true,\n }}\n required={true}\n error={profileName.length === 0}\n style={{ width: \"100%\" }}\n\n />\n </Grid> */}\n\t\t\t</Grid>\n\n\t\t\t<div\n\t\t\t\tclassName=\"ag-theme-balham\"\n\t\t\t\tstyle={{ width: \"100%\", height: \"60vh\" }}\n\t\t\t>\n\t\t\t\t<AgGridReact\n\t\t\t\t\tgetRowId={(params) => params.data.ActionId}\n\t\t\t\t\tonGridReady={onGridReady}\n\t\t\t\t\trowData={rows}\n\t\t\t\t\tcolumnDefs={columns}\n\t\t\t\t\tdefaultColDef={defaultColDef}\n\t\t\t\t\tonFirstDataRendered={onFirstDataRendered}\n\t\t\t\t\trowSelection={\"multiple\"}\n\t\t\t\t\trowMultiSelectWithClick\n\t\t\t\t\tonSelectionChanged={onAgGridSelectionChanged}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import {CircularProgress, makeStyles, TextField, Theme,} from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport * as React from \"react\";\nimport {ChangeEvent, useEffect, useState} from \"react\";\nimport {Modal} from \"react-bootstrap\";\nimport {SubmitHandler, useForm} from \"react-hook-form\";\nimport {Alert} from \"../../../../../controls/alert\";\nimport {INITIAL_VALUES} from \"../../models/FormInitialValues\";\nimport {Profile} from \"../../models/Profile\";\nimport {DataTable} from \"./ProceduresDataTable\";\nimport {getActionsByProfileId, upsertProfile, upsertProfileActions,} from \"../../repositories/ProfilesRepository\";\nimport {Action} from \"../../models/Action\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\nimport {get} from \"lodash-es\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\t\"& .MuiFormLabel-asterisk\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t},\n}));\n\ntype Props = {\n\tprofileForEdit: Profile | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const ActionsOfProfile = ({ profileForEdit, show, onHide }: Props) => {\n\tconst classes = useStyles();\n\tconst [actionsOfProfile, setActionsOfProfile] = useState<Action[] | null>(\n\t\tnull,\n\t);\n\n\tconst [open, setOpen] = useState(false);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [actionsSelected, setActionsSelected] = useState<Action[]>([]);\n\n\tconst [error, setError] = useState<string>(\"\");\n\n\tconst [profileName, setProfileName] = useState<string>(\"\");\n\tconst [nameError, setNameError] = useState<string>(\"\");\n\tconst [showEditInput, setShowEditInput] = useState<boolean>(false);\n\n\tconst { handleSubmit } = useForm<Profile>({ defaultValues: INITIAL_VALUES });\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(false);\n\t};\n\n\tconst handleChangeProfielName = (ev: any) => {\n\t\tsetProfileName(ev.target.value);\n\t};\n\n\tconst handleCancelEditProfileName = () => {\n\t\tsetProfileName(profileForEdit?.ProfileName as string);\n\t\tsetShowEditInput(false);\n\t};\n\n\tconst onSubmit: SubmitHandler<Profile> = async () => {\n\t\tsetIsSubmitLoading(true);\n\n\t\tconst resp = await upsertProfileActions(profileForEdit!, actionsSelected);\n\t\tif (!resp.ok) setError(resp.message);\n\t\tif (profileForEdit?.ProfileName !== profileName) {\n\t\t\tconst profileRes = await upsertProfile(\n\t\t\t\tprofileForEdit?.ProfileId as number,\n\t\t\t\tprofileName as string,\n\t\t\t);\n\t\t\tif (!profileRes.ok) setNameError(profileRes.message);\n\t\t\telse if (profileRes.ok && resp.ok) {\n\t\t\t\tsetOpen(true);\n\t\t\t\tonHide(true);\n\t\t\t}\n\t\t} else {\n\t\t\tsetOpen(true);\n\t\t\tonHide(true);\n\t\t}\n\t\tsetIsSubmitLoading(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\tsetShowEditInput(false);\n\t\t\t(async () => {\n\t\t\t\tsetProfileName(profileForEdit?.ProfileName as string);\n\t\t\t\tsetIsLoading(true);\n\t\t\t\tsetIsSubmitLoading(false);\n\t\t\t\tif (profileForEdit) {\n\t\t\t\t\tconst resp = await getActionsByProfileId(profileForEdit);\n\t\t\t\t\tif (resp.ok)\n\t\t\t\t\t\tsetActionsOfProfile(get(resp, \"data.tables[0].rows\", []));\n\t\t\t\t\telse setError(resp.message);\n\n\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t}\n\t\t\t})();\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<>\n\t\t\t<Modal\n\t\t\t\t{...{ show }}\n\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\tsize=\"lg\"\n\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px 0\" }}>\n\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\", width: \"100%\", lineHeight: \"2\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\tstyle={{ position: \"relative\" }}\n\t\t\t\t\t\t\t\tclassName={classes.root}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{showEditInput ? (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonClick={() => handleCancelEditProfileName()}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<CloseIcon style={{ height: \"100%\" }} color=\"inherit\" />\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\tminHeight: \"52px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonClick={() => setShowEditInput(!showEditInput)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<EditIcon style={{ height: \"100%\" }} color=\"primary\" />\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\tmd={2}\n\t\t\t\t\t\t\t\t\txs={2}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tmaxWidth: \"85px\",\n\t\t\t\t\t\t\t\t\t\tminHeight: \"52px\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tProfile:\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t{!showEditInput ? (\n\t\t\t\t\t\t\t\t\t<Grid item md={8} xs={8} style={{ minHeight: \"52px\" }}>\n\t\t\t\t\t\t\t\t\t\t{profileForEdit?.ProfileName}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Grid item md={8} xs={8}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\tid=\"outlined-basic\"\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Profile name to edit\"\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={profileName}\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e: ChangeEvent) => handleChangeProfielName(e)}\n\t\t\t\t\t\t\t\t\t\t\tInputLabelProps={{\n\t\t\t\t\t\t\t\t\t\t\t\tshrink: true,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trequired={true}\n\t\t\t\t\t\t\t\t\t\t\terror={profileName.length === 0}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t<Modal.Body style={{ padding: \"0 30px 15px\" }}>\n\t\t\t\t\t\t{isLoading && (\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\tstyle={{ minHeight: \"60px\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<CircularProgress size=\"3rem\" />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!error && !isLoading && actionsOfProfile && (\n\t\t\t\t\t\t\t<DataTable\n\t\t\t\t\t\t\t\tactionsOfProfile={actionsOfProfile}\n\t\t\t\t\t\t\t\tonSelectionChanged={setActionsSelected}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t{!isLoading && (\n\t\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\tisSubmitLoading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdisabled={isSubmitLoading}\n\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Modal.Footer>\n\t\t\t\t</form>\n\t\t\t</Modal>\n\n\t\t\t<Snackbar open={open} autoHideDuration={2500} onClose={handleClose}>\n\t\t\t\t<Alert severity=\"info\" onClose={handleClose}>\n\t\t\t\t\tThe actions of the profile were edited successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<ErrorModal error={nameError} onHide={() => setNameError(\"\")} />\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\nimport { CreateProfile } from \"../Create/CreateProfile\";\nimport { Profile } from \"../../models/Profile\";\nimport { DeleteProfile } from \"../Delete/DeleteProfile\";\nimport { useTableData } from \"./customHooks/useTableData\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { ActionsOfProfile } from \"../ProceduresOfProfile/ActionsOfProfile\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport {\n\tColDef,\n\tGetContextMenuItemsParams,\n\tGridApi,\n\tMenuItemDef,\n} from \"ag-grid-community\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\t\"& .ag-icon-menu\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .ag-header-cell-label\": {\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\n\t\t\"& .ag-header-cell-text\": {\n\t\t\ttextAlign: \"center !important\",\n\t\t},\n\n\t\t\"& .ag-checkbox-input-wrapper\": {\n\t\t\tmargin: \"0 10px\",\n\t\t},\n\t\t\"& .ag-cell\": {\n\t\t\talignItems: \"center\",\n\t\t\tpadding: \"0 !important\",\n\t\t\tborder: \"unset !important\",\n\t\t},\n\t\t\"& .ag-header-cell\": {\n\t\t\tpadding: \"0px !important\",\n\t\t\ttextAlign: \"center !important\",\n\t\t\tfontSize: 10,\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\t\t\"& .ag-cell-wrapper\": {\n\t\t\ttextAlign: \"center\",\n\t\t},\n\t\t\"& .ag-menu-option\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t\t\"& .MuiDataGrid-row\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t\t\"& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption\": {\n\t\t\tfontWeight: \"bold\",\n\t\t\tfontSize: \"12px\",\n\t\t},\n\t\t\"& .MuiDataGrid-columnHeaderTitleContainer\": {\n\t\t\tpadding: \"0\",\n\t\t},\n\t\t\"& .MuiDataGrid-cell--textLeft\": {\n\t\t\tfontSize: \"12px\",\n\t\t},\n\t},\n\trelative: {\n\t\tposition: \"relative\",\n\t},\n\ttextfield: {\n\t\tmargin: theme.spacing(2),\n\t},\n\tbtnModal: {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"flex-end\",\n\t},\n\tProfilesTable: {\n\t\tpadding: theme.spacing(1, 2),\n\t},\n}));\n\ntype Props = {\n\tgetProfilesFromAPI: Function;\n\tisLoading: boolean;\n};\nexport const TableProfiles = ({ getProfilesFromAPI, isLoading }: Props) => {\n\tconst [modalCreateActive, setModalCreateActive] = useState(false);\n\tconst [profileForEdit, setProfileForEdit] = useState<Profile | null>(null);\n\tconst [modalProceduresProfile, setModalProceduresProfile] = useState(false);\n\tconst [modalDeleteProfile, setModalDeleteProfile] = useState(false);\n\tconst [profileForDelete, setProfileForDelete] = useState<Profile | null>(\n\t\tnull,\n\t);\n\tconst gridStyle = useMemo(() => ({ height: \"100%\", width: \"100%\" }), []);\n\tconst [gridApi, setGridApi] = useState<GridApi | null>(null);\n\tconst classes = useStyles();\n\n\tconst loadingOverlayComponent = useMemo<any>(() => {\n\t\treturn LazyLoading;\n\t}, []);\n\n\tconst defaultColDef = useMemo<ColDef>(() => {\n\t\treturn {\n\t\t\tsortable: true,\n\t\t\twrapText: true,\n\t\t\tautoHeight: true,\n\t\t\twrapHeaderText: true,\n\t\t};\n\t}, []);\n\n\tconst { rows, columnDefs } = useTableData({\n\t\tsetModalDeleteProfile,\n\t\tsetModalProceduresProfile,\n\t\tsetProfileForDelete,\n\t\tsetProfileForEdit,\n\t});\n\n\tconst getContextMenuItems = React.useCallback(\n\t\t(params: GetContextMenuItemsParams): (string | MenuItemDef)[] => {\n\t\t\tconst data: Profile = params.node?.data;\n\t\t\tconst result: (string | MenuItemDef)[] = [];\n\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"New\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetModalCreateActive(!modalCreateActive);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Edit Profile\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetProfileForDelete(data);\n\t\t\t\t\t\tsetModalProceduresProfile(true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Remove Profile\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetProfileForDelete(data);\n\t\t\t\t\t\tsetModalDeleteProfile(true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst addNewProfile: (string | MenuItemDef)[] = [];\n\n\t\t\tif (!data) {\n\t\t\t\taddNewProfile.push({\n\t\t\t\t\tname: \"New Profile\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetModalCreateActive(!modalCreateActive);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn data ? result : addNewProfile;\n\t\t},\n\t\t[rows],\n\t);\n\n\tuseEffect(() => {\n\t\tif (isLoading) {\n\t\t\tgridApi?.showLoadingOverlay();\n\t\t} else {\n\t\t\tgridApi?.hideOverlay();\n\t\t}\n\t}, [isLoading, rows, gridApi]);\n\n\treturn (\n\t\t<Grid container justifyContent=\"center\">\n\t\t\t<Grid item md={12} xs={12} style={{ padding: \"0 15px\" }}>\n\t\t\t\t<Typography\n\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\tstyle={{ margin: \"20px 0 20px\", fontWeight: 600 }}\n\t\t\t\t>\n\t\t\t\t\tProfile Management\n\t\t\t\t</Typography>\n\t\t\t</Grid>\n\t\t\t<Grid\n\t\t\t\tcontainer\n\t\t\t\tjustifyContent=\"center\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<Grid\n\t\t\t\t\titem\n\t\t\t\t\tmd={12}\n\t\t\t\t\txs={12}\n\t\t\t\t\tstyle={{ padding: \"0 15px\" }}\n\t\t\t\t\tclassName={classes.relative}\n\t\t\t\t>\n\t\t\t\t\t<CreateProfile\n\t\t\t\t\t\tshow={modalCreateActive}\n\t\t\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\t\t\tsetModalCreateActive(false);\n\t\t\t\t\t\t\tif (shouldUpdate) getProfilesFromAPI().then(() => {});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<DeleteProfile\n\t\t\t\t\t\tshow={modalDeleteProfile}\n\t\t\t\t\t\tprofileForDelete={profileForDelete}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetModalDeleteProfile(false);\n\t\t\t\t\t\t\tsetProfileForDelete(null);\n\t\t\t\t\t\t\tif (shouldUpdate) getProfilesFromAPI().then(() => {});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<ActionsOfProfile\n\t\t\t\t\t\tshow={modalProceduresProfile}\n\t\t\t\t\t\tprofileForEdit={profileForEdit}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetModalProceduresProfile(false);\n\t\t\t\t\t\t\tsetProfileForEdit(null);\n\t\t\t\t\t\t\tif (shouldUpdate) getProfilesFromAPI().then(() => {});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\titem\n\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\txs={12}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: \"61vh\",\n\t\t\t\t\t\t\tborder: \"4px solid #ccc\",\n\t\t\t\t\t\t\tborderRadius: 10,\n\t\t\t\t\t\t\tpadding: 10,\n\t\t\t\t\t\t\tmargin: \"20px 0 10px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div style={gridStyle} className=\"ag-theme-alpine\">\n\t\t\t\t\t\t\t<AgGridReact\n\t\t\t\t\t\t\t\trowData={rows}\n\t\t\t\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\t\t\t\tdefaultColDef={defaultColDef}\n\t\t\t\t\t\t\t\trowHeight={38}\n\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\tloadingOverlayComponent={loadingOverlayComponent}\n\t\t\t\t\t\t\t\tanimateRows={true}\n\t\t\t\t\t\t\t\tgetContextMenuItems={(e: any) => getContextMenuItems(e)}\n\t\t\t\t\t\t\t\tpagination={true}\n\t\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\t\tonRowClicked={(event) => {\n\t\t\t\t\t\t\t\t\tsetProfileForEdit(event.data);\n\t\t\t\t\t\t\t\t\tsetModalProceduresProfile(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonGridReady={(params) => setGridApi(params.api)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t<Grid item md={2} xs={12} className={classes.btnModal}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\tonClick={() => setModalCreateActive(!modalCreateActive)}\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tstyle={{ marginTop: \"10px\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tNEW\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../components/modals/error-modal\";\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\nimport { TableProfiles } from \"./components/ProfilesTable/TableProfiles\";\nimport { useProfilesContext } from \"./context/ProfileContext\";\nimport { getProfiles } from \"./repositories/ProfilesRepository\";\nimport { get } from \"lodash\";\n\ntype Props = {};\n\nexport const Profiles = (prop: Props) => {\n\tconst { state, actions } = useProfilesContext();\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState(\"\");\n\n\tconst getProfilesFromAPI = async () => {\n\t\tsetIsLoading(true);\n\t\tconst resp = await getProfiles();\n\t\tif (resp.ok) {\n\t\t\tconst profiles = get(resp, \"data.tables[0].rows\", []);\n\t\t\tactions.setProfiles(profiles);\n\t\t\tsetIsLoading(false);\n\t\t} else {\n\t\t\tsetError(resp.message);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tgetProfilesFromAPI();\n\t}, []);\n\n\tif (state.profiles) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t\t\t<Grid item md={12} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t<Paper\n\t\t\t\t\t\t\televation={1}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\tpadding: \"10px 0 20px\",\n\t\t\t\t\t\t\t\tborderRadius: \"0.75rem\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TableProfiles\n\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\tgetProfilesFromAPI={getProfilesFromAPI}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Paper>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t</>\n\t\t);\n\t}\n\treturn <LazyLoading />;\n};\n","import * as React from \"react\";\nimport { ProfilesProvider } from \"./context/ProfileContext\";\nimport { Profiles } from \"./ProfilesPage\";\n\ntype Props = {};\n\nconst UsersPage = (props: Props) => {\n\treturn (\n\t\t<ProfilesProvider>\n\t\t\t<Profiles />\n\t\t</ProfilesProvider>\n\t);\n};\n\nexport default UsersPage;\n","import { ShiftParameters } from \"./ShiftParameters\";\n\nexport const INITIAL_VALUES: ShiftParameters = {\n\tPatternStart: new Date(),\n\tShiftCodes: \"\",\n\tCrews: \"\",\n\tUser: \"\",\n\tPatternDays: 5,\n\tCrewRotation: \"\",\n\tComments: \"\",\n\tCanEdit: false,\n\tShiftsPerDay: 1,\n\tNumberOfCrews: 1,\n};\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport { INITIAL_VALUES } from \"../models/FormInitialValues\";\nimport { ShiftParameters } from \"../models/ShiftParameters\";\n\nconst ShiftsCrewsInitialState: {\n\tshifts: ShiftParameters[];\n\tshiftTableData: ShiftParameters;\n} = {\n\tshifts: [],\n\tshiftTableData: INITIAL_VALUES,\n};\n\nexport const ShiftsCrewsReducer = createSlice({\n\tname: \"__\",\n\tinitialState: ShiftsCrewsInitialState,\n\treducers: {\n\t\tsetShiftsCrews(state, { payload }) {\n\t\t\tstate.shifts = payload;\n\t\t},\n\t\tsetShiftTableData(state, { payload }) {\n\t\t\tstate.shiftTableData = payload;\n\t\t},\n\t},\n});\n","import { createContext, default as React, ReactNode, useContext } from \"react\";\nimport { ShiftsCrewsReducer } from \"../reducers/ShiftsCrewsReducer\";\nimport { useComplexState } from \"use-complex-state\";\n\nconst ShiftsCrewsContext = createContext({\n\tstate: ShiftsCrewsReducer.getInitialState(),\n\tactions: ShiftsCrewsReducer.actions,\n});\n\nexport const useShiftsCrewsContext = () => useContext(ShiftsCrewsContext);\n\nexport const ShiftsCrewsProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: ShiftsCrewsReducer.getInitialState(),\n\t\treducers: ShiftsCrewsReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<ShiftsCrewsContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</ShiftsCrewsContext.Provider>\n\t);\n};\n","import { MESApiService, spParameter } from \"../../../../services/ApiService\";\nimport { ShiftParameters } from \"../models/ShiftParameters\";\n\nexport const getShiftParameters = async () => {\n\tconst apiService = new MESApiService();\n\tconst resp = await apiService.callV2(\"[MES].[GetShiftParameters]\", []);\n\treturn resp;\n};\n\nexport const upsertShiftParameters = async ({\n\tPatternStart,\n\tShiftCodes,\n\tCrews,\n\tCrewRotation,\n\tComments,\n}: ShiftParameters) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"AssetId\", value: null });\n\tparameters.push({ name: \"PatternStart\", value: PatternStart });\n\tparameters.push({ name: \"ShiftCodes\", value: ShiftCodes });\n\tparameters.push({ name: \"Crews\", value: Crews });\n\tparameters.push({ name: \"CrewRotation\", value: CrewRotation });\n\tparameters.push({ name: \"Comments\", value: Comments });\n\n\tconst resp = await apiService.callV2(\n\t\t\"[MES].[UpsertShiftParameters]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const DeleteShiftParameters = async (PatternStart: Date) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"AssetId\", value: null });\n\tparameters.push({ name: \"PatternStart\", value: PatternStart });\n\n\tconst resp = await apiService.callV2(\n\t\t\"[MES].[DeleteShiftParameters]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n","import * as React from \"react\";\nimport {useEffect, useState} from \"react\";\nimport {Modal} from \"react-bootstrap\";\nimport {Controller, SubmitHandler, useForm} from \"react-hook-form\";\nimport {CircularProgress, TextField} from \"@material-ui/core\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport {makeStyles, Theme} from \"@material-ui/core/styles\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport {INITIAL_VALUES} from \"../../models/FormInitialValues\";\nimport {upsertShiftParameters} from \"../../repositories/ShiftsCrewsRepository\";\nimport MomentUtils from \"@date-io/moment\";\nimport {KeyboardDatePicker, KeyboardTimePicker, MuiPickersUtilsProvider,} from \"@material-ui/pickers\";\nimport {ShiftParameters} from \"../../models/ShiftParameters\";\nimport {useShiftsCrewsContext} from \"../../context/ShiftsCrewsContext\";\nimport {Alert} from \"../../../../../controls/alert\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\ttitle: {\n\t\tfontSize: 15,\n\t},\n\tmodalTitle: {\n\t\tfontSize: 15,\n\t\tmarginTop: theme.spacing(1),\n\t},\n\tchip: {\n\t\tmargin: 2,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n\tinfoLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#757575\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const CreateShift = ({ show, onHide }: Props) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst classes = useStyles();\n\tconst {\n\t\tstate: { shiftTableData },\n\t} = useShiftsCrewsContext();\n\n\tconst {\n\t\tcontrol,\n\t\thandleSubmit,\n\t\treset,\n\t\twatch,\n\t\tsetValue,\n\t\tformState: { errors },\n\t} = useForm<ShiftParameters>({\n\t\tdefaultValues: shiftTableData ? shiftTableData : INITIAL_VALUES,\n\t});\n\n\t// Progress bar\n\tconst calculatePercentage = () =>\n\t\t((crewRotation?.length as number) / maxCrewRotationLength) * 100;\n\n\tconst onSubmit: SubmitHandler<ShiftParameters> = async (data) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst shiftParameters = await upsertShiftParameters(data);\n\t\tif (shiftParameters.ok) {\n\t\t\tsetIsSubmitLoading(false);\n\t\t\tsetOpen(true);\n\t\t\tonHide(true);\n\t\t} else {\n\t\t\tsetIsSubmitLoading(false);\n\t\t\tsetError(shiftParameters.message);\n\t\t}\n\t};\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(false);\n\t};\n\n\t// const patternStart = watch('PatternStart');\n\tconst shiftsPerDay = watch(\"ShiftsPerDay\");\n\tconst shiftCodes = watch(\"ShiftCodes\");\n\tconst numberOfCrews = watch(\"NumberOfCrews\");\n\tconst crewsCodes = watch(\"Crews\");\n\tconst rotationPattern = watch(\"PatternDays\");\n\tconst crewRotation = watch(\"CrewRotation\");\n\tconst comments = watch(\"Comments\");\n\tconst maxCrewRotationLength = shiftsPerDay * rotationPattern;\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t\tsetValue(\"PatternStart\", new Date());\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid container>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<Modal\n\t\t\t\t\t\t{...{ show }}\n\t\t\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\tcentered\n\t\t\t\t\t>\n\t\t\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tNEW SHIFT/CREW\n\t\t\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t\t\t<Modal.Body style={{ padding: \"15px 30px 0\" }}>\n\t\t\t\t\t\t\t\t<Grid container spacing={2}>\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\tname=\"PatternStart\"\n\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t<MuiPickersUtilsProvider utils={MomentUtils}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12} style={{ margin: \"8px 0 0\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<KeyboardDatePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisablePast\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisableToolbar\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformat=\"MM/DD/yyyy\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"date-picker-inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTopLeftRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTopRightRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Start\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt: any) => onChange(evt?.toDate())}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tKeyboardButtonProps={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"aria-label\": \"change date\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ margin: \"8px 0 18px\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<KeyboardTimePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"time-picker\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Time\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt: any) => onChange(evt?.toDate())}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tKeyboardButtonProps={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"aria-label\": \"change time\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t</MuiPickersUtilsProvider>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"ShiftsPerDay\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={`# ${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tshiftsPerDay > 1 ? \"Shifts\" : \"Shift\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t} per day`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.ShiftsPerDay}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) >= 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) <= 10 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(evt)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.ShiftsPerDay?.type === \"min\" && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tShifts per day is required\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"ShiftCodes\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tvalidate: (value) => value.length == shiftsPerDay,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Shifts Ids\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.ShiftCodes}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// TODO: aquí podriamos hacer que no pueda haber dos valores iguales, para prevenir errores. Ej. dos DNN\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (evt.target.value.length <= shiftsPerDay)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevt.target.value.toString().toUpperCase(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{!!errors.ShiftCodes && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tPlease put {shiftsPerDay} shifts\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{shiftCodes.length < shiftsPerDay &&\n\t\t\t\t\t\t\t\t\t\t\t!!errors.ShiftCodes === false && (\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t>{`Insert: ${shiftsPerDay} ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tshiftsPerDay == 1 ? \"Id\" : \"Ids\"\n\t\t\t\t\t\t\t\t\t\t\t\t}. ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tshiftsPerDay > 1 ? \"The Ids must be differents\" : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t}`}</span>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"NumberOfCrews\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tmax: 9,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={`# ${numberOfCrews > 1 ? \"Crews\" : \"Crew\"}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.NumberOfCrews}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// max. crew 15\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) >= 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) <= 15\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(evt);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.NumberOfCrews?.type === \"min\" && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\t# Crewss day is required\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Crews\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tvalidate: (value) => value.length == numberOfCrews,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Crews Ids\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.Crews}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (evt.target.value.length <= numberOfCrews)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevt.target.value.toString().toUpperCase(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{!!errors.Crews && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tPlease put {numberOfCrews} crews\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{crewsCodes.length < numberOfCrews &&\n\t\t\t\t\t\t\t\t\t\t\t!!errors.Crews === false && (\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t>{`Insert: ${numberOfCrews} ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberOfCrews == 1 ? \"Crew\" : \"Crews\"\n\t\t\t\t\t\t\t\t\t\t\t\t}. ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberOfCrews > 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"The Crews must be differents\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t}`}</span>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6} style={{ marginBottom: \"8px\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"PatternDays\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Rotation Pattern\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.PatternDays}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) >= 5 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) <= 60\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(evt);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ padding: \"0 8px\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"CrewRotation\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tvalidate: (value) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue.length == maxCrewRotationLength,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevt.target.value.length <= maxCrewRotationLength\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevt.target.value.toString().toUpperCase(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Crew rotation\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.CrewRotation}\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t<Grid container style={{ padding: \"0\", height: 2 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: `${calculatePercentage()}% `,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: `${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcrewRotation.length == maxCrewRotationLength\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"#4CAF50\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"#F44336\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \" 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0 5px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t></Grid>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t<Grid container style={{ margin: \"4px 0 0\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t\t\t\t\t\t{(crewRotation?.length as number) >= 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t(crewRotation?.length as number) !==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxCrewRotationLength && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginLeft: 5 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>{`${crewRotation?.length}/${maxCrewRotationLength}`}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t{!!errors.CrewRotation && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tPlease put {maxCrewRotationLength} crews\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{numberOfCrews > 0 &&\n\t\t\t\t\t\t\t\t\t\t\tNumber.isInteger(\n\t\t\t\t\t\t\t\t\t\t\t\tmaxCrewRotationLength / numberOfCrews,\n\t\t\t\t\t\t\t\t\t\t\t) === false && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid container style={{ padding: \"0\", marginLeft: 5 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.errorLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>{`Rotation # not a multiple of Shifts (${maxCrewRotationLength}) / Crews (${numberOfCrews})`}</Grid>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\tstyle={{ margin: \"12px 0 20px\", padding: \"0 8px\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Comments\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ margin: \"8px 0\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxRows={5}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Comments\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (evt.target.value.length <= 200) onChange(evt);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Grid container style={{ marginBottom: 18 }}>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t\t\t\t\t\t{(comments?.length as number) >= 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t(comments?.length as number) !== 200 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginLeft: 5 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>{`${comments?.length}/200 max.`}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{(comments?.length as number) == 200 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginLeft: 5 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tMax. 200\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\t\tisSubmitLoading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isSubmitLoading}\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Modal.Footer>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</Modal>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<Snackbar open={open} autoHideDuration={2500} onClose={handleClose}>\n\t\t\t\t<Alert severity=\"success\" onClose={handleClose}>\n\t\t\t\t\tThe shift was created successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport {useEffect, useState} from \"react\";\nimport {Modal} from \"react-bootstrap\";\nimport {Controller, useForm} from \"react-hook-form\";\nimport {CircularProgress, TextField} from \"@material-ui/core\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport {makeStyles, Theme} from \"@material-ui/core/styles\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport {DeleteShiftParameters} from \"../../repositories/ShiftsCrewsRepository\";\nimport MomentUtils from \"@date-io/moment\";\nimport {KeyboardDatePicker, KeyboardTimePicker, MuiPickersUtilsProvider,} from \"@material-ui/pickers\";\nimport {ShiftParameters} from \"../../models/ShiftParameters\";\nimport {useShiftsCrewsContext} from \"../../context/ShiftsCrewsContext\";\nimport {INITIAL_VALUES} from \"../../models/FormInitialValues\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport {Alert} from \"../../../../../controls/alert\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\ttitle: {\n\t\tfontSize: 15,\n\t},\n\tmodalTitle: {\n\t\tfontSize: 15,\n\t\tmarginTop: theme.spacing(1),\n\t},\n\tchip: {\n\t\tmargin: 2,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n\tinfoLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#757575\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const DeleteShift = ({ show, onHide }: Props) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [deleteAlert, setDeleteAlert] = useState(false);\n\n\tconst classes = useStyles();\n\tconst {\n\t\tstate: { shiftTableData },\n\t} = useShiftsCrewsContext();\n\tconst [error, setError] = useState(\"\");\n\n\tconst {\n\t\tcontrol,\n\t\tsetValue,\n\t\treset,\n\t\twatch,\n\t\tformState: { errors },\n\t} = useForm<ShiftParameters>({ defaultValues: INITIAL_VALUES });\n\n\tconst onDelete: (data: Date) => Promise<void> = async (data: Date) => {\n\t\tsetIsSubmitLoading(true);\n\n\t\tconst shiftParameters = await DeleteShiftParameters(data as Date);\n\t\tif (shiftParameters.ok) {\n\t\t\tsetIsSubmitLoading(false);\n\t\t\tsetOpen(true);\n\t\t\tonHide(true);\n\t\t\tsetDeleteAlert(false);\n\t\t} else {\n\t\t\tsetError(shiftParameters.message);\n\t\t\tsetIsSubmitLoading(false);\n\t\t\tsetDeleteAlert(false);\n\t\t}\n\t};\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(false);\n\t\tsetDeleteAlert(false);\n\t};\n\n\tconst patternStart = watch(\"PatternStart\");\n\tconst shiftsPerDay = watch(\"ShiftsPerDay\");\n\tconst crewRotation = watch(\"CrewRotation\");\n\tconst numberOfCrews = watch(\"NumberOfCrews\");\n\tconst crewsCodes = watch(\"Crews\");\n\tconst rotationPattern = watch(\"PatternDays\");\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t\tsetValue(\"PatternStart\", shiftTableData.PatternStart);\n\t\t\tsetValue(\"ShiftCodes\", shiftTableData.ShiftCodes);\n\t\t\tsetValue(\"Crews\", shiftTableData.Crews);\n\t\t\tsetValue(\"PatternDays\", shiftTableData.PatternDays);\n\t\t\tsetValue(\"CrewRotation\", shiftTableData.CrewRotation);\n\t\t\tsetValue(\"Comments\", shiftTableData.Comments);\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid container>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<Modal\n\t\t\t\t\t\t{...{ show }}\n\t\t\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\tcentered\n\t\t\t\t\t>\n\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tNEW SHIFT/CREW\n\t\t\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t\t\t<Modal.Body style={{ padding: \"15px 30px 0\" }}>\n\t\t\t\t\t\t\t\t<Grid container spacing={2}>\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\tname=\"PatternStart\"\n\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t<MuiPickersUtilsProvider utils={MomentUtils}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12} style={{ margin: \"8px 0 0\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<KeyboardDatePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisableToolbar\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformat=\"MM/DD/yyyy\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"date-picker-inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTopLeftRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTopRightRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Start\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt: any) => onChange(evt?.toDate())}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tKeyboardButtonProps={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"aria-label\": \"change date\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ margin: \"8px 0 18px\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<KeyboardTimePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"time-picker\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Time\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt: any) => onChange(evt?.toDate())}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tKeyboardButtonProps={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"aria-label\": \"change time\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t</MuiPickersUtilsProvider>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"ShiftsPerDay\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={`# ${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tshiftsPerDay > 1 ? \"Shifts\" : \"Shift\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t} per day`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.ShiftsPerDay}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={crewRotation.length / rotationPattern}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.ShiftsPerDay?.type === \"min\" && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tShifts per day is required\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"ShiftCodes\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Shifts Ids\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.ShiftCodes}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"NumberOfCrews\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tmax: 9,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={`# ${numberOfCrews > 1 ? \"Crews\" : \"Crew\"}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.NumberOfCrews}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={crewsCodes.length}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Crews\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Crews Ids\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.Crews}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"PatternDays\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Rotation Pattern\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.PatternDays}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"CrewRotation\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Crew rotation\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Comments\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ margin: \"8px 0\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxRows={5}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Comments\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!shiftTableData}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\t\tisSubmitLoading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\tisSubmitLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isSubmitLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t: new Date(shiftTableData.PatternStart) <\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date() && true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => setDeleteAlert(true)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t{new Date(shiftTableData.PatternStart) < new Date() && (\n\t\t\t\t\t\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.errorLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ fontSize: 10 }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tCan not delete before the current date\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Modal.Footer>\n\t\t\t\t\t\t\t<Dialog\n\t\t\t\t\t\t\t\topen={deleteAlert}\n\t\t\t\t\t\t\t\tonClose={() => handleClose()}\n\t\t\t\t\t\t\t\taria-labelledby=\"responsive-dialog-title\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DialogTitle id=\"responsive-dialog-title\">\n\t\t\t\t\t\t\t\t\t{\"WARNING\"}\n\t\t\t\t\t\t\t\t</DialogTitle>\n\t\t\t\t\t\t\t\t<DialogContent>\n\t\t\t\t\t\t\t\t\t<DialogContentText style={{ padding: 0, margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\tBe careful, once deleted you will not be able to recover\n\t\t\t\t\t\t\t\t\t\tthis shift, are you sure you want to delete it?\n\t\t\t\t\t\t\t\t\t</DialogContentText>\n\t\t\t\t\t\t\t\t</DialogContent>\n\t\t\t\t\t\t\t\t<DialogActions style={{ padding: \"16px 24px\" }}>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={() => setDeleteAlert(false)}\n\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tCANCEL\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\tisSubmitLoading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => onDelete(patternStart as Date)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tDelete\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</DialogActions>\n\t\t\t\t\t\t\t</Dialog>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</Modal>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<Snackbar open={open} autoHideDuration={2500} onClose={handleClose}>\n\t\t\t\t<Alert severity=\"warning\" onClose={handleClose}>\n\t\t\t\t\tThe shift was deleted successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport { Theme, makeStyles } from \"@material-ui/core/styles\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport { TextField } from \"@material-ui/core\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { upsertShiftParameters } from \"../../repositories/ShiftsCrewsRepository\";\nimport MomentUtils from \"@date-io/moment\";\nimport {\n\tMuiPickersUtilsProvider,\n\tKeyboardDatePicker,\n\tKeyboardTimePicker,\n} from \"@material-ui/pickers\";\nimport { ShiftParameters } from \"../../models/ShiftParameters\";\nimport { useShiftsCrewsContext } from \"../../context/ShiftsCrewsContext\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\ttitle: {\n\t\tfontSize: 15,\n\t},\n\tmodalTitle: {\n\t\tfontSize: 15,\n\t\tmarginTop: theme.spacing(1),\n\t},\n\tchip: {\n\t\tmargin: 2,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n\tinfoLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#757575\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const EditShift = ({ show, onHide }: Props) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [\n\t\tinitialShiftPerDayAndCrewsNumber,\n\t\tsetInitialShiftPerDayAndCrewsNumber,\n\t] = useState(false);\n\tconst classes = useStyles();\n\tconst {\n\t\tstate: { shiftTableData },\n\t} = useShiftsCrewsContext();\n\n\tconst {\n\t\tcontrol,\n\t\tsetValue,\n\t\thandleSubmit,\n\t\treset,\n\t\twatch,\n\t\tformState: { errors },\n\t} = useForm<ShiftParameters>({ defaultValues: INITIAL_VALUES });\n\n\t// Progress bar\n\tconst calculatePercentage = () =>\n\t\t((crewRotation?.length as number) / maxCrewRotationLength) * 100;\n\n\tconst onSubmit: SubmitHandler<ShiftParameters> = async (data) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst shiftParameters = await upsertShiftParameters(data);\n\t\tif (shiftParameters.ok) {\n\t\t\tsetIsSubmitLoading(false);\n\t\t\tsetOpen(true);\n\t\t\tonHide(true);\n\t\t} else {\n\t\t\tsetError(shiftParameters.message);\n\t\t\tsetIsSubmitLoading(false);\n\t\t}\n\t};\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(false);\n\t};\n\n\t// const patternStart = watch('PatternStart');\n\tconst shiftsPerDay = watch(\"ShiftsPerDay\");\n\tconst shiftCodes = watch(\"ShiftCodes\");\n\tconst numberOfCrews = watch(\"NumberOfCrews\");\n\tconst crewsCodes = watch(\"Crews\");\n\tconst rotationPattern = watch(\"PatternDays\");\n\tconst comments = watch(\"Comments\");\n\tconst crewRotation = watch(\"CrewRotation\");\n\tconst maxCrewRotationLength = shiftsPerDay * rotationPattern;\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t\tsetValue(\"PatternStart\", shiftTableData.PatternStart);\n\t\t\tsetValue(\"ShiftCodes\", shiftTableData.ShiftCodes);\n\t\t\tsetValue(\"Crews\", shiftTableData.Crews);\n\t\t\tsetValue(\"PatternDays\", shiftTableData.PatternDays);\n\t\t\tsetValue(\"CrewRotation\", shiftTableData.CrewRotation);\n\t\t\tsetValue(\"Comments\", shiftTableData.Comments);\n\t\t\tsetInitialShiftPerDayAndCrewsNumber(!initialShiftPerDayAndCrewsNumber);\n\t\t}\n\t}, [show]);\n\n\tuseEffect(() => {\n\t\tsetValue(\"ShiftsPerDay\", crewRotation.length / rotationPattern);\n\t\tsetValue(\"NumberOfCrews\", crewsCodes.length);\n\t}, [initialShiftPerDayAndCrewsNumber]);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid container>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<Modal\n\t\t\t\t\t\t{...{ show }}\n\t\t\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\tcentered\n\t\t\t\t\t>\n\t\t\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tNEW SHIFT/CREW\n\t\t\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t\t\t<Modal.Body style={{ padding: \"15px 30px 0\" }}>\n\t\t\t\t\t\t\t\t<Grid container spacing={2}>\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\tname=\"PatternStart\"\n\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t<MuiPickersUtilsProvider utils={MomentUtils}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12} style={{ margin: \"8px 0 0\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<KeyboardDatePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisablePast\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisableToolbar\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformat=\"MM/DD/yyyy\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"date-picker-inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTopLeftRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTopRightRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Start\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt: any) => onChange(evt?.toDate())}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tKeyboardButtonProps={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"aria-label\": \"change date\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ margin: \"8px 0 18px\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<KeyboardTimePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"time-picker\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Time\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt: any) => onChange(evt?.toDate())}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tKeyboardButtonProps={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"aria-label\": \"change time\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t</MuiPickersUtilsProvider>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"ShiftsPerDay\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={`# ${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tshiftsPerDay > 1 ? \"Shifts\" : \"Shift\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t} per day`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.ShiftsPerDay}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// FIXME: límite de 10?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(evt) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) >= 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) <= 10 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(evt)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"ShiftCodes\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tvalidate: (value) => value.length == shiftsPerDay,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Shifts Ids\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.ShiftCodes}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// TODO: aquí deberíamos prevenir, que no pueda haber dos valores iguales, . Ej. dos DNN\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (evt.target.value.length <= shiftsPerDay)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevt.target.value.toString().toUpperCase(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{!!errors.ShiftCodes && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tPlease put {shiftsPerDay} shifts\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{shiftCodes.length < shiftsPerDay &&\n\t\t\t\t\t\t\t\t\t\t\t!!errors.ShiftCodes === false && (\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t>{`Insert: ${shiftsPerDay} ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tshiftsPerDay == 1 ? \"Id\" : \"Ids\"\n\t\t\t\t\t\t\t\t\t\t\t\t}. ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tshiftsPerDay > 1 ? \"The Ids must be differents\" : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t}`}</span>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"NumberOfCrews\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tmax: 9,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={`# ${numberOfCrews > 1 ? \"Crews\" : \"Crew\"}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.NumberOfCrews}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) >= 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) <= 9\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(evt);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.NumberOfCrews?.type === \"min\" && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\t# Crewss day is required\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Crews\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tvalidate: (value) => value.length == numberOfCrews,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Crews Ids\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.Crews}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={numberOfCrews <= 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (evt.target.value.length <= numberOfCrews)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevt.target.value.toString().toUpperCase(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{!!errors.Crews && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tPlease put {numberOfCrews} crews\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{crewsCodes.length < numberOfCrews &&\n\t\t\t\t\t\t\t\t\t\t\t!!errors.Crews === false && (\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t>{`Insert: ${numberOfCrews} ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberOfCrews == 1 ? \"Crew\" : \"Crews\"\n\t\t\t\t\t\t\t\t\t\t\t\t}. ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberOfCrews > 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"The Crews must be differents\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t}`}</span>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={6}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"PatternDays\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t// rules={{\n\t\t\t\t\t\t\t\t\t\t\t// required: true\n\t\t\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Rotation Pattern\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.PatternDays}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// FIXME: consultar si estos valores están bien, son los limites del sP\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) >= 5 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(evt.target.value) <= 60\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(evt);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t//TODO: SUMAR UN HELPER: que diga: introduce a value betwen 5 and 60\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ padding: \"0 8px\" }}>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"CrewRotation\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\t\tvalidate: (value) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue.length == maxCrewRotationLength,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevt.target.value.length <= maxCrewRotationLength\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevt.target.value.toString().toUpperCase(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.CrewRotation}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Crew rotation\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t<Grid container style={{ padding: \"0\", height: 2 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: `${calculatePercentage()}% `,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: `${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcrewRotation.length == maxCrewRotationLength\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"#4CAF50\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"#F44336\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \" 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0 5px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t></Grid>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t<Grid container style={{ margin: \"4px 0 0\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t\t\t\t\t\t{(crewRotation?.length as number) >= 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t(crewRotation?.length as number) !==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxCrewRotationLength && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginLeft: 5 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>{`${crewRotation?.length}/${maxCrewRotationLength}`}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t{!!errors.CrewRotation && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tPlease put {maxCrewRotationLength} crews\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{numberOfCrews > 0 &&\n\t\t\t\t\t\t\t\t\t\t\tNumber.isInteger(\n\t\t\t\t\t\t\t\t\t\t\t\tmaxCrewRotationLength / numberOfCrews,\n\t\t\t\t\t\t\t\t\t\t\t) === false && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid container style={{ padding: \"0\", marginLeft: 5 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.errorLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>{`Rotation # not a multiple of Shifts (${maxCrewRotationLength}) / Crews (${numberOfCrews})`}</Grid>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\tstyle={{ margin: \"12px 0 20px\", padding: \"0 8px\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Comments\"\n\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ margin: \"8px 0\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxRows={5}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Comments\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(evt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (evt.target.value.length <= 200) onChange(evt);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Grid container style={{ marginBottom: 18 }}>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t\t\t\t\t\t{(comments?.length as number) >= 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t(comments?.length as number) !== 200 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginLeft: 5 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>{`${comments?.length}/200`}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{(comments?.length as number) == 200 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.infoLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginLeft: 5 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tMax. 200\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\t\tisSubmitLoading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isSubmitLoading}\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Modal.Footer>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</Modal>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<Snackbar open={open} autoHideDuration={2500} onClose={handleClose}>\n\t\t\t\t<Alert severity=\"success\" onClose={handleClose}>\n\t\t\t\t\tThe shift was created successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import React, { useState } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { useShiftsCrewsContext } from \"../../context/ShiftsCrewsContext\";\nimport { ShiftParameters } from \"../../models/ShiftParameters\";\nimport moment from \"moment\";\nimport { ColDef, EditableCallbackParams } from \"ag-grid-community\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\topacity: 0,\n\t\ttransition: \"opacity 0.1s ease-in-out\",\n\t\t\".ag-row-hover &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-focus &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-selected &\": {\n\t\t\topacity: 1,\n\t\t},\n\t},\n}));\n\ntype Props = {\n\tsetOpenModalEditShift: Function;\n\tsetOpenModalDeleteShift: Function;\n};\n\nexport const useTableData = ({\n\tsetOpenModalEditShift,\n\tsetOpenModalDeleteShift,\n}: Props) => {\n\tconst { state, actions } = useShiftsCrewsContext();\n\tconst classes = useStyles();\n\n\tconst rows = state.shifts?.map(\n\t\t({\n\t\t\tPatternStart,\n\t\t\tShiftCodes,\n\t\t\tCrews,\n\t\t\tPatternDays,\n\t\t\tCrewRotation,\n\t\t\tComments,\n\t\t\tCanEdit,\n\t\t}: ShiftParameters) => ({\n\t\t\tid: ShiftCodes,\n\t\t\tPatternStart,\n\t\t\tShiftCodes,\n\t\t\tCrews,\n\t\t\tPatternDays,\n\t\t\tCrewRotation,\n\t\t\tComments,\n\t\t\tCanEdit,\n\t\t}),\n\t);\n\n\tconst onActionsClick = (\n\t\te: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n\t\tparams: EditableCallbackParams,\n\t) => {\n\t\t(params.api as any).contextMenuFactory.showMenu(\n\t\t\tparams.node,\n\t\t\tparams.column,\n\t\t\tundefined,\n\t\t\te,\n\t\t);\n\t};\n\n\tconst [columnDefs] = useState<ColDef[]>([\n\t\t{\n\t\t\tfield: \"PatternStart\",\n\t\t\theaderName: \"Pattern Start\",\n\t\t\tvalueFormatter: ({ value }: { value: any }) =>\n\t\t\t\t`${moment(value).format(\"L\")}, ${moment(value).format(\"LTS\")}`,\n\t\t\tminWidth: 180,\n\t\t\tflex: 4,\n\t\t},\n\t\t{\n\t\t\tfield: \"ShiftCodes\",\n\t\t\theaderName: \"Shift Codes\",\n\t\t\tminWidth: 150,\n\t\t\tflex: 2,\n\t\t},\n\t\t{\n\t\t\tfield: \"Crews\",\n\t\t\theaderName: \"Crews\",\n\t\t\tminWidth: 150,\n\t\t\tflex: 2,\n\t\t},\n\t\t{\n\t\t\tsortable: false,\n\t\t\tfield: \"PatternDays\",\n\t\t\theaderName: \"Shifts\",\n\t\t\tminWidth: 130,\n\t\t\tflex: 1,\n\t\t},\n\t\t{\n\t\t\tcellRenderer: (params: EditableCallbackParams) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={classes.root}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tstyle={{}}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\t\tactions.setShiftTableData(params?.data as ShiftParameters);\n\t\t\t\t\t\t\t\t\t\tsetOpenModalEditShift(true);\n\t\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<EditIcon color=\"primary\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tstyle={{}}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\t\tactions.setShiftTableData(params?.data as ShiftParameters);\n\t\t\t\t\t\t\t\t\t\tsetOpenModalDeleteShift(true);\n\t\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DeleteIcon color=\"secondary\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button style={{}} onClick={(e) => onActionsClick(e, params)}>\n\t\t\t\t\t\t\t\t<FormatListBulletedSharpIcon color=\"action\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t);\n\t\t\t},\n\t\t\tfield: \"\",\n\t\t\tflex: 3,\n\t\t\tminWidth: 240,\n\t\t\teditable: false,\n\t\t\tautoHeight: false,\n\t\t\tsuppressNavigable: true,\n\t\t},\n\t]);\n\n\treturn { rows, columnDefs };\n};\n","import * as React from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport { Theme, makeStyles } from \"@material-ui/core/styles\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { useMemo, useRef, useState } from \"react\";\nimport { CreateShift } from \"./Create/CreateShift\";\nimport { DeleteShift } from \"./Delete/DeleteShift\";\nimport { EditShift } from \"./Edit/EditShift\";\nimport \"ag-grid-community/styles/ag-grid.css\";\nimport \"ag-grid-community/styles/ag-theme-alpine.css\";\nimport \"ag-grid-enterprise\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport {\n\tColDef,\n\tMenuItemDef,\n\tGetContextMenuItemsParams,\n} from \"ag-grid-community\";\nimport { useShiftsCrewsContext } from \"../context/ShiftsCrewsContext\";\nimport { ShiftParameters } from \"../models/ShiftParameters\";\nimport { LazyLoading } from \"../../../../controls/LazyLoading/LazyLoading\";\nimport { useTableData } from \"./customHooks/useTableShift\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\t\"& .ag-icon-menu\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .ag-header-cell-label\": {\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\n\t\t\"& .ag-header-cell-text\": {\n\t\t\ttextAlign: \"center !important\",\n\t\t},\n\n\t\t\"& .ag-checkbox-input-wrapper\": {\n\t\t\tmargin: \"0 10px\",\n\t\t},\n\t\t\"& .ag-cell\": {\n\t\t\talignItems: \"center\",\n\t\t\tpadding: \"0 !important\",\n\t\t\tborder: \"unset !important\",\n\t\t},\n\t\t\"& .ag-header-cell\": {\n\t\t\tpadding: \"0px !important\",\n\t\t\ttextAlign: \"center !important\",\n\t\t\tfontSize: 10,\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\t\t\"& .ag-cell-wrapper\": {\n\t\t\ttextAlign: \"center\",\n\t\t},\n\t\t\"& .ag-menu-option\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t},\n\trelative: {\n\t\tposition: \"relative\",\n\t},\n\ttextfield: {\n\t\tmargin: theme.spacing(2),\n\t},\n\tbtnModal: {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"flex-end\",\n\t},\n}));\n\ntype Props = {\n\tgetShiftsCrewsFromAPI: Function;\n\tisLoading: boolean;\n};\nexport const TableShiftsCrews = ({\n\tisLoading,\n\tgetShiftsCrewsFromAPI,\n}: Props) => {\n\tconst classes = useStyles();\n\tconst [openModalNew, setOpenModalNew] = useState(false);\n\tconst [openModalEditShift, setOpenModalEditShift] = useState(false);\n\tconst [openModalDeleteShift, setOpenModalDeleteShift] = useState(false);\n\tconst [messegaTable, setMessegaTable] = useState(\"\");\n\tconst gridRef = useRef<AgGridReact>(null);\n\tconst gridStyle = useMemo(() => ({ height: \"100%\", width: \"100%\" }), []);\n\tconst defaultColDef = useMemo<ColDef>(() => {\n\t\treturn {\n\t\t\tsortable: true,\n\t\t\twrapText: true,\n\t\t\tautoHeight: true,\n\t\t\twrapHeaderText: true,\n\t\t};\n\t}, []);\n\n\tconst { rows, columnDefs } = useTableData({\n\t\tsetOpenModalEditShift,\n\t\tsetOpenModalDeleteShift,\n\t});\n\tconst {\n\t\tactions: { setShiftTableData },\n\t} = useShiftsCrewsContext();\n\n\tconst loadingOverlayComponent = useMemo<any>(() => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<LazyLoading />\n\t\t\t</div>\n\t\t);\n\t}, []);\n\n\tconst getContextMenuItems = React.useCallback(\n\t\t(params: GetContextMenuItemsParams): (string | MenuItemDef)[] => {\n\t\t\tconst data: ShiftParameters = params.node?.data;\n\t\t\tconst result: (string | MenuItemDef)[] = [];\n\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"New\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetOpenModalNew(!openModalNew);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Edit\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetShiftTableData(data as ShiftParameters);\n\t\t\t\t\t\tsetOpenModalEditShift(true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Remove\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetShiftTableData(data);\n\t\t\t\t\t\tsetOpenModalDeleteShift(true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst addNewDocument: (string | MenuItemDef)[] = [];\n\n\t\t\tif (!data) {\n\t\t\t\taddNewDocument.push({\n\t\t\t\t\tname: \"New Document\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetOpenModalNew(!openModalNew);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn data ? result : addNewDocument;\n\t\t},\n\t\t[rows],\n\t);\n\n\treturn (\n\t\t<Grid\n\t\t\tcontainer\n\t\t\tjustifyContent=\"center\"\n\t\t\talignItems=\"center\"\n\t\t\tclassName={classes.root}\n\t\t>\n\t\t\t<Grid item md={12} xs={12} style={{ padding: \"0 15px\" }}>\n\t\t\t\t<Typography\n\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\tstyle={{ margin: \"20px 0 20px\", fontWeight: 600 }}\n\t\t\t\t>\n\t\t\t\t\tShifts / Crew\n\t\t\t\t</Typography>\n\t\t\t</Grid>\n\t\t\t<Grid\n\t\t\t\tcontainer\n\t\t\t\tjustifyContent=\"center\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<Grid\n\t\t\t\t\titem\n\t\t\t\t\tmd={12}\n\t\t\t\t\txs={12}\n\t\t\t\t\tstyle={{ padding: \"0 15px\" }}\n\t\t\t\t\tclassName={classes.relative}\n\t\t\t\t>\n\t\t\t\t\t<CreateShift\n\t\t\t\t\t\tshow={openModalNew}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetOpenModalNew(false);\n\t\t\t\t\t\t\tif (shouldUpdate) getShiftsCrewsFromAPI();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<EditShift\n\t\t\t\t\t\tshow={openModalEditShift}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetOpenModalEditShift(false);\n\t\t\t\t\t\t\tif (shouldUpdate) getShiftsCrewsFromAPI();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<DeleteShift\n\t\t\t\t\t\tshow={openModalDeleteShift}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetOpenModalDeleteShift(false);\n\t\t\t\t\t\t\tif (shouldUpdate) getShiftsCrewsFromAPI();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\titem\n\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\txs={12}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: \"62vh\",\n\t\t\t\t\t\t\tborder: \"4px solid #ccc\",\n\t\t\t\t\t\t\tborderRadius: 10,\n\t\t\t\t\t\t\tpadding: 10,\n\t\t\t\t\t\t\tmargin: \"20px 0 10px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div style={gridStyle} className=\"ag-theme-alpine\">\n\t\t\t\t\t\t\t<AgGridReact\n\t\t\t\t\t\t\t\tref={gridRef}\n\t\t\t\t\t\t\t\trowData={rows}\n\t\t\t\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\t\t\t\tdefaultColDef={defaultColDef}\n\t\t\t\t\t\t\t\trowHeight={38}\n\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\tanimateRows={true}\n\t\t\t\t\t\t\t\tloadingOverlayComponent={loadingOverlayComponent}\n\t\t\t\t\t\t\t\tgetContextMenuItems={(e: any) => getContextMenuItems(e)}\n\t\t\t\t\t\t\t\tpagination={true}\n\t\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\t\toverlayNoRowsTemplate={messegaTable}\n\t\t\t\t\t\t\t\tonRowDoubleClicked={(event) => {\n\t\t\t\t\t\t\t\t\tsetShiftTableData(event.data as ShiftParameters);\n\t\t\t\t\t\t\t\t\tsetOpenModalEditShift(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t></AgGridReact>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t<Grid item md={2} xs={12} className={classes.btnModal}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\tonClick={() => setOpenModalNew(!openModalNew)}\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tstyle={{ marginTop: 10 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tNEW\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Paper from \"@material-ui/core/Paper\";\nimport { TableShiftsCrews } from \"./components/TableShifts\";\nimport { getShiftParameters } from \"./repositories/ShiftsCrewsRepository\";\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\nimport { useShiftsCrewsContext } from \"./context/ShiftsCrewsContext\";\nimport { ErrorModal } from \"../../../components/modals/error-modal\";\n\ntype Props = {};\n\nexport const ShiftsCrews = (prop: Props) => {\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState(\"\");\n\tconst {\n\t\tstate: { shifts },\n\t\tactions: { setShiftsCrews },\n\t} = useShiftsCrewsContext();\n\n\tconst getShiftsCrewsFromAPI = async () => {\n\t\tsetIsLoading(true);\n\t\tconst resp = await getShiftParameters();\n\t\tif (resp.ok) {\n\t\t\tsetShiftsCrews(resp.data.tables[0].rows);\n\t\t\tsetIsLoading(false);\n\t\t} else {\n\t\t\tsetError(resp.message);\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tgetShiftsCrewsFromAPI();\n\t}, []);\n\n\tif (shifts.length) {\n\t\treturn (\n\t\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t\t<Paper\n\t\t\t\t\televation={1}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tpadding: \"10px 0 20px\",\n\t\t\t\t\t\tborderRadius: \"0.75rem\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<TableShiftsCrews\n\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\tgetShiftsCrewsFromAPI={getShiftsCrewsFromAPI}\n\t\t\t\t\t/>\n\t\t\t\t</Paper>\n\t\t\t</Grid>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t<Grid\n\t\t\t\tcontainer\n\t\t\t\tjustifyContent=\"center\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\tstyle={{ height: \"70vh\", width: \"100%\" }}\n\t\t\t>\n\t\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t\t<LazyLoading />\n\t\t\t</Grid>\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport { ShiftsCrewsProvider } from \"./context/ShiftsCrewsContext\";\nimport { ShiftsCrews } from \"./ShiftsCrewsPage\";\n\ntype Props = {};\n\nconst ShiftsCrewsPage = (props: Props) => {\n\treturn (\n\t\t<ShiftsCrewsProvider>\n\t\t\t<ShiftsCrews />\n\t\t</ShiftsCrewsProvider>\n\t);\n};\n\nexport default ShiftsCrewsPage;\n","import React from \"react\";\nimport FolderIcon from \"@material-ui/icons/Folder\";\nimport ImageIcon from \"@material-ui/icons/Image\";\nimport ListAltIcon from \"@material-ui/icons/ListAlt\";\nimport DescriptionIcon from \"@material-ui/icons/Description\";\n\ntype Props = {\n\tdroppable: boolean;\n\tfileType?: string;\n};\n\nexport const TypeIcon: React.FC<Props> = (props) => {\n\tif (props.droppable) {\n\t\treturn <FolderIcon />;\n\t}\n\n\tswitch (props.fileType) {\n\t\tcase \"image\":\n\t\t\treturn <ImageIcon />;\n\t\tcase \"csv\":\n\t\t\treturn <ListAltIcon />;\n\t\tcase \"text\":\n\t\t\treturn <DescriptionIcon />;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import { AssetAPI } from \"./AssetAPI\";\n\nexport const DATA_ASSET_INITIAL_VALUES: AssetAPI = {\n\tAssetId: null,\n\tParentAssetId: 1,\n\tAssetName: \"\",\n\tIsAsset: false,\n\tCanBeDefaultAsset: false,\n\tParentAssetName: \"\",\n\tIsBranch: null,\n};\n","import {createSlice} from \"@reduxjs/toolkit\";\nimport {AssetAPI} from \"../models/AssetAPI\";\nimport {DATA_ASSET_INITIAL_VALUES} from \"../models/InitialValueDataAsset\";\nimport {AssetParameters} from \"../models/AssetParameters\";\n\nconst ConfigurationAssetInitialState: {\n\topenAssets: { [assetId: number | string]: number | string };\n\n\tallAssetNodes: AssetParameters[];\n\n\tdataToCreateAsset: AssetAPI;\n\n\tallNodesLoading: boolean;\n\n\tanchorPoint: any;\n\n\tmenuContextAssetId: number | undefined;\n\n\tshowContextMenu: boolean;\n\n\tshowCreateNewContextMenu: boolean;\n\n\tassetTreeId: number | null;\n\n\tassetTreeName: string | null;\n\n\tassetCodes: any;\n\n\tassetNodeSelectedInTree: AssetAPI;\n} = {\n\topenAssets: {},\n\tallAssetNodes: [],\n\n\tallNodesLoading: false,\n\n\tanchorPoint: {\n\t\tx: 0,\n\t\ty: 0,\n\t},\n\n\tdataToCreateAsset: DATA_ASSET_INITIAL_VALUES,\n\n\tmenuContextAssetId: undefined,\n\n\tshowContextMenu: false,\n\n\tshowCreateNewContextMenu: false,\n\n\tassetCodes: {},\n\n\tassetTreeId: 1,\n\n\tassetTreeName: null,\n\n\tassetNodeSelectedInTree: DATA_ASSET_INITIAL_VALUES,\n};\n\nexport const ConfigurationAssetReducer = createSlice({\n\tname: \"__\",\n\tinitialState: ConfigurationAssetInitialState,\n\treducers: {\n\t\tsetOpenAssets(state, { payload }) {\n\t\t\tstate.openAssets = payload;\n\t\t},\n\t\tsetAllAssetNodes(state, { payload }) {\n\t\t\tstate.allAssetNodes = payload;\n\t\t},\n\t\tseAllNodesLoading(state, { payload }) {\n\t\t\tstate.allNodesLoading = payload;\n\t\t},\n\t\tsetAnchorPointX(state, { payload }) {\n\t\t\tstate.anchorPoint.x = payload;\n\t\t},\n\t\tsetAnchorPointY(state, { payload }) {\n\t\t\tstate.anchorPoint.y = payload;\n\t\t},\n\t\tsetMenuContextAssetId(state, { payload }) {\n\t\t\tstate.menuContextAssetId = payload;\n\t\t},\n\t\tsetShowContextMenu(state, { payload }) {\n\t\t\tstate.showContextMenu = payload;\n\t\t},\n\t\tsetShowCreateNewContextMenu(state, { payload }) {\n\t\t\tstate.showCreateNewContextMenu = payload;\n\t\t},\n\t\tsetDataToCreateAsset(state, { payload }) {\n\t\t\tstate.dataToCreateAsset = payload;\n\t\t},\n\t\tsetAssetNameToCreateAsset(state, { payload }) {\n\t\t\tstate.dataToCreateAsset.AssetName = payload;\n\t\t},\n\t\tsetAssetParentAssetIdToCreateAsset(state, { payload }) {\n\t\t\tstate.dataToCreateAsset.ParentAssetId = payload;\n\t\t},\n\t\tsetAssetTreeId(state, { payload }) {\n\t\t\tstate.assetTreeId = payload;\n\t\t},\n\t\tsetAssetTreeName(state, { payload }) {\n\t\t\tstate.assetTreeName = payload;\n\t\t},\n\t\tsetAssetCodes(state, { payload }) {\n\t\t\tstate.assetCodes = payload;\n\t\t},\n\t\tsetAssetNodeSelectedInTree(state, { payload }) {\n\t\t\tstate.assetNodeSelectedInTree = payload;\n\t\t},\n\t\tsetParentAssetNameInNodeSelectedInTree(state, { payload }) {\n\t\t\tstate.assetNodeSelectedInTree.ParentAssetName = payload;\n\t\t},\n\t},\n});\n","import {createContext, default as React, ReactNode, useContext} from \"react\";\nimport {useComplexState} from \"use-complex-state\";\nimport {ConfigurationAssetReducer} from \"../reducers/ConfigurationAssetReducer\";\n\nconst ConfigurationAssetContext = createContext({\n\tstate: ConfigurationAssetReducer.getInitialState(),\n\tactions: ConfigurationAssetReducer.actions,\n});\n\nexport const useConfigurationAssetContext = () =>\n\tuseContext(ConfigurationAssetContext);\n\nexport const ConfigurationAssetProvider = ({\n\tchildren,\n}: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: ConfigurationAssetReducer.getInitialState(),\n\t\treducers: ConfigurationAssetReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<ConfigurationAssetContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</ConfigurationAssetContext.Provider>\n\t);\n};\n","import React, {useCallback, useEffect} from \"react\";\nimport {makeStyles, Typography} from \"@material-ui/core\";\nimport {ArrowRight} from \"@material-ui/icons\";\nimport {NodeModel, RenderParams} from \"@minoru/react-dnd-treeview\";\nimport {TypeIcon} from \"./TypeIcon\";\nimport {FileProperties} from \"../../models/FileProperties\";\nimport {useConfigurationAssetContext} from \"../../context/ConfigurationAssetContext\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\talignItems: \"center\",\n\t\tdisplay: \"flex\",\n\t\theight: \"32px\",\n\t},\n\tcustomNodeRoot: {\n\t\tlistStyleType: \"none\",\n\t\tmargin: 0,\n\t\tpadding: 0,\n\t},\n\tarrow: {\n\t\talignItems: \"center\",\n\t\tcursor: \"pointer\",\n\t\tdisplay: \"flex\",\n\t\theight: \"24px\",\n\t\tjustifyContent: \"center\",\n\t\twidth: \"24px\",\n\t\ttransition: \"transform linear 0.1s\",\n\t\ttransform: \"rotate(0deg)\",\n\t},\n\n\t\"arrow > div\": {\n\t\talignItems: \"center\",\n\t\tdisplay: \"flex\",\n\t},\n\n\t\"arrow.is-open\": {\n\t\ttransform: \"rotate(90deg)\",\n\t},\n\n\tfiletype: {\n\t\tdisplay: \"flex\",\n\t},\n\n\tlabel: {\n\t\tpaddingInlineStart: \"8px\",\n\t},\n\n\tselected: {\n\t\tbackgroundColor: \"#e8f0fe\",\n\t},\n\n\tdragging: {\n\t\topacity: 0.5,\n\t},\n}));\n\nconst customStyles = `\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n`;\n\ntype Props = RenderParams & {\n\tnode: NodeModel<FileProperties>;\n\tsetContextMenuOver: (\n\t\tdata: NodeModel<FileProperties>,\n\t\te: React.MouseEvent<HTMLElement>,\n\t) => void;\n\tonDoubleClick: (\n\t\tdata: NodeModel<FileProperties>,\n\t\te: React.MouseEvent<HTMLElement>,\n\t) => void;\n\tisSelected: boolean;\n\tisDragging: boolean;\n\ttestIdPrefix?: string;\n\tonClick: (e: React.MouseEvent, node: NodeModel<FileProperties>) => void;\n\t\"data-node-id\"?: string;\n};\n\nexport const CustomNode: React.FC<Props> = ({\n\tsetContextMenuOver,\n\tonDoubleClick,\n\ttestIdPrefix = \"\",\n\tisSelected,\n\t...props\n}) => {\n\tconst {\n\t\tstate: { openAssets },\n\t\tactions: { setOpenAssets },\n\t} = useConfigurationAssetContext();\n\n\tconst { id, droppable, data } = props.node;\n\tconst indent = props.depth * 24;\n\n\tconst classes = useStyles();\n\tconst nodeClasses = `${classes.customNodeRoot} ${classes.root} ${\n\t\tisSelected ? classes.selected : \"\"\n\t}`;\n\n\tconst handleClick = (e: React.MouseEvent) => {\n\t\tprops.onClick(e, props.node);\n\t};\n\n\tconst handleToggle = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (openAssets[id]) {\n\t\t\tconst newOpenAssets = { ...openAssets };\n\t\t\tdelete newOpenAssets[id as number];\n\t\t\tsetOpenAssets(newOpenAssets);\n\t\t} else {\n\t\t\tsetOpenAssets({ ...openAssets, [id]: id });\n\t\t}\n\t\tprops.onToggle();\n\t};\n\n\tconst handleContextMenu = useCallback(\n\t\t(ev) => {\n\t\t\tev.stopPropagation();\n\t\t\tev.preventDefault();\n\t\t\tsetContextMenuOver(props.node, ev);\n\t\t},\n\t\t[id, setContextMenuOver],\n\t);\n\n\tconst handleViewAssetDialog = useCallback(\n\t\t(e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\tonDoubleClick(props.node, e);\n\t\t\tsetContextMenuOver(\n\t\t\t\t{\n\t\t\t\t\tid: \"\",\n\t\t\t\t\tparent: \"\",\n\t\t\t\t\ttext: \"\",\n\t\t\t\t\tdroppable: false,\n\t\t\t\t},\n\t\t\t\te,\n\t\t\t);\n\t\t},\n\t\t[id, onDoubleClick],\n\t);\n\n\tuseEffect(() => {\n\t\tprops.containerRef.current?.addEventListener(\n\t\t\t\"contextmenu\",\n\t\t\thandleContextMenu,\n\t\t);\n\t\tprops.containerRef.current?.addEventListener(\n\t\t\t\"dblclick\",\n\t\t\thandleViewAssetDialog,\n\t\t);\n\n\t\treturn () => {\n\t\t\tprops.containerRef.current?.removeEventListener(\n\t\t\t\t\"contextmenu\",\n\t\t\t\thandleContextMenu,\n\t\t\t);\n\t\t\tprops.containerRef.current?.removeEventListener(\n\t\t\t\t\"dblclick\",\n\t\t\t\thandleViewAssetDialog,\n\t\t\t);\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={nodeClasses}\n\t\t\tstyle={{ paddingInlineStart: indent }}\n\t\t\tdata-node-id={id}\n\t\t\tonClick={handleClick}\n\t\t\ttitle={`${props.node.id} - ${props.node.text}`}\n\t\t>\n\t\t\t<style>{customStyles}</style>\n\t\t\t{props.node.droppable ? (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`${classes.arrow} ${\n\t\t\t\t\t\tprops.isOpen ? classes[\"arrow.is-open\"] : \"\"\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t<div onClick={handleToggle}>\n\t\t\t\t\t\t<ArrowRight data-testid={`arrow-right-icon-${id}`} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<div className={classes.filetype}>\n\t\t\t\t<TypeIcon droppable={droppable as boolean} fileType={data?.fileType} />\n\t\t\t</div>\n\t\t\t<div className={classes.label}>\n\t\t\t\t<Typography variant=\"body2\">{props.node.text}</Typography>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import React from \"react\";\nimport { NodeModel } from \"@minoru/react-dnd-treeview\";\nimport { TypeIcon } from \"./TypeIcon\";\nimport { FileProperties } from \"../../models/FileProperties\";\nimport { Badge, makeStyles } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\talignItems: \"flex-start\",\n\t\tbackgroundColor: \"#1967d2\",\n\t\tborderRadius: \"4px\",\n\t\tboxShadow:\n\t\t\t\"0 12px 24px -6px rgba(0, 0, 0, 0.25); 0 0 0 1px rgba(0, 0, 0, 0.08)\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tgap: \"4px\",\n\t\tpadding: \"8px\",\n\t\t/* pointer-events: none, */\n\t},\n\n\titem: {\n\t\talignItems: \"center\",\n\t\tcolor: \"#fff\",\n\t\tdisplay: \"inline-grid\",\n\t\tfontSize: \"14px\",\n\t\tgap: \"8px\",\n\t\tgridTemplateColumns: \"auto auto\",\n\t},\n\n\ticon: {\n\t\talignItems: \"center\",\n\t\tdisplay: \"flex\",\n\t},\n\tlabel: {\n\t\talignItems: \"center\",\n\t\tdisplay: \"flex\",\n\t},\n\n\tbadge: {\n\t\tborder: \"solid 2px #fff\",\n\t},\n}));\n\ntype Props = {\n\tdragSources: NodeModel<FileProperties>[];\n};\n\nexport const MultipleDragPreview: React.FC<Props> = (props) => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<Badge\n\t\t\tclasses={{ badge: classes.badge }}\n\t\t\tcolor=\"error\"\n\t\t\tbadgeContent={props.dragSources.length}\n\t\t\tanchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n\t\t>\n\t\t\t<div className={classes.root} data-testid=\"custom-drag-preview\">\n\t\t\t\t{props.dragSources.map((node) => (\n\t\t\t\t\t<div className={classes.item}>\n\t\t\t\t\t\t<div className={classes.icon}>\n\t\t\t\t\t\t\t<TypeIcon\n\t\t\t\t\t\t\t\tdroppable={node.droppable || false}\n\t\t\t\t\t\t\t\tfileType={node?.data?.fileType}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className={classes.label}>{node.text}</div>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</Badge>\n\t);\n};\n","import React from \"react\";\nimport {DragLayerMonitorProps} from \"@minoru/react-dnd-treeview\";\nimport {TypeIcon} from \"./TypeIcon\";\nimport {FileProperties} from \"../../models/FileProperties\";\nimport {makeStyles} from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\talignItems: \"center\",\n\t\tbackgroundColor: \"#1967d2\",\n\t\tborderRadius: \"4px\",\n\t\tboxShadow:\n\t\t\t\" 0 12px 24px -6px rgba(0, 0, 0, .25); 0 0 0 1px rgba(0, 0, 0, .08)\",\n\t\tcolor: \"#fff\",\n\t\tdisplay: \"inline-grid\",\n\t\tfontSize: \"14px\",\n\t\tgap: \"8px\",\n\t\tgridTemplateColumns: \"auto auto\",\n\t\tpadding: \"4px 8px\",\n\t\tpointerEvents: \"none\",\n\t},\n\n\ticon: {\n\t\talignItems: \"center\",\n\t\tdisplay: \"flex\",\n\t},\n\tlabel: {\n\t\talignItems: \"center\",\n\t\tdisplay: \"flex\",\n\t},\n}));\n\ntype Props = {\n\tmonitorProps: DragLayerMonitorProps<FileProperties>;\n};\n\nexport const CustomDragPreview: React.FC<Props> = (props) => {\n\tconst classes = useStyles();\n\n\tconst item = props.monitorProps.item;\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<div className={classes.icon}>\n\t\t\t\t<TypeIcon droppable={item.droppable!} fileType={item?.data?.fileType} />\n\t\t\t</div>\n\t\t\t<div className={classes.label}>{item.text}</div>\n\t\t</div>\n\t);\n};\n","import {MESApiService, spParameter} from \"../../../../services/ApiService\";\n\nexport const updateAsset = async (\n\tAssetIds: (number | string)[],\n\tParentAssetId: number,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({\n\t\tname: \"AssetIds\",\n\t\tvalue: AssetIds.join(\",\"),\n\t});\n\tparameters.push({ name: \"ParentAssetId\", value: ParentAssetId });\n\n\tconst resp = await apiService.callV2(\n\t\t`[MES].[UpdateParentAssetId]`,\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const insertAsset = async (\n\tAssetName: string,\n\tParentAssetId: number,\n\tCanBeDefaultAsset: boolean | null,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"AssetName\", value: AssetName });\n\tparameters.push({ name: \"ParentAssetId\", value: ParentAssetId });\n\tparameters.push({ name: \"CanBeDefaultAsset\", value: CanBeDefaultAsset });\n\n\tconst resp = await apiService.callV2(`[MES].[InsertAsset]`, parameters);\n\treturn resp;\n};\n\nexport const UpdateAssetData = async (\n\tAssetId: number,\n\tAssetName: string,\n\tParentAssetId: number,\n\tIsAsset: boolean,\n\tCanBeDefaultAsset: boolean | null,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"AssetId\", value: AssetId });\n\tparameters.push({ name: \"AssetName\", value: AssetName });\n\tparameters.push({ name: \"ParentAssetId\", value: ParentAssetId });\n\tparameters.push({ name: \"IsAsset\", value: IsAsset });\n\tparameters.push({ name: \"CanBeDefaultAsset\", value: CanBeDefaultAsset });\n\n\tconst resp = await apiService.callV2(`[MES].[UpdateAssetData]`, parameters);\n\treturn resp;\n};\n\nexport const removeAsset = async (AssetId: number, IsActive: boolean) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"AssetId\", value: AssetId });\n\tparameters.push({ name: \"IsActive\", value: IsActive });\n\n\tconst resp = await apiService.callV2(`[MES].[RemoveAsset]`, parameters);\n\treturn resp;\n};\n","import { DropOptions, NodeModel, isAncestor } from \"@minoru/react-dnd-treeview\";\nimport { useEffect } from \"react\";\nimport { FileProperties } from \"../../models/FileProperties\";\nimport { updateAsset } from \"../../repositories/ConfigurationAssetRepository\";\n\ntype Props = {\n\tasset: NodeModel<FileProperties>[];\n\tselectedNodes: NodeModel<FileProperties>[];\n\tisCtrlPressing: boolean;\n\tsetIsCtrlPressing: Function;\n\tsetSelectedNodes: Function;\n\tsetIsDragging: Function;\n\tonAssetUpdateEnd: (\n\t\tresult: { ok: true } | { ok: false; message: string },\n\t) => void;\n\tonAssetUpdateStart?: () => void;\n};\n\nexport const useAssetActions = ({\n\tasset,\n\tselectedNodes,\n\tsetSelectedNodes,\n\tisCtrlPressing,\n\tsetIsDragging,\n\tsetIsCtrlPressing,\n\tonAssetUpdateEnd,\n\tonAssetUpdateStart = () => {},\n}: Props) => {\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (e: any) => {\n\t\t\tif (e.key.toLowerCase() === \"escape\") {\n\t\t\t\tsetSelectedNodes([]);\n\t\t\t} else if (e.ctrlKey || e.metaKey) {\n\t\t\t\tsetIsCtrlPressing(true);\n\t\t\t}\n\t\t};\n\n\t\tconst handleKeyUp = (e: any) => {\n\t\t\tif (e.key.toLowerCase() === \"control\" || e.key.toLowerCase() === \"meta\") {\n\t\t\t\tsetIsCtrlPressing(false);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\twindow.addEventListener(\"keyup\", handleKeyUp);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"keydown\", handleKeyDown);\n\t\t\twindow.removeEventListener(\"keyup\", handleKeyUp);\n\t\t};\n\t}, []);\n\n\tconst handleDrop = async (\n\t\t_: NodeModel<FileProperties>[],\n\t\toptions: DropOptions<FileProperties>,\n\t) => {\n\t\tlet { dropTargetId } = options;\n\n\t\tif (dropTargetId == 0) {\n\t\t\tdropTargetId = 1;\n\t\t}\n\n\t\tonAssetUpdateStart();\n\t\tconst result = await updateAsset(\n\t\t\tselectedNodes.map((cn) => cn.id),\n\t\t\tdropTargetId as number,\n\t\t);\n\n\t\tif (result.ok) {\n\t\t\tsetSelectedNodes([]);\n\t\t}\n\n\t\tonAssetUpdateEnd(result);\n\t};\n\n\tconst handleSingleSelect = (node: NodeModel<FileProperties>) => {\n\t\tsetSelectedNodes([node]);\n\t};\n\n\tconst handleMultiSelect = (clickedNode: NodeModel<FileProperties>) => {\n\t\tconst selectedIds = selectedNodes.map((n) => n.id);\n\n\t\tif (selectedIds.includes(clickedNode.id)) {\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tselectedIds.some((selectedId) =>\n\t\t\t\tisAncestor(asset, selectedId, clickedNode.id),\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet updateNodes = [...selectedNodes];\n\n\t\tupdateNodes = updateNodes.filter((selectedNode) => {\n\t\t\treturn !isAncestor(asset, clickedNode.id, selectedNode.id);\n\t\t});\n\n\t\tupdateNodes = [...updateNodes, clickedNode];\n\t\tsetSelectedNodes(updateNodes);\n\t};\n\n\tconst handleCtrlClick = (\n\t\te: React.MouseEvent,\n\t\tnode: NodeModel<FileProperties>,\n\t) => {\n\t\tif (e.ctrlKey || e.metaKey) {\n\t\t\thandleMultiSelect(node);\n\t\t} else {\n\t\t\thandleSingleSelect(node);\n\t\t}\n\t};\n\n\tconst handleDragStart = (node: NodeModel<FileProperties>) => {\n\t\tconst isSelectedNode = selectedNodes.some((n) => n.id === node.id);\n\t\tsetIsDragging(true);\n\n\t\tif (!isCtrlPressing && isSelectedNode) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isCtrlPressing) {\n\t\t\tsetSelectedNodes([node]);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!selectedNodes.some((n) => n.id === node.id)) {\n\t\t\tsetSelectedNodes([...selectedNodes, node]);\n\t\t}\n\t};\n\n\tconst handleDragEnd = () => {\n\t\tsetIsDragging(false);\n\t\tsetIsCtrlPressing(false);\n\t};\n\treturn { handleDrop, handleCtrlClick, handleDragEnd, handleDragStart };\n};\n","import {createSlice} from \"@reduxjs/toolkit\";\nimport {Asset} from \"../models/Asset\";\n\nconst AssetInitialState: {\n\tareasList: Asset[];\n\tallAssets: Asset[];\n} = {\n\tareasList: [],\n\tallAssets: [],\n};\n\nexport const AssetReducer = createSlice({\n\tname: \"__\",\n\tinitialState: AssetInitialState,\n\treducers: {\n\t\tsetAreasList(state, { payload }) {\n\t\t\tstate.areasList = payload;\n\t\t},\n\t\t// ===========================\n\t\tsetAllAssets(state, { payload }) {\n\t\t\tstate.allAssets = payload;\n\t\t},\n\t},\n});\n","import {createContext, default as React, ReactNode, useContext} from \"react\";\nimport {useComplexState} from \"use-complex-state\";\nimport {AssetReducer} from \"../reducers/AssetReducer\";\n\nconst AssetContext = createContext({\n\tstate: AssetReducer.getInitialState(),\n\tactions: AssetReducer.actions,\n});\n\nexport const useAssetContext = () => useContext(AssetContext);\n\nexport const AssetProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: AssetReducer.getInitialState(),\n\t\treducers: AssetReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<AssetContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</AssetContext.Provider>\n\t);\n};\n","import { Asset } from \"../../../../models/Asset\";\nimport { AssetParameters } from \"../models/AssetParameters\";\n\nexport const TransformAssetModelData = (node: Asset): AssetParameters => {\n\tconst model: AssetParameters = {\n\t\tid: node.AssetId,\n\t\tparent: node.ParentAssetId ? node.ParentAssetId : 0,\n\t\ttext: node.AssetName,\n\t\tdata: {\n\t\t\tfileType: \"csv\",\n\t\t\tfileSize: \"\",\n\t\t},\n\t\tdroppable: node.IsBranch,\n\t};\n\treturn model;\n};\n","import { get } from \"lodash-es\";\nimport { useAssetContext } from \"../../../../context/assetContext\";\nimport { Asset } from \"../../../../models/Asset\";\nimport { TransformAssetModelData } from \"./TransformAssetModelData\";\nimport { useConfigurationAssetContext } from \"../context/ConfigurationAssetContext\";\nimport { getAssets } from \"../../../../repositorie/MESF-frontend-Repositorie\";\n\ntype Props = {\n\tsetSearchError: (err: string) => void;\n\tsetAllAssetLoading: (loader: boolean) => void;\n};\n\nexport const useSearchAssets = ({\n\tsetSearchError,\n\tsetAllAssetLoading,\n}: Props) => {\n\tconst {\n\t\tactions: { setAllAssets, setAreasList },\n\t} = useAssetContext();\n\n\tconst {\n\t\tactions: { setAllAssetNodes },\n\t} = useConfigurationAssetContext();\n\n\tconst searchAssets = () => {\n\t\tgetAssets().then((res: any) => {\n\t\t\tif (res.ok) {\n\t\t\t\tlet mydataSource: any[] = [];\n\n\t\t\t\tconst rows = get(res, \"data.tables[0].rows\", []);\n\t\t\t\tconst areas: Asset[] = rows.filter(\n\t\t\t\t\t(asset: Asset) => asset.CanBeDefaultAsset,\n\t\t\t\t);\n\t\t\t\tsetAllAssets(rows);\n\t\t\t\tsetAreasList(areas);\n\t\t\t\trows.forEach((row: Asset) => {\n\t\t\t\t\tconst code = TransformAssetModelData(row);\n\t\t\t\t\tmydataSource = [...mydataSource, code];\n\t\t\t\t});\n\t\t\t\tsetAllAssetNodes(mydataSource);\n\t\t\t\tsetAllAssetLoading(false);\n\t\t\t} else setSearchError(res.message);\n\t\t});\n\t};\n\treturn { searchAssets };\n};\n","import { useAssetContext } from \"../../../../../context/assetContext\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport { AssetCode } from \"../../models/AssetCode\";\n\nexport const useAssetCodes = () => {\n\tconst {\n\t\tstate: { allAssets },\n\t} = useAssetContext();\n\n\tconst {\n\t\tactions: { setAssetCodes },\n\t} = useConfigurationAssetContext();\n\n\tconst buildTreeAssets = (nodes: any) => {\n\t\tif (nodes === undefined) return;\n\t\t//tree build functions\n\t\tconst idMapping = nodes.reduce((acc: any, el: any, i: number) => {\n\t\t\tacc[el.id] = i;\n\t\t\treturn acc;\n\t\t}, {});\n\t\tlet root;\n\t\tnodes.forEach((el: any) => {\n\t\t\t// Handle the root element\n\t\t\tif (el.parentId === null) {\n\t\t\t\troot = el;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Use our mapping to locate the parent element in our data array\n\t\t\tconst parentEl = nodes[idMapping[el.parentId]];\n\t\t\t// Add our current el to its parent's `children` array\n\t\t\tparentEl.children = [...(parentEl.children || []), el];\n\t\t});\n\t\tsetAssetCodes(root as any);\n\t};\n\n\tconst loadFilterAssets = () => {\n\t\tlet mydataSource: any[] = [];\n\n\t\tallAssets.forEach((row: any) => {\n\t\t\tconst code = TransformAssetCodeModel(row);\n\t\t\tmydataSource = [...mydataSource, code];\n\t\t});\n\t\tbuildTreeAssets(mydataSource);\n\t};\n\n\tconst TransformAssetCodeModel = (data: any): AssetCode => {\n\t\tconst model: AssetCode = {\n\t\t\tid: data.AssetId,\n\t\t\tparentId: data.ParentAssetId,\n\t\t\tname: data.AssetName,\n\t\t\tisLeaf: data.isLeaf,\n\t\t\tisActive: true,\n\t\t};\n\t\treturn model;\n\t};\n\n\treturn { loadFilterAssets };\n};\n","import {\n Checkbox,\n CircularProgress,\n Dialog,\n DialogActions,\n DialogContent,\n DialogProps,\n FormControlLabel,\n TextField,\n Typography,\n} from \"@material-ui/core\";\nimport {Controller, useForm} from \"react-hook-form\";\nimport Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport React, {SyntheticEvent, useEffect, useState} from \"react\";\nimport {useConfigurationAssetContext} from \"../../context/ConfigurationAssetContext\";\nimport {AssetAPI} from \"../../models/AssetAPI\";\nimport {DATA_ASSET_INITIAL_VALUES} from \"../../models/InitialValueDataAsset\";\nimport {TreePickerControl} from \"../../../../../controls\";\nimport {insertAsset} from \"../../repositories/ConfigurationAssetRepository\";\nimport {useAssetCodes} from \"../hooks/useAssetCodes\";\nimport {useAssetContext} from \"../../../../../context/assetContext\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\t\"& .input-group-text\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .MuiPaper-root\": {\n\t\t\theight: \"auto\",\n\t\t},\n\t},\n\tcheckbox: {\n\t\tuserSelect: \"none\",\n\t},\n\tmodalTitle: {\n\t\tbackgroundColor: \"#ced2cc\",\n\t\tcolor: \"#495057\",\n\t\ttextAlign: \"center\",\n\t},\n\tmodalTitleCloseWO: {\n\t\tbackgroundColor: \"#28a745\",\n\t\tcolor: \"white\",\n\t\ttextAlign: \"center\",\n\t},\n\tmodalWarning: {\n\t\tcolor: \"white\",\n\t\tbackgroundColor: \"#dc3545\",\n\t\ttextAlign: \"center\",\n\t},\n\tmessageTitle: {\n\t\tfontSize: 15,\n\t\tfontWeight: \"bold\",\n\t\tcolor: \"#0000008A\",\n\t},\n\tformControl: {\n\t\tmargin: theme.spacing(2),\n\t\tminWidth: 120,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const CreateNewAssetDialog = ({ show, onHide }: Props) => {\n\tconst classes = useStyles();\n\tconst [fullWidth, setFullWidth] = useState(true);\n\tconst [maxWidth, setMaxWidth] = useState<DialogProps[\"maxWidth\"]>(\"sm\");\n\tconst [assetCreatedSuccess, setAssetCreatedSuccess] =\n\t\tuseState<boolean>(false);\n\n\tconst [errorCreateAsset, setErrorCreateAsset] = useState<string>(\"\");\n\tconst [isCreateSubmitLoading, setIsCreateSubmitLoading] = useState(false);\n\n\tconst {\n\t\tstate: { allAssets },\n\t} = useAssetContext();\n\n\tconst {\n\t\tstate: {\n\t\t\tassetNodeSelectedInTree,\n\t\t\tassetCodes,\n\t\t\tdataToCreateAsset,\n\t\t\tassetTreeName,\n\t\t},\n\t\tactions: {\n\t\t\tsetAssetNameToCreateAsset,\n\t\t\tsetAssetTreeName,\n\t\t\tsetAssetParentAssetIdToCreateAsset,\n\t\t\tsetParentAssetNameInNodeSelectedInTree,\n\t\t},\n\t} = useConfigurationAssetContext();\n\n\tconst { loadFilterAssets } = useAssetCodes();\n\n\tconst {\n\t\tcontrol,\n\t\thandleSubmit,\n\t\treset,\n\t\tsetValue,\n\t\tformState: { errors },\n\t} = useForm<AssetAPI>({\n\t\tdefaultValues: dataToCreateAsset\n\t\t\t? dataToCreateAsset\n\t\t\t: DATA_ASSET_INITIAL_VALUES,\n\t});\n\n\tconst handleCancel = () => {\n\t\tonHide(false);\n\t};\n\n\tconst handleClose = (event?: SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetAssetCreatedSuccess(false);\n\t};\n\n\tconst handleCreateAsset = async (data: AssetAPI) => {\n\t\tsetIsCreateSubmitLoading(true);\n\t\tconst res = await insertAsset(\n\t\t\tdata.AssetName,\n\t\t\tdata.ParentAssetId as number,\n\t\t\tdata.CanBeDefaultAsset,\n\t\t);\n\t\tif (res.ok) {\n\t\t\tsetIsCreateSubmitLoading(false);\n\t\t\tsetAssetCreatedSuccess(true);\n\t\t\tsetValue(\"AssetName\", \"\");\n\t\t\tonHide(true);\n\t\t} else {\n\t\t\tsetIsCreateSubmitLoading(false);\n\t\t\tsetErrorCreateAsset(res.message);\n\t\t}\n\t};\n\n\tconst changeParentAssetId = (value: any, description: any) => {\n\t\tsetValue(\"ParentAssetId\", parseInt(value));\n\t\tsetAssetParentAssetIdToCreateAsset(parseInt(value));\n\t\tsetParentAssetNameInNodeSelectedInTree(description);\n\t};\n\n\tconst handleFormSubmit = handleSubmit(handleCreateAsset);\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t\tloadFilterAssets();\n\t\t\tif (assetNodeSelectedInTree?.AssetId) {\n\t\t\t\tsetValue(\n\t\t\t\t\t\"ParentAssetId\",\n\t\t\t\t\tparseInt(assetNodeSelectedInTree?.AssetId as string),\n\t\t\t\t);\n\t\t\t\tconst parentAssetNode = allAssets.find(\n\t\t\t\t\t(node: any) => node.AssetId === assetNodeSelectedInTree?.AssetId,\n\t\t\t\t);\n\t\t\t\tsetParentAssetNameInNodeSelectedInTree(parentAssetNode?.AssetName);\n\t\t\t} else {\n\t\t\t\tsetAssetParentAssetIdToCreateAsset(1);\n\t\t\t\tsetAssetTreeName(\"Plant\");\n\t\t\t\tsetAssetNameToCreateAsset(\"\");\n\t\t\t}\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<Dialog\n\t\t\t\tfullWidth={fullWidth}\n\t\t\t\tmaxWidth={maxWidth}\n\t\t\t\topen={show}\n\t\t\t\tonClose={() => handleCancel()}\n\t\t\t\tdisableEnforceFocus\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<form onSubmit={handleFormSubmit}>\n\t\t\t\t\t<Grid container style={{ padding: \"15px 0 20px\", height: \"50%\" }}>\n\t\t\t\t\t\t<Grid container item>\n\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t<Typography style={{ padding: \"0 24px 12px\", fontSize: 25 }}>\n\t\t\t\t\t\t\t\t\tNEW ASSET\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid container style={{ alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<DialogContent dividers style={{ padding: \"10px 24px 0\" }}>\n\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\tname=\"AssetName\"\n\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\tvalidate: {\n\t\t\t\t\t\t\t\t\t\t\t\tnotEmpty: (value) => value.trim() !== \"\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Asset Name\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.AssetName}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t{errors.AssetName?.type === \"notEmpty\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAsset Name is required\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ marginBottom: \"8px\" }}>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ padding: 0, marginTop: 10 }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"ParentAssetId\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({}) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<TreePickerControl\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinputTitle=\"Asset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Asset Parent\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataSource={assetCodes}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={assetNodeSelectedInTree?.AssetId || 1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(assetNodeSelectedInTree?.ParentAssetName as string) ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Plant\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={changeParentAssetId}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectBranch={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectActive={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectInternal={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t></TreePickerControl>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid container style={{ marginTop: \"10px 0\", padding: \"0\" }}>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={6} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"CanBeDefaultAsset\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultValue={false}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.checkbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value as boolean}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(e.target.checked)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"CanBeDefaultAsset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Can be Default Asset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</DialogContent>\n\t\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ marginTop: \"15px\" }}>\n\t\t\t\t\t\t\t\t<DialogActions style={{ padding: \"0px 24px\" }}>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ margin: 0 }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: \"auto\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: 5,\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: 0,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: \"0\", paddingRight: \"16px\" }}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleCancel()}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisCreateSubmitLoading && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={isCreateSubmitLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</DialogActions>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</form>\n\t\t\t</Dialog>\n\t\t\t<ErrorModal\n\t\t\t\terror={errorCreateAsset}\n\t\t\t\tonHide={() => setErrorCreateAsset(\"\")}\n\t\t\t/>\n\t\t\t<Snackbar\n\t\t\t\topen={assetCreatedSuccess}\n\t\t\t\tautoHideDuration={2500}\n\t\t\t\tonClose={handleClose}\n\t\t\t>\n\t\t\t\t<Alert severity=\"info\" onClose={handleClose}>\n\t\t\t\t\tDocument created succesfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</div>\n\t);\n};\n","import {\n\tCheckbox,\n\tDialog,\n\tDialogContent,\n\tDialogProps,\n\tFormControlLabel,\n\tTextField,\n\tTypography,\n} from \"@material-ui/core\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useEffect, useState } from \"react\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport React from \"react\";\nimport { AssetAPI } from \"../../models/AssetAPI\";\nimport { DATA_ASSET_INITIAL_VALUES } from \"../../models/InitialValueDataAsset\";\nimport { useAssetContext } from \"../../../../../context/assetContext\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\t\"& .input-group-text\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .MuiPaper-root\": {\n\t\t\theight: \"auto\",\n\t\t},\n\t\t\"& .MuiDialogContent-dividers\": {\n\t\t\tborderBottom: \"unset\",\n\t\t},\n\t},\n\tcustomDialog: {\n\t\t\"& .MuiDivider-root:last-child\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t},\n\tcheckbox: {\n\t\tuserSelect: \"none\",\n\t},\n\tmodalTitle: {\n\t\tbackgroundColor: \"#ced2cc\",\n\t\tcolor: \"#495057\",\n\t\ttextAlign: \"center\",\n\t},\n\tmodalTitleCloseWO: {\n\t\tbackgroundColor: \"#28a745\",\n\t\tcolor: \"white\",\n\t\ttextAlign: \"center\",\n\t},\n\tmodalWarning: {\n\t\tcolor: \"white\",\n\t\tbackgroundColor: \"#dc3545\",\n\t\ttextAlign: \"center\",\n\t},\n\tmessageTitle: {\n\t\tfontSize: 15,\n\t\tfontWeight: \"bold\",\n\t\tcolor: \"#0000008A\",\n\t},\n\tformControl: {\n\t\tmargin: theme.spacing(2),\n\t\tminWidth: 120,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (onHide: boolean) => void;\n};\n\nexport const ViewerAssetDialog = ({ show, onHide }: Props) => {\n\tconst classes = useStyles();\n\tconst [fullWidth, setFullWidth] = useState(true);\n\tconst [maxWidth, setMaxWidth] = useState<DialogProps[\"maxWidth\"]>(\"sm\");\n\n\tconst {\n\t\tstate: { dataToCreateAsset, assetNodeSelectedInTree },\n\t} = useConfigurationAssetContext();\n\n\tconst {\n\t\tstate: { allAssets },\n\t} = useAssetContext();\n\n\tconst {\n\t\tcontrol,\n\t\treset,\n\t\tsetValue,\n\t\tformState: { errors },\n\t} = useForm<AssetAPI>({\n\t\tdefaultValues: dataToCreateAsset\n\t\t\t? dataToCreateAsset\n\t\t\t: DATA_ASSET_INITIAL_VALUES,\n\t});\n\n\tconst handleCancel = () => {\n\t\tonHide(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t\tsetValue(\"ParentAssetId\", assetNodeSelectedInTree?.ParentAssetId);\n\t\t\tconst parentAssetNode = allAssets.find(\n\t\t\t\t(node: any) => node.AssetId === assetNodeSelectedInTree?.ParentAssetId,\n\t\t\t);\n\t\t\tsetValue(\"AssetName\", assetNodeSelectedInTree?.AssetName);\n\t\t\tsetValue(\"ParentAssetName\", parentAssetNode?.AssetName as string);\n\t\t\tsetValue(\"IsBranch\", assetNodeSelectedInTree?.IsBranch);\n\t\t\tconst assetNodeFromApi = allAssets.find(\n\t\t\t\t(node: any) => node.AssetId === assetNodeSelectedInTree?.AssetId,\n\t\t\t);\n\t\t\tsetValue(\n\t\t\t\t\"CanBeDefaultAsset\",\n\t\t\t\tassetNodeFromApi?.CanBeDefaultAsset as boolean,\n\t\t\t);\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<Dialog\n\t\t\t\tfullWidth={fullWidth}\n\t\t\t\tmaxWidth={maxWidth}\n\t\t\t\topen={show}\n\t\t\t\tonClose={() => handleCancel()}\n\t\t\t\tdisableEnforceFocus\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<form onSubmit={() => {}}>\n\t\t\t\t\t<Grid container style={{ padding: \"15px 0\", height: \"50%\" }}>\n\t\t\t\t\t\t<Grid container item>\n\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t<Typography style={{ padding: \"0 24px 12px\", fontSize: 25 }}>\n\t\t\t\t\t\t\t\t\t{assetNodeSelectedInTree?.AssetName}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid container style={{ alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<DialogContent dividers style={{ padding: \"10px 24px 0\" }}>\n\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\tname=\"AssetName\"\n\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Asset Name\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.AssetName}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ marginBottom: \"8px\" }}>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ padding: 0, marginTop: 10 }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"ParentAssetName\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{value ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\"Parent Asset\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.AssetName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value || \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\tstyle={{ marginTop: \"5px\", padding: \"0 8px\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={6} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsBranch\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultValue={false}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.checkbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value as boolean}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(e.target.checked)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsBranch\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Has Children\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={6} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"CanBeDefaultAsset\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultValue={false}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.checkbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value as boolean}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(e.target.checked)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"CanBeDefaultAsset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Can be Default Asset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</DialogContent>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</form>\n\t\t\t</Dialog>\n\t\t</div>\n\t);\n};\n","import {\n\tButton,\n\tCircularProgress,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\tDialogContentText,\n\tDialogProps,\n\tDialogTitle,\n} from \"@material-ui/core\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport React from \"react\";\nimport { SyntheticEvent, useState } from \"react\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport { removeAsset } from \"../../repositories/ConfigurationAssetRepository\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\t\"& .input-group-text\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .MuiDialogContent-dividers\": {\n\t\t\tpadding: 0,\n\t\t},\n\t},\n\tmodalTitle: {\n\t\tbackgroundColor: \"#ced2cc\",\n\t\tcolor: \"#495057\",\n\t\ttextAlign: \"center\",\n\t},\n\tmodalTitleCloseWO: {\n\t\tbackgroundColor: \"#28a745\",\n\t\tcolor: \"white\",\n\t\ttextAlign: \"center\",\n\t},\n\tmodalWarning: {\n\t\tcolor: \"white\",\n\t\tbackgroundColor: \"#dc3545\",\n\t\ttextAlign: \"center\",\n\t},\n\tmessageTitle: {\n\t\tfontSize: 15,\n\t\tfontWeight: \"bold\",\n\t\tcolor: \"#0000008A\",\n\t},\n\tformControl: {\n\t\tmargin: theme.spacing(2),\n\t\tminWidth: 120,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n\tinfoLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#757575\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const RemoveAssetDialog = ({ show, onHide }: Props) => {\n\tconst classes = useStyles();\n\tconst [fullWidth, setFullWidth] = useState(true);\n\tconst [maxWidth, setMaxWidth] = useState<DialogProps[\"maxWidth\"]>(\"sm\");\n\tconst [assetRemovedSuccess, setAssetRemovedSuccess] =\n\t\tuseState<boolean>(false);\n\n\tconst [errorRemoveAsset, setErrorRemoveAsset] = useState<string>(\"\");\n\tconst [isCreateSubmitLoading, setIsCreateSubmitLoading] = useState(false);\n\n\tconst {\n\t\tstate: { assetNodeSelectedInTree },\n\t} = useConfigurationAssetContext();\n\n\tconst handleCancel = () => {\n\t\tsetIsCreateSubmitLoading(false);\n\t\tonHide(false);\n\t};\n\n\tconst handleClose = (event?: SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetAssetRemovedSuccess(false);\n\t};\n\n\tconst handleRemoveAsset = async () => {\n\t\tsetIsCreateSubmitLoading(true);\n\t\tconst res = await removeAsset(\n\t\t\tassetNodeSelectedInTree.AssetId as number,\n\t\t\tfalse,\n\t\t);\n\t\tif (res.ok) {\n\t\t\tsetAssetRemovedSuccess(true);\n\t\t\tsetIsCreateSubmitLoading(false);\n\t\t\tonHide(true);\n\t\t} else {\n\t\t\tsetIsCreateSubmitLoading(false);\n\t\t\tsetErrorRemoveAsset(res.message);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Dialog\n\t\t\t\tfullWidth={fullWidth}\n\t\t\t\tmaxWidth={maxWidth}\n\t\t\t\topen={show}\n\t\t\t\tonClose={() => handleCancel()}\n\t\t\t\tdisableEnforceFocus\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<DialogContentText style={{ padding: 0, margin: 0 }}>\n\t\t\t\t\t\tBe careful, once deleted you will not be able to recover this asset{\" \"}\n\t\t\t\t\t\t<b>({assetNodeSelectedInTree?.AssetName})</b>, are you sure you want\n\t\t\t\t\t\tto delete?\n\t\t\t\t\t</DialogContentText>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions style={{ padding: \"16px 24px\" }}>\n\t\t\t\t\t<Button onClick={() => onHide(false)} autoFocus color=\"default\">\n\t\t\t\t\t\tCANCEL\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\tisCreateSubmitLoading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={handleRemoveAsset}\n\t\t\t\t\t>\n\t\t\t\t\t\tDelete\n\t\t\t\t\t</Button>\n\t\t\t\t</DialogActions>\n\t\t\t</Dialog>\n\t\t\t<ErrorModal\n\t\t\t\terror={errorRemoveAsset}\n\t\t\t\tonHide={() => setErrorRemoveAsset(\"\")}\n\t\t\t/>\n\t\t\t<Snackbar\n\t\t\t\topen={assetRemovedSuccess}\n\t\t\t\tautoHideDuration={2500}\n\t\t\t\tonClose={handleClose}\n\t\t\t>\n\t\t\t\t<Alert severity=\"info\" onClose={handleClose}>\n\t\t\t\t\tAsset removed succesfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import {\n\tButton,\n\tCheckbox,\n\tCircularProgress,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tFormControlLabel,\n\tSnackbar,\n\tTextField,\n\tTypography,\n} from \"@material-ui/core\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { SyntheticEvent, useEffect, useState } from \"react\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport React from \"react\";\nimport { AssetAPI } from \"../../models/AssetAPI\";\nimport { DATA_ASSET_INITIAL_VALUES } from \"../../models/InitialValueDataAsset\";\nimport { useAssetContext } from \"../../../../../context/assetContext\";\nimport { TreePickerControl } from \"../../../../../controls\";\nimport { useAssetCodes } from \"../hooks/useAssetCodes\";\nimport { UpdateAssetData } from \"../../repositories/ConfigurationAssetRepository\";\nimport { useSearchAssets } from \"../../hooks/useSearchAssets\";\nimport { Alert } from \"@material-ui/lab\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\t\"& .input-group-text\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .MuiPaper-root\": {\n\t\t\theight: \"auto\",\n\t\t},\n\t},\n\tcustomDialog: {\n\t\t\"& .MuiDivider-root:last-child\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t},\n\tcheckbox: {\n\t\tuserSelect: \"none\",\n\t},\n\tmodalTitle: {\n\t\tbackgroundColor: \"#ced2cc\",\n\t\tcolor: \"#495057\",\n\t\ttextAlign: \"center\",\n\t},\n\tmodalTitleCloseWO: {\n\t\tbackgroundColor: \"#28a745\",\n\t\tcolor: \"white\",\n\t\ttextAlign: \"center\",\n\t},\n\tmodalWarning: {\n\t\tcolor: \"white\",\n\t\tbackgroundColor: \"#dc3545\",\n\t\ttextAlign: \"center\",\n\t},\n\tmessageTitle: {\n\t\tfontSize: 15,\n\t\tfontWeight: \"bold\",\n\t\tcolor: \"#0000008A\",\n\t},\n\tformControl: {\n\t\tmargin: theme.spacing(2),\n\t\tminWidth: 120,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const EditAssetDialog = ({ show, onHide }: Props) => {\n\tconst classes = useStyles();\n\tconst [fullWidth, setFullWidth] = useState(true);\n\tconst [maxWidth, setMaxWidth] = useState<DialogProps[\"maxWidth\"]>(\"sm\");\n\tconst [assetEditedSuccess, setAssetEditedSuccess] = useState<boolean>(false);\n\tconst [parentAsset, setParentAsset] = useState(\"\");\n\n\tconst [errorEditAsset, setErrorEditAsset] = useState<string>(\"\");\n\tconst [isEditSubmitLoading, setIsEditeSubmitLoading] = useState(false);\n\n\tconst {\n\t\tstate: { assetNodeSelectedInTree, assetCodes },\n\t\tactions: { setParentAssetNameInNodeSelectedInTree },\n\t} = useConfigurationAssetContext();\n\n\tconst { loadFilterAssets } = useAssetCodes();\n\n\tconst {\n\t\tstate: { allAssets },\n\t} = useAssetContext();\n\n\tconst {\n\t\tcontrol,\n\t\treset,\n\t\tsetValue,\n\t\thandleSubmit,\n\t\tformState: { errors },\n\t} = useForm<AssetAPI>({\n\t\tdefaultValues: assetNodeSelectedInTree\n\t\t\t? assetNodeSelectedInTree\n\t\t\t: DATA_ASSET_INITIAL_VALUES,\n\t});\n\n\tconst handleCancel = () => {\n\t\tonHide(false);\n\t};\n\n\tconst handleClose = (event?: SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetAssetEditedSuccess(true);\n\t};\n\n\tconst changeParentAssetId = (value: any, description: any) => {\n\t\tsetValue(\"ParentAssetId\", parseInt(value));\n\t\tsetParentAssetNameInNodeSelectedInTree(description);\n\t};\n\n\tconst updateAssetData = async (data: AssetAPI) => {\n\t\tsetIsEditeSubmitLoading(true);\n\t\tconst res = await UpdateAssetData(\n\t\t\tassetNodeSelectedInTree.AssetId as number,\n\t\t\tdata.AssetName,\n\t\t\tdata.ParentAssetId as number,\n\t\t\tdata.IsAsset,\n\t\t\tdata.CanBeDefaultAsset,\n\t\t);\n\t\tif (res.ok) {\n\t\t\tsetIsEditeSubmitLoading(false);\n\t\t\tsetAssetEditedSuccess(true);\n\t\t\tonHide(true);\n\t\t} else {\n\t\t\tsetIsEditeSubmitLoading(false);\n\t\t\tsetErrorEditAsset(res.message);\n\t\t}\n\t};\n\n\tconst handleFormSubmit = handleSubmit(updateAssetData);\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t\tloadFilterAssets();\n\t\t\tsetValue(\"AssetName\", assetNodeSelectedInTree?.AssetName);\n\t\t\tsetValue(\"ParentAssetId\", assetNodeSelectedInTree?.ParentAssetId);\n\t\t\tconst parentAssetNode = allAssets.find(\n\t\t\t\t(node: any) => node.AssetId === assetNodeSelectedInTree?.ParentAssetId,\n\t\t\t);\n\t\t\tsetParentAssetNameInNodeSelectedInTree(parentAssetNode?.AssetName);\n\t\t\tsetParentAsset(parentAssetNode?.AssetName as string);\n\t\t\tsetValue(\"IsBranch\", assetNodeSelectedInTree?.IsBranch);\n\t\t\tconst assetNodeFromApi = allAssets.find(\n\t\t\t\t(node: any) => node.AssetId === assetNodeSelectedInTree?.AssetId,\n\t\t\t);\n\n\t\t\tsetValue(\n\t\t\t\t\"CanBeDefaultAsset\",\n\t\t\t\tassetNodeFromApi?.CanBeDefaultAsset as boolean,\n\t\t\t);\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t<Dialog\n\t\t\t\tfullWidth={fullWidth}\n\t\t\t\tmaxWidth={maxWidth}\n\t\t\t\topen={show}\n\t\t\t\tonClose={() => handleCancel()}\n\t\t\t\tdisableEnforceFocus\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<form onSubmit={handleFormSubmit}>\n\t\t\t\t\t<Grid container style={{ padding: \"15px 0 20px\", height: \"50%\" }}>\n\t\t\t\t\t\t<Grid container item>\n\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t<Typography style={{ padding: \"0 24px 12px\", fontSize: 25 }}>\n\t\t\t\t\t\t\t\t\t{assetNodeSelectedInTree?.AssetName}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid container style={{ alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<DialogContent dividers style={{ padding: \"10px 24px 0\" }}>\n\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\tname=\"AssetName\"\n\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Asset Name\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\t\terror={!!errors.AssetName}\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ marginBottom: \"8px\" }}>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ padding: 0, marginTop: 10 }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"ParentAssetId\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({}) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div title={`Parent Asset: ${parentAsset}`}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TreePickerControl\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinputTitle={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentAsset\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `Parent Asset: ${parentAsset}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"Parent Asset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Asset Parent\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataSource={assetCodes}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tassetNodeSelectedInTree?.ParentAssetId || 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(assetNodeSelectedInTree?.ParentAssetName as string) ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Plant\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={changeParentAssetId}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectBranch={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectActive={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectInternal={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t></TreePickerControl>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginTop: \"10px\", padding: \"0px\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={6} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsBranch\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultValue={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.checkbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value as boolean}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(e.target.checked)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsAsset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Has Children\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item xs={6} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"CanBeDefaultAsset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultValue={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.checkbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value as boolean}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(e.target.checked)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"CanBeDefaultAsset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Can be Default Asset\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</DialogContent>\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\t\t\t\tstyle={{ marginTop: \"15px\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DialogActions style={{ padding: \"0px 24px\" }}>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ margin: 0 }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: \"auto\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: 5,\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: 0,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\t\tmd={6}\n\t\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: \"0\", paddingRight: \"16px\" }}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleCancel()}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisEditSubmitLoading && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={isEditSubmitLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</DialogActions>\n\t\t\t\t\t\t\t\t<ErrorModal\n\t\t\t\t\t\t\t\t\terror={errorEditAsset}\n\t\t\t\t\t\t\t\t\tonHide={() => setErrorEditAsset(\"\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Snackbar\n\t\t\t\t\t\t\t\t\topen={assetEditedSuccess}\n\t\t\t\t\t\t\t\t\tautoHideDuration={2500}\n\t\t\t\t\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Alert severity=\"info\" onClose={handleClose}>\n\t\t\t\t\t\t\t\t\t\tDocument created succesfully\n\t\t\t\t\t\t\t\t\t</Alert>\n\t\t\t\t\t\t\t\t</Snackbar>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</form>\n\t\t\t</Dialog>\n\t\t</div>\n\t);\n};\n","import {Grid, makeStyles, MenuItem, Paper, Snackbar, Typography,} from \"@material-ui/core\";\nimport {Tree} from \"@minoru/react-dnd-treeview\";\nimport {DragLayerMonitorProps, NodeModel,} from \"@minoru/react-dnd-treeview/dist/types\";\nimport React, {SyntheticEvent, useEffect, useMemo, useState} from \"react\";\nimport {FileProperties} from \"../../models/FileProperties\";\nimport {CustomNode} from \"./CustomNode\";\nimport {MultipleDragPreview} from \"./MultipleDragPreview\";\nimport {CustomDragPreview} from \"./CustomDragPreview\";\nimport {useAssetActions} from \"../hooks/useAssetActions\";\nimport {useConfigurationAssetContext} from \"../../context/ConfigurationAssetContext\";\nimport {useSearchAssets} from \"../../hooks/useSearchAssets\";\nimport {Alert} from \"@material-ui/lab\";\nimport {CreateNewAssetDialog} from \"../dialogs/create-new-asset-dialog\";\nimport {ViewerAssetDialog} from \"../dialogs/viewer-asset-dialog\";\nimport {useAssetContext} from \"../../../../../context/assetContext\";\nimport {RemoveAssetDialog} from \"../dialogs/remove-asset-dialog\";\nimport {EditAssetDialog} from \"../dialogs/edit-asset-dialog\";\nimport {LazyLoading} from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {},\n\tcontextMenu: {\n\t\tfontSize: \"14px\",\n\t\tbackgroundColor: \"#fff\",\n\t\tborderRadius: \"2px\",\n\t\tpadding: \"5px 0 5px 0\",\n\t\twidth: \"150px\",\n\t\theight: \"auto\",\n\t\tmargin: \"0\",\n\t\tposition: \"fixed\",\n\t\tlistStyle: \"none\",\n\t\tboxShadow: \"0 0 20px 0 #ccc\",\n\t},\n\tstoryRoot: {\n\t\tdisplay: \"grid\",\n\t\theight: \"100%\",\n\t\tgridTemplateRows: \"auto 1fr\",\n\t\tlistStyleType: \"none !important\",\n\t},\n\n\tassetRoot: {\n\t\tboxSizing: \"border-box\",\n\t\theight: \"100%\",\n\t\tpadding: \"32px\",\n\t},\n\n\tdropTarget: {\n\t\tboxShadow: \"0 0 0 1px #1967d2 inset\",\n\t},\n}));\n\nexport const AssetViewComponent = () => {\n\tconst [selectedNodes, setSelectedNodes] = useState<\n\t\tNodeModel<FileProperties>[]\n\t>([]);\n\tconst classes = useStyles();\n\tconst [isDragging, setIsDragging] = useState(false);\n\tconst [isCtrlPressing, setIsCtrlPressing] = useState(false);\n\tconst [isDoubleClick, setIsDoubleClick] = useState(false);\n\tconst {\n\t\tstate: {\n\t\t\tallAssetNodes,\n\t\t\topenAssets,\n\t\t\tshowContextMenu,\n\t\t\tshowCreateNewContextMenu,\n\t\t\tassetNodeSelectedInTree,\n\t\t\tanchorPoint: { x, y },\n\t\t},\n\t\tactions: {\n\t\t\tsetShowContextMenu,\n\t\t\tsetShowCreateNewContextMenu,\n\t\t\tsetMenuContextAssetId,\n\t\t\tsetAnchorPointX,\n\t\t\tsetAnchorPointY,\n\t\t\tsetAssetNodeSelectedInTree,\n\t\t},\n\t} = useConfigurationAssetContext();\n\n\tconst {\n\t\tstate: { allAssets },\n\t} = useAssetContext();\n\n\tconst [showCreateNewAssetDialog, setShowCreateNewAssetDialog] =\n\t\tuseState<boolean>(false);\n\tconst [showViewerAssetDialog, setShowViewerAssetDialog] =\n\t\tuseState<boolean>(false);\n\tconst [showRemoveAssetDialog, setShowRemoveAssetDialog] =\n\t\tuseState<boolean>(false);\n\tconst [showEditAssetDialog, setShowEditAssetDialog] =\n\t\tuseState<boolean>(false);\n\n\tconst [errorUpdate, setErrorUpdate] = useState<string>(\"\");\n\n\tconst [searchError, setSearchError] = useState<string>(\"\");\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [updatedSuccessfullyMessage, setUpdatedSuccessfullyMessage] =\n\t\tuseState(false);\n\n\tconst { searchAssets } = useSearchAssets({\n\t\tsetSearchError,\n\t\tsetAllAssetLoading: setIsLoading,\n\t});\n\n\tconst { handleDrop, handleCtrlClick, handleDragStart, handleDragEnd } =\n\t\tuseAssetActions({\n\t\t\tasset: allAssetNodes,\n\t\t\tselectedNodes,\n\t\t\tsetSelectedNodes,\n\t\t\tsetIsDragging,\n\t\t\tisCtrlPressing,\n\t\t\tsetIsCtrlPressing,\n\t\t\tonAssetUpdateStart: () => {\n\t\t\t\tsetIsLoading(true);\n\t\t\t},\n\t\t\tonAssetUpdateEnd: (result) => {\n\t\t\t\tif (result.ok) {\n\t\t\t\t\tsetUpdatedSuccessfullyMessage(true);\n\t\t\t\t\tsearchAssets();\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorUpdate(result.message);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\tconst handleClose = (event?: SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetUpdatedSuccessfullyMessage(false);\n\t};\n\n\tconst handleClick = (e: any) => {\n\t\tif (showContextMenu) {\n\t\t\tsetShowContextMenu(false);\n\t\t\tsetMenuContextAssetId(undefined);\n\t\t}\n\t\tif (showCreateNewContextMenu) {\n\t\t\tsetShowCreateNewContextMenu(false);\n\t\t\tsetMenuContextAssetId(undefined);\n\t\t}\n\t};\n\n\tconst handleCreateNewContextMenu = (e: React.MouseEvent<HTMLElement>) => {\n\t\te.preventDefault();\n\t\tsetShowContextMenu(false);\n\t\tconst top = e.clientY;\n\t\tconst left = e.clientX;\n\n\t\tsetAnchorPointX(left);\n\t\tsetAnchorPointY(top);\n\t\tsetShowCreateNewContextMenu(true);\n\t\tsetAssetNodeSelectedInTree(undefined);\n\t};\n\n\tconst handleContextMenu = (\n\t\tdata: NodeModel<FileProperties>,\n\t\te: React.MouseEvent<HTMLElement>,\n\t) => {\n\t\te.preventDefault();\n\t\tsetShowCreateNewContextMenu(false);\n\t\tconst top = e.clientY;\n\t\tconst left = e.clientX;\n\n\t\tsetAnchorPointX(left);\n\t\tsetAnchorPointY(top);\n\n\t\tsetSelectedNodes([data]);\n\n\t\tsetShowContextMenu(true);\n\t\tconst selectedNode = allAssets.find(\n\t\t\t(node: any) => node.AssetId === data.id,\n\t\t);\n\t\tif (selectedNode) {\n\t\t\tsetAssetNodeSelectedInTree(selectedNode);\n\t\t}\n\t};\n\n\tconst handleShowViewerAsset = (\n\t\tdata: NodeModel<FileProperties>,\n\t\te: React.MouseEvent<HTMLElement>,\n\t) => {\n\t\te.preventDefault();\n\t\tsetIsDoubleClick(true);\n\t\tconst selectedNode = allAssets.find(\n\t\t\t(node: any) => node.AssetId === data.id,\n\t\t);\n\t\tif (selectedNode) {\n\t\t\tsetAssetNodeSelectedInTree(selectedNode);\n\t\t\tsetShowViewerAssetDialog(true);\n\t\t}\n\t};\n\n\tconst handleOnHideViewer = () => {\n\t\tsetShowViewerAssetDialog(false);\n\t\tsetIsDoubleClick(false);\n\t\tsetShowCreateNewContextMenu(false);\n\t\tsetShowContextMenu(false);\n\t};\n\n\tuseEffect(() => {\n\t\tsearchAssets();\n\t}, []);\n\n\tconst openAssetsArray = useMemo(() => {\n\t\treturn Object.keys(openAssets).map((el) => parseInt(el));\n\t}, [openAssets]);\n\n\treturn (\n\t\t<div style={{ width: \"100%\", height: \"100%\" }}>\n\t\t\t<div onClick={handleClick}>\n\t\t\t\t<div onContextMenu={handleCreateNewContextMenu}>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\tclassName={classes.root}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Paper\n\t\t\t\t\t\t\t\televation={1}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\tpadding: \"15px 20px 25px\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"0.75rem\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 20px\", fontWeight: 600 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tAssets Tree\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\t\t\t\t<Grid container style={{ width: \"100%\", height: \"100%\" }}>\n\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"66vh\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<LazyLoading />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Paper\n\t\t\t\t\t\t\t\t\t\televation={2}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"15px 20px 10px\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"0.75rem\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Grid container alignItems=\"center\">\n\t\t\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"66vh\",\n\t\t\t\t\t\t\t\t\t\t\t\t\toverflowY: \"auto\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tpaddingBottom: 10,\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<Grid>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Tree\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trootId={0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinitialOpen={openAssetsArray}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttree={allAssetNodes}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableAnimateExpand={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclasses={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\troot: classes.assetRoot,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdropTarget: classes.dropTarget,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonDrop={handleDrop}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonDragStart={handleDragStart}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonDragEnd={handleDragEnd}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcanDrop={(asset: any, options: any): boolean => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn !selectedNodes.some(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(selectedNode) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedNode.id === options.dropTargetId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trender={(node, options) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst selected = selectedNodes.some(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(selectedNode) => selectedNode.id === node.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CustomNode\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetContextMenuOver={handleContextMenu}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode={node}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...options}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSelected={selected}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisDragging={selected && isDragging}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleCtrlClick}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonDoubleClick={handleShowViewerAsset}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdragPreviewRender={(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmonitorProps: DragLayerMonitorProps<FileProperties>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (selectedNodes.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<MultipleDragPreview\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdragSources={selectedNodes}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CustomDragPreview\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmonitorProps={monitorProps}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Paper>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<CreateNewAssetDialog\n\t\t\t\t\t\t\t\t\tshow={showCreateNewAssetDialog}\n\t\t\t\t\t\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\t\t\t\t\t\tsetShowCreateNewAssetDialog(false);\n\t\t\t\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\t\t\t\tsearchAssets();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<EditAssetDialog\n\t\t\t\t\t\t\t\t\tshow={showEditAssetDialog}\n\t\t\t\t\t\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\t\t\t\t\t\tsetShowEditAssetDialog(false);\n\t\t\t\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\t\t\t\tsearchAssets();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ViewerAssetDialog\n\t\t\t\t\t\t\t\t\tshow={showViewerAssetDialog}\n\t\t\t\t\t\t\t\t\tonHide={() => handleOnHideViewer()}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<RemoveAssetDialog\n\t\t\t\t\t\t\t\t\tshow={showRemoveAssetDialog}\n\t\t\t\t\t\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\t\t\t\t\t\tsetShowRemoveAssetDialog(false);\n\t\t\t\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\t\t\t\tsearchAssets();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Paper>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Snackbar\n\t\t\t\t\t\t\topen={updatedSuccessfullyMessage}\n\t\t\t\t\t\t\tautoHideDuration={2500}\n\t\t\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Alert severity=\"success\" onClose={handleClose}>\n\t\t\t\t\t\t\t\tAsset updated successfully\n\t\t\t\t\t\t\t</Alert>\n\t\t\t\t\t\t</Snackbar>\n\t\t\t\t\t</div>\n\t\t\t\t\t{showContextMenu && !isDoubleClick ? (\n\t\t\t\t\t\t<ul className={classes.contextMenu} style={{ top: y, left: x }}>\n\t\t\t\t\t\t\t<MenuItem onClick={() => setShowViewerAssetDialog(true)}>\n\t\t\t\t\t\t\t\tView Asset\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<MenuItem onClick={() => setShowEditAssetDialog(true)}>\n\t\t\t\t\t\t\t\tEdit Asset\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<MenuItem onClick={() => setShowCreateNewAssetDialog(true)}>\n\t\t\t\t\t\t\t\tCreate Asset\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t{assetNodeSelectedInTree?.IsBranch === false && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={() => setShowRemoveAssetDialog(true)}>\n\t\t\t\t\t\t\t\t\tRemove Asset\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\"\"\n\t\t\t\t\t)}\n\t\t\t\t\t{showCreateNewContextMenu ? (\n\t\t\t\t\t\t<ul className={classes.contextMenu} style={{ top: y, left: x }}>\n\t\t\t\t\t\t\t<MenuItem onClick={() => setShowCreateNewAssetDialog(true)}>\n\t\t\t\t\t\t\t\tCreate Asset\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\"\"\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<ErrorModal error={errorUpdate} onHide={() => setErrorUpdate(\"\")} />\n\n\t\t\t<ErrorModal error={searchError} onHide={() => setSearchError(\"\")} />\n\t\t</div>\n\t);\n};\n","import React from \"react\";\nimport {DndProvider} from \"react-dnd\";\nimport {HTML5Backend} from \"react-dnd-html5-backend\";\nimport {AssetViewComponent} from \"./AssetView\";\n\nexport const ConfigurationAssetComponent = () => {\n\treturn (\n\t\t<>\n\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t<AssetViewComponent />\n\t\t\t</DndProvider>\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport {ConfigurationAssetComponent} from \"./components/AssetConfiguration/ConfigurationAssetComponent\";\n\nexport const ConfigurationAssetPage = () => {\n\treturn (\n\t\t<>\n\t\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t\t<ConfigurationAssetComponent />\n\t\t\t</Grid>\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport { ConfigurationAssetPage } from \"./ConfigurationAssetPage\";\nimport { ConfigurationAssetProvider } from \"./context/ConfigurationAssetContext\";\n\ntype Props = {};\n\nconst AssetPage = (props: Props) => {\n\treturn (\n\t\t<ConfigurationAssetProvider>\n\t\t\t<ConfigurationAssetPage />\n\t\t</ConfigurationAssetProvider>\n\t);\n};\n\nexport default AssetPage;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport { User } from \"../models/User\";\n\nconst UsersInitialState: {\n\tusers: User[];\n} = {\n\tusers: [],\n};\n\nexport const UsersReducer = createSlice({\n\tname: \"__\",\n\tinitialState: UsersInitialState,\n\treducers: {\n\t\tsetUsers(state, { payload }) {\n\t\t\tstate.users = payload;\n\t\t},\n\t},\n});\n","import { createContext, default as React, ReactNode, useContext } from \"react\";\nimport { UsersReducer } from \"../reducers/UsersReducer\";\nimport { useComplexState } from \"use-complex-state\";\n\nconst UsersContext = createContext({\n\tstate: UsersReducer.getInitialState(),\n\tactions: UsersReducer.actions,\n});\n\nexport const useUsersContext = () => useContext(UsersContext);\n\nexport const UsersProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: UsersReducer.getInitialState(),\n\t\treducers: UsersReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<UsersContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</UsersContext.Provider>\n\t);\n};\n","import { MESApiService, spParameter } from \"../../../../services/ApiService\";\nimport { User } from \"../models/User\";\n\nexport const getUsers = async () => {\n\tconst apiService = new MESApiService();\n\tconst resp = await apiService.callV2(\"[SEC].[GetUsers]\", []);\n\treturn resp;\n};\n\nexport const getDataUser = async (UserId: number | null) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"UserId\", value: UserId });\n\tparameters.push({ name: \"UserName\", value: null });\n\tconst resp = await apiService.callV2(\"[SEC].[GetUser]\", parameters);\n\treturn resp;\n};\n\nexport const getProfiles = async () => {\n\tconst apiService = new MESApiService();\n\tconst resp = await apiService.callV2(\"[SEC].[GetProfiles]\", []);\n\treturn resp;\n};\n\nexport const deleteUser = async (userId: number) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [];\n\tparameters.push({ name: \"UserId\", value: userId });\n\tconst resp = await apiService.callV2(\"[SEC].[DeleteUser]\", parameters);\n\treturn resp;\n};\n\n// inserta una nueva fila o actualiza una fila existente\nexport const setPassword = async (userId: number, password: string) => {\n\tconst apiService = new MESApiService();\n\n\ttry {\n\t\tconst resp = await apiService.changePassword(userId.toString(), password);\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: resp,\n\t\t};\n\t} catch (e: any) {\n\t\treturn { ok: false, message: e.toString() };\n\t}\n};\n\nexport const upsertUser = async (user: User) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"UserId\", value: user.UserId });\n\tparameters.push({ name: \"UserName\", value: user.UserName });\n\tparameters.push({ name: \"Name\", value: user.FirstName });\n\tparameters.push({ name: \"LastName\", value: user.LastName });\n\tparameters.push({ name: \"AuthTypeId\", value: user.AuthTypeId });\n\tparameters.push({ name: \"IsActive\", value: user.IsActive });\n\n\tconst resp = await apiService.callV2(\"[SEC].[UpsertUser]\", parameters);\n\treturn resp;\n};\n\nexport const getAuthTypes = async () => {\n\tconst apiService = new MESApiService();\n\tconst resp = await apiService.callV2(\"[SEC].[GetAuthTypes]\", []);\n\treturn resp;\n};\n\nexport const setProfilesToUser = async (\n\tUserId: number,\n\tprofileIds: number[],\n) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"UserId\", value: UserId });\n\tparameters.push({ name: \"ProfileIds\", value: profileIds.join(\" , \") });\n\tconst resp = await apiService.callV2(\"[SEC].[setProfilesToUser]\", parameters);\n\treturn resp;\n};\n","import React, { useEffect, useState } from \"react\";\nimport { get } from \"lodash-es\";\nimport { makeStyles, Theme, useTheme } from \"@material-ui/core/styles\";\nimport Input from \"@material-ui/core/Input\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Select from \"@material-ui/core/Select\";\nimport Chip from \"@material-ui/core/Chip\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport { getProfiles } from \"../../repositories/UsersRepository\";\nimport { Profile } from \"../../models/Profile\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\t\"& .MuiSelect-select\": {\n\t\t\theight: \"auto\",\n\t\t\tminHeight: \"40px\",\n\t\t},\n\t},\n\tformControl: {\n\t\tmargin: theme.spacing(1),\n\t\twidth: \"100%\",\n\t},\n\tchips: {\n\t\tdisplay: \"flex\",\n\t\tflexWrap: \"wrap\",\n\t},\n\tchip: {\n\t\tmargin: 2,\n\t},\n\tnoLabel: {\n\t\tmarginTop: theme.spacing(3),\n\t},\n}));\n\nconst getStyles = (profileId: number, profiles: Profile[], theme: Theme) => {\n\treturn {\n\t\tfontWeight: !!profiles.find((p) => p.ProfileId === profileId)\n\t\t\t? theme.typography.fontWeightRegular\n\t\t\t: theme.typography.fontWeightMedium,\n\t};\n};\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n\tPaperProps: {\n\t\tstyle: {\n\t\t\tmaxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n\t\t\twidth: 250,\n\t\t},\n\t},\n};\n\ntype Props = {\n\tvalue: number[];\n\tonChange: Function;\n\tuserIdForDelete: number | null;\n\tsetprofileError: (err: string) => void;\n};\n\nexport const ProfilesPicker = ({\n\tvalue,\n\tonChange,\n\tuserIdForDelete,\n\tsetprofileError,\n}: Props) => {\n\tconst classes = useStyles();\n\tconst theme = useTheme();\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [profiles, setProfiles] = useState<Profile[]>([]);\n\n\tuseEffect(() => {\n\t\tlet canceled = false;\n\t\tsetIsLoading(true);\n\t\tgetProfiles()\n\t\t\t.then((res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tconst profilesData = get(res, \"data.tables[0].rows\", null);\n\t\t\t\t\tif (profilesData) {\n\t\t\t\t\t\tif (canceled) return;\n\t\t\t\t\t\tsetProfiles(profilesData);\n\t\t\t\t\t}\n\t\t\t\t} else setprofileError(res.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tif (canceled) return;\n\t\t\t\tsetIsLoading(false);\n\t\t\t});\n\t\treturn () => {\n\t\t\tcanceled = true;\n\t\t};\n\t}, []);\n\n\tfunction getProfileNameById(profileId: number) {\n\t\treturn (\n\t\t\tprofiles\n\t\t\t\t.find((p) => p.ProfileId === profileId)\n\t\t\t\t?.ProfileName.replaceAll(\"Profile\", \"\") || \"\"\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t{!isLoading && profiles.length ? (\n\t\t\t\t<FormControl\n\t\t\t\t\tclassName={classes.formControl}\n\t\t\t\t\tdisabled={!!userIdForDelete}\n\t\t\t\t>\n\t\t\t\t\t<InputLabel\n\t\t\t\t\t\tid=\"demo-mutiple-chip-label\"\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tvalue.length\n\t\t\t\t\t\t\t\t? { display: \"flex\", alignItems: \"center\" }\n\t\t\t\t\t\t\t\t: { display: \"flex\", alignItems: \"center\", marginTop: 10 }\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\tProfiles\n\t\t\t\t\t</InputLabel>\n\t\t\t\t\t<Select\n\t\t\t\t\t\tautoWidth={true}\n\t\t\t\t\t\tlabelId=\"demo-mutiple-chip-label\"\n\t\t\t\t\t\tid=\"demo-mutiple-chip\"\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={onChange as any}\n\t\t\t\t\t\tinput={<Input id=\"select-multiple-chip\" />}\n\t\t\t\t\t\trenderValue={(selected) => (\n\t\t\t\t\t\t\t<div className={classes.chips}>\n\t\t\t\t\t\t\t\t{(selected as number[]).map((profileId) => (\n\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\tkey={`selected-profile-${profileId}`}\n\t\t\t\t\t\t\t\t\t\tlabel={getProfileNameById(profileId)}\n\t\t\t\t\t\t\t\t\t\tclassName={classes.chip}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tMenuProps={MenuProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t{profiles.map((profile) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tkey={`profile-${profile.ProfileId}`}\n\t\t\t\t\t\t\t\tvalue={profile.ProfileId}\n\t\t\t\t\t\t\t\tstyle={getStyles(profile.ProfileId, profiles, theme)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{profile.ProfileName.replaceAll(\"Profile\", \"\")}\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Select>\n\t\t\t\t</FormControl>\n\t\t\t) : (\n\t\t\t\t<></>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { User } from \"./User\";\n\nexport const INITIAL_VALUES: User = {\n\tUserId: null,\n\tUserName: \"\",\n\tFirstName: \"\",\n\tLastName: \"\",\n\tAuthTypeId: 1,\n\tIsActive: true,\n\tLastLogin: null,\n\tProfilesId: [],\n\tProfiles: [],\n};\n","// @flow\nimport * as React from \"react\";\nimport {useEffect, useMemo, useState} from \"react\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport Select from \"@material-ui/core/Select\";\nimport Input from \"@material-ui/core/Input\";\nimport Chip from \"@material-ui/core/Chip\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport {getAuthTypes} from \"../../repositories/UsersRepository\";\nimport {get} from \"lodash-es\";\nimport {makeStyles, Theme, useTheme} from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\t\"& .MuiSelect-select\": {\n\t\t\tminHeight: \"40px\",\n\t\t},\n\t},\n\tformControl: {\n\t\twidth: \"100%\",\n\t\tmarginTop: 8,\n\t},\n\tchips: {\n\t\tdisplay: \"flex\",\n\t\tflexWrap: \"wrap\",\n\t},\n\tchip: {\n\t\tmargin: 2,\n\t},\n\tnoLabel: {\n\t\tmarginTop: theme.spacing(3),\n\t},\n}));\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n\tPaperProps: {\n\t\tstyle: {\n\t\t\tmaxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n\t\t\twidth: 250,\n\t\t},\n\t},\n};\n\ntype Props = {\n\tvalue: number | null;\n\tonChange: (val: number) => void;\n};\nexport const AuthTypeSelector = ({ value, onChange }: Props) => {\n\tconst classes = useStyles();\n\tconst [authTypes, setAuthTypes] = useState<AuthType[]>([]);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst theme = useTheme();\n\tconst [error, setError] = useState(\"\");\n\n\tconst getStyles = (\n\t\tAuthTypeId: number,\n\t\tauthTypes: AuthType[],\n\t\ttheme: Theme,\n\t) => {\n\t\treturn {\n\t\t\tfontWeight: !!authTypes.find((p) => p.AuthTypeId === AuthTypeId)\n\t\t\t\t? theme.typography.fontWeightRegular\n\t\t\t\t: theme.typography.fontWeightMedium,\n\t\t};\n\t};\n\n\tfunction getAuthNameById(AuthTypeId: number) {\n\t\treturn authTypes.find((p) => p.AuthTypeId === AuthTypeId)?.Name || \"\";\n\t}\n\n\tconst selectedAuthTypeName = useMemo(() => {\n\t\treturn (\n\t\t\tauthTypes.find((authType) => authType.AuthTypeId === value)?.Name ||\n\t\t\t\"Empty\"\n\t\t);\n\t}, [authTypes, value]);\n\n\tuseEffect(() => {\n\t\tsetIsLoading(true);\n\t\tgetAuthTypes().then((resp) => {\n\t\t\tif (resp.ok) {\n\t\t\t\tsetAuthTypes(get(resp, \"data.tables[0].rows\", []));\n\t\t\t\tsetIsLoading(false);\n\t\t\t} else {\n\t\t\t\tsetIsLoading(false);\n\t\t\t\tsetError(resp.message);\n\t\t\t}\n\t\t});\n\t}, []);\n\n\treturn (\n\t\t<div className={classes.root}>\n\t\t\t{!isLoading && authTypes.length ? (\n\t\t\t\t<FormControl className={classes.formControl}>\n\t\t\t\t\t<InputLabel id=\"demo-mutiple-chip-label\">Auth type</InputLabel>\n\t\t\t\t\t<Select\n\t\t\t\t\t\tautoWidth={true}\n\t\t\t\t\t\tlabelId=\"demo-mutiple-chip-label\"\n\t\t\t\t\t\tid=\"demo-mutiple-chip\"\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tstyle={{ padding: 0 }}\n\t\t\t\t\t\tonChange={onChange as any}\n\t\t\t\t\t\tinput={<Input id=\"select-multiple-chip\" />}\n\t\t\t\t\t\trenderValue={(selected) => (\n\t\t\t\t\t\t\t<div className={classes.chips}>\n\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\tkey={`selected-authType-${selected}`}\n\t\t\t\t\t\t\t\t\tlabel={selectedAuthTypeName}\n\t\t\t\t\t\t\t\t\tclassName={classes.chip}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tMenuProps={MenuProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t{authTypes.map((authType) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tkey={`auth-${authType.AuthTypeId}`}\n\t\t\t\t\t\t\t\tvalue={authType.AuthTypeId}\n\t\t\t\t\t\t\t\tstyle={getStyles(authType.AuthTypeId, authTypes, theme)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{authType.Name}\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Select>\n\t\t\t\t</FormControl>\n\t\t\t) : (\n\t\t\t\t<></>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import * as React from \"react\";\nimport {useEffect, useState} from \"react\";\nimport {User} from \"../../models/User\";\nimport {Modal} from \"react-bootstrap\";\nimport {Controller, SubmitHandler, useForm} from \"react-hook-form\";\nimport {CircularProgress, TextField} from \"@material-ui/core\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport {makeStyles, Theme} from \"@material-ui/core/styles\";\nimport {ProfilesPicker} from \"../common/ProfilesPicker\";\nimport {setPassword, setProfilesToUser, upsertUser,} from \"../../repositories/UsersRepository\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport {INITIAL_VALUES} from \"../../models/FormInitialValues\";\nimport {Alert} from \"../../../../../controls/alert\";\nimport {AuthTypeSelector} from \"../common/AuthTypeSelector\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tcheckbox: {\n\t\tuserSelect: \"none\",\n\t},\n\ttitle: {\n\t\tfontSize: 15,\n\t},\n\tchip: {\n\t\tmargin: 2,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n}));\n\ntype Props = {\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const CreateUser = ({ show, onHide }: Props) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst [profileError, setprofileError] = useState(\"\");\n\n\tconst classes = useStyles();\n\n\tconst {\n\t\tregister,\n\t\tcontrol,\n\t\thandleSubmit,\n\t\treset,\n\t\twatch,\n\t\tformState: { errors },\n\t} = useForm<User>({ defaultValues: INITIAL_VALUES });\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(false);\n\t};\n\n\tconst UserName = watch(\"UserName\");\n\n\tconst onSubmit: SubmitHandler<User> = async (data: any) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst upsertUserResp = await upsertUser(data);\n\t\tif (upsertUserResp.ok) {\n\t\t\tconst userId = upsertUserResp.data.tables[0].rows[0].UserId;\n\t\t\tconst setPasswordResp = await setPassword(userId, data.UserName);\n\t\t\tconst setProfilesToUserResp = await setProfilesToUser(\n\t\t\t\tuserId,\n\t\t\t\tdata.ProfilesId as number[],\n\t\t\t);\n\t\t\tif (setProfilesToUserResp.ok) {\n\t\t\t\tsetIsSubmitLoading(false);\n\t\t\t\tsetOpen(true);\n\t\t\t\tonHide(true);\n\t\t\t} else setError(setProfilesToUserResp.message);\n\t\t} else setError(upsertUserResp.message);\n\t};\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<>\n\t\t\t<Modal\n\t\t\t\t{...{ show }}\n\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\tsize=\"lg\"\n\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tNew User\n\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t<Modal.Body style={{ padding: \"15px 30px\" }}>\n\t\t\t\t\t\t<Grid container spacing={1}>\n\t\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t{...register(\"UserName\", { required: true })}\n\t\t\t\t\t\t\t\t\tlabel=\"Username\"\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\terror={!!errors.UserName}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{errors.UserName?.type === \"required\" && (\n\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\tUser name is required\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\tlabel=\"Password\"\n\t\t\t\t\t\t\t\t\tvalue={UserName}\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\terror={!!errors.UserName}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t{...register(\"FirstName\", { required: true })}\n\t\t\t\t\t\t\t\t\tlabel=\"First name\"\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\terror={!!errors.FirstName}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{errors.FirstName?.type === \"required\" && (\n\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\tFirst name is required\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t{...register(\"LastName\", { required: true })}\n\t\t\t\t\t\t\t\t\tlabel=\"Last name\"\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\terror={!!errors.FirstName}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{errors.LastName?.type === \"required\" && (\n\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\tLast name is required\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t{/* <Grid item container xs={12} spacing={1}> */}\n\t\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\tname=\"ProfilesId\"\n\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\trules={{ required: true }}\n\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t<ProfilesPicker\n\t\t\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t\t\t\tvalue={value as number[]}\n\t\t\t\t\t\t\t\t\t\t\tuserIdForDelete={null}\n\t\t\t\t\t\t\t\t\t\t\tsetprofileError={setprofileError}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{errors.ProfilesId && (\n\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t{\"Select a profile(s)\"}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\tname=\"AuthTypeId\"\n\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t<AuthTypeSelector value={value} onChange={onChange} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item xs={12} md={6} style={{ marginTop: \"5px\" }}>\n\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\tname=\"IsActive\"\n\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\t\tclassName={classes.checkbox}\n\t\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsActive\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Active\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{/* </Grid> */}\n\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t<Grid item md={3} xs={12}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\tisSubmitLoading && <CircularProgress size=\"1rem\" />\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={isSubmitLoading}\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Modal.Footer>\n\t\t\t\t</form>\n\t\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t\t<ErrorModal error={profileError} onHide={() => setprofileError(\"\")} />\n\t\t\t</Modal>\n\t\t\t<Snackbar open={open} autoHideDuration={2500} onClose={handleClose}>\n\t\t\t\t<Alert severity=\"success\" onClose={handleClose}>\n\t\t\t\t\tThe user was created successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { User } from \"../../models/User\";\nimport { Modal } from \"react-bootstrap\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { CircularProgress, TextField } from \"@material-ui/core\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\nimport { ProfilesPicker } from \"../common/ProfilesPicker\";\nimport {\n\tgetDataUser,\n\tsetProfilesToUser,\n\tupsertUser,\n} from \"../../repositories/UsersRepository\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { AuthTypeSelector } from \"../common/AuthTypeSelector\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tcheckbox: {\n\t\tuserSelect: \"none\",\n\t},\n\tmodalBody: {},\n\ttitle: {\n\t\tfontSize: 15,\n\t},\n\tchip: {\n\t\tmargin: 2,\n\t},\n\terrorLabel: {\n\t\tfontSize: 12,\n\t\tcolor: \"#F44336\",\n\t},\n}));\n\ntype Props = {\n\tuserIdForEdit: number | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const EditUser = ({ userIdForEdit, show, onHide }: Props) => {\n\tconst classes = useStyles();\n\tconst [open, setOpen] = useState(false);\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst [profileError, setprofileError] = useState(\"\");\n\n\tconst {\n\t\tregister,\n\t\tcontrol,\n\t\tsetValue,\n\t\thandleSubmit,\n\t\tformState: { errors },\n\t} = useForm<User>({ defaultValues: INITIAL_VALUES });\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(false);\n\t};\n\n\tconst onSubmit: SubmitHandler<User> = async (data) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst res = await upsertUser(data);\n\t\tif (res.ok) {\n\t\t\tconst userId = res.data.tables[0].rows[0].UserId;\n\t\t\tconst resp = await setProfilesToUser(userId, data.ProfilesId as number[]);\n\t\t\tif (resp.ok) {\n\t\t\t\tonHide(true);\n\t\t\t\tsetOpen(true);\n\t\t\t} else setError(resp.message);\n\t\t} else {\n\t\t\tsetError(res.message);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\tsetIsSubmitLoading(false);\n\t\t\t(async () => {\n\t\t\t\tsetIsLoading(true);\n\t\t\t\tconst userResponse = await getDataUser(userIdForEdit);\n\t\t\t\tif (userResponse.ok) {\n\t\t\t\t\tconst userSelected = userResponse.data.tables[0].rows[0];\n\t\t\t\t\tif (userSelected) {\n\t\t\t\t\t\tconst profilesIds = userSelected!.ProfilesId?.split(\",\") || [];\n\t\t\t\t\t\tsetValue(\"UserId\", userSelected!.UserId);\n\t\t\t\t\t\tsetValue(\"UserName\", userSelected!.UserName);\n\t\t\t\t\t\tsetValue(\"FirstName\", userSelected!.FirstName);\n\t\t\t\t\t\tsetValue(\"LastName\", userSelected!.LastName);\n\t\t\t\t\t\tsetValue(\"AuthTypeId\", userSelected!.AuthTypeId);\n\t\t\t\t\t\tsetValue(\"IsActive\", userSelected!.IsActive);\n\t\t\t\t\t\tsetValue(\"LastLogin\", userSelected!.LastLogin);\n\n\t\t\t\t\t\tsetValue(\n\t\t\t\t\t\t\t\"ProfilesId\",\n\t\t\t\t\t\t\tprofilesIds.map((pId: string) => parseInt(pId)),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t\t}\n\t\t\t\t} else setError(userResponse.message);\n\t\t\t})();\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<>\n\t\t\t<Modal\n\t\t\t\t{...{ show }}\n\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\tsize=\"lg\"\n\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tUSER FORM\n\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t<Modal.Body\n\t\t\t\t\t\tclassName={classes.modalBody}\n\t\t\t\t\t\tstyle={{ padding: \"15px 30px\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isLoading && (\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\tstyle={{ minHeight: \"300px\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<LazyLoading />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!isLoading && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\t\t\tclassName={classes.title}\n\t\t\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tUSER\n\t\t\t\t\t\t\t\t</Modal.Title>\n\n\t\t\t\t\t\t\t\t<Grid container spacing={1}>\n\t\t\t\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t{...register(\"UserName\", { required: true })}\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Username\"\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\terror={!!errors.UserName}\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.UserName?.type === \"required\" && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tUser name is required\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t{...register(\"FirstName\", { required: true })}\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"First name\"\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\terror={!!errors.FirstName}\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.FirstName?.type === \"required\" && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tFirst name is required\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t{...register(\"LastName\", { required: true })}\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Last name\"\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\terror={!!errors.FirstName}\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.LastName?.type === \"required\" && (\n\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\tLast name is required\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\tspacing={3}\n\t\t\t\t\t\t\t\t\t\tstyle={{ margin: 0 }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} md={6} style={{ padding: \"0 15px 0 0\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"ProfilesId\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trules={{ required: true }}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ProfilesPicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value as number[]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserIdForDelete={null}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetprofileError={setprofileError}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{errors.ProfilesId && (\n\t\t\t\t\t\t\t\t\t\t\t\t<span className={classes.errorLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\"Select a profile(s)\"}\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} md={6} style={{ padding: \"0 0 0 5px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"AuthTypeId\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<AuthTypeSelector value={value} onChange={onChange} />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsActive\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.checkbox}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsActive\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Active\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\t\tisSubmitLoading ? <CircularProgress size=\"1rem\" /> : <></>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={isSubmitLoading}\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Modal.Footer>\n\t\t\t\t</form>\n\t\t\t</Modal>\n\t\t\t<Snackbar open={open} autoHideDuration={2500} onClose={handleClose}>\n\t\t\t\t<Alert severity=\"info\" onClose={handleClose}>\n\t\t\t\t\tThe user was edited successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<ErrorModal error={profileError} onHide={() => setprofileError(\"\")} />\n\t\t</>\n\t);\n};\n","import React, {useEffect, useState} from \"react\";\nimport {Controller, useForm} from \"react-hook-form\";\nimport {deleteUser, getDataUser} from \"../../repositories/UsersRepository\";\nimport {User} from \"../../models/User\";\nimport Button from \"@material-ui/core/Button\";\nimport {Modal} from \"react-bootstrap\";\nimport {CircularProgress, TextField} from \"@material-ui/core\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport Grid from \"@material-ui/core/Grid\";\nimport {INITIAL_VALUES} from \"../../models/FormInitialValues\";\nimport {ProfilesPicker} from \"../common/ProfilesPicker\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport {LazyLoading} from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport {Alert} from \"../../../../../controls/alert\";\nimport {AuthTypeSelector} from \"../common/AuthTypeSelector\";\nimport {ErrorModal} from \"../../../../../components/modals/error-modal\";\n\ntype Props = {\n\tuserIdForDelete: number | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const DeleteUser = ({ userIdForDelete, show, onHide }: Props) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [deleteAlert, setDeleteAlert] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst [profileError, setprofileError] = useState(\"\");\n\n\tconst { register, control, setValue } = useForm<User>({\n\t\tdefaultValues: INITIAL_VALUES,\n\t});\n\n\tconst handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(false);\n\t\tsetDeleteAlert(false);\n\t};\n\n\tconst onSubmit = async (userSelected: number | null) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst deleteUserResp = await deleteUser(userSelected as number);\n\t\tif (deleteUserResp.ok) {\n\t\t\tsetOpen(true);\n\t\t\tonHide(true);\n\t\t\tsetDeleteAlert(false);\n\t\t\tsetIsSubmitLoading(false);\n\t\t} else {\n\t\t\tsetError(deleteUserResp.message);\n\t\t\tsetIsSubmitLoading(false);\n\t\t\tsetDeleteAlert(false);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\tsetIsSubmitLoading(false);\n\t\t\t(async () => {\n\t\t\t\tsetIsLoading(true);\n\t\t\t\tconst userResponse = await getDataUser(userIdForDelete);\n\t\t\t\tif (userResponse.ok) {\n\t\t\t\t\tconst userSelected = userResponse.data.tables[0].rows[0];\n\t\t\t\t\tif (userSelected) {\n\t\t\t\t\t\tconst profilesIds = userSelected!.ProfilesId?.split(\",\") || [];\n\n\t\t\t\t\t\tsetValue(\"UserId\", userSelected!.UserId);\n\t\t\t\t\t\tsetValue(\"UserName\", userSelected!.UserName);\n\t\t\t\t\t\tsetValue(\"FirstName\", userSelected!.FirstName);\n\t\t\t\t\t\tsetValue(\"LastName\", userSelected!.LastName);\n\t\t\t\t\t\tsetValue(\"AuthTypeId\", userSelected!.AuthTypeId);\n\t\t\t\t\t\tsetValue(\"IsActive\", userSelected!.IsActive);\n\t\t\t\t\t\tsetValue(\"LastLogin\", userSelected!.LastLogin);\n\t\t\t\t\t\tsetValue(\n\t\t\t\t\t\t\t\"ProfilesId\",\n\t\t\t\t\t\t\tprofilesIds.map((pId: string) => parseInt(pId)),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t\t}\n\t\t\t\t} else setError(userResponse.message);\n\t\t\t})();\n\t\t}\n\t}, [show]);\n\n\treturn (\n\t\t<>\n\t\t\t<Modal\n\t\t\t\t{...{ show }}\n\t\t\t\tonHide={() => onHide(false)}\n\t\t\t\tsize=\"lg\"\n\t\t\t\taria-labelledby=\"contained-modal-title-vcenter\"\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t<form>\n\t\t\t\t\t<Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n\t\t\t\t\t\t<Modal.Title\n\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 0\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tUSER\n\t\t\t\t\t\t</Modal.Title>\n\t\t\t\t\t</Modal.Header>\n\t\t\t\t\t<Modal.Body style={{ padding: \"15px 30px\" }}>\n\t\t\t\t\t\t{isLoading && (\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\tstyle={{ minHeight: \"300px\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<LazyLoading />\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!isLoading && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Grid container spacing={1}>\n\t\t\t\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t{...register(\"UserName\", { required: true })}\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Username\"\n\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t{...register(\"FirstName\", { required: true })}\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"First name\"\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\t{...register(\"LastName\", { required: true })}\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Last name\"\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item container xs={12} spacing={3}>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"ProfilesId\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trules={{ required: true }}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field: { onChange, value } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ProfilesPicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={value as number[]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserIdForDelete={null}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetprofileError={setprofileError}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"AuthTypeId\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field: { value, onChange } }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<AuthTypeSelector value={value} onChange={onChange} />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsActive\"\n\t\t\t\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"IsActive\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Active\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Modal.Body>\n\t\t\t\t\t<Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n\t\t\t\t\t\t<Grid container spacing={2} justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\t\t\tonClick={() => onHide(false)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tCANCEL\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item md={3} xs={12} style={{ margin: 0 }}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\t\tonClick={() => setDeleteAlert(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tDELETE\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Modal.Footer>\n\t\t\t\t</form>\n\t\t\t</Modal>\n\t\t\t<Snackbar open={open} autoHideDuration={2500} onClose={handleClose}>\n\t\t\t\t<Alert severity=\"warning\" onClose={handleClose}>\n\t\t\t\t\tThe user was deleted successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t\t<Dialog\n\t\t\t\topen={deleteAlert}\n\t\t\t\tonClose={() => handleClose()}\n\t\t\t\taria-labelledby=\"responsive-dialog-title\"\n\t\t\t>\n\t\t\t\t<DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<DialogContentText style={{ padding: 0, margin: 0 }}>\n\t\t\t\t\t\tBe careful, once deleted you will not be able to recover this user,\n\t\t\t\t\t\tare you sure you want to delete it?\n\t\t\t\t\t</DialogContentText>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions style={{ padding: \"16px 24px\" }}>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={() => setDeleteAlert(false)}\n\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t>\n\t\t\t\t\t\tCANCEL\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tstartIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />}\n\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\tonClick={() => onSubmit(userIdForDelete)}\n\t\t\t\t\t>\n\t\t\t\t\t\tDelete\n\t\t\t\t\t</Button>\n\t\t\t\t</DialogActions>\n\t\t\t</Dialog>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<ErrorModal error={profileError} onHide={() => setprofileError(\"\")} />\n\t\t</>\n\t);\n};\n","import React, { useState } from \"react\";\nimport { useUsersContext } from \"../../../context/UsersContext\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport LockOutlinedIcon from \"@material-ui/icons/LockOutlined\";\nimport { ColDef, EditableCallbackParams } from \"ag-grid-community\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tbuttons: {\n\t\topacity: 0,\n\t\ttransition: \"opacity 0.1s ease-in-out\",\n\t\t\".ag-row-hover &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-focus &\": {\n\t\t\topacity: 1,\n\t\t},\n\t\t\".ag-row-selected &\": {\n\t\t\topacity: 1,\n\t\t},\n\t},\n}));\n\ntype Props = {\n\tsetOpenModalEditDataUser: Function;\n\tsetOpenModalDeleteUser: Function;\n\tsetUserIdForEdit: Function;\n\tsetUserIdForDelete: Function;\n\tsetOpenModalChangePasswordd: Function;\n\tsetUserForPasswordChange: Function;\n};\n\nexport const useTableData = ({\n\tsetUserIdForEdit,\n\tsetOpenModalEditDataUser,\n\tsetUserIdForDelete,\n\tsetOpenModalDeleteUser,\n\tsetOpenModalChangePasswordd,\n\tsetUserForPasswordChange,\n}: Props) => {\n\tconst { state } = useUsersContext();\n\tconst classes = useStyles();\n\n\tconst onActionsClick = (\n\t\te: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n\t\tparams: EditableCallbackParams,\n\t) => {\n\t\t(params.api as any).contextMenuFactory.showMenu(\n\t\t\tparams.node,\n\t\t\tparams.column,\n\t\t\tundefined,\n\t\t\te,\n\t\t);\n\t};\n\n\tconst [columnDefs] = useState<ColDef[]>([\n\t\t{\n\t\t\tfield: \"UserId\",\n\t\t\theaderName: \" \",\n\t\t\tsortable: true,\n\t\t\tminWidth: 40,\n\t\t\tmaxWidth: 40,\n\t\t},\n\t\t{\n\t\t\tfield: \"UserName\",\n\t\t\theaderName: \"UserName\",\n\t\t\tsortable: false,\n\t\t\tflex: 1,\n\t\t\tminWidth: 130,\n\t\t\tmaxWidth: 130,\n\t\t},\n\t\t{\n\t\t\tfield: \"FirstName\",\n\t\t\theaderName: \"First name\",\n\t\t\tsortable: false,\n\t\t\tflex: 1,\n\t\t\tminWidth: 130,\n\t\t\tmaxWidth: 130,\n\t\t},\n\t\t{\n\t\t\tfield: \"LastName\",\n\t\t\theaderName: \"Last name\",\n\t\t\tsortable: false,\n\t\t\tflex: 1,\n\t\t\tminWidth: 130,\n\t\t\tmaxWidth: 130,\n\t\t},\n\t\t{\n\t\t\tfield: \"Profiles\",\n\t\t\theaderName: \"Profiles\",\n\t\t\tsortable: false,\n\t\t\tflex: 2,\n\t\t\tminWidth: 220,\n\t\t},\n\t\t{\n\t\t\tcellRenderer: (params: EditableCallbackParams) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={classes.buttons}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\t\tsetUserForPasswordChange(params.data.UserId);\n\t\t\t\t\t\t\t\t\t\tsetOpenModalChangePasswordd(true);\n\t\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<LockOutlinedIcon style={{ height: \"auto\" }} color=\"primary\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\t\tsetUserIdForEdit(params.data.UserId);\n\t\t\t\t\t\t\t\t\t\tsetOpenModalEditDataUser(true);\n\t\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<EditIcon style={{ height: \"auto\" }} color=\"primary\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\t\t\t\tsetUserIdForDelete(params.data.UserId);\n\t\t\t\t\t\t\t\t\t\tsetOpenModalDeleteUser(true);\n\t\t\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DeleteIcon style={{ height: \"auto\" }} color=\"secondary\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button style={{}} onClick={(e) => onActionsClick(e, params)}>\n\t\t\t\t\t\t\t\t<FormatListBulletedSharpIcon\n\t\t\t\t\t\t\t\t\tstyle={{ height: \"auto\" }}\n\t\t\t\t\t\t\t\t\tcolor=\"action\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t);\n\t\t\t},\n\t\t\twrapText: false,\n\t\t\tautoHeight: false,\n\t\t\twrapHeaderText: false,\n\t\t\theaderName: \" \",\n\t\t\tsortable: false,\n\t\t\tflex: 1,\n\t\t\tminWidth: 260,\n\t\t\tmaxWidth: 260,\n\t\t},\n\t]);\n\n\tconst rows = state.users.map(\n\t\t({ UserId, UserName, LastName, FirstName, Profiles }) => ({\n\t\t\tUserId,\n\t\t\tUserName,\n\t\t\tLastName,\n\t\t\tFirstName,\n\t\t\tProfiles: (Profiles as string)?.replaceAll(\"Profile\", \"\"),\n\t\t\tid: UserId,\n\t\t}),\n\t);\n\treturn { rows, columnDefs };\n};\n","// @flow\nimport {Grid, TextField} from \"@material-ui/core\";\nimport * as React from \"react\";\nimport {useCallback, useEffect, useState} from \"react\";\nimport Modal from \"../../../../../components/modals/modal.mesf\";\nimport Button from \"@material-ui/core/Button\";\nimport {isEmpty} from \"lodash-es\";\nimport {setPassword} from \"../../repositories/UsersRepository\";\n\ntype Props = {\n\tshow: boolean;\n\tuserId: number | null;\n\tonHide: (shouldUpdate: boolean) => void;\n};\nexport const ChangePassword = ({ show, userId, onHide }: Props) => {\n\tconst [password, setPasswordText] = useState(\"\");\n\tconst [isDirty, setIsDirty] = useState(false);\n\n\tconst handleSubmit = useCallback(\n\t\tasync (ev) => {\n\t\t\tev.preventDefault();\n\t\t\tconst resp = await setPassword(userId!, password);\n\t\t\tonHide(true);\n\t\t},\n\t\t[userId, password],\n\t);\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\tsetPasswordText(\"\");\n\t\t\tsetIsDirty(false);\n\t\t}\n\t}, [show]);\n\n\tif (userId) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={`Change password`}\n\t\t\t\t\topen={show}\n\t\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\t\tmaxWidth=\"lg\"\n\t\t\t\t>\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t<Modal.Content style={{ padding: \"6px 16px 16px\" }}>\n\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit}>\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"New Password\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={password}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(el) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsDirty(true);\n\t\t\t\t\t\t\t\t\t\t\t\tsetPasswordText(el.target.value);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\terror={isEmpty(password) && isDirty}\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t// margin=\"dense\"\n\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ marginTop: 15 }}>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\ttype={\"submit\"}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tAPPLY\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t</Modal.Content>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Modal>\n\t\t\t</>\n\t\t);\n\t} else {\n\t\treturn <></>;\n\t}\n};\n","import * as React from \"react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport {\n\tColDef,\n\tGetContextMenuItemsParams,\n\tGridApi,\n\tMenuItemDef,\n} from \"ag-grid-community\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\nimport { CreateUser } from \"../Create/CreateUser\";\nimport { EditUser } from \"../EditUser/EditUser\";\nimport { DeleteUser } from \"../Delete/DeleteUser\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { useTableData } from \"./customHooks/useTableData\";\nimport { ChangePassword } from \"../ChangePassword/ChangePassword\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { User } from \"../../models/User\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\troot: {\n\t\t\"& .ag-icon-menu\": {\n\t\t\tdisplay: \"none\",\n\t\t},\n\t\t\"& .ag-header-cell-label\": {\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\n\t\t\"& .ag-header-cell-text\": {\n\t\t\ttextAlign: \"center !important\",\n\t\t},\n\n\t\t\"& .ag-checkbox-input-wrapper\": {\n\t\t\tmargin: \"0 10px\",\n\t\t},\n\t\t\"& .ag-cell\": {\n\t\t\talignItems: \"center\",\n\t\t\tpadding: \"0 !important\",\n\t\t\tborder: \"unset !important\",\n\t\t},\n\t\t\"& .ag-header-cell\": {\n\t\t\tpadding: \"0px !important\",\n\t\t\ttextAlign: \"center !important\",\n\t\t\tfontSize: 10,\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\t\t\"& .ag-cell-wrapper\": {\n\t\t\ttextAlign: \"center\",\n\t\t},\n\t\t\"& .ag-menu-option\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t\t\"& .MuiDataGrid-row\": {\n\t\t\tcursor: \"pointer\",\n\t\t},\n\t\t\"& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption\": {\n\t\t\tfontWeight: \"bold\",\n\t\t\tfontSize: \"12px\",\n\t\t},\n\t\t\"& .MuiDataGrid-columnHeaderTitleContainer\": {\n\t\t\tpadding: \"0\",\n\t\t},\n\t\t\"& .MuiDataGrid-cell--textLeft\": {\n\t\t\tfontSize: \"12px\",\n\t\t},\n\t},\n\trelative: {\n\t\tposition: \"relative\",\n\t},\n\ttextfield: {\n\t\tmargin: theme.spacing(2),\n\t},\n\tbtnModal: {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"flex-end\",\n\t},\n\tdataTable: {\n\t\tpadding: theme.spacing(1, 2),\n\t},\n}));\n\ntype Props = {\n\tgetUsersFromAPI: Function;\n\tisLoading: boolean;\n};\nexport const TableUsers = ({ getUsersFromAPI, isLoading }: Props) => {\n\tconst gridStyle = useMemo(() => ({ height: \"100%\", width: \"100%\" }), []);\n\tconst [openModalCreate, setOpenModalCreate] = useState(false);\n\tconst [openModalEditDataUser, setOpenModalEditDataUser] = useState(false);\n\tconst [openModalDeleteUser, setOpenModalDeleteUser] = useState(false);\n\tconst [openModalChangePassword, setOpenModalChangePasswordd] =\n\t\tuseState(false);\n\n\tconst classes = useStyles();\n\n\tconst [userIdForEdit, setUserIdForEdit] = useState<number | null>(null);\n\tconst [userIdForDelete, setUserIdForDelete] = useState<number | null>(null);\n\tconst [userForPasswordChange, setUserForPasswordChange] = useState<\n\t\tnumber | null\n\t>(null);\n\tconst [gridApi, setGridApi] = useState<GridApi | null>(null);\n\n\tconst loadingOverlayComponent = useMemo<any>(() => {\n\t\treturn LazyLoading;\n\t}, []);\n\n\tconst { rows, columnDefs } = useTableData({\n\t\tsetUserIdForEdit,\n\t\tsetUserIdForDelete,\n\t\tsetOpenModalEditDataUser,\n\t\tsetOpenModalDeleteUser,\n\t\tsetUserForPasswordChange,\n\t\tsetOpenModalChangePasswordd,\n\t});\n\n\tconst defaultColDef = useMemo<ColDef>(() => {\n\t\treturn {\n\t\t\tsortable: true,\n\t\t\twrapText: true,\n\t\t\tautoHeight: true,\n\t\t\twrapHeaderText: true,\n\t\t};\n\t}, []);\n\n\tconst getContextMenuItems = React.useCallback(\n\t\t(params: GetContextMenuItemsParams): (string | MenuItemDef)[] => {\n\t\t\tconst data: User = params.node?.data;\n\t\t\tconst result: (string | MenuItemDef)[] = [];\n\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"New\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetOpenModalCreate(!openModalCreate);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Edit User\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetUserIdForEdit(data?.UserId);\n\t\t\t\t\t\tsetOpenModalEditDataUser(true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Remove User\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetUserIdForDelete(data?.UserId);\n\t\t\t\t\t\tsetOpenModalDeleteUser(true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (data) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: \"Change Password\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetUserForPasswordChange(data?.UserId);\n\t\t\t\t\t\tsetOpenModalChangePasswordd(true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst addNewUser: (string | MenuItemDef)[] = [];\n\n\t\t\tif (!data) {\n\t\t\t\taddNewUser.push({\n\t\t\t\t\tname: \"New User\",\n\t\t\t\t\taction: () => {\n\t\t\t\t\t\tsetOpenModalCreate(!openModalCreate);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn data ? result : addNewUser;\n\t\t},\n\t\t[rows],\n\t);\n\n\tuseEffect(() => {\n\t\tif (isLoading) {\n\t\t\tgridApi?.showLoadingOverlay();\n\t\t} else {\n\t\t\tgridApi?.hideOverlay();\n\t\t}\n\t}, [isLoading, rows, gridApi]);\n\n\treturn (\n\t\t<Grid container justifyContent=\"center\">\n\t\t\t<Grid item md={12} xs={12} style={{ padding: \"0 15px\" }}>\n\t\t\t\t<Typography\n\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\tstyle={{ margin: \"20px 0 20px\", fontWeight: 600 }}\n\t\t\t\t>\n\t\t\t\t\tUser Management\n\t\t\t\t</Typography>\n\t\t\t</Grid>\n\t\t\t<Grid\n\t\t\t\tcontainer\n\t\t\t\tjustifyContent=\"center\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<Grid\n\t\t\t\t\titem\n\t\t\t\t\tmd={12}\n\t\t\t\t\txs={12}\n\t\t\t\t\tstyle={{ padding: \"0 15px\" }}\n\t\t\t\t\tclassName={classes.relative}\n\t\t\t\t>\n\t\t\t\t\t<CreateUser\n\t\t\t\t\t\tshow={openModalCreate}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetOpenModalCreate(false);\n\t\t\t\t\t\t\tsetUserIdForEdit(null);\n\t\t\t\t\t\t\tif (shouldUpdate) getUsersFromAPI();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<EditUser\n\t\t\t\t\t\tshow={openModalEditDataUser}\n\t\t\t\t\t\tuserIdForEdit={userIdForEdit}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetOpenModalEditDataUser(false);\n\t\t\t\t\t\t\tsetUserIdForEdit(null);\n\t\t\t\t\t\t\tif (shouldUpdate) getUsersFromAPI();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<ChangePassword\n\t\t\t\t\t\tshow={openModalChangePassword}\n\t\t\t\t\t\tuserId={userForPasswordChange}\n\t\t\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\t\t\tsetOpenModalChangePasswordd(false);\n\t\t\t\t\t\t\tsetUserForPasswordChange(null);\n\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\tgetUsersFromAPI();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<DeleteUser\n\t\t\t\t\t\tshow={openModalDeleteUser}\n\t\t\t\t\t\tuserIdForDelete={userIdForDelete}\n\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\tsetOpenModalDeleteUser(false);\n\t\t\t\t\t\t\tsetUserIdForDelete(null);\n\t\t\t\t\t\t\tif (shouldUpdate) getUsersFromAPI();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\titem\n\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\txs={12}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: \"61vh\",\n\t\t\t\t\t\t\tborder: \"4px solid #ccc\",\n\t\t\t\t\t\t\tborderRadius: 10,\n\t\t\t\t\t\t\tpadding: 10,\n\t\t\t\t\t\t\tmargin: \"20px 0 10px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div style={gridStyle} className=\"ag-theme-alpine\">\n\t\t\t\t\t\t\t<AgGridReact\n\t\t\t\t\t\t\t\trowData={rows}\n\t\t\t\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\t\t\t\tdefaultColDef={defaultColDef}\n\t\t\t\t\t\t\t\trowHeight={38}\n\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\tloadingOverlayComponent={loadingOverlayComponent}\n\t\t\t\t\t\t\t\tanimateRows={true}\n\t\t\t\t\t\t\t\tgetContextMenuItems={(e: any) => getContextMenuItems(e)}\n\t\t\t\t\t\t\t\tpagination={true}\n\t\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\t\tonRowDoubleClicked={(event) => {\n\t\t\t\t\t\t\t\t\tsetUserIdForEdit(event.data.UserId);\n\t\t\t\t\t\t\t\t\tsetOpenModalEditDataUser(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonGridReady={(params) => setGridApi(params.api)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t<Grid item md={2} xs={12} className={classes.btnModal}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\tonClick={() => setOpenModalCreate(!openModalCreate)}\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tstyle={{ marginTop: \"10px\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tNew user\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Outlet } from \"react-router-dom\";\nimport { getUsers } from \"./repositories/UsersRepository\";\nimport { useUsersContext } from \"./context/UsersContext\";\nimport Paper from \"@material-ui/core/Paper\";\nimport { TableUsers } from \"./components/UsersDataTable/TableUsers\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { ErrorModal } from \"../../../components/modals/error-modal\";\n\ntype Props = {};\n\nexport const Users = (prop: Props) => {\n\tconst {\n\t\tactions: { setUsers },\n\t} = useUsersContext();\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState(\"\");\n\n\tconst getUsersFromAPI = async () => {\n\t\tsetIsLoading(true);\n\t\tconst resp = await getUsers();\n\t\tif (resp.ok) {\n\t\t\tsetUsers(resp.data.tables[0].rows);\n\t\t\tsetIsLoading(false);\n\t\t} else {\n\t\t\tsetError(resp.message);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tgetUsersFromAPI();\n\t}, []);\n\n\treturn (\n\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t<Grid item md={12} xs={12} style={{ margin: 0 }}>\n\t\t\t\t<Paper\n\t\t\t\t\televation={1}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tpadding: \"10px 0 20px\",\n\t\t\t\t\t\tborderRadius: \"0.75rem\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<TableUsers isLoading={isLoading} getUsersFromAPI={getUsersFromAPI} />\n\t\t\t\t</Paper>\n\t\t\t\t<Outlet />\n\t\t\t</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</Grid>\n\t);\n};\n","import * as React from \"react\";\nimport { UsersProvider } from \"./context/UsersContext\";\nimport { Users } from \"./UsersPage\";\n\ntype Props = {};\n\nconst UsersPage = (props: Props) => {\n\treturn (\n\t\t<UsersProvider>\n\t\t\t<Users />\n\t\t</UsersProvider>\n\t);\n};\n\nexport default UsersPage;\n","const CurrencyFormatter = new Intl.NumberFormat(\"en-US\", {\n\tstyle: \"currency\",\n\tcurrency: \"USD\",\n});\nconst NumberFormatter = new Intl.NumberFormat(\"en-US\", {\n\tstyle: \"currency\",\n\tcurrency: \"USD\",\n});\nconst IntegerFormatter = new Intl.NumberFormat(\"en-US\", {});\nconst DateTimeFormatter = new Intl.DateTimeFormat(\"en-US-u-hc-h23\", {\n\tyear: \"numeric\",\n\tmonth: \"2-digit\",\n\tday: \"2-digit\",\n\thour: \"numeric\",\n\tminute: \"numeric\",\n\tsecond: \"numeric\",\n\thour12: false,\n\t// timeZone: 'America/Los_Angeles'\n});\nconst DateFormatter = new Intl.DateTimeFormat(\"en-US\", {\n\tyear: \"numeric\",\n\tmonth: \"2-digit\",\n\tday: \"2-digit\",\n\t// timeZone: 'America/Los_Angeles'\n});\nconst TimeFormatter = new Intl.DateTimeFormat(\"en-US-u-hc-h23\", {\n\thour: \"2-digit\",\n\tminute: \"numeric\",\n\tsecond: \"numeric\",\n\thour12: false,\n\t// timeZone: 'America/Los_Angeles'\n});\nexport {\n\tCurrencyFormatter,\n\tNumberFormatter,\n\tIntegerFormatter,\n\tDateTimeFormatter,\n\tDateFormatter,\n\tTimeFormatter,\n};\n","import React from \"react\";\n\nconst getShiftStyle = (shift: string) => {\n\tif (shift === \"D\") {\n\t\treturn { color: \"#52a8b7\" };\n\t} else if (shift === \"N\") {\n\t\treturn { color: \"#A5A5A5\" };\n\t} else {\n\t\treturn {};\n\t}\n};\n\nconst getCrewStyle = (crew: string) => {\n\tif (crew === \"A\") {\n\t\treturn { color: \"#0070C0\" };\n\t} else if (crew === \"B\") {\n\t\treturn { color: \"#FFD24A\" };\n\t} else if (crew === \"C\") {\n\t\treturn { color: \"#FD8359\" };\n\t} else if (crew === \"D\") {\n\t\treturn { color: \"#00B050\" };\n\t} else {\n\t\treturn {};\n\t}\n};\nconst GetShiftColor = (props: any) => {\n\treturn (\n\t\t<React.Fragment>\n\t\t\t<i className=\"fas fa-square mr-2\" style={getShiftStyle(props.value)}></i>\n\t\t</React.Fragment>\n\t);\n};\nconst GetCrewColor = (props: any) => {\n\treturn (\n\t\t<React.Fragment>\n\t\t\t<i className=\"fas fa-square mr-2\" style={getCrewStyle(props.value)}></i>\n\t\t</React.Fragment>\n\t);\n};\n\nexport { getShiftStyle, getCrewStyle, GetShiftColor, GetCrewColor };\n","export class Configuration {\n\tpublic API_PROCEDURE_URL: string =\n\t\tdocument.getElementsByTagName(\"base\")[0].href + \"backend\";\n\tpublic API_AUTH_URL: string =\n\t\tdocument.getElementsByTagName(\"base\")[0].href + \"authentication\";\n\tpublic TOKEN: string;\n\n\tconstructor() {\n\t\tthis.TOKEN =\n\t\t\tJSON.parse(<string>localStorage.getItem(\"userMESData\"))?.token || \"\";\n\t}\n}\n","import {FetchError} from \"../utils\";\nimport moment from \"moment\";\nimport {Configuration} from \"../configuration\";\nimport {getTokenFromLS} from \"../account\";\n\ntype PostData = { [key: string]: any };\n\ntype isError = {\n\tok: boolean;\n\tstatus?: number;\n\tstatusText?: string;\n};\n\ntype FormattedParameter = {\n\tname?: string;\n\tvalue?: any;\n};\n\ntype ExportColumn = {\n\tcolumnName?: string;\n\tcaption?: string;\n\torder?: number;\n};\n\ntype ExportSheet = {\n\torder?: number;\n\tresultSetIndex?: number;\n\tsheetName?: string;\n\tshowAllColumns?: boolean;\n\tcolumns?: ExportColumn[];\n};\n\ntype ExportStructure = {\n\tshowAllSheets?: boolean;\n\tsheets?: ExportSheet[];\n};\n\nexport type ResponseMESF =\n\t| {\n\t\t\tok: false;\n\t\t\tmessage: string;\n\t }\n\t| {\n\t\t\tok: true;\n\t\t\tdata: any;\n\t };\n\nconst base =\n\tdocument.getElementsByTagName(\"base\")[0].getAttribute(\"href\") || \"/\";\n\nexport type spParameter = {\n\tname: string;\n\tvalue: string | number | boolean | null | Date;\n};\n\nexport class MESApiService {\n\tprivate config: Configuration;\n\t// @ts-ignore\n\tpublic hasErrors: boolean;\n\t// @ts-ignore\n\tpublic error: any;\n\tprivate TOKEN: string;\n\n\tconstructor() {\n\t\tthis.config = new Configuration();\n\t\tthis.hasErrors = false;\n\t\tthis.error = undefined;\n\t\tthis.TOKEN = this.config.TOKEN;\n\t}\n\tprepareCall() {\n\t\tthis.hasErrors = false;\n\t\tthis.error = undefined;\n\t}\n\n\tasync changePassword(userId: string, password: string) {\n\t\tthis.prepareCall();\n\t\tlet isError: isError = { ok: true };\n\t\tconst data: PostData = {};\n\t\tdata.userId = userId;\n\t\tdata.password = password;\n\t\treturn fetch(this.config.API_AUTH_URL + \"/ChangePassword\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAuthorization: \"Bearer \" + getTokenFromLS(),\n\t\t\t},\n\t\t\tbody: JSON.stringify(data),\n\t\t})\n\t\t\t.catch((errorMsg) => {\n\t\t\t\tthrow new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tisError = {\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t};\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.then((object) => {\n\t\t\t\tif (!isError.ok)\n\t\t\t\t\tthrow new FetchError(\n\t\t\t\t\t\t<string>isError.statusText,\n\t\t\t\t\t\t<number>isError.status,\n\t\t\t\t\t\tobject,\n\t\t\t\t\t);\n\t\t\t\treturn object;\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.hasErrors = true;\n\t\t\t\tthis.error = err;\n\t\t\t\treturn {\n\t\t\t\t\thasErrors: true,\n\t\t\t\t\terror: err,\n\t\t\t\t};\n\t\t\t});\n\t}\n\tasync authenticate(userName: string, password: string) {\n\t\tthis.prepareCall();\n\t\tlet isError: isError = { ok: true };\n\t\tconst data: PostData = {};\n\t\tdata.userName = userName;\n\t\tdata.password = password;\n\t\treturn fetch(this.config.API_AUTH_URL + \"/Authenticate\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify(data),\n\t\t})\n\t\t\t.catch((errorMsg) => {\n\t\t\t\tthrow new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tisError = {\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t};\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.then((object) => {\n\t\t\t\tif (!isError.ok)\n\t\t\t\t\tthrow new FetchError(\n\t\t\t\t\t\t<string>isError.statusText,\n\t\t\t\t\t\t<number>isError.status,\n\t\t\t\t\t\tobject,\n\t\t\t\t\t);\n\t\t\t\treturn object;\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.hasErrors = true;\n\t\t\t\tthis.error = err;\n\t\t\t\treturn {\n\t\t\t\t\thasErrors: true,\n\t\t\t\t\terror: err,\n\t\t\t\t};\n\t\t\t});\n\t}\n\n\tasync loginWithAzureAD(accessToken: string) {\n\t\tthis.prepareCall();\n\t\tlet isError: isError = { ok: true };\n\t\tconst data: PostData = {};\n\t\tdata.AccessToken = accessToken;\n\t\treturn fetch(this.config.API_AUTH_URL + \"/authenticate/azure-ad\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify(data),\n\t\t})\n\t\t\t.catch((errorMsg) => {\n\t\t\t\tthrow new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tisError = {\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t};\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.then((object) => {\n\t\t\t\tif (!isError.ok)\n\t\t\t\t\tthrow new FetchError(\n\t\t\t\t\t\t<string>isError.statusText,\n\t\t\t\t\t\t<number>isError.status,\n\t\t\t\t\t\tobject,\n\t\t\t\t\t);\n\t\t\t\treturn object;\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.hasErrors = true;\n\t\t\t\tthis.error = err;\n\t\t\t\treturn {\n\t\t\t\t\thasErrors: true,\n\t\t\t\t\terror: err,\n\t\t\t\t};\n\t\t\t});\n\t}\n\n\tasync loginWithWindowsAuthentication() {\n\t\treturn fetch(this.config.API_AUTH_URL + \"/authenticate/windows\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\tcredentials: \"include\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify({}),\n\t\t});\n\t}\n\n\tasync uploadFiles(selectedFiles: File[], folderName: string = \"\") {\n\t\tconst formData = new FormData();\n\n\t\tfor (const file of selectedFiles) {\n\t\t\tformData.append(\"files\", file, file.name);\n\t\t}\n\n\t\tformData.append(\"folderName\", folderName);\n\n\t\treturn fetch(this.config.API_PROCEDURE_URL + \"/uploadFiles\", {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: \"Bearer \" + this.TOKEN,\n\t\t\t},\n\t\t\tbody: formData,\n\t\t}).then((res) => res.json());\n\t}\n\n\tasync call(procedure: string, parameters: any[], database = \"\") {\n\t\tconst data: PostData = {};\n\t\tconst formattedParameters: FormattedParameter[] = [];\n\t\tparameters.forEach((element: any) => {\n\t\t\tconst formattedParameter: FormattedParameter = {};\n\t\t\tformattedParameter.name = element.name;\n\t\t\tif (element.value === null || element.value === undefined)\n\t\t\t\tformattedParameter.value = null;\n\t\t\telse formattedParameter.value = element.value;\n\t\t\tformattedParameters.push(formattedParameter);\n\t\t});\n\t\tdata.method = procedure;\n\t\tdata.dataBaseName = database;\n\t\tdata.parameters = formattedParameters;\n\t\tDate.prototype.toJSON = function () {\n\t\t\treturn moment(this).format(\"YYYY-MM-DDTHH:mm:ss\");\n\t\t}; // eslint-disable-line\n\t\tlet isError: isError = { ok: true };\n\t\treturn fetch(this.config.API_PROCEDURE_URL + \"/Execute\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAuthorization: \"Bearer \" + getTokenFromLS(),\n\t\t\t},\n\t\t\tbody: JSON.stringify(data),\n\t\t})\n\t\t\t.catch((errorMsg) => {\n\t\t\t\tthrow new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.status === 499 || response.status === 401) {\n\t\t\t\t\twindow.location.href = `${base}logout?message=Session%20expired&redirectTo=${window.location.href}`;\n\t\t\t\t}\n\t\t\t\tisError = {\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t};\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.then((object) => {\n\t\t\t\tif (!isError.ok)\n\t\t\t\t\tthrow new FetchError(\n\t\t\t\t\t\t<string>isError.statusText,\n\t\t\t\t\t\t<number>isError.status,\n\t\t\t\t\t\tobject,\n\t\t\t\t\t);\n\t\t\t\treturn object;\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.hasErrors = true;\n\t\t\t\tthis.error = err;\n\t\t\t\treturn;\n\t\t\t});\n\t}\n\n\tasync callV2(\n\t\tprocedure: string,\n\t\tparameters: any[],\n\t\tdatabase = \"\",\n\t): Promise<ResponseMESF> {\n\t\tconst data: PostData = {};\n\t\tconst formattedParameters: FormattedParameter[] = [];\n\t\tparameters.forEach((element: any) => {\n\t\t\tconst formattedParameter: FormattedParameter = {};\n\t\t\tformattedParameter.name = element.name;\n\t\t\tif (element.value === null || element.value === undefined)\n\t\t\t\tformattedParameter.value = null;\n\t\t\telse formattedParameter.value = element.value;\n\t\t\tformattedParameters.push(formattedParameter);\n\t\t});\n\t\tdata.method = procedure;\n\t\tdata.dataBaseName = database;\n\t\tdata.parameters = formattedParameters;\n\t\tDate.prototype.toJSON = function () {\n\t\t\treturn moment(this).format(\"YYYY-MM-DDTHH:mm:ss\");\n\t\t}; // eslint-disable-line\n\n\t\ttry {\n\t\t\tconst response = await fetch(this.config.API_PROCEDURE_URL + \"/Execute\", {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tmode: \"cors\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\tAuthorization: \"Bearer \" + getTokenFromLS(),\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify(data),\n\t\t\t});\n\n\t\t\tif (response.status === 401 || response.status === 499) {\n\t\t\t\twindow.location.href = `${base}logout?message=Session%20expired&redirectTo=${window.location.href}`;\n\t\t\t}\n\n\t\t\tconst resp = await response.json();\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\tmessage: resp.message,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn { ok: true, data: resp };\n\t\t} catch (err: any) {\n\t\t\t// console.log(\"fromCatch\", err);\n\t\t\tthis.hasErrors = true;\n\t\t\tthis.error = err;\n\t\t\treturn { ok: false, message: err.toString() };\n\t\t}\n\t}\n\n\tasync callJSON(procedure: string, parameters: any[], database = \"\") {\n\t\tconst data: PostData = {};\n\t\tconst formattedParameters: FormattedParameter[] = [];\n\t\tparameters.forEach((element: any) => {\n\t\t\tconst formattedParameter: FormattedParameter = {};\n\t\t\tformattedParameter.name = element.name;\n\t\t\tif (element.value === null || element.value === undefined)\n\t\t\t\tformattedParameter.value = null;\n\t\t\telse formattedParameter.value = element.value;\n\t\t\tformattedParameters.push(formattedParameter);\n\t\t});\n\t\tdata.method = procedure;\n\t\tdata.dataBaseName = database;\n\t\tdata.parameters = formattedParameters;\n\t\tDate.prototype.toJSON = function () {\n\t\t\treturn moment(this).format(\"YYYY-MM-DDTHH:mm:ss\");\n\t\t}; // eslint-disable-line\n\t\tlet isError: isError = { ok: true };\n\t\treturn fetch(this.config.API_PROCEDURE_URL + \"/ExecuteJSON\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAuthorization: \"Bearer \" + getTokenFromLS(),\n\t\t\t},\n\t\t\tbody: JSON.stringify(data),\n\t\t})\n\t\t\t.catch((errorMsg) => {\n\t\t\t\tthrow new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.status === 499 || response.status === 401) {\n\t\t\t\t\twindow.location.href = `${base}logout?message=Session%20expired&redirectTo=${window.location.href}`;\n\t\t\t\t}\n\t\t\t\tisError = {\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t};\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.then((object) => {\n\t\t\t\tif (!isError.ok)\n\t\t\t\t\tthrow new FetchError(\n\t\t\t\t\t\t<string>isError.statusText,\n\t\t\t\t\t\t<number>isError.status,\n\t\t\t\t\t\tobject,\n\t\t\t\t\t);\n\t\t\t\treturn object;\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.hasErrors = true;\n\t\t\t\tthis.error = err;\n\t\t\t\treturn;\n\t\t\t});\n\t}\n\tasync import(\n\t\tprocedure: string,\n\t\tparameters: any[],\n\t\tfiles: any[],\n\t\tuniqueFile: any,\n\t\tdatabase = \"\",\n\t) {\n\t\tconst formData = new FormData();\n\t\tconst formattedParameters: FormattedParameter[] = [];\n\t\tparameters.forEach((element) => {\n\t\t\tconst formattedParameter: FormattedParameter = {};\n\t\t\tformattedParameter.name = element.name;\n\t\t\tif (element.value === null || element.value === undefined)\n\t\t\t\tformattedParameter.value = null;\n\t\t\telse formattedParameter.value = element.value;\n\t\t\tformattedParameters.push(formattedParameter);\n\t\t});\n\t\tDate.prototype.toJSON = function () {\n\t\t\treturn moment(this).format(\"YYYY-MM-DDTHH:mm:ss\");\n\t\t}; // eslint-disable-line\n\t\tlet isError: isError = { ok: true };\n\t\tfiles.forEach((element) => {\n\t\t\tformData.append(\"formFiles\", element);\n\t\t});\n\n\t\tformData.append(\"method\", procedure);\n\t\tformData.append(\"dataBaseName\", database);\n\t\tformData.append(\"processFirstFile\", uniqueFile);\n\t\tformData.append(\"parameters\", JSON.stringify(formattedParameters));\n\t\treturn fetch(this.config.API_PROCEDURE_URL + \"/Import\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: \"Bearer \" + getTokenFromLS(),\n\t\t\t},\n\t\t\tbody: formData,\n\t\t})\n\t\t\t.catch((errorMsg) => {\n\t\t\t\tthrow new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.status === 499 || response.status === 401) {\n\t\t\t\t\twindow.location.href = `${base}logout?message=Session%20expired&redirectTo=${window.location.href}`;\n\t\t\t\t}\n\t\t\t\tisError = {\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t};\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.then((object) => {\n\t\t\t\tif (!isError.ok)\n\t\t\t\t\tthrow new FetchError(\n\t\t\t\t\t\t<string>isError.statusText,\n\t\t\t\t\t\t<number>isError.status,\n\t\t\t\t\t\tobject,\n\t\t\t\t\t);\n\t\t\t\treturn object;\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.hasErrors = true;\n\t\t\t\tthis.error = err;\n\t\t\t\treturn;\n\t\t\t});\n\t}\n\tasync export(\n\t\tprocedure: string,\n\t\tparameters: spParameter[],\n\t\tfileName: string,\n\t\tdatabase: string = \"\",\n\t) {\n\t\tconst data: { [key: string]: any } = {};\n\t\tconst formattedParameters: FormattedParameter[] = [];\n\t\tparameters.forEach((element) => {\n\t\t\tconst formattedParameter: FormattedParameter = {};\n\t\t\tformattedParameter.name = element.name;\n\t\t\tif (element.value === null || element.value === undefined)\n\t\t\t\tformattedParameter.value = null;\n\t\t\telse formattedParameter.value = element.value;\n\t\t\tformattedParameters.push(formattedParameter);\n\t\t});\n\t\tdata.method = procedure;\n\t\tdata.dataBaseName = database;\n\t\tdata.parameters = formattedParameters;\n\t\tdata.fileName = fileName || \"Default.xlsx\";\n\t\tDate.prototype.toJSON = function () {\n\t\t\treturn moment(this).format(\"YYYY-MM-DDTHH:mm:ss\");\n\t\t}; // eslint-disable-line\n\t\tlet isError: isError = { ok: true };\n\t\treturn fetch(this.config.API_PROCEDURE_URL + \"/Export\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAuthorization: \"Bearer \" + getTokenFromLS(),\n\t\t\t},\n\t\t\tbody: JSON.stringify(data),\n\t\t})\n\t\t\t.catch((errorMsg) => {\n\t\t\t\tthrow new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.status === 499 || response.status === 401) {\n\t\t\t\t\twindow.location.href = `${base}logout?message=Session%20expired&redirectTo=${window.location.href}`;\n\t\t\t\t}\n\t\t\t\tisError = {\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t};\n\t\t\t\tif (!isError.ok) return response.json();\n\t\t\t\telse return response.blob();\n\t\t\t})\n\t\t\t.then((blob) => {\n\t\t\t\tif (!isError.ok)\n\t\t\t\t\tthrow new FetchError(\n\t\t\t\t\t\t<string>isError.statusText,\n\t\t\t\t\t\t<number>isError.status,\n\t\t\t\t\t\tblob,\n\t\t\t\t\t);\n\t\t\t\tconst url = window.URL.createObjectURL(blob);\n\t\t\t\tconst a = document.createElement(\"a\");\n\t\t\t\ta.href = url;\n\t\t\t\ta.download = fileName || \"Default.xlsx\";\n\t\t\t\tdocument.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox\n\t\t\t\ta.click();\n\t\t\t\ta.remove(); //afterwards we remove the element again\n\t\t\t\treturn \"ok\";\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.hasErrors = true;\n\t\t\t\tthis.error = err;\n\t\t\t\treturn;\n\t\t\t});\n\t}\n\tasync exportExcel(\n\t\tprocedure: string,\n\t\tparameters: spParameter[],\n\t\tfileName: string,\n\t\texcelStructure: ExportStructure,\n\t\tdatabase: string = \"\",\n\t) {\n\t\tconst data: { [key: string]: any } = {};\n\t\t/******* Parameters *******/\n\t\tconst formattedParameters: FormattedParameter[] = [];\n\t\tparameters.forEach((element) => {\n\t\t\tconst formattedParameter: FormattedParameter = {};\n\t\t\tformattedParameter.name = element.name;\n\t\t\tif (element.value === null || element.value === undefined)\n\t\t\t\tformattedParameter.value = null;\n\t\t\telse formattedParameter.value = element.value;\n\t\t\tformattedParameters.push(formattedParameter);\n\t\t});\n\t\t/******* Excel Structure *******/\n\t\tif (\n\t\t\texcelStructure.showAllSheets !== undefined &&\n\t\t\texcelStructure.showAllSheets !== null\n\t\t)\n\t\t\tdata.showAllSheets = excelStructure.showAllSheets;\n\t\tif (excelStructure.sheets !== undefined && excelStructure.sheets !== null)\n\t\t\tdata.sheets = excelStructure.sheets;\n\t\t/******* Other Parameter *******/\n\t\tdata.method = procedure;\n\t\tdata.dataBaseName = database;\n\t\tdata.parameters = formattedParameters;\n\t\tdata.fileName = fileName || \"Default.xlsx\";\n\t\tDate.prototype.toJSON = function () {\n\t\t\treturn moment(this).format(\"YYYY-MM-DDTHH:mm:ss\");\n\t\t}; // eslint-disable-line\n\t\tlet isError: isError = { ok: true };\n\t\treturn fetch(this.config.API_PROCEDURE_URL + \"/ExportExcel\", {\n\t\t\tmethod: \"POST\",\n\t\t\tmode: \"cors\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAuthorization: \"Bearer \" + getTokenFromLS(),\n\t\t\t},\n\t\t\tbody: JSON.stringify(data),\n\t\t})\n\t\t\t.catch((errorMsg) => {\n\t\t\t\tthrow new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.status === 499 || response.status === 401) {\n\t\t\t\t\twindow.location.href = `${base}logout?message=Session%20expired&redirectTo=${window.location.href}`;\n\t\t\t\t}\n\t\t\t\tisError = {\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t};\n\t\t\t\tif (!isError.ok) return response.json();\n\t\t\t\telse return response.blob();\n\t\t\t})\n\t\t\t.then((blob) => {\n\t\t\t\tif (!isError.ok)\n\t\t\t\t\tthrow new FetchError(\n\t\t\t\t\t\t<string>isError.statusText,\n\t\t\t\t\t\t<number>isError.status,\n\t\t\t\t\t\tblob,\n\t\t\t\t\t);\n\t\t\t\tconst url = window.URL.createObjectURL(blob);\n\t\t\t\tconst a = document.createElement(\"a\");\n\t\t\t\ta.href = url;\n\t\t\t\ta.download = fileName || \"Default.xlsx\";\n\t\t\t\tdocument.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox\n\t\t\t\ta.click();\n\t\t\t\ta.remove(); //afterwards we remove the element again\n\t\t\t\treturn \"ok\";\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.hasErrors = true;\n\t\t\t\tthis.error = err;\n\t\t\t\treturn;\n\t\t\t});\n\t}\n\n\tasync checkIfWindowsAuthIsEnabled() {\n\t\ttry {\n\t\t\tconst resp = await fetch(\n\t\t\t\t`${this.config.API_AUTH_URL}/is-windows-auth-enabled`,\n\t\t\t).then((res) => res.json());\n\t\t\treturn resp;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}\n}\n","import { MESApiService, spParameter } from \"../services\";\n\nexport const getUser = async (UserId: number, UserName: string | null) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"UserId\", value: UserId });\n\tparameters.push({ name: \"UserName\", value: UserName });\n\n\tconst resp = await apiService.callV2(\"[SEC].[GetUser]\", parameters);\n\treturn resp;\n};\n\nexport const getAssets = async () => {\n\tconst apiService = new MESApiService();\n\n\tconst resp = await apiService.callV2(\"[MES].[GetAssets]\", []);\n\treturn resp;\n};\n\nexport const getUTLSettings = async () => {\n\tconst apiService = new MESApiService();\n\tconst resp = await apiService.callV2(\"[UTL].[GetSettings]\", []);\n\treturn resp;\n};\n\nexport const upsertDefaultAreaId = async (\n\tUserId: number,\n\tDefaultAreaId: number | null,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"UserId\", value: UserId });\n\tparameters.push({ name: \"DefaultAssetId\", value: DefaultAreaId });\n\n\tconst resp = await apiService.callV2(\n\t\t\"[SEC].[UpsertDefaultAssetId]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n","import React from \"react\";\nimport {Alert} from \"react-bootstrap\";\nimport {SimplePasswordControl} from \"../controls\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport Button from \"@material-ui/core/Button\";\n\nimport {MESApiService} from \"../services\";\n\nexport function ChangePassword(props: any) {\n\tconst { onClose, userId, open } = props;\n\t//states\n\tconst [password, setPassword] = React.useState(\"\");\n\tconst [confirmPassword, setConfirmPassword] = React.useState(\"\");\n\tconst [canChange, setCanChange] = React.useState(false);\n\tconst [showError, setShowError] = React.useState(false);\n\tconst [error, setError] = React.useState<any>(undefined);\n\t//functions\n\tconst handleCancel = () => {\n\t\tonClose(false);\n\t};\n\tconst handleOk = () => {\n\t\tif (userId >= 0) {\n\t\t\tlet apiService = new MESApiService();\n\t\t\tapiService.changePassword(userId, password).then((response) => {\n\t\t\t\tif (apiService.hasErrors) {\n\t\t\t\t\tsetShowError(true);\n\t\t\t\t\tsetError(apiService.error);\n\t\t\t\t} else {\n\t\t\t\t\tonClose(true);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tonClose(false);\n\t\t}\n\t};\n\t//efects\n\tReact.useEffect(() => {\n\t\tsetCanChange(password === confirmPassword && password.length > 0);\n\t}, [password, confirmPassword]);\n\tReact.useEffect(() => {\n\t\tsetPassword(\"\");\n\t\tsetConfirmPassword(\"\");\n\t}, [userId, open]);\n\treturn (\n\t\t<Dialog\n\t\t\tonClose={(event, reason) => null}\n\t\t\taria-label={\"Change Password\"}\n\t\t\tmaxWidth=\"xs\"\n\t\t\taria-labelledby=\"confirmation-dialog-title\"\n\t\t\topen={open}\n\t\t>\n\t\t\t<DialogTitle id=\"confirmation-dialog-title\">\n\t\t\t\t{\"Change Password\"}\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent dividers>\n\t\t\t\t<Alert\n\t\t\t\t\tshow={showError}\n\t\t\t\t\tvariant=\"danger\"\n\t\t\t\t\tdismissible={true}\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetShowError(false);\n\t\t\t\t\t\tsetError(undefined);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<strong>There was an error</strong>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t{error === undefined\n\t\t\t\t\t\t\t? \"There was an error\"\n\t\t\t\t\t\t\t: error.internalError.message === undefined\n\t\t\t\t\t\t\t ? error.internalError\n\t\t\t\t\t\t\t : error.internalError.message}\n\t\t\t\t\t</p>\n\t\t\t\t</Alert>\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-md-12 px-3 py-1\">\n\t\t\t\t\t\t<SimplePasswordControl\n\t\t\t\t\t\t\ttitle=\"Password\"\n\t\t\t\t\t\t\tstyleLabel={{ minWidth: \"150px\" }}\n\t\t\t\t\t\t\tonChange={setPassword}\n\t\t\t\t\t\t\tname=\"password\"\n\t\t\t\t\t\t\tvalue={password}\n\t\t\t\t\t\t></SimplePasswordControl>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-md-12 px-3 py-1\">\n\t\t\t\t\t\t<SimplePasswordControl\n\t\t\t\t\t\t\ttitle=\"Confirm Password\"\n\t\t\t\t\t\t\tstyleLabel={{ minWidth: \"150px\" }}\n\t\t\t\t\t\t\tonChange={setConfirmPassword}\n\t\t\t\t\t\t\tname=\"confirmPassword\"\n\t\t\t\t\t\t\tvalue={confirmPassword}\n\t\t\t\t\t\t></SimplePasswordControl>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions>\n\t\t\t\t<Button autoFocus onClick={handleCancel} color=\"primary\">\n\t\t\t\t\tCancel\n\t\t\t\t</Button>\n\t\t\t\t<Button onClick={handleOk} color=\"primary\" disabled={!canChange}>\n\t\t\t\t\tChange Password\n\t\t\t\t</Button>\n\t\t\t</DialogActions>\n\t\t</Dialog>\n\t);\n}\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst UserInitialState: {\n\tuserLastName: string;\n\tuserId: number | null;\n\tdefaultAreaId: number | string | null;\n\tdefaultAreaName: string | null;\n\tuserLogged: boolean;\n} = {\n\tuserLastName: \"\",\n\tuserId: null,\n\tdefaultAreaId: null,\n\tdefaultAreaName: \"\",\n\tuserLogged: false,\n};\n\nexport const UserReducer = createSlice({\n\tname: \"__\",\n\tinitialState: UserInitialState,\n\treducers: {\n\t\tsetUserId(state, { payload }) {\n\t\t\tstate.userId = payload;\n\t\t},\n\t\tsetUserLastName(state, { payload }) {\n\t\t\tstate.userLastName = payload;\n\t\t},\n\t\tsetDefaultAreaId(state, { payload }) {\n\t\t\tstate.defaultAreaId = payload;\n\t\t},\n\t\tsetDefaultAreaName(state, { payload }) {\n\t\t\tstate.defaultAreaName = payload;\n\t\t},\n\t\tsetUserLogged(state, { payload }) {\n\t\t\tstate.userLogged = payload;\n\t\t},\n\t},\n});\n","import { createContext, default as React, ReactNode, useContext } from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { UserReducer } from \"../reducers/UserReducer\";\n\nconst UserContext = createContext({\n\tstate: UserReducer.getInitialState(),\n\tactions: UserReducer.actions,\n});\n\nexport const useUserContext = () => useContext(UserContext);\n\nexport const UserProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: UserReducer.getInitialState(),\n\t\treducers: UserReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<UserContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</UserContext.Provider>\n\t);\n};\n","import axios from \"axios\";\nimport {getTokenFromLS} from \"../account\";\nimport {Configuration} from \"../configuration\";\n\nconst base =\n\tdocument.getElementsByTagName(\"base\")[0].getAttribute(\"href\") || \"/\";\nexport async function renewToken() {\n\tconst refreshToken = localStorage.getItem(\"refreshToken\");\n\n\tif (!refreshToken) {\n\t\tthrow new Error(\"refresh token does not exist\");\n\t}\n\n\tconst config = new Configuration();\n\n\tconst fd = new FormData();\n\tfd.append(\"refreshToken\", refreshToken);\n\n\tconst response = await axios.post(`${config.API_AUTH_URL}/refresh`, fd, {\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t},\n\t\tparams: {\n\t\t\trefreshToken,\n\t\t},\n\t});\n\tconst token = response.data.result;\n\tif (token) {\n\t\treturn [token, refreshToken];\n\t} else {\n\t\tthrow new Error(\"Token is not valid\");\n\t}\n}\nfunction isUnauthorizedError(error: any) {\n\tconst {\n\t\tresponse: { status },\n\t} = error;\n\treturn status === 499 || status === 499; // custom status code\n}\n\nexport const axiosInstance = axios.create({\n\theaders: {\n\t\tAuthorization: `Bearer ${localStorage.getItem(\"token\") ?? \"\"}`,\n\t},\n});\n\nlet refreshingFunc: any;\naxiosInstance.interceptors.response.use(\n\t(res) => res,\n\tasync (error) => {\n\t\tconst originalConfig = error.config;\n\n\t\tif (originalConfig.headers.MESF_Retries === 1) {\n\t\t\tlocalStorage.removeItem(\"token\");\n\t\t\tlocalStorage.removeItem(\"refreshToken\");\n\t\t\twindow.location.href = `${base}logout?message=Session%20expired&redirectTo=${window.location.href}`;\n\t\t}\n\n\t\tconst token = getTokenFromLS();\n\n\t\tif (!token || !isUnauthorizedError(error)) {\n\t\t\treturn Promise.reject(error);\n\t\t}\n\n\t\ttry {\n\t\t\t// the trick here, that `refreshingFunc` is global, e.g. 2 expired requests will get the same function pointer and await same function.\n\t\t\tif (!refreshingFunc) refreshingFunc = renewToken();\n\n\t\t\tconst [newToken, newRefreshToken] = await refreshingFunc;\n\n\t\t\tlocalStorage.setItem(\"token\", newToken);\n\t\t\tlocalStorage.setItem(\"refreshToken\", newRefreshToken);\n\n\t\t\taxiosInstance.defaults.headers.Authorization = `Bearer ${newToken}`;\n\t\t\toriginalConfig.headers.Authorization = `Bearer ${newToken}`;\n\t\t\toriginalConfig.headers.MESF_Retries = 1;\n\n\t\t\t// retry original request\n\t\t\ttry {\n\t\t\t\treturn await axios.request(originalConfig);\n\t\t\t} catch (innerError) {\n\t\t\t\t// if original req failed with 499 again - it means server returned not valid token for refresh request\n\t\t\t\tif (isUnauthorizedError(innerError)) {\n\t\t\t\t\treturn innerError;\n\t\t\t\t}\n\t\t\t\treturn innerError;\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tlocalStorage.removeItem(\"token\");\n\t\t\tlocalStorage.removeItem(\"refreshToken\");\n\t\t\twindow.location.href = `${base}logout?message=Session%20expired&redirectTo=${window.location.href}`;\n\t\t} finally {\n\t\t\trefreshingFunc = undefined;\n\t\t}\n\t},\n\t{},\n);\n","import { useState } from \"react\";\nimport { useUserContext } from \"../context/userContext\";\nimport { axiosInstance } from \"../context/axiosInstance\";\n\nexport const getTokenFromLS = (): string => {\n\treturn localStorage.getItem(\"token\") as string;\n};\n\nexport function useToken() {\n\tconst {\n\t\tactions: { setUserLogged },\n\t} = useUserContext();\n\tconst [token, setToken] = useState(getTokenFromLS());\n\n\tconst saveUserData = (userToken: any) => {\n\t\tlocalStorage.setItem(\"userMESData\", JSON.stringify(userToken));\n\t\tlocalStorage.setItem(\"refreshToken\", userToken[\"refreshToken\"]);\n\t\tlocalStorage.setItem(\"token\", userToken[\"token\"]);\n\t\tsetToken(userToken[\"token\"]);\n\t\taxiosInstance.defaults.headers.Authorization = `Bearer ${userToken[\"token\"]}`;\n\t\tsetUserLogged(true);\n\t};\n\n\tconst clearUserData = () => {\n\t\tlocalStorage.removeItem(\"userMESData\");\n\t\tlocalStorage.removeItem(\"token\");\n\t\tlocalStorage.removeItem(\"refreshToken\");\n\t\tsetToken(\"\");\n\t\tsetUserLogged(false);\n\t};\n\tconst getUserName = () => {\n\t\tconst sessionData = localStorage.getItem(\"userMESData\");\n\t\tconst userData = JSON.parse(<string>sessionData);\n\t\treturn (\n\t\t\t((userData || {}).lastName || \"\") +\n\t\t\t\", \" +\n\t\t\t((userData || {}).firstName || \"\")\n\t\t);\n\t};\n\tconst getFirstName = () => {\n\t\tconst sessionData = localStorage.getItem(\"userMESData\");\n\t\tconst userData = JSON.parse(<string>sessionData);\n\t\treturn (userData || {}).firstName || \"\";\n\t};\n\tconst getLastName = () => {\n\t\tconst sessionData = localStorage.getItem(\"userMESData\");\n\t\tconst userData = JSON.parse(<string>sessionData);\n\t\treturn (userData || {}).lastName || \"\";\n\t};\n\tconst getUserId = () => {\n\t\tconst sessionData = localStorage.getItem(\"userMESData\");\n\t\tconst userData = JSON.parse(<string>sessionData);\n\t\tsetUserLogged(true);\n\t\treturn (userData || {}).id || -1;\n\t};\n\tconst hasPermission = (permissionId: number) => {\n\t\tconst sessionData = localStorage.getItem(\"userMESData\");\n\t\tif (sessionData === undefined) return false;\n\t\tconst userData = JSON.parse(<string>sessionData);\n\t\tconst permissions = userData.permissions || [];\n\t\treturn permissions.indexOf(permissionId) > -1; //case sensitve\n\t};\n\n\treturn {\n\t\tgetUserName,\n\t\tsaveUserData,\n\t\tclearUserData,\n\t\tgetFirstName,\n\t\tgetLastName,\n\t\tgetUserId,\n\t\thasPermission,\n\t\ttoken,\n\t};\n}\n","import {Typography} from \"@material-ui/core\";\nimport {get} from \"lodash-es\";\nimport React, {useEffect, useState} from \"react\";\nimport {CheckBoxControl, GenericPanel, SimpleTextControl} from \"../controls\";\nimport {getUser} from \"../repositorie/MESF-frontend-Repositorie\";\nimport {ChangePassword} from \"./changePassword\";\nimport {useToken} from \"./useToken\";\nimport {ErrorModal} from \"../components/modals/error-modal\";\n\nexport const Account = () => {\n\tconst { getUserName, getUserId } = useToken();\n\tconst [error, setError] = useState(\"\");\n\tconst [userLastName, setUserLastName] = useState<string>(\"\");\n\tconst [userFirstName, setUserFirstName] = useState<string>(\"\");\n\tconst [userId] = useState(getUserId);\n\tconst [userParam] = useState(getUserName);\n\tconst [userName, setUserName] = useState<string>(\"\");\n\tconst [userIsDomain, setUserIsDomain] = useState<boolean>(false);\n\tconst [userIsActive, setUserIsActive] = useState<boolean>(false);\n\tconst [userProfiles, setUserProfiles] = useState<string>(\"\");\n\tconst [userPermissions, setUserPermissions] = useState<string>(\"\");\n\tconst [userProcedures, setUserProcedures] = useState<string>(\"\");\n\tconst [open, setOpen] = useState<boolean>(false);\n\tconst [showSuccess, setShowSuccess] = useState<boolean>(false);\n\tconst [successMessage, setSuccessMessage] = useState<string>(\"\");\n\n\tconst changePassword = () => {\n\t\tsetOpen(true);\n\t};\n\tconst closeChangePassword = (flag: boolean) => {\n\t\tif (flag) {\n\t\t\tsetShowSuccess(true);\n\t\t\tsetSuccessMessage(\"Password was changed successfully.\");\n\t\t}\n\t\tsetOpen(false);\n\t};\n\tconst stringToList = (s: string) => {\n\t\ts = s.replace(/,/g, \"\\n\");\n\t\ts = s.replace(/ *\\([^)]*\\) */g, \"\");\n\t\treturn s;\n\t};\n\n\tconst loadUserData = async () => {\n\t\tconst resp = await getUser(userId, userParam);\n\t\tif (resp.ok) {\n\t\t\tconst userData = get(resp, \"data.tables[0].rows\", null);\n\t\t\tsetUserName(userData[0]?.UserName);\n\t\t\tsetUserLastName(userData[0]?.LastName);\n\t\t\tsetUserFirstName(userData[0]?.FirstName);\n\t\t\tsetUserIsDomain(userData[0]?.AuthTypeId);\n\t\t\tsetUserIsActive(userData[0]?.IsActive);\n\t\t\tsetUserProfiles(stringToList(userData[0]?.Profiles || \"\"));\n\t\t\tsetUserProcedures(stringToList(userData[0]?.Procedures || \"\"));\n\t\t\tsetUserPermissions(stringToList(userData[0]?.Permissions || \"\"));\n\t\t} else {\n\t\t\tsetError(resp.message);\n\t\t}\n\t};\n\n\tconst closeMessage = () => {\n\t\tsetTimeout(function () {\n\t\t\tsetShowSuccess(false);\n\t\t\tsetSuccessMessage(\"\");\n\t\t}, 2000);\n\t};\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tawait loadUserData();\n\t\t})();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (showSuccess === true) {\n\t\t\tcloseMessage();\n\t\t}\n\t}, [showSuccess]);\n\n\treturn (\n\t\t<>\n\t\t\t<GenericPanel\n\t\t\t\ttitle=\"Account Configuration\"\n\t\t\t\tshowPromptSuccess={showSuccess}\n\t\t\t\tsuccessMessage={successMessage}\n\t\t\t>\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-md-3 px-3 py-1\">\n\t\t\t\t\t\t<SimpleTextControl\n\t\t\t\t\t\t\ttitle=\"Username\"\n\t\t\t\t\t\t\tstyleLabel={{ minWidth: \"110px\" }}\n\t\t\t\t\t\t\tstyleTextBox={{ maxWidth: \"200px\", minWidth: \"100px\" }}\n\t\t\t\t\t\t\treadOnly={true}\n\t\t\t\t\t\t\tname=\"userName\"\n\t\t\t\t\t\t\tvalue={userName}\n\t\t\t\t\t\t\tstyleGeneral={{ display: \"flex\" }}\n\t\t\t\t\t\t></SimpleTextControl>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"col-md-4 px-3 py-1\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"btn btn-primary mes-button-primary\"\n\t\t\t\t\t\t\tonClick={changePassword}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<i className=\"fas fa-lock pr-1\"></i>Change Password\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<ChangePassword\n\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\tonClose={closeChangePassword}\n\t\t\t\t\t\t\tuserId={userId}\n\t\t\t\t\t\t></ChangePassword>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-md-3 px-3 py-1\">\n\t\t\t\t\t\t<SimpleTextControl\n\t\t\t\t\t\t\ttitle=\"Name\"\n\t\t\t\t\t\t\tstyleLabel={{ minWidth: \"110px\" }}\n\t\t\t\t\t\t\tstyleTextBox={{ maxWidth: \"200px\", minWidth: \"100px\" }}\n\t\t\t\t\t\t\treadOnly={true}\n\t\t\t\t\t\t\tname=\"firstName\"\n\t\t\t\t\t\t\tvalue={userFirstName}\n\t\t\t\t\t\t\tstyleGeneral={{ display: \"flex\" }}\n\t\t\t\t\t\t></SimpleTextControl>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"col-md-3 px-3 py-1\">\n\t\t\t\t\t\t<SimpleTextControl\n\t\t\t\t\t\t\ttitle=\"Lastname\"\n\t\t\t\t\t\t\tstyleLabel={{ minWidth: \"110px\" }}\n\t\t\t\t\t\t\tstyleTextBox={{ maxWidth: \"200px\", minWidth: \"100px\" }}\n\t\t\t\t\t\t\treadOnly={true}\n\t\t\t\t\t\t\tname=\"lastName\"\n\t\t\t\t\t\t\tvalue={userLastName}\n\t\t\t\t\t\t\tstyleGeneral={{ display: \"flex\" }}\n\t\t\t\t\t\t></SimpleTextControl>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-md-3 px-3 py-1\">\n\t\t\t\t\t\t<CheckBoxControl\n\t\t\t\t\t\t\tvalue={userIsDomain}\n\t\t\t\t\t\t\ttitle=\"Domain User\"\n\t\t\t\t\t\t\treadOnly={true}\n\t\t\t\t\t\t\tstyleTextBox={{ maxWidth: \"300px\" }}\n\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t></CheckBoxControl>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"col-md-3 px-3 py-1\">\n\t\t\t\t\t\t<CheckBoxControl\n\t\t\t\t\t\t\tvalue={userIsActive}\n\t\t\t\t\t\t\ttitle=\"Active\"\n\t\t\t\t\t\t\treadOnly={true}\n\t\t\t\t\t\t\tstyleTextBox={{ maxWidth: \"300px\" }}\n\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t></CheckBoxControl>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-md-4\">\n\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\tgutterBottom\n\t\t\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\t\t\tcomponent=\"h2\"\n\t\t\t\t\t\t\tclassName=\"pt-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tProfiles\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tclassName=\"form-control\"\n\t\t\t\t\t\t\tplaceholder={userProfiles}\n\t\t\t\t\t\t\treadOnly={true}\n\t\t\t\t\t\t\tstyle={{ height: \"50vh\" }}\n\t\t\t\t\t\t></textarea>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"col-md-4\">\n\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\tgutterBottom\n\t\t\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\t\t\tcomponent=\"h2\"\n\t\t\t\t\t\t\tclassName=\"pt-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tPermissions\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tclassName=\"form-control\"\n\t\t\t\t\t\t\tplaceholder={userPermissions}\n\t\t\t\t\t\t\treadOnly={true}\n\t\t\t\t\t\t\tstyle={{ height: \"50vh\" }}\n\t\t\t\t\t\t></textarea>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"col-md-4\">\n\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\tgutterBottom\n\t\t\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\t\t\tcomponent=\"h2\"\n\t\t\t\t\t\t\tclassName=\"pt-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tProcedures\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tclassName=\"form-control\"\n\t\t\t\t\t\t\tplaceholder={userProcedures}\n\t\t\t\t\t\t\treadOnly={true}\n\t\t\t\t\t\t\tstyle={{ height: \"50vh\" }}\n\t\t\t\t\t\t></textarea>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</GenericPanel>\n\t\t\t<ErrorModal\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => {\n\t\t\t\t\tsetError(\"\");\n\t\t\t\t}}\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import React, {useContext, useEffect, useRef} from \"react\";\nimport {useToken} from \"./useToken\";\nimport {Login} from \"./login\";\n\nexport const AuthContext = React.createContext<ReturnType<typeof useToken>>(\n\t{} as any,\n);\n\nexport type AuthConfig = {\n\tguestIsEnabled: boolean;\n\tuseEmailAndPassword: boolean;\n\tuseAzureAD: boolean;\n\tuseWindowsAuth: boolean;\n\tAzureConfig: AzureConfig;\n};\nexport type AzureConfig = {\n\tclientId: string;\n\tauthority: string;\n\tredirectUri: string;\n};\n\ntype AuthProviderProps = {\n\tchildren: any;\n\tauthConfig: AuthConfig;\n};\n\nexport const AuthProvider = ({ children, authConfig }: AuthProviderProps) => {\n\tconst useTokenHook = useToken();\n\treturn (\n\t\t<>\n\t\t\t<AuthContext.Provider value={useTokenHook}>\n\t\t\t\t{!!useTokenHook.token && <Authenticated>{children}</Authenticated>}\n\t\t\t\t{!useTokenHook.token && <Unauthenticated authConfig={authConfig} />}\n\t\t\t</AuthContext.Provider>\n\t\t</>\n\t);\n};\n\nconst Authenticated = ({ children }: { children: any }) => <>{children}</>;\n\nconst Unauthenticated = ({ authConfig }: { authConfig: AuthConfig }) => {\n\tconst { clearUserData } = useContext(AuthContext);\n\tconst params = useRef(new URL(document.location as any).searchParams);\n\n\tuseEffect(() => {\n\t\tclearUserData();\n\t\tconst newUrl = window.location.origin + \"?\" + params.current.toString();\n\t\twindow.history.replaceState({ path: newUrl }, \"\", newUrl);\n\t}, []);\n\treturn <Login authConfig={authConfig} />;\n};\n","import React, { useState } from \"react\";\nimport { Alert } from \"react-bootstrap\";\nimport { MESApiService } from \"../../services\";\nimport { AuthContext } from \"../AuthProvider\";\nimport { Button, TextField } from \"@material-ui/core\";\n\nexport const LoginWithEmailAndPassword = () => {\n\tconst [username, setUserName] = useState(\"\");\n\tconst [password, setPassword] = useState(\"\");\n\tconst [showError, setShowError] = React.useState(false);\n\tconst [error, setError] = React.useState<any>(undefined);\n\n\tconst { saveUserData } = React.useContext(AuthContext);\n\n\tconst login = async (e: any) => {\n\t\te.preventDefault();\n\t\tconst apiService = new MESApiService();\n\t\tconst response = await apiService.authenticate(username, password);\n\t\tif (apiService.hasErrors) {\n\t\t\tsetShowError(true);\n\t\t\tsetError(apiService.error);\n\t\t} else {\n\t\t\tsaveUserData(response);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<form onSubmit={login}>\n\t\t\t\t<div className=\"form-group row\">\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\tid=\"txtUserName\"\n\t\t\t\t\t\tlabel=\"User\"\n\t\t\t\t\t\tname=\"userName\"\n\t\t\t\t\t\tonChange={(e) => setUserName(e.target.value)}\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\tclassName=\"form-control\"\n\t\t\t\t\t></TextField>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"form-group row\">\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\tid=\"txtPassword\"\n\t\t\t\t\t\tlabel=\"Password\"\n\t\t\t\t\t\tname=\"password\"\n\t\t\t\t\t\tonChange={(e) => setPassword(e.target.value)}\n\t\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t\tclassName=\"form-control\"\n\t\t\t\t\t></TextField>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: (password.length === 0 || username.length === 0) ? '#CCCCCC' : '#479DC4',\n\t\t\t\t\t\t\tcolor: (password.length === 0 || username.length === 0) ? 'black' : 'white'\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tdisabled={password.length === 0 || username.length === 0}\n\t\t\t\t\t>\n\t\t\t\t\t\tLogin\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t\t<Alert \n\t\t\t\tstyle={{marginTop:20}}\n\t\t\t\t\tshow={showError}\n\t\t\t\t\tvariant=\"danger\"\n\t\t\t\t\tdismissible={true}\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetShowError(false);\n\t\t\t\t\t\tsetError(undefined);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<strong>Bad credentials</strong>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t{error === undefined\n\t\t\t\t\t\t\t? \"There was an error\"\n\t\t\t\t\t\t\t: error.internalError.message === undefined\n\t\t\t\t\t\t\t\t? error.internalError\n\t\t\t\t\t\t\t\t: error.internalError.message}\n\t\t\t\t\t</p>\n\t\t\t\t</Alert>\n\t\t\t</form>\n\t\t</>\n\t);\n};\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {LogLevel} from \"@azure/msal-browser\";\n\n/**\n * Configuration object to be passed to MSAL instance on creation.\n * For a full list of MSAL.js configuration parameters, visit:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md\n */\nexport const msalConfig = {\n\tauth: {\n\t\tclientId: \"7c77d607-51e0-4e03-bd50-d7aa18a7163g\",\n\t\tauthority: \"https://login.microsoftonline.com/common\",\n\t\tredirectUri: \"http://localhost:5000/\",\n\t},\n\tcache: {\n\t\tcacheLocation: \"sessionStorage\", // This configures where your cache will be stored\n\t\tstoreAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\n\t},\n\tsystem: {\n\t\tloggerOptions: {\n\t\t\tloggerCallback: (\n\t\t\t\tlevel: number,\n\t\t\t\tmessage: string,\n\t\t\t\tcontainsPii: boolean,\n\t\t\t) => {\n\t\t\t\tif (containsPii) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswitch (level) {\n\t\t\t\t\tcase LogLevel.Error:\n\t\t\t\t\t\tconsole.error(message);\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase LogLevel.Info:\n\t\t\t\t\t\tconsole.info(message);\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase LogLevel.Verbose:\n\t\t\t\t\t\tconsole.debug(message);\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase LogLevel.Warning:\n\t\t\t\t\t\tconsole.warn(message);\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n};\n\n/**\n * Scopes you add here will be prompted for user consent during sign-in.\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\n * For more information about OIDC scopes, visit:\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\n */\nexport const loginRequest = {\n\tscopes: [\"User.Read\"],\n};\n\n/**\n * Add here the scopes to request when obtaining an access token for MS Graph API. For more information, see:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\n */\nexport const graphConfig = {\n\tgraphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\",\n};\n","import React, { FormEvent, FormEventHandler } from \"react\";\nimport { useMsal } from \"@azure/msal-react\";\nimport { loginRequest } from \"./AzureADAuthConfig\";\nimport { AuthenticationResult } from \"@azure/msal-browser\";\nimport { MESApiService } from \"../../../services\";\nimport { AuthContext } from \"../../AuthProvider\";\nimport { Button } from \"@material-ui/core\";\n\nexport const LoginWithAzureADForm = () => {\n\tconst { saveUserData } = React.useContext(AuthContext);\n\tconst { instance } = useMsal();\n\tconst login: FormEventHandler = async (e: FormEvent) => {\n\t\te.preventDefault();\n\t\ttry {\n\t\t\tconst result: AuthenticationResult =\n\t\t\t\tawait instance.loginPopup(loginRequest);\n\n\t\t\tconst api = new MESApiService();\n\t\t\ttry {\n\t\t\t\tconst loginResponse = await api.loginWithAzureAD(result.accessToken);\n\t\t\t\tsaveUserData(loginResponse);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log({ e });\n\t\t}\n\t};\n\n\treturn (\n\t\t<form onSubmit={login}>\n\t\t\t{/*<Alert show={showError} variant=\"danger\" dismissible={true} onClose={() => {*/}\n\t\t\t{/* setShowError(false);*/}\n\t\t\t{/* setError(undefined)*/}\n\t\t\t{/*}}>*/}\n\t\t\t{/* <strong>Bad credentials</strong>*/}\n\t\t\t{/* <p> {error === undefined ? 'There was an error' :*/}\n\t\t\t{/* (error.internalError.message === undefined ? error.internalError : error.internalError.message)}*/}\n\t\t\t{/* </p>*/}\n\t\t\t{/*</Alert>*/}\n\t\t\t<div className=\"row\">\n\t\t\t\t<Button\n\t\t\t\t\tfullWidth variant=\"contained\"\n\t\t\t\t\tstyle={{ backgroundColor: '#479DC4', color: 'white' }}\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t>\n\t\t\t\t\tLogin with Azure AD\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</form>\n\t);\n};\n","import React from \"react\";\nimport { MsalProvider } from \"@azure/msal-react\";\nimport { PublicClientApplication } from \"@azure/msal-browser\";\nimport { msalConfig } from \"./AzureADAuthConfig\";\nimport { LoginWithAzureADForm } from \"./LoginWithAzureADForm\";\nimport { AzureConfig } from \"../../AuthProvider\";\n\nexport const LoginWithAzureAD = ({ config }: { config: AzureConfig }) => {\n\tconst msalInstance = new PublicClientApplication({\n\t\t...msalConfig,\n\t\t...{\n\t\t\tauth: {\n\t\t\t\t...config,\n\t\t\t},\n\t\t},\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t<MsalProvider instance={msalInstance}>\n\t\t\t\t<LoginWithAzureADForm />\n\t\t\t</MsalProvider>\n\t\t</>\n\t);\n};\n","import React from \"react\";\nimport { MESApiService } from \"../../services\";\nimport { Alert } from \"react-bootstrap\";\nimport { AuthContext } from \"../AuthProvider\";\nimport { Button } from \"@material-ui/core\";\n\nexport const LoginAsGuest = () => {\n\tconst [showError, setShowError] = React.useState(false);\n\tconst [error, setError] = React.useState<any>(undefined);\n\n\tconst { saveUserData } = React.useContext(AuthContext);\n\n\tconst apiService = new MESApiService();\n\tconst loginAsGuest = async (e: any) => {\n\t\te.preventDefault();\n\t\tconst response = await apiService.authenticate(\"public\", \"public\");\n\t\tif (apiService.hasErrors) {\n\t\t\tsetShowError(true);\n\t\t\tsetError(apiService.error);\n\t\t} else {\n\t\t\tsaveUserData(response);\n\t\t}\n\t};\n\treturn (\n\t\t<>\n\t\t\t<Alert\n\t\t\t\tshow={showError}\n\t\t\t\tvariant=\"danger\"\n\t\t\t\tdismissible={true}\n\t\t\t\tonClose={() => {\n\t\t\t\t\tsetShowError(false);\n\t\t\t\t\tsetError(undefined);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<strong>Bad credentials</strong>\n\t\t\t\t<p>\n\t\t\t\t\t{\" \"}\n\t\t\t\t\t{error === undefined\n\t\t\t\t\t\t? \"There was an error\"\n\t\t\t\t\t\t: error.internalError.message === undefined\n\t\t\t\t\t\t\t? error.internalError\n\t\t\t\t\t\t\t: error.internalError.message}\n\t\t\t\t</p>\n\t\t\t</Alert>\n\t\t\t<div className=\"row\">\n\t\t\t\t<Button\n\t\t\t\t\tfullWidth variant=\"contained\"\n\t\t\t\t\tstyle={{ backgroundColor: '#479DC4', color: 'white' }}\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\tonClick={loginAsGuest}\n\t\t\t\t>\n\t\t\t\t\tGuest\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { MESApiService } from \"../../services\";\nimport { Alert } from \"react-bootstrap\";\nimport { AuthContext } from \"../AuthProvider\";\nimport { Button } from \"@material-ui/core\";\n\nexport const LoginWithWindowsAuthentication = () => {\n\tconst [showError, setShowError] = React.useState(false);\n\tconst [error, setError] = React.useState<any>(undefined);\n\tconst { saveUserData } = React.useContext(AuthContext);\n\n\tconst [windowsAuthIsEnabled, setWindowsAuthIsEnabled] = useState(false);\n\n\tconst checkIfEnabled = async () => {\n\t\tconst apiService = new MESApiService();\n\t\tconst response = await apiService.checkIfWindowsAuthIsEnabled();\n\t\tif (apiService.hasErrors) {\n\t\t\tsetShowError(true);\n\t\t\tsetError(apiService.error);\n\t\t} else {\n\t\t\tsetWindowsAuthIsEnabled(response ?? false);\n\t\t}\n\t};\n\n\tconst login = useCallback(\n\t\tasync (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n\t\t\tconst apiService = new MESApiService();\n\t\t\te.preventDefault();\n\t\t\ttry {\n\t\t\t\tconst response = await apiService.loginWithWindowsAuthentication();\n\t\t\t\tconst data = await response.json();\n\t\t\t\tsaveUserData(data);\n\t\t\t} catch (e: any) {\n\t\t\t\tsetShowError(true);\n\t\t\t\tsetError(e.toString());\n\t\t\t}\n\t\t},\n\t\t[setShowError, setError, saveUserData],\n\t);\n\n\tuseEffect(() => {\n\t\tcheckIfEnabled().then(() => { });\n\t}, []);\n\n\tif (windowsAuthIsEnabled)\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Alert\n\t\t\t\t\tshow={showError}\n\t\t\t\t\tvariant=\"danger\"\n\t\t\t\t\tdismissible={true}\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetShowError(false);\n\t\t\t\t\t\tsetError(undefined);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<strong>Bad credentials</strong>\n\t\t\t\t\t<p> {error}</p>\n\t\t\t\t</Alert>\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tfullWidth variant=\"contained\"\n\t\t\t\t\t\tstyle={{ backgroundColor: '#479DC4', color: 'white' }}\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tonClick={login}\n\t\n\t\t\t\t\t>\n\t\t\t\t\t\tWindows Auth\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\treturn null;\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Navbar } from \"react-bootstrap\";\nimport { get } from \"lodash-es\";\nimport { LoginParams } from \"./models/login.models\";\nimport { LoginWithEmailAndPassword } from \"./login-strategies/LoginWithEmailAndPassword\";\nimport { LoginWithAzureAD } from \"./login-strategies/azure-ad/LoginWithAzureAD\";\nimport { LoginAsGuest } from \"./login-strategies/LoginAsGuest\";\nimport { Grid, Paper, Snackbar } from \"@material-ui/core\";\nimport { LoginWithWindowsAuthentication } from \"./login-strategies/LoginWithWindowsAuthentication\";\n\nexport function Login({ authConfig }: LoginParams) {\n\tconst params = useRef(new URL(document.location as any).searchParams);\n\tconst [open, setOpen] = useState(false);\n\tconst [message, setMessage] = useState(\"\");\n\n\tconst useEmailAndPassword = get(authConfig, \"useEmailAndPassword\", true);\n\tconst useAzureAD = get(authConfig, \"useAzureAD\", false);\n\tconst useWindowsAuth = get(authConfig, \"useWindowsAuth\", false);\n\tconst guestIsEnabled = get(authConfig, \"guestIsEnabled\", false);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t\tparams.current.delete(\"message\");\n\t\tconst newUrl = window.location.origin + \"?\" + params.current.toString();\n\t\twindow.history.replaceState({ path: newUrl }, \"\", newUrl);\n\t};\n\n\tuseEffect(() => {\n\t\tif (params.current.has(\"message\")) {\n\t\t\tsetMessage(params.current.get(\"message\")!);\n\t\t\tsetOpen(true);\n\t\t}\n\t}, [params.toString()]);\n\n\treturn (\n\t\t<React.Fragment>\n\t\t\t<header>\n\t\t\t\t<Navbar\n\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\texpand=\"lg\"\n\t\t\t\t\tclassName=\"mes-primary-color mes-menu-top\"\n\t\t\t\t>\n\t\t\t\t\t<Navbar.Brand href=\"/\">MESF</Navbar.Brand>\n\t\t\t\t</Navbar>\n\t\t\t</header>\n\t\t\t<div className=\"container-fluid\">\n\t\t\t\t<div className=\"row\">\n\t\t\t\t\t<div className=\"col-10 col-md-6 mx-auto my-5\">\n\t\t\t\t\t\t<Paper elevation={2}>\n\t\t\t\t\t\t\t<div className=\"card-header text-center\"><b>LOGIN</b></div>\n\t\t\t\t\t\t\t<Grid container justifyContent=\"space-between\" alignItems=\"center\">\n\t\t\t\t\t\t\t{(!useAzureAD && !guestIsEnabled && !useWindowsAuth) ? (\n\t\t\t\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t\t\t<Paper elevation={2} style={{ padding: 40, margin: \"40px 40px 40px 40px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t{useEmailAndPassword && <LoginWithEmailAndPassword />}\n\t\t\t\t\t\t\t\t\t\t</Paper>\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<Grid item md={5} xs={5}>\n\t\t\t\t\t\t\t\t\t\t\t<Paper elevation={2} style={{ padding: 40, margin: \"40px -40px 40px 40px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t{useEmailAndPassword && <LoginWithEmailAndPassword />}\n\t\t\t\t\t\t\t\t\t\t\t</Paper>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid item md={1} xs={1} style={{ maxWidth: \"20px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-muted font-weight-bold\">OR</span>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t\t<Grid item md={5} xs={5} style={{ marginBottom: \"auto\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<Paper elevation={2} style={{ padding: 40, margin: \"40px 40px 40px -40px\", minHeight: 248, display: 'flex', flexDirection: 'column', justifyContent: 'space-evenly' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<LoginWithWindowsAuthentication />\n\t\t\t\t\t\t\t\t\t\t\t\t\t{useAzureAD && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<LoginWithAzureAD config={authConfig.AzureConfig} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{guestIsEnabled && <LoginAsGuest />}\n\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t</Paper>\n\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Paper>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<Snackbar\n\t\t\t\topen={open}\n\t\t\t\tautoHideDuration={6000}\n\t\t\t\tonClose={handleClose}\n\t\t\t\tmessage={message}\n\t\t\t/>\n\t\t</React.Fragment>\n\t);\n}\n","import React, { useContext, useEffect } from \"react\";\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\nimport { AuthContext } from \"./AuthProvider\";\n\nexport function Logout() {\n\tconst { clearUserData } = useContext(AuthContext);\n\tconst navigate = useNavigate();\n\tconst [params, setParams] = useSearchParams();\n\n\tconst logout = () => {\n\t\tclearUserData();\n\t\tnavigate(`/?${params.toString()}`);\n\t};\n\tuseEffect(() => {\n\t\tlogout();\n\t}, []);\n\treturn (\n\t\t<React.Fragment>\n\t\t\t<div>logging out!!!</div>\n\t\t</React.Fragment>\n\t);\n}\n","import React from \"react\";\nimport { ConfigurationsType } from \"./configurationMenu\";\n\nconst RouterContext = React.createContext<React.FunctionComponent>(() => <></>);\nconst ConfigurationContext = React.createContext<ConfigurationsType>([\n\t[],\n\t() => <></>,\n]);\nconst NavbarContext = React.createContext<React.FunctionComponent>(() => <></>);\n\nexport { RouterContext, ConfigurationContext, NavbarContext };\n","import { get } from \"lodash-es\";\nimport { useAssetContext } from \"../context/assetContext\";\nimport { Asset } from \"../models/Asset\";\nimport { getAssets } from \"../repositorie/MESF-frontend-Repositorie\";\n\nexport const useSearchAssets = (setError: (err: string) => void) => {\n\tconst {\n\t\tactions: { setAllAssets, setAreasList },\n\t} = useAssetContext();\n\n\tconst searchAssets = () => {\n\t\tgetAssets().then(async (res) => {\n\t\t\tif (res.ok) {\n\t\t\t\tconst rows = get(res, \"data.tables[0].rows\", []);\n\t\t\t\tconst areas: Asset[] = await rows.filter(\n\t\t\t\t\t(asset: Asset) => asset.CanBeDefaultAsset,\n\t\t\t\t);\n\t\t\t\tsetAllAssets(rows);\n\t\t\t\tsetAreasList(areas);\n\t\t\t} else setError(res.message);\n\t\t});\n\t};\n\treturn { searchAssets };\n};\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst UTLSettingsInitialState: {\n\thideBlueBoxes: any;\n} = {\n\thideBlueBoxes: {},\n};\n\nexport const UTLSettingsReducer = createSlice({\n\tname: \"__\",\n\tinitialState: UTLSettingsInitialState,\n\treducers: {\n\t\tsetHideBlueBoxes(state, { payload }) {\n\t\t\tstate.hideBlueBoxes = payload;\n\t\t},\n\t},\n});\n","import { createContext, default as React, ReactNode, useContext } from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { UTLSettingsReducer } from \"../reducers/UTLSettingsReducer\";\n\nconst UTLSettingsContext = createContext({\n\tstate: UTLSettingsReducer.getInitialState(),\n\tactions: UTLSettingsReducer.actions,\n});\n\nexport const useUTLSettingsContext = () => useContext(UTLSettingsContext);\n\nexport const UTLSettingsProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: UTLSettingsReducer.getInitialState(),\n\t\treducers: UTLSettingsReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<UTLSettingsContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</UTLSettingsContext.Provider>\n\t);\n};\n","import { get } from \"lodash-es\";\nimport { useUTLSettingsContext } from \"../context/UTLSettingContext\";\nimport { getUTLSettings } from \"../repositorie/MESF-frontend-Repositorie\";\n\nexport const useSearchUTLSettings = (setError: (err: string) => void) => {\n\tconst {\n\t\tactions: { setHideBlueBoxes },\n\t} = useUTLSettingsContext();\n\n\tconst searchUTLSettings = () => {\n\t\tgetUTLSettings().then(async (res) => {\n\t\t\tif (res.ok) {\n\t\t\t\tconst hideBlueBoxesSetting = get(res, \"data.tables[0].rows[4]\", {});\n\t\t\t\thideBlueBoxesSetting.SettingName =\n\t\t\t\t\thideBlueBoxesSetting?.SettingName.trim();\n\t\t\t\tsetHideBlueBoxes(hideBlueBoxesSetting);\n\t\t\t} else setError(res.message);\n\t\t});\n\t};\n\treturn { searchUTLSettings };\n};\n","import React, { lazy, Suspense, useContext, useEffect, useState } from \"react\";\nimport { Container, Nav, Navbar, NavDropdown } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { useToken } from \"../../account\";\n\nimport { useUserContext } from \"../../context/userContext\";\nimport { NavbarContext } from \"../../globalContext\";\nimport { useSearchAssets } from \"../../hooks/useSearchAssets\";\nimport { useSearchUTLSettings } from \"../../hooks/useSearchUTLSetting\";\nimport { ErrorModal } from \"../modals/error-modal\";\n\nconst AreaSelector = lazy(() =>\n\timport(\"./areaSelector/area-selector\").then((mod) => ({\n\t\tdefault: mod.AreaSelector,\n\t})),\n);\n\nexport default function Header({\n\tshowAreaSelector = false,\n\tnavbarTitle = \"MESF\",\n}: {\n\tshowAreaSelector?: boolean;\n\tnavbarTitle?: string;\n}) {\n\tconst { getUserName } = useToken();\n\tconst [error, setError] = useState(\"\");\n\tconst [date, setDate] = useState(new Date());\n\tconst CustomNavbar: any = useContext(NavbarContext);\n\tconst [userName] = useState(getUserName());\n\tconst { searchAssets } = useSearchAssets(setError);\n\n\tconst { searchUTLSettings } = useSearchUTLSettings(setError);\n\tconst {\n\t\tstate: { userLogged },\n\t} = useUserContext();\n\n\tconst tick = () => {\n\t\tsetDate(new Date());\n\t};\n\n\tuseEffect(() => {\n\t\tconst timerID = setTimeout(() => {\n\t\t\ttick();\n\t\t}, 1000);\n\t\treturn () => {\n\t\t\tclearTimeout(timerID);\n\t\t};\n\t});\n\n\tuseEffect(() => {\n\t\tif (showAreaSelector && userLogged) {\n\t\t\tsearchAssets();\n\t\t\tsearchUTLSettings();\n\t\t}\n\t}, [userLogged]);\n\n\treturn (\n\t\t<Navbar\n\t\t\tvariant=\"dark\"\n\t\t\texpand=\"lg\"\n\t\t\tclassName=\"mes-primary-color mes-menu-top\"\n\t\t>\n\t\t\t<Container fluid>\n\t\t\t\t<Navbar.Brand as={Link} to=\"/home\">\n\t\t\t\t\t{navbarTitle}\n\t\t\t\t</Navbar.Brand>\n\t\t\t\t<Navbar.Toggle aria-controls=\"basic-navbar-nav\" />\n\t\t\t\t<Navbar.Collapse id=\"basic-navbar-nav\">\n\t\t\t\t\t<Nav className=\"me-auto\">\n\t\t\t\t\t\t<CustomNavbar />\n\t\t\t\t\t</Nav>\n\t\t\t\t\t<Nav className=\"ml-auto\" style={{ alignItems: \"baseline\" }}>\n\t\t\t\t\t\t<Nav>\n\t\t\t\t\t\t\t<span className=\"navbar-text\">{date.toLocaleTimeString()}</span>\n\t\t\t\t\t\t</Nav>\n\t\t\t\t\t\t<Nav className=\"mx-2\">\n\t\t\t\t\t\t\t<Nav.Link as={Link} to=\"/configuration\">\n\t\t\t\t\t\t\t\t<i className=\"fas fa-cog\"></i>\n\t\t\t\t\t\t\t</Nav.Link>\n\t\t\t\t\t\t</Nav>\n\t\t\t\t\t\t{showAreaSelector ? (\n\t\t\t\t\t\t\t<Suspense fallback={\"...\"}>\n\t\t\t\t\t\t\t\t<AreaSelector />\n\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<NavDropdown\n\t\t\t\t\t\t\tid=\"user-menu\"\n\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<i className=\"fas fa-user\" style={{ marginRight: 6 }}></i>\n\t\t\t\t\t\t\t\t\t{userName}\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclassName=\"mx-2\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<NavDropdown.Item href=\"account\">Account</NavDropdown.Item>\n\t\t\t\t\t\t\t<NavDropdown.Item href=\"logout\">Logout</NavDropdown.Item>\n\t\t\t\t\t\t</NavDropdown>\n\t\t\t\t\t</Nav>\n\t\t\t\t</Navbar.Collapse>\n\t\t\t</Container>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</Navbar>\n\t);\n}\n","import React, {useContext} from \"react\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport MenuList from \"@material-ui/core/MenuList\";\nimport {Link, Navigate, Route, Routes, useParams} from \"react-router-dom\";\n\nimport {ConfigurationContext} from \"./globalContext\";\nimport {GenericPanel} from \"./controls\";\nimport Users from \"./configuration/pages/users\";\nimport ShiftsCrews from \"./configuration/pages/shifCrew\";\nimport Logs from \"./configuration/pages/log\";\nimport Jobs from \"./configuration/pages/job\";\nimport Profiles from \"./configuration/pages/profiles\";\nimport AssetPage from \"./configuration/pages/asset\";\n\ntype SectionComponent = {\n\tpath: string;\n\tsidebar: React.FunctionComponent;\n\tmain: React.FunctionComponent;\n\texact?: boolean;\n};\n\nexport interface SidebarType\n\textends React.FunctionComponent<{ option?: string }> {}\n\nexport type ConfigurationsType = [SectionComponent[], SidebarType];\n\nexport default function Configuration() {\n\tlet { option }: any = useParams();\n\n\tconst [customConfiguration, CustomSidebar] =\n\t\tuseContext<ConfigurationsType>(ConfigurationContext);\n\n\tconst routes = [\n\t\t{\n\t\t\tpath: \"/\",\n\t\t\tsidebar: () => <div>Configuration</div>,\n\t\t\tmain: () => <Navigate to=\"users\" />,\n\t\t},\n\t\t{\n\t\t\tpath: \"shifts\",\n\t\t\tsidebar: () => <div>Shifts</div>,\n\t\t\tmain: () => <ShiftsCrews />,\n\t\t},\n\t\t{\n\t\t\tpath: \"asset\",\n\t\t\tsidebar: () => <div>Configuration Asset</div>,\n\t\t\tmain: () => <AssetPage />,\n\t\t},\n\t\t{\n\t\t\tpath: \"users\",\n\t\t\tsidebar: () => <div>Users</div>,\n\t\t\tmain: () => <Users />,\n\t\t},\n\t\t{\n\t\t\tpath: \"profiles\",\n\t\t\tsidebar: () => <div>profiles</div>,\n\t\t\tmain: () => <Profiles />,\n\t\t},\n\t\t...customConfiguration,\n\t\t{\n\t\t\tpath: \"logs\",\n\t\t\tsidebar: () => <div>Logs</div>,\n\t\t\tmain: () => <Logs />,\n\t\t},\n\t\t{\n\t\t\tpath: \"jobs\",\n\t\t\tsidebar: () => <div>Jobs</div>,\n\t\t\tmain: () => <Jobs />,\n\t\t},\n\t];\n\treturn (\n\t\t<GenericPanel title=\"Configuration\" description=\"\">\n\t\t\t<div className=\"row\" style={{ display: \"flex\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"col-md-2 mt-3 pt-0 pr-0 mes-div-submenu\"\n\t\t\t\t\tstyle={{ flex: \"20%\" }}\n\t\t\t\t>\n\t\t\t\t\t<h3 className=\"mes-menu-group\">Plant</h3>\n\t\t\t\t\t<MenuList className=\"mes-submenu\">\n\t\t\t\t\t\t<MenuItem selected={option === \"shifts\"} className=\"p-0\">\n\t\t\t\t\t\t\t<Link to=\"/configuration/shifts\" className=\"nav-link\">\n\t\t\t\t\t\t\t\tShift / Crews\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem selected={option === \"asset\"} className=\"p-0\">\n\t\t\t\t\t\t\t<Link to=\"/configuration/asset\" className=\"nav-link\">\n\t\t\t\t\t\t\t\tAssets Tree\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuList>\n\t\t\t\t\t<h3 className=\"mes-menu-group\">Security</h3>\n\t\t\t\t\t<MenuList className=\"mes-submenu\">\n\t\t\t\t\t\t<MenuItem selected={option === \"users\"} className=\"p-0\">\n\t\t\t\t\t\t\t<Link to=\"/configuration/users\" className=\"nav-link\">\n\t\t\t\t\t\t\t\tUsers\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem selected={option === \"profiles\"} className=\"p-0\">\n\t\t\t\t\t\t\t<Link to=\"/configuration/profiles\" className=\"nav-link\">\n\t\t\t\t\t\t\t\tProfiles\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuList>\n\t\t\t\t\t<CustomSidebar option={option} />\n\t\t\t\t\t<h3 className=\"mes-menu-group\">Maintenance</h3>\n\t\t\t\t\t<MenuList className=\"mes-submenu\">\n\t\t\t\t\t\t<MenuItem selected={option === \"logs\"} className=\"p-0\">\n\t\t\t\t\t\t\t<Link to=\"/configuration/logs\" className=\"nav-link\">\n\t\t\t\t\t\t\t\tLogs\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem selected={option === \"jobs\"} className=\"p-0\">\n\t\t\t\t\t\t\t<Link to=\"/configuration/jobs\" className=\"nav-link\">\n\t\t\t\t\t\t\t\tJobs\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuList>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"col-md-10 m-3\" style={{ flex: \"80%\" }}>\n\t\t\t\t\t<Routes>\n\t\t\t\t\t\t{routes.map((route, index) => (\n\t\t\t\t\t\t\t<Route key={index} path={route.path} element={<route.main />} />\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Routes>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</GenericPanel>\n\t);\n}\n","import React from \"react\";\n\nconst Home = () => (\n\t<div\n\t\tstyle={{\n\t\t\tbackgroundImage: `url(\"/home.jpg\")`,\n\t\t\tbackgroundPosition: \"center\",\n\t\t\tbackgroundSize: \"cover\",\n\t\t\tbackgroundRepeat: \"no-repeat\",\n\t\t\tminHeight: \"100%\",\n\t\t\theight: \"100vh\",\n\t\t\twidth: \"100%\",\n\t\t\tposition: \"absolute\",\n\t\t}}\n\t></div>\n);\nexport { Home };\n","/*!\n * chartjs-adapter-moment v1.0.1\n * https://www.chartjs.org\n * (c) 2022 chartjs-adapter-moment Contributors\n * Released under the MIT license\n */\nimport moment from 'moment';\nimport { _adapters } from 'chart.js';\n\nconst FORMATS = {\n datetime: 'MMM D, YYYY, h:mm:ss a',\n millisecond: 'h:mm:ss.SSS a',\n second: 'h:mm:ss a',\n minute: 'h:mm a',\n hour: 'hA',\n day: 'MMM D',\n week: 'll',\n month: 'MMM YYYY',\n quarter: '[Q]Q - YYYY',\n year: 'YYYY'\n};\n\n_adapters._date.override(typeof moment === 'function' ? {\n _id: 'moment', // DEBUG ONLY\n\n formats: function() {\n return FORMATS;\n },\n\n parse: function(value, format) {\n if (typeof value === 'string' && typeof format === 'string') {\n value = moment(value, format);\n } else if (!(value instanceof moment)) {\n value = moment(value);\n }\n return value.isValid() ? value.valueOf() : null;\n },\n\n format: function(time, format) {\n return moment(time).format(format);\n },\n\n add: function(time, amount, unit) {\n return moment(time).add(amount, unit).valueOf();\n },\n\n diff: function(max, min, unit) {\n return moment(max).diff(moment(min), unit);\n },\n\n startOf: function(time, unit, weekday) {\n time = moment(time);\n if (unit === 'isoWeek') {\n weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));\n return time.isoWeekday(weekday).startOf('day').valueOf();\n }\n return time.startOf(unit).valueOf();\n },\n\n endOf: function(time, unit) {\n return moment(time).endOf(unit).valueOf();\n }\n} : {});\n","import { makeStyles } from \"@material-ui/core\";\n\nexport const useTagColorsStyles = makeStyles({\n swatch: {\n width: '25px',\n height: '25px',\n display: 'inline-block',\n margin: '2px',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n popover: {\n display: 'flex',\n flexWrap: 'wrap',\n padding: '10px',\n maxWidth: '165px',\n },\n});\n","export const tagColors: string[] = [\n\t\"#5eaf60\", // light green\n\t\"green\", // green\n\t\"#62bd9c\", // turquoise green\n\t\"#53a285\", // muted green\n\t\"#add8e6\", // pastel sky blue\n\t\"#3280ba\", // blue\n\t\"blue\", // pure blue\n\t\"#5293c5\", // light blue\n\t\"#3d556f\", // dark slate blue\n\t\"#a362bf\", // purple\n\t\"#dab0d8\", // lighter violet\n\t\"black\", // black\n\t\"#e74b3c\", // red orange\n\t\"red\", // red\n\t\"#bf3b2c\", // dark red\n ];\n ","import Button from '@material-ui/core/Button';\nimport Popover from '@material-ui/core/Popover';\nimport React, { useState } from 'react';\nimport { useTagColorsStyles } from '../styles/TagColorsStyles';\nimport { tagColors } from '../utils/tagColors';\n\ninterface SwatchProps {\n color: string;\n onSelect: (color: string) => void;\n}\n\nconst Swatch = ({ color, onSelect }: SwatchProps) => {\n const classes = useTagColorsStyles();\n return (\n <div\n className={classes.swatch}\n style={{ backgroundColor: color }}\n onClick={() => onSelect(color)}\n />\n );\n};\n\ninterface Props {\n onChange: Function;\n color: string;\n elementId?: number;\n}\n\n\nconst ColorPicker = ({ onChange, color, elementId }: Props) => {\n const classes = useTagColorsStyles();\n const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null);\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n const open = Boolean(anchorEl);\n const id = open ? 'simple-popover' : undefined;\n\n\n return (\n <div>\n <Button\n aria-describedby={id}\n variant=\"outlined\"\n onClick={handleClick}\n style={{\n backgroundColor: color,\n width: '20px',\n height: '20px',\n minWidth: '20px',\n padding: 0,\n margin: '4px',\n }}\n />\n <Popover\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n >\n <div className={classes.popover}>\n {tagColors.map((color) => (\n <Swatch key={color} color={color} onSelect={(color: string) => {\n onChange(elementId, color)\n handleClose();\n }} />\n ))}\n </div>\n </Popover>\n </div>\n );\n};\n\nexport default ColorPicker;\n","import { CircularProgress, Grid } from \"@material-ui/core\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport FolderIcon from \"@material-ui/icons/Folder\";\nimport InsertDriveFileIcon from \"@material-ui/icons/InsertDriveFile\";\nimport { TreeItem, TreeView } from \"@material-ui/lab\";\nimport axios from \"axios\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Tag } from \"../../../models/TrendingModels\";\nimport { tagColors } from \"../../../utils/tagColors\";\n\ninterface TreeData {\n\ttagId: number | null;\n\ttagName: string;\n\tshortName: string;\n\tchildren: TreeData[];\n\tisLoaded: boolean;\n\ttag: Tag | null;\n}\n\ninterface TagSelectionModalProps {\n\tisOpen: boolean;\n\tonClose: () => void;\n\tonTagSelect: (tag: Tag) => void;\n}\nconst TagSelectionModal: React.FC<TagSelectionModalProps> = ({\n\tisOpen,\n\tonClose,\n\tonTagSelect,\n}) => {\n\tconst [isLoading, setIsLoading] = useState(true);\n\n\tconst [treeData, setTreeData] = useState<TreeData[]>([]);\n\tconst [expanded, setExpanded] = useState<string[]>([]);\n\n\tconst currentColorIndex = useRef(0);\n\n\tuseEffect(() => {\n\t\tconst loadData = async () => {\n\t\t\tif (isOpen) {\n\t\t\t\tsetIsLoading(true);\n\t\t\t\tconst children = await fetchChildren(\"root\");\n\t\t\t\tsetTreeData([\n\t\t\t\t\t{\n\t\t\t\t\t\ttagId: null,\n\t\t\t\t\t\ttagName: \"root\",\n\t\t\t\t\t\tchildren: children,\n\t\t\t\t\t\tisLoaded: true,\n\t\t\t\t\t\tshortName: \"Tags\",\n\t\t\t\t\t\ttag: null,\n\t\t\t\t\t},\n\t\t\t\t]);\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t};\n\t\tloadData();\n\t}, [isOpen]);\n\n\tconst getColor = () => {\n\t\tconst color = tagColors[currentColorIndex.current];\n\t\tcurrentColorIndex.current =\n\t\t\t(currentColorIndex.current + 1) % tagColors.length;\n\t\treturn color;\n\t};\n\n\tconst fetchChildren = async (tagName: string, depth = 0, maxDepth = 3) => {\n\t\t// Limiting the recursion depth for safety\n\t\tif (depth > maxDepth) {\n\t\t\treturn [];\n\t\t}\n\n\t\ttry {\n\t\t\tconst response = await axios.get(`/Tag/${tagName}/children`);\n\t\t\tlet childrenData = await Promise.all(\n\t\t\t\tresponse.data.map(async (dbTag: Tag) => {\n\t\t\t\t\tconst childTagName =\n\t\t\t\t\t\ttagName !== \"root\" ? tagName + \".\" + dbTag.tagName : dbTag.tagName;\n\t\t\t\t\tconst children = await fetchChildren(\n\t\t\t\t\t\tchildTagName,\n\t\t\t\t\t\tdepth + 1,\n\t\t\t\t\t\tmaxDepth,\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttagId: dbTag.tagId,\n\t\t\t\t\t\ttagName: childTagName,\n\t\t\t\t\t\tshortName: dbTag.tagName,\n\t\t\t\t\t\tchildren: children,\n\t\t\t\t\t\tisLoaded: true,\n\t\t\t\t\t\ttag: {\n\t\t\t\t\t\t\ttagId: dbTag.tagId,\n\t\t\t\t\t\t\ttagName: dbTag.tagName,\n\t\t\t\t\t\t\ttagType: dbTag.tagType,\n\t\t\t\t\t\t\tcolor: getColor(),\n\t\t\t\t\t\t\tautoScale: true,\n\t\t\t\t\t\t\tminScale: null,\n\t\t\t\t\t\t\tmaxScale: null,\n\t\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\t// Flatten the structure if needed or perform other transformations\n\t\t\t// ...\n\n\t\t\treturn childrenData;\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Error fetching children:\", error);\n\t\t\treturn [];\n\t\t}\n\t};\n\n\t/* I have to get the grandchildren because the toggle action would not be triggered if no children */\n\tconst handleNodeToggle = async (\n\t\tevent: React.SyntheticEvent,\n\t\tnodeIds: string[],\n\t) => {\n\t\t// console.log(\"Toggle:\", nodeIds);\n\t\tsetExpanded(nodeIds);\n\t};\n\n\tconst handleNodeSelect = async (event: React.SyntheticEvent, nodeId: any) => {\n\t\t// console.log('Selected Node ID:', nodeId);\n\t\t// console.log(\"treeData\", treeData);\n\t\tconst node = findNode(treeData, nodeId);\n\t\tif (node?.tagId) {\n\t\t\tonTagSelect(node.tag!);\n\t\t}\n\t};\n\n\tconst findNode = (nodes: TreeData[], tagName: string): TreeData | null => {\n\t\tfor (let node of nodes) {\n\t\t\tif (node.tagName === tagName) {\n\t\t\t\treturn node;\n\t\t\t} else if (node.children) {\n\t\t\t\tconst found = findNode(node.children, tagName);\n\t\t\t\tif (found) return found;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst renderTree = (node: TreeData) => (\n\t\t<TreeItem\n\t\t\tkey={node.tagName}\n\t\t\tnodeId={node.tagName}\n\t\t\tlabel={node.shortName}\n\t\t\tendIcon={<ArrowDropDownIcon />}\n\t\t\ticon={\n\t\t\t\tnode.children && node.children.length > 0 ? (\n\t\t\t\t\t<FolderIcon />\n\t\t\t\t) : (\n\t\t\t\t\t<InsertDriveFileIcon />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{node.children && node.children.map((child) => renderTree(child))}\n\t\t</TreeItem>\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: isOpen ? \"block\" : \"none\",\n\t\t\t\tminHeight: \"400px\",\n\t\t\t\tminWidth: \"600px\",\n\t\t\t}}\n\t\t>\n\t\t\t<div /* Style your modal here */>\n\t\t\t\t{isLoading ? (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\tstyle={{ minHeight: \"100px\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t<CircularProgress size=\"2rem\" />\n\t\t\t\t\t</Grid>\n\t\t\t\t) : (\n\t\t\t\t\t<TreeView\n\t\t\t\t\t\texpanded={expanded}\n\t\t\t\t\t\tonNodeSelect={handleNodeSelect as any}\n\t\t\t\t\t\tonNodeToggle={handleNodeToggle as any}\n\t\t\t\t\t>\n\t\t\t\t\t\t{treeData.map((tree) => renderTree(tree))}\n\t\t\t\t\t</TreeView>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default TagSelectionModal;\n","import React from 'react'\nimport MesfModal from '../../../../../../../components/modals/modal.mesf'\nimport { Box, Typography } from '@material-ui/core';\nimport TagSelectionModal from './TagSelectionModal';\nimport { Tag } from '../../../models/TrendingModels';\n\ninterface Props {\n open: boolean;\n handleClose: () => void;\n onTagSelect: (selected:Tag) => void;\n}\n\nexport const AddTagModal = ({ open, handleClose, onTagSelect }: Props) => {\n return (\n <MesfModal\n open={open}\n handleClose={handleClose}\n maxWidth={\"lg\"}\n aria-labelledby=\"modal-modal-title\"\n aria-describedby=\"modal-modal-description\"\n title='Tags'\n >\n <MesfModal.Content>\n <Box >\n <Typography id=\"modal-modal-description\">\n <TagSelectionModal\n isOpen={open}\n onClose={() => handleClose}\n onTagSelect={onTagSelect}\n />\n </Typography>\n </Box>\n </MesfModal.Content>\n </MesfModal>\n )\n}\n","import { ChartData } from \"chart.js\"\nimport { useMemo } from \"react\"\nimport { CursorData, TagList } from \"../models/TrendingModels\"\n\ninterface Props {\n cursorData:CursorData\n tagList: TagList\n chartData:ChartData\n}\n\ninterface TagsDataTable{\n [tagName:string]:{\n y1: number,\n y2: number,\n y2y1: number,\n pmin:{\n x:number | Date,\n y: number\n },\n pmax:{\n x:number | Date,\n y: number\n },\n }\n}\n \nexport const useTagsDataTable = ({ cursorData, tagList, chartData }: Props): TagsDataTable => {\n\n return useMemo(() => {\n // calculo y1,y2,y2y1,ymin,ymax por cada tag\n\n const dataTable:TagsDataTable = {};\n\n if (cursorData) {\n for (let idx = 0; idx < tagList.length; idx++) {\n const tag = tagList[idx];\n\n const datasetForTag = chartData.datasets.find(\n (ds: any) => ds.tagId === tag.tagId\n )?.data || [];\n\n let p1 = { x: new Date('1900-01-01'), y: 0 }\n let p1idx = 0;\n let p2idx = 0;\n let p2 = { x: new Date('1900-01-01'), y: 0 }\n let p1Found = false;\n\n let pmin = {x:0,y:Number.POSITIVE_INFINITY};\n let pmax = {x:0,y:Number.NEGATIVE_INFINITY};\n for (let idx = 0; idx < datasetForTag.length; idx++) {\n const curr = datasetForTag[idx]\n const currentVal = (curr! as any).x;\n\n if (!p1Found) {\n if (currentVal < cursorData.x1) {\n p1 = curr as any;\n p1idx = idx;\n p2idx = idx;\n p2 = JSON.parse(JSON.stringify(p1))\n pmin = JSON.parse(JSON.stringify(p1))\n pmax = JSON.parse(JSON.stringify(p1))\n continue;\n } else {\n p1Found = true;\n }\n } else{\n\n if (currentVal < cursorData.x2) {\n p2 = curr as any;\n p2idx = idx;\n\n if(pmin['y'] > (curr! as any)['y']){\n pmin = JSON.parse(JSON.stringify(curr))\n }\n\n if(pmax['y'] < (curr! as any)['y']){\n pmax = JSON.parse(JSON.stringify(curr))\n }\n\n } else {\n break;\n }\n }\n }\n\n dataTable[tag.tagName] = {\n y1: p1.y,\n y2: p2.y,\n y2y1: Number(p2.y) - Number(p1.y),\n pmin,\n pmax\n } \n }\n }\n\n return dataTable;\n\n\n }, [tagList, chartData, cursorData])\n}","import { makeStyles } from \"@material-ui/core\";\n\n\nexport const useTagsTableStyles = makeStyles((theme) => ({\n\n checkbox: {\n '& input[type=\"checkbox\"]': {\n zoom: 1.5,\n },\n textAlign: 'center',\n },\n rowHover: {\n '&:hover': {\n backgroundColor: \"#f2f2f2\", // Usa un color de la paleta del tema o uno personalizado\n }\n },\n\n topTitles: {\n border: \"0.0625rem black solid\", // 1px / 16px\n borderBottom: \"none\",\n backgroundColor: \"#e9ecef\"\n },\n\n bottomTitlesRow: {\n '& th': {\n border: \"1px black solid\",\n // Aquí puedes agregar otros estilos comunes para todos los th\n },\n backgroundColor: \"#e9ecef\"\n\n },\n doubleInput: {\n padding: \"0\",\n\n '& input[type=\"text\"] ': {\n width: \"100%\", // 180px / 16px,\n height: \"17px\",\n display: \"block\",\n margin: \"0\",\n padding: \"0\",\n }\n },\n\n\n inputCol: {\n width: \"11.25rem\", // 180px / 16px\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n autoScale: {\n width: '7.5rem', // 120px / 16px\n },\n scale: {\n width: '37.5rem', // 600px / 16px\n padding: \"0\"\n },\n visible: {\n width: '3.75rem', // 60px / 16px\n },\n color: {\n width: '4.375rem', // 70px / 16px\n },\n unit: {\n width: '7.5rem', // 120px / 16px\n },\n xStats: {\n // ...\n },\n}));","export const timeDifference = (start: number, end: number): string => {\n\n const differenceMilliseconds = start - end;\n const seconds = Math.floor(differenceMilliseconds / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n const remainingSeconds = seconds % 60;\n\n return `${hours}h ${remainingMinutes}m ${remainingSeconds}s`;\n};","import { Grid, Tooltip } from '@material-ui/core';\nimport { ChartData } from 'chart.js';\nimport { isNaN } from 'lodash-es';\nimport React, { useEffect, useState } from 'react';\nimport './ContextMenu.css';\nimport ColorPicker from './components/ColorPicker';\nimport { AddTagModal } from './components/modals/addTagModal/AddTagModal';\nimport { useTagsDataTable } from './hooks/useTagsDataTable';\nimport { CursorData, Tag, TagList } from './models/TrendingModels';\nimport { useTagsTableStyles } from './styles/TagsTableStyles';\nimport { timeDifference } from './utils/timeDifference';\n\ninterface TableComponentProps {\n tagList: TagList;\n setTagList: React.Dispatch<React.SetStateAction<TagList>>;\n cursorData: CursorData;\n chartData: ChartData;\n}\n\nconst TableComponent: React.FC<TableComponentProps> = ({ tagList, setTagList, chartData, cursorData }) => {\n\n const classes = useTagsTableStyles()\n const [tagAlias, setTagAlias] = useState<string>(\"\");\n\n const dataTable = useTagsDataTable({ tagList, chartData, cursorData });\n\n\n const [editableTagNames, setEditableTagNames] = useState<Record<number, string>>({});\n\n const handleChange = (index: number, value: number, property: keyof Omit<Tag, 'tagId'>) => {\n setTagList(prev => prev.map((tag, currentIndex) => currentIndex === index ? { ...tag, [property]: value, autoScale: false } : tag));\n };\n\n const handleChangeAlias = (tagId: number, newName: string) => {\n setTagList((prevTagList) =>\n prevTagList.map((tag) => (tag.tagId === tagId ? { ...tag, tagName: newName } : tag))\n );\n };\n const handleVisibilityChange = (index: any, value: any) => {\n setTagList(prev => prev.map((tag, currentIndex) => currentIndex === index ? { ...tag, visible: value } : tag));\n };\n const handleAutoScaleChange = (index: any, value: any) => {\n setTagList(prev => prev.map((tag, currentIndex) => currentIndex === index ? { ...tag, autoScale: value } : tag));\n };\n\n const handleColorChange = (tagId: any, value: any) => {\n setTagList(prev => prev.map((tag) => tag.tagId === tagId ? { ...tag, color: value } : tag));\n };\n \n\n const handleDeleteTag = (tagId: number) => {\n\t\tsetTagList((prevTagList) =>\n\t\t\tprevTagList.filter((tag) => tag.tagId !== tagId),\n\t\t);\n\t};\n\n\tconst handleAddTag = (newTag: any) => {\n\t\tif (newTag) {\n\t\t\tsetTagList((prevTagList) => {\n\t\t\t\t// Check if the tag is already in the list to avoid duplicates\n\t\t\t\tif (prevTagList.some((tag) => tag.tagId === newTag.tagId)) {\n\t\t\t\t\treturn prevTagList; // Return the existing list if the tag is already there\n\t\t\t\t}\n\t\t\t\treturn [...prevTagList, newTag]; // Add the new tag to the list\n\t\t\t});\n\t\t}\n\t};\n\n const [selectedRowIndex, setSelectedRowIndex] = useState<number | null>(null);\n const [addTagModalOpen, setAddTagModalOpen] = useState(false);\n const handleClose = () => setAddTagModalOpen(false);\n\n\n const ContextMenu = ({ x, y, options }: any) => {\n const handleContextMenuClick = (e: any) => {\n e.stopPropagation(); // Prevent click inside the menu from closing it\n };\n\n return (\n <div className=\"context-menu\" style={{ top: y, left: x }} onClick={handleContextMenuClick}>\n <ul>\n {options.map((option: any) => (\n <li key={option.id} onClick={option.onClick}>{option.label}</li>\n ))}\n </ul>\n </div>\n );\n };\n\n\n // Position state for the context menu\n const [contextMenuPosition, setContextMenuPosition] = useState({ x: 0, y: 0 });\n\n const contextMenuOptions = [\n { id: 'delete', label: 'Remove Tag', onClick: () => handleDelete(selectedRowIndex) },\n { id: 'add', label: 'Add Tag', onClick: () => setAddTagModalOpen(true) },\n { id: 'saveDefault', label: 'Save Default To Tag', onClick: () => { } },\n { id: 'saveAsView', label: 'Save as View', onClick: () => { } },\n { id: 'loadView', label: 'Load View', onClick: () => { } },\n ];\n\n\n const handleTagSelect = (selectedTag: any) => {\n handleAddTag(selectedTag);\n handleClose();\n };\n\n const handleDelete = (index: any) => {\n if (selectedRowIndex !== null) {\n const tagToDelete = tagList[selectedRowIndex];\n handleDeleteTag(tagToDelete.tagId);\n setSelectedRowIndex(null); // Reset the selected row index\n }\n };\n\n useEffect(() => {\n setEditableTagNames(\n tagList.reduce((acc, tag) => {\n acc[tag.tagId] = tag.tagName;\n return acc;\n }, {} as Record<number, string>)\n );\n }, [tagList]);\n\n useEffect(() => {\n const handleGlobalClick = (e: any) => {\n if (selectedRowIndex !== null) {\n setSelectedRowIndex(null);\n }\n };\n\n const handleKeyDown = (e: any) => {\n if (e.key === \"Escape\" && selectedRowIndex !== null) {\n setSelectedRowIndex(null);\n }\n };\n\n // Attach event listeners\n document.addEventListener(\"click\", handleGlobalClick);\n document.addEventListener(\"keydown\", handleKeyDown);\n\n // Cleanup function\n return () => {\n document.removeEventListener(\"click\", handleGlobalClick);\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [selectedRowIndex]);\n\n const handleRowClick = (index: number) => {\n setSelectedRowIndex(index);\n };\n\n const handleRightClick = (event: any, index: any) => {\n event.preventDefault();\n event.stopPropagation(); // Prevent the click event from propagating to the document\n setSelectedRowIndex(index);\n setContextMenuPosition({ x: event.clientX, y: event.clientY });\n };\n\n\n return (\n <Grid container spacing={1}>\n <Grid item xs={12}>\n <div style={{ overflowX: 'auto', width: '100%' }} >\n <table style={{ width: '100%', tableLayout: 'fixed', textAlign: \"center\" }} >\n <thead>\n <tr >\n <th className={classes.visible}></th>\n <th className={classes.inputCol}></th>\n <th className={classes.color}></th>\n <th colSpan={4} className={`${classes.topTitles} ${classes.scale}`}>Scale</th>\n <th className={`${classes.topTitles} ${classes.xStats}`}>\n {cursorData ? (() => {\n const date = new Date(cursorData.x1);\n const formattedDate = date.toLocaleString('en-US', {\n hour12: false,\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n });\n const milliseconds = date.getMilliseconds().toString().padStart(3, '0');\n const dateText = `${formattedDate}.${milliseconds}`;\n\n \n return (\n <>\n <span style={{\n height: '10px',\n width: '10px',\n backgroundColor: \"red\",\n borderRadius: '50%',\n display: 'inline-block',\n marginRight: '5px', \n }}></span>\n {dateText}\n </>)\n })() : null}\n </th>\n <th className={`${classes.topTitles} ${classes.xStats}`}>\n\n {cursorData ? (() => {\n const date = new Date(cursorData.x2);\n const formattedDate = date.toLocaleString('en-US', {\n hour12: false,\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n });\n const milliseconds = date.getMilliseconds().toString().padStart(3, '0');\n const dateText = `${formattedDate}.${milliseconds}`;\n\n \n return (\n <>\n <span style={{\n height: '10px',\n width: '10px',\n backgroundColor: \"blue\",\n borderRadius: '50%',\n display: 'inline-block',\n marginRight: '5px', \n }}></span>\n {dateText}\n </>)\n })() : null}\n\n </th>\n <th colSpan={3} className={`${classes.topTitles} ${classes.xStats}`}>\n {cursorData ? timeDifference(cursorData.x2 as any, cursorData.x1 as any) : null}\n </th>\n </tr>\n </thead>\n </table>\n <table style={{ width: '100%', tableLayout: 'fixed', textAlign: \"center\" }}>\n <thead>\n <tr className={classes.bottomTitlesRow}>\n <th className={classes.visible}>Visible</th>\n <th className={classes.inputCol}>Alias / Tagname</th>\n <th className={classes.color}>Color</th>\n <th className={classes.inputCol}>Min Scale</th>\n <th className={classes.inputCol}>Max Scale</th>\n <th className={classes.unit}>Unit</th>\n <th className={classes.autoScale}>AutoScale</th>\n <th> </th>\n <th>\n\n </th>\n <th>Y2-Y1</th>\n <th>Min</th>\n <th>Max</th>\n </tr>\n </thead>\n </table>\n </div>\n </Grid>\n <Grid item xs={12}>\n <div style={{ width: '100%', overflowY: 'auto', maxHeight: ' 20svh' }}>\n <table cellPadding='4px' style={{ width: '100%', tableLayout: 'fixed', textAlign: \"center\" }}>\n <tbody>\n {tagList.map((tag, index) => (\n <tr\n key={tag.tagName}\n onClick={() => handleRowClick(index)}\n onContextMenu={(e) => handleRightClick(e, index)}\n className={classes.rowHover}\n\n >\n <td className={`${classes.visible} ${classes.checkbox}`}>\n <input\n type=\"checkbox\"\n checked={tag.visible}\n onChange={(e) => handleVisibilityChange(index, e.target.checked)}\n />\n </td>\n <td className={classes.inputCol}>\n <Tooltip title={tag.tagName} placement=\"top\" arrow interactive enterDelay={500} >\n <div>\n <input\n type=\"text\"\n style={{ width: '100%' }}\n value={editableTagNames[tag.tagId] || ''}\n onFocus={(e) => e.target.select()}\n onChange={(e) => {\n setEditableTagNames({ ...editableTagNames, [tag.tagId]: e.target.value });\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleChangeAlias(tag.tagId, editableTagNames[tag.tagId]);\n }\n }}\n />\n </div>\n </Tooltip>\n </td>\n <td className={classes.color}>\n <ColorPicker onChange={handleColorChange} color={tag.color} elementId={tag.tagId} />\n </td>\n <td className={classes.inputCol}>\n <input\n type=\"text\"\n style={{ width: '100%' }}\n disabled={tag.autoScale}\n value={tag.minScale}\n onFocus={(e) => e.target.select()}\n onChange={(e) => {\n const value = e.target.value;\n const numericValue = Number(value);\n // Check if the value is a number and not empty\n handleChange(index, numericValue, 'minScale');\n\n }}\n />\n </td>\n <td className={classes.inputCol}>\n <input\n type=\"text\"\n style={{ width: '100%' }}\n disabled={tag.autoScale}\n value={tag.maxScale}\n onFocus={(e) => e.target.select()}\n onChange={(e) => {\n const value = e.target.value;\n const numericValue = Number(value);\n // Check if the value is a number and not empty\n if (!isNaN(numericValue) && value.trim() !== '') {\n handleChange(index, numericValue, 'maxScale');\n }\n }}\n />\n </td>\n <td className={`${classes.autoScale} ${classes.checkbox}`}>\n <input\n type=\"text\"\n style={{ width: '100%' }}\n disabled\n value={/* tag.unit */ \"Unit \"}\n onFocus={(e) => e.target.select()}\n />\n </td>\n <td className={`${classes.autoScale} ${classes.checkbox}`}>\n <input\n type=\"checkbox\"\n checked={tag.autoScale}\n onChange={(e) => handleAutoScaleChange(index, e.target.checked)}\n />\n </td>\n <td>\n {dataTable[tag.tagName]?.y1}\n </td>\n\n <td className={classes.doubleInput}\n >\n {dataTable[tag.tagName]?.y2}\n </td>\n <td>{dataTable[tag.tagName]?.y2y1}</td>\n <td>{!isNaN(dataTable[tag.tagName]?.pmin.y * 0) ? dataTable[tag.tagName]?.pmin.y : 0 } </td>\n <td>{!isNaN(dataTable[tag.tagName]?.pmax.y * 0) ? dataTable[tag.tagName]?.pmax.y : 0 } </td>\n\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </Grid>\n {selectedRowIndex !== null && (\n <ContextMenu x={contextMenuPosition.x} y={contextMenuPosition.y} options={contextMenuOptions} />\n )}\n\n <AddTagModal open={addTagModalOpen} handleClose={handleClose} onTagSelect={handleTagSelect} />\n {/* <MesfModal\n open={addTagModalOpen}\n handleClose={handleClose}\n maxWidth={\"lg\"}\n aria-labelledby=\"modal-modal-title\"\n aria-describedby=\"modal-modal-description\"\n title='Tags'\n >\n <MesfModal.Content>\n <Box >\n <Typography id=\"modal-modal-description\">\n <TagSelectionModal\n isOpen={addTagModalOpen}\n onClose={() => handleClose}\n onTagSelect={handleTagSelect}\n />\n </Typography>\n </Box>\n </MesfModal.Content>\n </MesfModal> */}\n </Grid>\n\n );\n};\n\nexport default TableComponent;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport { scopeType } from \"../components/chart/models/scopes.model\";\nimport moment from \"moment\";\nimport { isNil } from \"lodash-es\";\n\nconst TrendingsInitialState: {\n\ttimeScopeStart: Date;\n\ttimeScopeEnd: Date;\n\tscope: scopeType;\n\tgraphPan?:boolean;\n} = {\n\ttimeScopeStart: moment(new Date()).subtract(1, \"days\").toDate(),\n\ttimeScopeEnd: new Date(),\n\tscope: \"1 day\",\n\tgraphPan:false\n};\n\nexport const TrendingsReducer = createSlice({\n\tname: \"__\",\n\tinitialState: TrendingsInitialState,\n\treducers: {\n\t\tsetTotalScope(\n\t\t\tstate,\n\t\t\t{\n\t\t\t\tpayload,\n\t\t\t\ttype,\n\t\t\t}: {\n\t\t\t\tpayload:\n\t\t\t\t\t| {\n\t\t\t\t\t\t\tscope: scopeType;\n\t\t\t\t\t\t\tstart?: Date;\n\t\t\t\t\t\t\tend?: Date;\n\t\t\t\t\t\t\tgraphPan?:boolean;\n\t\t\t\t\t }\n\t\t\t\t\t| {\n\t\t\t\t\t\t\tscope?: scopeType;\n\t\t\t\t\t\t\tstart: Date;\n\t\t\t\t\t\t\tend?: Date;\n\t\t\t\t\t\t\tgraphPan?:boolean;\n\t\t\t\t\t }\n\t\t\t\t\t | {\n\t\t\t\t\t\t\t scope?: scopeType;\n\t\t\t\t\t\t\t start?: Date;\n\t\t\t\t\t\t\t end: Date;\n\t\t\t\t\t\t\t graphPan?:boolean;\n\t\t\t\t\t\t}\n\t\t\t\t\t| {\n\t\t\t\t\t\t\tscope?: scopeType;\n\t\t\t\t\t\t\tstart: Date;\n\t\t\t\t\t\t\tend: Date;\n\n\t\t\t\t\t\t\tgraphPan:boolean;\n\t\t\t\t\t };\n\t\t\t\t\t \n\n\t\t\t\ttype: string;\n\t\t\t},\n\t\t) {\n\n\n\t\tif(!isNil(payload.start) && !isNil(payload.end) && !isNil(payload.scope)) {\n\t\t\t//from arrow navigators\n\t\t\tstate.timeScopeStart = payload.start;\n\t\t\tstate.timeScopeEnd = payload.end;\n\t\t\tstate.scope = payload.scope;\n\t\t\treturn;\n\t\t}\n\n\n\t\t\tif (!isNil(payload.scope)) {\n\t\t\t\tif (payload.scope !== \"custom\") {\n\t\t\t\t\tswitch (payload.scope) {\n\t\t\t\t\t\tcase \"10 min\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(state.timeScopeEnd)\n\t\t\t\t\t\t\t\t.subtract(10, \"minutes\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"1 hour\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(state.timeScopeEnd)\n\t\t\t\t\t\t\t\t.subtract(1, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"4 hours\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(state.timeScopeEnd)\n\t\t\t\t\t\t\t\t.subtract(4, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"12 hours\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(state.timeScopeEnd)\n\t\t\t\t\t\t\t\t.subtract(12, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"1 day\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(state.timeScopeEnd)\n\t\t\t\t\t\t\t\t.subtract(1, \"days\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"10 days\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(state.timeScopeEnd)\n\t\t\t\t\t\t\t\t.subtract(10, \"days\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.scope = payload.scope;\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tif (!isNil(payload.start) && !isNil(payload.end) && isNil(payload.graphPan)) {\n\t\t\t\t// from zoom\n\t\t\t\tstate.timeScopeStart = payload.start;\n\t\t\t\tstate.timeScopeEnd = payload.end;\n\t\t\t\tstate.scope = \"custom\";\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!isNil(payload.start) && !isNil(payload.end) && !isNil(payload.graphPan)) {\n\t\t\t\t// from pan\n\n\t\t\t\tstate.timeScopeStart = payload.start;\n\t\t\t\tstate.timeScopeEnd = payload.end;\n\t\t\t\treturn;\n\t\t\t}\n\n\n\n\t\t\tif (!isNil(payload.start)) {\n\t\t\t\tstate.timeScopeStart = payload.start;\n\t\t\t\tif (state.scope !== \"custom\") {\n\t\t\t\t\tswitch (state.scope) {\n\t\t\t\t\t\tcase \"10 min\":\n\t\t\t\t\t\t\tstate.timeScopeEnd = moment(payload.start)\n\t\t\t\t\t\t\t\t.add(10, \"minutes\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"1 hour\":\n\t\t\t\t\t\t\tstate.timeScopeEnd = moment(payload.start)\n\t\t\t\t\t\t\t\t.add(1, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"4 hours\":\n\t\t\t\t\t\t\tstate.timeScopeEnd = moment(payload.start)\n\t\t\t\t\t\t\t\t.add(4, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"12 hours\":\n\t\t\t\t\t\t\tstate.timeScopeEnd = moment(payload.start)\n\t\t\t\t\t\t\t\t.add(12, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"1 day\":\n\t\t\t\t\t\t\tstate.timeScopeEnd = moment(payload.start)\n\t\t\t\t\t\t\t\t.add(1, \"days\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"10 days\":\n\t\t\t\t\t\t\tstate.timeScopeEnd = moment(payload.start)\n\t\t\t\t\t\t\t\t.add(10, \"days\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!isNil(payload.end)) {\n\t\t\t\tstate.timeScopeEnd = payload.end;\n\t\t\t\tif (state.scope !== \"custom\") {\n\t\t\t\t\tswitch (state.scope) {\n\t\t\t\t\t\tcase \"10 min\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(payload.end)\n\t\t\t\t\t\t\t\t.subtract(10, \"minutes\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"1 hour\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(payload.end)\n\t\t\t\t\t\t\t\t.subtract(1, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"4 hours\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(payload.end)\n\t\t\t\t\t\t\t\t.subtract(4, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"12 hours\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(payload.end)\n\t\t\t\t\t\t\t\t.subtract(12, \"hours\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"1 day\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(payload.end)\n\t\t\t\t\t\t\t\t.subtract(1, \"days\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"10 days\":\n\t\t\t\t\t\t\tstate.timeScopeStart = moment(payload.end)\n\t\t\t\t\t\t\t\t.subtract(10, \"days\")\n\t\t\t\t\t\t\t\t.toDate();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t},\n});\n","import React, { ReactNode, createContext, useContext } from \"react\";\nimport { TrendingsReducer } from \"../../../reducers/trendings.reducer\";\nimport { useComplexState } from \"use-complex-state\";\n\nconst TrendingContext = createContext({\n\tstate: TrendingsReducer.getInitialState(),\n\tactions: TrendingsReducer.actions,\n});\n\nexport const useTrendingContext = () => useContext(TrendingContext);\n\nexport const TrendingProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: TrendingsReducer.getInitialState(),\n\t\treducers: TrendingsReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<TrendingContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</TrendingContext.Provider>\n\t);\n};\n","export const formatDateTimeToString = (date: Date) => {\n let hour = date.getHours().toString().padStart(2, '0');\n let minute = date.getMinutes().toString().padStart(2, '0');\n let second = date.getSeconds().toString().padStart(2, '0');\n\n if (hour === '24') {\n hour = '00';\n }\n\n const formattedDate = date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n });\n\n const formattedTime = `${hour}:${minute}:${second}`;\n\n return { formattedDate, formattedTime }\n\n}","import { useRef, useState } from \"react\";\nimport { useTrendingContext } from \"../../../context/TrendingContext\";\nimport { formatDateTimeToString } from \"../../../utils/formatDateTimeToString\";\n\nexport const useChartOptions = () => {\n\n\n\tconst { state, actions } = useTrendingContext();\n\n\n\tconst debounceTimerRef = useRef<NodeJS.Timeout | null>(null);\n\n\n\tconst handleZoom = ({ chart }: any) => {\n\t\tif (debounceTimerRef.current) {\n\t\t\tclearTimeout(debounceTimerRef.current);\n\t\t}\n\t\tdebounceTimerRef.current = setTimeout(() => {\n\t\t\t// Handle zoom event and execute fetch\n\t\t\tconst newStart = new Date(chart.scales.x.min);\n\t\t\tconst newEnd = new Date(chart.scales.x.max);\n\n\t\t\tactions.setTotalScope({\n\t\t\t\tstart: newStart,\n\t\t\t\tend: newEnd,\n\t\t\t});\n\t\t}, 1000);\n\t};\n\n\tconst handlePan = ({ chart }: any) => {\n\t\tif (debounceTimerRef.current) {\n\t\t\tclearTimeout(debounceTimerRef.current);\n\t\t}\n\t\tdebounceTimerRef.current = setTimeout(() => {\n\t\t\t// Handle pan event and execute fetch\n\t\t\tconst newStart = new Date(chart.scales.x.min);\n\t\t\tconst newEnd = new Date(chart.scales.x.max);\n\n\t\t\tactions.setTotalScope({\n\t\t\t\tstart: newStart,\n\t\t\t\tend: newEnd,\n\t\t\t\tgraphPan: true,\n\t\t\t});\n\t\t}, 1000);\n\t};\n\n return useState({\n\t\tanimation: {\n\t\t\tduration: 0, // No animation\n\t\t},\n\t\tresponsive: true,\n\t\tmaintainAspectRatio: false,\n\t\tscales: {\n\t\t\tx: {\n\t\t\t\ttype: \"time\" as const,\n\n\t\t\t\tticks: {\n\t\t\t\t\tautoSkip: true,\n\t\t\t\t\tmaxTicksLimit: 20,\n\t\t\t\t\tcallback: function (value: any, index: any, ticks: any) {\n\t\t\t\t\t\tconst currentDate = new Date(value);\n\n\t\t\t\t\t\tconst time = formatDateTimeToString(currentDate).formattedTime\n\t\t\t\t\t\tconst date = formatDateTimeToString(currentDate).formattedDate\n\n\t\t\t\t\t\t// Si es el primer tick, siempre muestra la fecha y hora\n\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\treturn [time, date];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// De lo contrario, solo muestra la hora\n\t\t\t\t\t\treturn time;\n\n\n\t\t\t\t\t},\n\n\t\t\t\t},\n\n\n\t\t\t\tgrid: {\n\t\t\t\t\tdisplay: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\ty: {\n\t\t\t\tgrid: {\n\t\t\t\t\tdisplay: true,\n\t\t\t\t},\n\t\t\t\tafterUpdate(axis: any) {\n\t\t\t\t\tconst chart = axis.chart;\n\t\t\t\t\tconst keys = Object.keys(chart.scales).filter(sc => sc !== 'x');\n\n\t\t\t\t\tif (keys.length > 1) {\n\t\t\t\t\t\tfor (const scaleKey in chart.scales) {\n\t\t\t\t\t\t\tconst scale = chart.scales[scaleKey];\n\n\t\t\t\t\t\t\tif (scale.max === 1 && scale.min === 0) {\n\t\t\t\t\t\t\t\t(chart.scales[scaleKey] as any).display = false;\n\t\t\t\t\t\t\t\t(chart.scales[scaleKey] as any).options.display = false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t(chart.scales[scaleKey] as any).display = true;\n\t\t\t\t\t\t\t\t(chart.scales[scaleKey] as any).options.display = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log('sin y', keys);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t},\n\t\tplugins: {\n\t\t\ttooltip: { enabled: false },\n\t\t\tlegend: { display: false },\n\t\t\tzoom: {\n\t\t\t\tzoom: {\n\t\t\t\t\twheel: { enabled: true, mode: \"x\" as const },\n\t\t\t\t\tpinch: { enabled: true, mode: \"x\" as const },\n\t\t\t\t\tonZoom: handleZoom,\n\t\t\t\t\tmode: \"x\" as const,\n\t\t\t\t},\n\t\t\t\tpan: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tmode: \"x\" as const,\n\t\t\t\t\tonPan: handlePan,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t});\n}","import { makeStyles } from \"@material-ui/core\";\n\nexport const useTrendingStyles = makeStyles((theme) => ({\n\tdatetimePicker: {\n\t\talignItems: \"center\",\n\n\t\t\"& .MuiInputBase-root\": {\n\t\t\tcolor: \"black\",\n\t\t\tbackgroundColor: \"white\",\n\t\t\tborderRadius: theme.shape.borderRadius,\n\t\t\twidth: \"90%\",\n\t\t\tminWidth: \"90%\",\n\t\t\tmaxWidth: \"90%\",\n\t\t},\n\n\t\t\"& .MuiInputBase-input\": {\n\t\t\tfontSize: \"13px !important\",\n\t\t\theight: \"15px !important\",\n\t\t\tpaddingRight: \"3px\",\n\t\t\tpaddingLeft: \"5px\",\n\t\t},\n\t\t\"& .MuiInput-underline:before\": {\n\t\t\tborderBottomColor: \"rgba(0, 0, 0, 0.42)\",\n\t\t},\n\t},\n\tselect: {\n\t\t\"& .MuiInput-root\": {\n\t\t\twidth: \"100%\",\n\t\t},\n\t\t\"& .MuiInputBase-root\": {\n\t\t\tcolor: \"black\",\n\t\t\tbackgroundColor: \"white\",\n\t\t\tborderRadius: theme.shape.borderRadius,\n\t\t\tminWidth: \"100%\",\n\t\t},\n\t\t\"& .MuiInputBase-input\": {\n\t\t\tfontSize: \"14px !important\",\n\t\t\theight: \"15px !important\",\n\t\t},\n\t\t\"& .MuiInput-underline:before\": {\n\t\t\tborderBottomColor: \"rgba(0, 0, 0, 0.42)\",\n\t\t},\n\t},\n\n\tlabelOptions: {\n\t\tpaddingLeft: \"2rem\",\n\t\tuserSelect: \"none\",\n\t\t\"& > label\": {\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tgap: \"5px\",\n\t\t},\n\t\t'& input[type=\"checkbox\"]': {\n\t\t\tzoom: 1.5,\n\t\t},\n\t},\n\n\tnavigatorButton: {\n\t\t\"& .MuiSvgIcon-root\": {\n\t\t\tcursor:\"pointer !important\"\n\t\t}\n\t}\n}));\n","import {Grid} from \"@material-ui/core\";\nimport React from \"react\";\nimport {useTrendingStyles} from \"./styles/TrendingStyles\";\nimport { CustomOptions } from \"./models/TrendingModels\";\n\ninterface CustomOptionsComponentProps {\n\tcustomOptions: CustomOptions;\n\tsetCustomOptions: React.Dispatch<React.SetStateAction<CustomOptions>>;\n}\n\nconst CustomOptionsComponent: React.FC<CustomOptionsComponentProps> = ({\n\tcustomOptions,\n\tsetCustomOptions,\n}) => {\n\tconst classes = useTrendingStyles();\n\n\tconst handleGridChange = (value: boolean) => {\n\t\tsetCustomOptions((prevOptions) => ({\n\t\t\t...prevOptions,\n\t\t\tshowGrid: value,\n\t\t}));\n\t};\n\n\tconst handleSteppedChange = (value: boolean) => {\n\t\tsetCustomOptions((prevOptions) => ({\n\t\t\t...prevOptions,\n\t\t\tstepped: value,\n\t\t}));\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Grid item className={classes.labelOptions}>\n\t\t\t\t<label>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tchecked={customOptions.showGrid}\n\t\t\t\t\t\tonChange={(e) => handleGridChange(e.target.checked)}\n\t\t\t\t\t/>\n\t\t\t\t\tShow Grid\n\t\t\t\t</label>\n\t\t\t</Grid>\n\t\t\t<Grid item className={classes.labelOptions}>\n\t\t\t\t<label>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tchecked={customOptions.stepped}\n\t\t\t\t\t\tonChange={(e) => handleSteppedChange(e.target.checked)}\n\t\t\t\t\t/>\n\t\t\t\t\tStepped\n\t\t\t\t</label>\n\t\t\t</Grid>\n\t\t</>\n\t);\n};\n\nexport default CustomOptionsComponent;\n","import moment from \"moment\"\nimport { scopeType } from \"../models/scopes.model\"\n\nexport const dateNavigator = (startDate:Date, endDate:Date, scope: scopeType, operator:\"add\" | \"subtract\") => {\n\n if (scope === \"custom\") return\n\n else {\n const [quantity, duration] = scope.split(\" \");\n const newStartDate = moment(startDate)[operator](quantity, duration[0] as moment.unitOfTime.DurationConstructor).toDate()\n const newEndDate = moment(endDate)[operator](quantity, duration[0] as moment.unitOfTime.DurationConstructor).toDate()\n\n return {newStartDate, newEndDate}\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport { FormControl, Grid, IconButton, MenuItem, Select, TextField } from \"@material-ui/core\"\nimport { ChevronLeft, ChevronRight } from '@material-ui/icons';\nimport moment from 'moment';\nimport CustomOptionsComponent from '../customOptionsComponent';\nimport { dateNavigator } from '../utils/dateNavigator';\nimport { useTrendingContext } from '../context/TrendingContext';\nimport { useTrendingStyles } from '../styles/TrendingStyles';\nimport { CustomOptions } from '../models/TrendingModels';\nimport { ChartOptions } from 'chart.js';\n\ninterface Props {\n setChartOptions: (options: any) => void\n}\nexport const Header = ({ setChartOptions }: Props) => {\n const classes = useTrendingStyles();\n const { state, actions } = useTrendingContext();\n\n\n const [customOptions, setCustomOptions] = useState<CustomOptions>({\n showGrid: true,\n stepped: false,\n });\n\n\n const handleDateNavigator = (operator: \"add\" | \"subtract\") => {\n const newDates = dateNavigator(state.timeScopeStart, state.timeScopeEnd, state.scope, operator)\n if (newDates) {\n actions.setTotalScope({ start: newDates.newStartDate, end: newDates.newEndDate, scope: state.scope })\n }\n }\n\n const handleDateChange = (newValue: any, key: \"start\" | \"end\") => {\n //@ts-ignore\n actions.setTotalScope({ [key]: moment(newValue).toDate() });\n };\n\n\n const handleChangeScope = (e: any) => {\n const newScope = e.target.value;\n actions.setTotalScope({\n scope: newScope,\n });\n };\n\n\n useEffect(() => {\n const changeOptions = () => {\n // console.log(\"change options\");\n setChartOptions((prevOptions: any) => ({\n ...prevOptions,\n elements: {\n line: {\n stepped: customOptions.stepped,\n lineTension: 0.1,\n },\n },\n scales: {\n ...prevOptions.scales,\n x: {\n ...prevOptions.scales.x,\n grid: {\n ...prevOptions.scales.x.grid,\n display: customOptions.showGrid,\n },\n },\n y: {\n ...prevOptions.scales.y,\n grid: {\n ...prevOptions.scales.y.grid,\n display: customOptions.showGrid,\n },\n },\n },\n }));\n };\n changeOptions();\n }, [customOptions]);\n\n\n\n\tuseEffect(() => {\n\t\tsetChartOptions((prevOptions:any) => ({\n\t\t\t...prevOptions,\n\t\t\tscales: {\n\t\t\t\t...prevOptions.scales,\n\t\t\t\tx: {\n\t\t\t\t\t...prevOptions.scales.x,\n\t\t\t\t\tmin: state.timeScopeStart.getTime(), // Establece el mínimo del eje X\n\t\t\t\t\tmax: state.timeScopeEnd.getTime(), // Establece el máximo del eje X\n\t\t\t\t},\n\t\t\t},\n\t\t}));\n\t}, [state.timeScopeStart, state.timeScopeEnd]);\n\n return (\n <Grid\n item\n xs={12}\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n style={{ height: \"15%\" }}\n >\n <Grid\n md={5}\n item\n container\n justifyContent=\"flex-start\"\n alignItems=\"center\"\n spacing={1}\n wrap={\"wrap\"}\n >\n <IconButton color=\"primary\" onClick={() => handleDateNavigator(\"subtract\")} className={classes.navigatorButton}>\n <ChevronLeft fontSize=\"large\" />\n </IconButton>\n\n <Grid item>\n\n <TextField\n type=\"datetime-local\"\n className={classes.datetimePicker}\n label=\"Start\"\n variant=\"outlined\"\n value={moment(state.timeScopeStart).format(\"YYYY-MM-DDTHH:mm:ss\")}\n onChange={(e) => handleDateChange(e.target.value, \"start\")}\n InputLabelProps={{\n shrink: true,\n style: { marginLeft: \"10px\" },\n }}\n InputProps={\n {\n max: state.timeScopeEnd,\n } as any\n }\n />\n </Grid>\n <Grid item className={classes.select}>\n <FormControl variant=\"outlined\">\n <Select\n value={state.scope}\n onChange={handleChangeScope}\n displayEmpty\n >\n <MenuItem value=\"10 min\">10 min</MenuItem>\n <MenuItem value=\"1 hour\">1 hour</MenuItem>\n <MenuItem value=\"4 hours\">4 hours</MenuItem>\n <MenuItem value=\"12 hours\">12 hours</MenuItem>\n <MenuItem value=\"1 day\">1 day</MenuItem>\n <MenuItem value=\"10 days\">10 days</MenuItem>\n <MenuItem value=\"custom\">Custom</MenuItem>\n </Select>\n </FormControl>\n </Grid>\n <Grid item>\n <TextField\n label=\"End\"\n variant=\"outlined\"\n className={classes.datetimePicker}\n type=\"datetime-local\"\n value={moment(state.timeScopeEnd).format(\"YYYY-MM-DDTHH:mm:ss\")}\n onChange={(e) => handleDateChange(e.target.value, \"end\")}\n InputLabelProps={{\n shrink: true,\n style: { marginLeft: \"10px\" },\n }}\n />\n </Grid>\n <IconButton color=\"primary\" onClick={() => handleDateNavigator(\"add\")} className={classes.navigatorButton}>\n <ChevronRight fontSize=\"large\" />\n </IconButton>\n </Grid>\n\n <Grid md={7} item container justifyContent=\"space-between\">\n <Grid item container wrap=\"nowrap\" spacing={1}>\n <Grid item container>\n <CustomOptionsComponent\n customOptions={customOptions}\n setCustomOptions={setCustomOptions}\n />\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n )\n}","import { ChartArea } from 'chart.js';\nimport React, { useEffect, useRef, useState } from 'react';\n\ninterface DraggableLineControlProps {\n\n chartArea: ChartArea\n initialLeft: number;\n onUpdate: (newLeft: number) => void;\n color: string;\n}\n\nconst DraggableLineControl: React.FC<DraggableLineControlProps> = ({ initialLeft, onUpdate, color, chartArea }) => {\n const [isDragging, setIsDragging] = useState(false);\n const [left, setLeft] = useState(initialLeft);\n const ref = useRef<HTMLDivElement>(null);\n\n const handleMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n setIsDragging(true);\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging || !ref.current) return;\n\n const rightPadding = chartArea.width - chartArea.right;\n const leftPadding = chartArea.left;\n\n const newLeft = Math.min(Math.max(e.clientX - ref.current.offsetParent!.getBoundingClientRect().left, chartArea.left), chartArea.right);\n\n\n setLeft(newLeft);\n onUpdate(newLeft); // Actualiza la posición de la línea en el gráfico\n };\n\n const handleMouseUp = () => {\n setIsDragging(false);\n };\n\n useEffect(() => {\n const mouseMoveHandler = (e: MouseEvent) => handleMouseMove(e);\n const mouseUpHandler = () => handleMouseUp();\n\n if (isDragging) {\n window.addEventListener('mousemove', mouseMoveHandler);\n window.addEventListener('mouseup', mouseUpHandler);\n }\n\n return () => {\n window.removeEventListener('mousemove', mouseMoveHandler);\n window.removeEventListener('mouseup', mouseUpHandler);\n };\n }, [isDragging]);\n\n return (\n <div\n ref={ref}\n style={{ height: 20, width: 20, background: color, position: 'absolute', top: -10, left: left - 10 }}\n onMouseDown={handleMouseDown}\n >\n <div style={{ height: chartArea.height, width: 2, background: color, position: 'relative', top: 20, left: 0, right: 0, margin: 'auto' }}>\n </div>\n </div>\n );\n};\n\nexport default DraggableLineControl;\n","import { Plugin } from 'chart.js';\n\nexport const useGetVerticalLinePlugin = (setChartArea: (param: any) => void, setCoords: any): Plugin => {\n\n\n const chartPlugin: Plugin<'line'> = {\n id: \"verticalLinePlugin\",\n afterUpdate: function (chart: any) {\n if (chart.chartArea) {\n // console.log(\"after update\");\n\n if (chart.mouseX === null) {\n chart.mouseX = chart.chartArea.left + (chart.chartArea.width / 10)\n\n // chart.mouseX = chart.chartArea.left + 30.9\n }\n if (chart.secondLineX === null) {\n chart.secondLineX = chart.chartArea.left + (chart.chartArea.width * 0.90);\n // chart.secondLineX = chart.chartArea.right\n\n }\n }\n },\n beforeInit(chart: any) {\n chart.mouseX = null;\n chart.secondLineX = null;\n\n },\n afterDatasetsDraw(chart: any) {\n\n let x1 = chart.mouseX;\n let x2 = chart.secondLineX;\n\n setChartArea(chart.chartArea)\n setCoords({ x1, x2 })\n },\n\n\n\n }\n\n return chartPlugin;\n}\n","import { CursorData } from '../models/TrendingModels';\n\nconst getValuesAtCursor = (chart: any, timeAtCursor: any): any[] => {\n const valuesAtCursor: any[] = [];\n chart.data.datasets.forEach((dataset: any) => {\n let previousDataPoint = null;\n for (let i = 0; i < dataset.data.length; i++) {\n if (dataset.data[i].x.getTime() <= timeAtCursor) {\n previousDataPoint = dataset.data[i];\n } else {\n break;\n }\n }\n if (previousDataPoint) {\n valuesAtCursor.push(previousDataPoint.y);\n }\n });\n return valuesAtCursor;\n}\n\n\nexport const updateCursorData = (chart: any, setCursorData: (cursorData: CursorData) => void) => {\n\n\n const xScale = chart.scales.x;\n\n // Coordenadas para la primera y segunda línea\n const timeAtCursor1 = xScale.getValueForPixel(chart.mouseX);\n const timeAtCursor2 = xScale.getValueForPixel(chart.secondLineX);\n\n // Los valores en el punto del cursor pueden ser diferentes\n const valuesAtCursor1 = getValuesAtCursor(chart, timeAtCursor1);\n const valuesAtCursor2 = getValuesAtCursor(chart, timeAtCursor2);\n\n setCursorData({\n x1: timeAtCursor1,\n x2: timeAtCursor2,\n values: [...valuesAtCursor1, ...valuesAtCursor2]\n });\n\n}\n","import { Plugin } from 'chart.js';\nimport { formatDateTimeToString } from '../utils/formatDateTimeToString';\n\n\nexport const useXAxisDatePlugin = (): Plugin => {\n\n const chartPlugin: Plugin<'line'> = {\n id: 'xAxisDatePlugin',\n afterBuildTicks(chart) {\n const oldTicks = chart.scales.x.ticks;\n\n const newTicks = [];\n newTicks.push(oldTicks[0])\n\n for (let i = 1; i < oldTicks.length; i++) {\n\n const current = new Date(oldTicks[i].value)\n const previous = new Date(oldTicks[i - 1].value)\n\n const time = formatDateTimeToString(current).formattedTime\n const date = formatDateTimeToString(current).formattedDate\n\n let newLabel;\n let newMajor;\n\n if (current.getDate() !== previous.getDate()) {\n newLabel = [time, date]\n newMajor = true\n } else {\n newLabel = time\n newMajor = false\n }\n\n\n newTicks.push({\n value: oldTicks[i].value,\n major: oldTicks[i].major,\n label: newLabel\n })\n }\n chart.scales.x.ticks = newTicks\n }\n }\n\n return chartPlugin\n\n}","import { Plugin } from \"chart.js\";\n\n\nexport const useYAxisPlugin = (): Plugin => {\n\n const chartPlugin: Plugin<'line'> = {\n id: 'yAxisPlugin',\n \n }\n\n return chartPlugin\n\n}","import { Tag } from \"../models/TrendingModels\";\n\nexport const areRangesSimilar = (tag1: Tag, tag2: Tag) => {\n const range1 = tag1.maxScale - tag1.minScale; // Rango de la primera etiqueta\n const range2 = tag2.maxScale - tag2.minScale; // Rango de la segunda etiqueta\n\n // Determina los límites para la comparación\n const lowerBound = Math.max(tag1.minScale, tag2.minScale);\n const upperBound = Math.min(tag1.maxScale, tag2.maxScale);\n\n // Calcula el solapamiento entre los dos rangos\n const overlap = Math.max(0, upperBound - lowerBound);\n\n // Determina si el solapamiento es significativo comparado con los rangos individuales\n const isSignificantOverlap = (overlap / range1 > 0.5) && (overlap / range2 > 0.5);\n\n return isSignificantOverlap;\n}","\nexport const calculateScales = (min: any, max: any, sigDigits: any) => {\n const roundToSignificantDigits = (num: any) => {\n if (num === 0) return 0;\n const multiplier = Math.pow(\n 10,\n sigDigits - Math.floor(Math.log10(Math.abs(num))) - 1,\n );\n return Math.round(num * multiplier) / multiplier;\n };\n\n let minScale = roundToSignificantDigits(min);\n let maxScale = roundToSignificantDigits(max);\n\n // Adjust minScale and maxScale if necessary\n if (minScale > min) {\n minScale *= 0.9;\n }\n if (maxScale < max) {\n maxScale *= 1.1;\n }\n\n return { minScale, maxScale };\n}","import { Paper, debounce } from \"@material-ui/core\";\nimport { ChartArea, Chart as ChartJS, Plugin } from \"chart.js\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport DraggableLineControl from \"../components/DraggableLineControl\";\nimport { useTrendingContext } from \"../context/TrendingContext\";\nimport { useGetVerticalLinePlugin } from \"../hooks/useGetVerticalLinePlugin\";\nimport { updateCursorData } from \"../hooks/useUpdateCursorData\";\nimport { useXAxisDatePlugin } from \"../hooks/useXAxisDatePlugin\";\nimport { useYAxisPlugin } from \"../hooks/useYAxisPlugin\";\nimport { LineCoords, Tag } from \"../models/TrendingModels\";\nimport { areRangesSimilar } from \"../utils/areRangeSimilar\";\nimport { calculateScales } from \"../utils/calculateScales\";\n\ninterface Props {\n tagList: Tag[];\n series: any[];\n chartOptions: any,\n setChartOptions: any,\n setCursorData: any;\n chartData: any;\n setChartData: any\n}\n\nexport const TrendingChart = ({ tagList, series, chartOptions, setChartOptions, chartData, setCursorData, setChartData }: Props) => {\n\n const { state, actions } = useTrendingContext();\n\n const [lineTabCoords, setLineTabCoords] = useState<LineCoords | null>(null)\n const [chartArea, setChartArea] = useState<ChartArea | null>(null);\n\n\n const chartRef = useRef<ChartJS>(null);\n\n\n const debouncedUpdateChart = useRef(debounce(() => {\n if (chartRef.current) {\n updateCursorData(chartRef.current, setCursorData)\n chartRef.current.update();\n }\n }, 250)).current;\n\n\n const [chartShouldInitCursors, setChartShouldInitCursors] = useState(false)\n\n const verticalLinePlugin: Plugin = useGetVerticalLinePlugin(setChartArea, setLineTabCoords);\n const xAxisDatePlugin: Plugin = useXAxisDatePlugin();\n const yAxisPlugin: Plugin = useYAxisPlugin();\n\n\n\n useEffect(() => {\n\n let axes: any[] = [];\n if (!series.length) {\n return;\n }\n tagList.forEach((tag: any, index: number) => {\n if (series[index].length) {\n if (tag.autoScale && series[index]) {\n\n const serieSamples = series[index].map((sample: any) => sample.value);\n const { minScale, maxScale } = calculateScales(\n Math.min(...serieSamples),\n Math.max(...serieSamples),\n 3,\n );\n tag.minScale = minScale;\n tag.maxScale = maxScale;\n }\n\n let existingAxis = axes.find((existingTag) =>\n areRangesSimilar(existingTag, tag),\n );\n if (!existingAxis) {\n axes.push(tag); // Add new axis if no similar one exists\n }\n }\n\n\n });\n\n // Configure yAxes based on grouped axes\n const yAxesConfig = axes.map((axis, index) => {\n return {\n id: `y-axis-${index}`,\n type: \"linear\" as const,\n display: axis.visible,\n scaleLabel: {\n display: true,\n labelString: axis.tagName,\n },\n\n ticks: {\n min: axis.autoScale ? undefined : axis.minScale,\n max: axis.autoScale ? undefined : axis.maxScale,\n },\n grid: {\n display: true,\n },\n afterUpdate(axis: any) {\n const chart = axis.chart;\n const keys = Object.keys(chart.scales).filter(sc => sc !== 'x');\n\n if (keys.length > 1) {\n for (const scaleKey in chart.scales) {\n const scale = chart.scales[scaleKey];\n\n if (scale.max === 1 && scale.min === 0) {\n (chart.scales[scaleKey] as any).display = false;\n (chart.scales[scaleKey] as any).options.display = false;\n } else {\n (chart.scales[scaleKey] as any).display = true;\n (chart.scales[scaleKey] as any).options.display = true;\n }\n }\n }\n }\n };\n });\n\n setChartOptions((prevOptions: any) => {\n\n const newResp = ({\n ...prevOptions,\n scales: {\n x: {\n ...prevOptions.scales.x,\n },\n ...yAxesConfig.reduce((acc, cur) => ({ ...acc, [cur.id]: cur }), {}),\n },\n });\n\n return newResp as any;\n });\n\n const updatedSeries = series.map((serie, index) => {\n\n const tag = tagList[index];\n const axisIndex = axes.findIndex((existingTag) =>\n areRangesSimilar(existingTag, tag),\n );\n\n return {\n yAxisID: axisIndex >= 0 ? `y-axis-${axisIndex}` : undefined,\n data: serie.map((sample: any) => ({\n x: new Date(sample.timestamp) as any,\n y: sample.value,\n })),\n tagId: tag.tagId,\n borderColor: tag.color,\n hidden: !tag.visible,\n pointRadius: serie.length <= 50 ? 3 : 0, // Example threshold\n };\n });\n setChartShouldInitCursors(true)\n setChartData({\n labels: [],\n datasets: updatedSeries,\n });\n }, [JSON.stringify(state), tagList, series]);\n\n\n\n useEffect(() => {\n if (chartShouldInitCursors) {\n if (chartRef.current) {\n updateCursorData(chartRef.current, setCursorData)\n chartRef.current.update();\n }\n }\n }, [chartShouldInitCursors, state])\n\n return (\n <Paper style={{ height: '100%', position: 'relative' }}>\n\n {\n lineTabCoords && chartArea ? (\n <DraggableLineControl\n color={'red'}\n chartArea={chartArea}\n initialLeft={lineTabCoords?.x1}\n onUpdate={(newLeft) => {\n setLineTabCoords((prevCoords: any) => {\n prevCoords.x1 = newLeft;\n return prevCoords;\n })\n // @ts-ignore\n chartRef.current!.mouseX = newLeft\n debouncedUpdateChart();\n }\n } />\n ) : null\n }\n {\n lineTabCoords && chartArea ? (\n <DraggableLineControl\n color={'blue'}\n initialLeft={lineTabCoords?.x2}\n chartArea={chartArea}\n onUpdate={(newLeft) => {\n setLineTabCoords((prevCoords: any) => {\n prevCoords.x2 = newLeft;\n return prevCoords;\n })\n\n // @ts-ignore\n chartRef.current!.secondLineX = newLeft\n\n debouncedUpdateChart();\n }\n } />\n ) : null\n }\n <Line ref={chartRef as any} data={chartData} options={chartOptions} plugins={[verticalLinePlugin, xAxisDatePlugin, yAxisPlugin]} />\n\n </Paper>\n )\n}","import {\n\tGrid\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport {\n\tCategoryScale,\n\tChartData,\n\tChart as ChartJS,\n\tLegend,\n\tLineElement,\n\tLinearScale,\n\tPointElement,\n\tTimeScale,\n\tTitle,\n\tTooltip\n} from \"chart.js\";\nimport \"chartjs-adapter-moment/dist/chartjs-adapter-moment.esm.js\";\nimport zoomPlugin from \"chartjs-plugin-zoom\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport TableComponent from \"./TableComponent\";\nimport { useTrendingContext } from \"./context/TrendingContext\";\nimport { CursorData, Tag, TagList } from \"./models/TrendingModels\";\n\nimport { useChartOptions } from \"./sections/chart/hooks/useChartOptions\";\nimport { Header } from \"./sections/header\";\nimport { TrendingChart } from \"./sections/trending-chart\";\nChartJS.register(\n\tCategoryScale,\n\tLinearScale,\n\tPointElement,\n\tLineElement,\n\tTitle,\n\tTooltip,\n\tLegend,\n\tTimeScale,\n\tzoomPlugin,\n);\n\ninterface TrendingProps {\n\ttitle: string;\n\ttags: Tag[]; // List of tags\n}\n\n\nconst Trending: React.FC<TrendingProps> = ({ title, tags }) => {\n\tconst { state, actions } = useTrendingContext();\n\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(\"\");\n\n\tconst [tagList, setTagList] = useState<TagList>(tags);\n\tconst [series, setSeries] = useState([])\n\n\tconst [chartOptions, setChartOptions] = useChartOptions();\n\tconst [chartData, setChartData] = useState<ChartData<'line'>>({\n\t\tlabels: [],\n\t\tdatasets: [],\n\t});\n\tconst [cursorData, setCursorData] = useState<CursorData | null>(null);\n\n\tconst debounceForFetchingData = useRef<NodeJS.Timeout | null>(null);\n\n\n\n\n\tuseEffect(() => {\n\t\tif (debounceForFetchingData.current) {\n\t\t\tclearTimeout(debounceForFetchingData.current);\n\t\t}\n\t\tdebounceForFetchingData.current = setTimeout(() => {\n\n\t\t\tconst fetchData = async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconsole.log(\"fetching data\");\n\t\t\t\t\tsetLoading(true);\n\t\t\t\t\tconst tagIds: number[] = tagList.map((tag) => tag.tagId);\n\t\t\t\t\tconst response = await axios.post(\"/series?nodeName=null\", {\n\t\t\t\t\t\tstart: state.timeScopeStart.getTime(),\n\t\t\t\t\t\tend: state.timeScopeEnd.getTime(),\n\t\t\t\t\t\ttagIds: tagIds,\n\t\t\t\t\t\tsampleCount: 1000,\n\t\t\t\t\t});\n\t\t\t\t\tsetSeries(response.data || []);\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(\"Error fetching data:\", error);\n\t\t\t\t\tsetError(\"Failed to fetch data\");\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfetchData();\n\t\t}, 800)\n\t}, [JSON.stringify(state), tagList]);\n\n\n\n\tif (error) return <p>Error: {error}</p>;\n\n\n\n\treturn (\n\t\t<Grid container style={{ width: \"95svw\", height: \"81svh\", margin: 0 }}>\n\t\t\t<Header setChartOptions={setChartOptions} />\n\t\t\t<Grid item xs={12} style={{ height: '45%' }}>\n\t\t\t\t<TrendingChart\n\t\t\t\t\tsetChartData={setChartData}\n\t\t\t\t\tseries={series}\n\t\t\t\t\ttagList={tagList}\n\t\t\t\t\tchartOptions={chartOptions}\n\t\t\t\t\tsetChartOptions={setChartOptions}\n\t\t\t\t\tchartData={chartData}\n\t\t\t\t\tsetCursorData={setCursorData}\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<Grid item xs={12} style={{ height: '40%', minWidth: \"100%\", paddingTop: \"3rem\" }}>\n\t\t\t\t<TableComponent\n\t\t\t\t\ttagList={tagList}\n\t\t\t\t\tchartData={chartData}\n\t\t\t\t\tsetTagList={setTagList}\n\t\t\t\t\tcursorData={cursorData as any}\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t{loading && (\n\t\t\t\t<Grid item xs={12} style={{ textAlign: 'center' }}>\n\t\t\t\t\t<p>Loading...</p>\n\t\t\t\t</Grid>\n\t\t\t)}\n\t\t</Grid>\n\n\t);\n};\n\nexport default Trending;\n","// @flow\nimport { Box, Grid } from \"@material-ui/core\";\nimport Paper from \"@material-ui/core/Paper\";\nimport * as React from \"react\";\nimport Trending from \"./components/chart/Trending\";\nimport { TrendingProvider } from \"./components/chart/context/TrendingContext\";\nimport { getTags } from \"./components/chart/repository/TrendingRepository\";\n\ntype Props = {};\nexport const TrendingsIndex = (props: Props) => {\n\n\n\treturn (\n\t\t<TrendingProvider>\n\t\t\t<Box p={3} style={{ maxWidth: \"100%\" }}>\n\t\t\t\t<Paper>\n\t\t\t\t\t<Grid container spacing={3} style={{ padding: \"20px\" }}>\n\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t<Trending\n\t\t\t\t\t\t\t\ttitle=\"Trending Chart\"\n\t\t\t\t\t\t\t\ttags={[\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttagId: 29,\n\t\t\t\t\t\t\t\t\t\ttagName: \"t1\",\n\t\t\t\t\t\t\t\t\t\ttagType: \"number\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"red\",\n\t\t\t\t\t\t\t\t\t\tautoScale: true,\n\t\t\t\t\t\t\t\t\t\tminScale: 0,\n\t\t\t\t\t\t\t\t\t\tmaxScale: 100,\n\t\t\t\t\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttagId: 44,\n\t\t\t\t\t\t\t\t\t\ttagName: \"t2\",\n\t\t\t\t\t\t\t\t\t\ttagType: \"number\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"blue\",\n\t\t\t\t\t\t\t\t\t\tautoScale: true,\n\t\t\t\t\t\t\t\t\t\tminScale: 0,\n\t\t\t\t\t\t\t\t\t\tmaxScale: 100,\n\t\t\t\t\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttagId: 50,\n\t\t\t\t\t\t\t\t\t\ttagName: \"t3\",\n\t\t\t\t\t\t\t\t\t\ttagType: \"number\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"green\",\n\t\t\t\t\t\t\t\t\t\tautoScale: true,\n\t\t\t\t\t\t\t\t\t\tminScale: 0,\n\t\t\t\t\t\t\t\t\t\tmaxScale: 100,\n\t\t\t\t\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttagId: 46,\n\t\t\t\t\t\t\t\t\t\ttagName: \"t4\",\n\t\t\t\t\t\t\t\t\t\ttagType: \"number\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"black\",\n\t\t\t\t\t\t\t\t\t\tautoScale: true,\n\t\t\t\t\t\t\t\t\t\tminScale: 0,\n\t\t\t\t\t\t\t\t\t\tmaxScale: 100,\n\t\t\t\t\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Paper>\n\t\t\t</Box>\n\t\t</TrendingProvider>\n\t);\n};\n","import React, { useContext } from \"react\";\nimport { Navigate, Route, Routes } from \"react-router-dom\";\n\nimport Configuration from \"../configurationMenu\";\n\nimport { RouterContext } from \"../globalContext\";\nimport { Account } from \"../account\";\nimport { Home } from \"../components/home/home\";\nimport { TrendingsIndex } from \"../pages/trendings\";\n\nconst MESFMainRouter = () => {\n\tconst CustomRoutes: React.FunctionComponent = useContext(RouterContext);\n\n\treturn (\n\t\t<>\n\t\t\t<Routes>\n\t\t\t\t<Route path=\"/\" element={<Navigate replace to=\"/home\" />} />\n\t\t\t\t<Route path=\"/configuration/*\" element={<Configuration />} />\n\t\t\t\t<Route path=\"/account\" element={<Account />} />\n\t\t\t\t<Route path=\"/trendings\" element={<TrendingsIndex />} />\n\t\t\t\t<Route path=\"/home\" element={<Home />} />\n\t\t\t</Routes>\n\t\t\t<CustomRoutes />\n\t\t</>\n\t);\n};\nexport default MESFMainRouter;\n","import React from \"react\";\nimport MESFMainRouter from \"../../routes/MESFMainRouter\";\n\nconst MESFMainContainer = () => (\n\t<div id=\"mainSection\" className=\"container-fluid container-fluid-main\">\n\t\t<MESFMainRouter />\n\t</div>\n);\nexport { MESFMainContainer };\n","import React, { useEffect, useRef } from \"react\";\nimport Header from \"./Header\";\nimport { MESFMainContainer } from \"./MainContainer\";\nimport { useSearchParams } from \"react-router-dom\";\n\nconst Navigation = ({\n\tshowAreaSelector = false,\n\tnavbarTitle = \"MESF\",\n}: { showAreaSelector?: boolean; navbarTitle?: string }) => {\n\tconst [params, setParams] = useSearchParams();\n\tconst mounted = useRef(true);\n\n\tuseEffect(() => {\n\t\tif (params.has(\"redirectTo\")) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (mounted.current) {\n\t\t\t\t\twindow.location.href = decodeURI(params.get(\"redirectTo\")!);\n\t\t\t\t}\n\t\t\t}, 100);\n\t\t}\n\n\t\treturn () => {\n\t\t\tmounted.current = false;\n\t\t};\n\t}, [params.toString()]);\n\n\treturn (\n\t\t<div className=\"wrapper\">\n\t\t\t{/*<!-- top navbar-->*/}\n\t\t\t<Header showAreaSelector={showAreaSelector} navbarTitle={navbarTitle} />\n\t\t\t{/*<!-- sidebar-->*/}\n\t\t\t{/* <SideBar/> */}\n\n\t\t\t<MESFMainContainer />\n\t\t\t{/*<!-- Page footer-->*/}\n\t\t\t{/* <Footer/> */}\n\t\t</div>\n\t);\n};\nexport default Navigation;\n","import React from \"react\";\nimport { BrowserRouter as Router, Route, Routes } from \"react-router-dom\";\n\nimport { AuthProvider, Logout } from \"./account\";\nimport Navigation from \"./components/navigation/Navigation\";\nimport { UTLSettingsProvider } from \"./context/UTLSettingContext\";\nimport { AssetProvider } from \"./context/assetContext\";\nimport { UserProvider } from \"./context/userContext\";\nimport \"./css/index.css\";\nimport {\n\tConfigurationContext,\n\tNavbarContext,\n\tRouterContext,\n} from \"./globalContext\";\n\nconst base =\n\tdocument.getElementsByTagName(\"base\")[0].getAttribute(\"href\") || \"/\";\n\ninterface Props {\n\tauthentication: any;\n\troutes: any;\n\tnavbar: any;\n\tnavbarTitle?: string;\n\tconfigurations: any;\n\tshowAreaSelector?: boolean;\n}\nfunction MESFMain({\n\tauthentication,\n\troutes,\n\tnavbar,\n\tnavbarTitle = \"MESF\",\n\tconfigurations,\n\tshowAreaSelector = false,\n}: Props) {\n\treturn (\n\t\t<AuthProvider authConfig={authentication}>\n\t\t\t<UserProvider>\n\t\t\t\t<AssetProvider>\n\t\t\t\t\t<UTLSettingsProvider>\n\t\t\t\t\t\t<RouterContext.Provider value={routes}>\n\t\t\t\t\t\t\t<NavbarContext.Provider value={navbar}>\n\t\t\t\t\t\t\t\t<ConfigurationContext.Provider value={configurations}>\n\t\t\t\t\t\t\t\t\t<Router basename={base}>\n\t\t\t\t\t\t\t\t\t\t<Routes>\n\t\t\t\t\t\t\t\t\t\t\t<Route path=\"/logout\" element={<Logout />} />\n\t\t\t\t\t\t\t\t\t\t</Routes>\n\t\t\t\t\t\t\t\t\t\t<Navigation\n\t\t\t\t\t\t\t\t\t\t\tshowAreaSelector={showAreaSelector}\n\t\t\t\t\t\t\t\t\t\t\tnavbarTitle={navbarTitle}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Router>\n\t\t\t\t\t\t\t\t</ConfigurationContext.Provider>\n\t\t\t\t\t\t\t</NavbarContext.Provider>\n\t\t\t\t\t\t</RouterContext.Provider>\n\t\t\t\t\t</UTLSettingsProvider>\n\t\t\t\t</AssetProvider>\n\t\t\t</UserProvider>\n\t\t</AuthProvider>\n\t);\n}\nexport { MESFMain };\n","import { get } from \"lodash-es\";\nimport { useUserContext } from \"../../../context/userContext\";\nimport { getUser } from \"../../../repositorie/MESF-frontend-Repositorie\";\n\nexport const useDefaultAreaId = (setError: (err: string) => void) => {\n\tconst {\n\t\tstate: { userId },\n\t\tactions: { setDefaultAreaId },\n\t} = useUserContext();\n\n\treturn () => {\n\t\tif (userId) {\n\t\t\tgetUser(userId as number, null).then((res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tconst userDefaultAreaId = get(\n\t\t\t\t\t\tres,\n\t\t\t\t\t\t\"data.tables[0].rows[0].DefaultAssetId\",\n\t\t\t\t\t\tnull,\n\t\t\t\t\t);\n\t\t\t\t\tif (userDefaultAreaId) {\n\t\t\t\t\t\tsetDefaultAreaId(userDefaultAreaId);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetError(res.message);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n};\n","import {\n createStyles,\n Dialog,\n DialogActions,\n DialogContent,\n DialogProps,\n DialogTitle,\n Grid,\n List,\n ListItem,\n ListItemText,\n makeStyles,\n TextField,\n Theme,\n} from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\nimport PersonPinCircleIcon from \"@material-ui/icons/PersonPinCircle\";\nimport React, {useEffect, useState} from \"react\";\nimport {Nav} from \"react-bootstrap\";\nimport {useToken} from \"../../../account/useToken\";\nimport {useAssetContext} from \"../../../context/assetContext\";\nimport {useUserContext} from \"../../../context/userContext\";\nimport {upsertDefaultAreaId} from \"../../../repositorie/MESF-frontend-Repositorie\";\nimport {useDefaultAreaId} from \"../hooks/useDefaultAreaId\";\nimport {ErrorModal} from \"../../modals/error-modal\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\t\"& .MuiInputBase-input\": {\n\t\t\t\tcolor: \"#000 !important\",\n\t\t\t},\n\t\t\t\"& .MuiPaper-root\": {\n\t\t\t\theight: \"80vh\",\n\t\t\t},\n\t\t},\n\t\ttitle: {\n\t\t\tfontSize: 15,\n\t\t},\n\t}),\n);\n\nexport const AreaSelector = () => {\n\tconst [open, setOpen] = useState<boolean>(false);\n\tconst [error, setError] = useState(\"\");\n\tconst { getUserId } = useToken();\n\n\tconst {\n\t\tstate: { userId, defaultAreaId, defaultAreaName },\n\t\tactions: { setDefaultAreaId, setDefaultAreaName, setUserId },\n\t} = useUserContext();\n\n\tconst {\n\t\tstate: { areasList },\n\t} = useAssetContext();\n\n\tconst [fullWidth, setFullWidth] = React.useState(true);\n\tconst [maxWidth, setMaxWidth] = React.useState<DialogProps[\"maxWidth\"]>(\"sm\");\n\tconst classes = useStyles();\n\tconst [defaultAreaIdToChange, setDefaultAreaIdToChange] =\n\t\tuseState(defaultAreaId);\n\tconst [defaultAreaNameToChange, setDefaultAreaNameToChange] =\n\t\tuseState(defaultAreaName);\n\tconst defaultAreaIdFromAPI = useDefaultAreaId(setError);\n\n\tconst onClose = (value: boolean) => setOpen(value);\n\tconst changeAreaActive = () => {\n\t\tsetOpen(true);\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetDefaultAreaIdToChange(defaultAreaId);\n\t\tsetDefaultAreaNameToChange(defaultAreaName);\n\t\tonClose(false);\n\t};\n\n\tconst handleClose = () => {\n\t\tsetDefaultAreaIdToChange(defaultAreaId);\n\t\tsetDefaultAreaNameToChange(defaultAreaName);\n\t\tsetOpen(false);\n\t};\n\n\tconst handleChangeAreaId = (areaId: number, areName: string) => {\n\t\tsetDefaultAreaIdToChange(areaId);\n\t\tsetDefaultAreaNameToChange(areName);\n\t};\n\n\tconst handleChangeDefaultAreaId = async () => {\n\t\tupsertDefaultAreaId(userId as number, defaultAreaIdToChange as number).then(\n\t\t\t(res) => {\n\t\t\t\tif (res.ok) {\n\t\t\t\t\tsetDefaultAreaId(defaultAreaIdToChange);\n\t\t\t\t\tsetDefaultAreaName(defaultAreaNameToChange);\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t} else {\n\t\t\t\t\tsetError(res.message);\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t};\n\n\tuseEffect(() => {\n\t\tsetUserId(getUserId());\n\t}, []);\n\n\tuseEffect(() => {\n\t\tdefaultAreaIdFromAPI();\n\t}, [userId]);\n\n\tuseEffect(() => {\n\t\tif (defaultAreaId) {\n\t\t\tconst areaSelected = areasList.find(\n\t\t\t\t(area) => area?.AssetId === defaultAreaId,\n\t\t\t);\n\t\t\tsetDefaultAreaName(areaSelected?.AssetName);\n\t\t\tsetDefaultAreaNameToChange(areaSelected?.AssetName as string);\n\t\t}\n\t}, [defaultAreaId, areasList]);\n\n\treturn (\n\t\t<>\n\t\t\t<Nav className=\"mx-2\">\n\t\t\t\t<Nav.Link>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tpaddingLeft: 0,\n\t\t\t\t\t\t\tcolor: \"#FFF\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\tmaxWidth: \"100px\",\n\t\t\t\t\t\t\tfontSize: \".8rem\",\n\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\n\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClick={changeAreaActive}\n\t\t\t\t\t>\n\t\t\t\t\t\t<PersonPinCircleIcon style={{ marginLeft: \"-5px\" }} />\n\t\t\t\t\t\t{defaultAreaName}\n\t\t\t\t\t</div>\n\t\t\t\t</Nav.Link>\n\t\t\t</Nav>\n\t\t\t<Dialog\n\t\t\t\tfullWidth={fullWidth}\n\t\t\t\tmaxWidth={maxWidth}\n\t\t\t\tonClose={handleClose}\n\t\t\t\taria-labelledby=\"confirmation-dialog-title\"\n\t\t\t\topen={open}\n\t\t\t\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<DialogTitle id=\"confirmation-dialog-title\">AREA</DialogTitle>\n\t\t\t\t<DialogContent dividers>\n\t\t\t\t\t<h6\n\t\t\t\t\t\tclassName={classes.title}\n\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\tstyle={{ marginBottom: 0 }}\n\t\t\t\t\t>\n\t\t\t\t\t\tCurrent Area\n\t\t\t\t\t</h6>\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ marginTop: 5 }}>\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\tvalue={defaultAreaNameToChange}\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\tstyle={{ color: \"#000 !important\" }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<h6\n\t\t\t\t\t\t\t\tclassName={classes.title}\n\t\t\t\t\t\t\t\tid=\"contained-modal-title-vcenter\"\n\t\t\t\t\t\t\t\tstyle={{ marginBottom: 0, marginTop: 5 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tChange Default Area\n\t\t\t\t\t\t\t</h6>\n\t\t\t\t\t\t\t<Grid item md={12} xs={12} style={{ marginTop: 10 }}>\n\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\theight: \"45vh\",\n\t\t\t\t\t\t\t\t\t\tborder: \"1px solid rgba(0, 0, 0, 0.26)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"2px\",\n\t\t\t\t\t\t\t\t\t\toverflowY: \"scroll\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<List dense={true} style={{ padding: 0 }}>\n\t\t\t\t\t\t\t\t\t\t{areasList.map((area) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={`Area-${area?.AssetId}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleChangeAreaId(area?.AssetId, area?.AssetName)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\", width: \"100%\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ListItemText primary={area?.AssetName} />\n\t\t\t\t\t\t\t\t\t\t\t\t</ListItem>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t</List>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions>\n\t\t\t\t\t<Button autoFocus onClick={handleCancel} color=\"primary\">\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\tonClick={handleChangeDefaultAreaId}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t>\n\t\t\t\t\t\tChange Area\n\t\t\t\t\t</Button>\n\t\t\t\t</DialogActions>\n\t\t\t</Dialog>\n\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n"],"names":["React","Folder","DialogTitle","DialogContent","DialogActions","Alert","Typography","MuiAlert","useStyles","makeStyles","Button","Grid","MuiDialogTitle","MuiDialogContent","MuiDialogActions","Modal","Dialog","TextField","CircularProgress","INITIAL_VALUES","getProfiles","DialogContentText","useTableData","isNil","get","UsersPage","useSearchAssets","Snackbar","Paper","MenuItem","ITEM_HEIGHT","ITEM_PADDING_TOP","MenuProps","useTheme","FormControlLabel","Checkbox","ChangePassword","Configuration","base","AreaSelector","Header","ShiftsCrews","Users","Profiles","Logs","Jobs","TreeItem","TreeView","IconButton","FormControl","Select","ChartJS","Tooltip","Router","createStyles"],"mappings":"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"}