@dexteel/mesf-core 5.4.1 → 5.4.2
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.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +13 -0
- package/dist/MESFMain.d.ts +14 -0
- package/dist/account/AuthProvider.d.ts +29 -0
- package/dist/account/account.d.ts +2 -0
- package/dist/account/changePassword.d.ts +2 -0
- package/dist/account/index.d.ts +6 -0
- package/dist/account/login-strategies/LoginAsGuest.d.ts +2 -0
- package/dist/account/login-strategies/LoginWithEmailAndPassword.d.ts +2 -0
- package/dist/account/login-strategies/LoginWithWindowsAuthentication.d.ts +2 -0
- package/dist/account/login-strategies/azure-ad/AzureADAuthConfig.d.ts +37 -0
- package/dist/account/login-strategies/azure-ad/LoginWithAzureAD.d.ts +5 -0
- package/dist/account/login-strategies/azure-ad/LoginWithAzureADForm.d.ts +2 -0
- package/dist/account/login-strategies/windows.d.ts +4 -0
- package/dist/account/login.d.ts +3 -0
- package/dist/account/logout.d.ts +2 -0
- package/dist/account/models/login.models.d.ts +15 -0
- package/dist/account/useToken.d.ts +11 -0
- package/dist/components/home/home.d.ts +3 -0
- package/dist/components/modals/error-modal.d.ts +9 -0
- package/dist/components/modals/modal.mesf.d.ts +23 -0
- package/dist/components/navigation/Header.d.ts +6 -0
- package/dist/components/navigation/MainContainer.d.ts +3 -0
- package/dist/components/navigation/Navigation.d.ts +8 -0
- package/dist/components/navigation/TimeAndUserMenu.d.ts +6 -0
- package/dist/components/navigation/areaSelector/area-selector.d.ts +2 -0
- package/dist/components/navigation/hooks/useDefaultAreaId.d.ts +1 -0
- package/dist/components/shared/buttons/button-with-loading.d.ts +8 -0
- package/dist/configuration/configuration.d.ts +6 -0
- package/dist/configuration/formatters.d.ts +7 -0
- package/dist/configuration/index.d.ts +9 -0
- package/dist/configuration/pages/asset/ConfigurationAssetPage.d.ts +2 -0
- package/dist/configuration/pages/asset/components/AssetConfiguration/AssetView.d.ts +2 -0
- package/dist/configuration/pages/asset/components/AssetConfiguration/ConfigurationAssetComponent.d.ts +2 -0
- package/dist/configuration/pages/asset/components/AssetConfiguration/CustomDragPreview.d.ts +8 -0
- package/dist/configuration/pages/asset/components/AssetConfiguration/CustomNode.d.ts +15 -0
- package/dist/configuration/pages/asset/components/AssetConfiguration/MultipleDragPreview.d.ts +8 -0
- package/dist/configuration/pages/asset/components/AssetConfiguration/TypeIcon.d.ts +7 -0
- package/dist/configuration/pages/asset/components/dialogs/create-new-asset-dialog.d.ts +7 -0
- package/dist/configuration/pages/asset/components/dialogs/edit-asset-dialog.d.ts +7 -0
- package/dist/configuration/pages/asset/components/dialogs/remove-asset-dialog.d.ts +7 -0
- package/dist/configuration/pages/asset/components/dialogs/viewer-asset-dialog.d.ts +7 -0
- package/dist/configuration/pages/asset/components/hooks/useAssetActions.d.ts +24 -0
- package/dist/configuration/pages/asset/components/hooks/useAssetCodes.d.ts +3 -0
- package/dist/configuration/pages/asset/context/ConfigurationAssetContext.d.ts +328 -0
- package/dist/configuration/pages/asset/hooks/TransformAssetModelData.d.ts +3 -0
- package/dist/configuration/pages/asset/hooks/useSearchAssets.d.ts +8 -0
- package/dist/configuration/pages/asset/index.d.ts +4 -0
- package/dist/configuration/pages/asset/models/AssetAPI.d.ts +9 -0
- package/dist/configuration/pages/asset/models/AssetCode.d.ts +8 -0
- package/dist/configuration/pages/asset/models/AssetParameters.d.ts +11 -0
- package/dist/configuration/pages/asset/models/FileProperties.d.ts +4 -0
- package/dist/configuration/pages/asset/models/InitialValueDataAsset.d.ts +2 -0
- package/dist/configuration/pages/asset/reducers/ConfigurationAssetReducer.d.ts +323 -0
- package/dist/configuration/pages/asset/repositories/ConfigurationAssetRepository.d.ts +4 -0
- package/dist/configuration/pages/asset/theme.d.ts +1 -0
- package/dist/configuration/pages/job/JobsPage.d.ts +4 -0
- package/dist/configuration/pages/job/components/JobsTable/JobsDetails.d.ts +12 -0
- package/dist/configuration/pages/job/components/JobsTable/TableJobs.d.ts +7 -0
- package/dist/configuration/pages/job/components/JobsTable/customHooks/useJobsOptionsFunctions.d.ts +11 -0
- package/dist/configuration/pages/job/components/JobsTable/customHooks/useJobsTableData.d.ts +12 -0
- package/dist/configuration/pages/job/components/ResetJob.d.ts +9 -0
- package/dist/configuration/pages/job/components/onEnableJob.d.ts +9 -0
- package/dist/configuration/pages/job/context/JobsContext.d.ts +26 -0
- package/dist/configuration/pages/job/index.d.ts +4 -0
- package/dist/configuration/pages/job/models/Job.d.ts +21 -0
- package/dist/configuration/pages/job/reducers/JobsReducer.d.ts +20 -0
- package/dist/configuration/pages/job/repositories/JobsRepository.d.ts +13 -0
- package/dist/configuration/pages/log/LogsPage.d.ts +4 -0
- package/dist/configuration/pages/log/components/Filters/TimezoneSelector.d.ts +7 -0
- package/dist/configuration/pages/log/components/Filters/codeFilter.d.ts +7 -0
- package/dist/configuration/pages/log/components/Filters/dateFilter.d.ts +8 -0
- package/dist/configuration/pages/log/components/Filters/searchFilter.d.ts +7 -0
- package/dist/configuration/pages/log/components/LogsTable/TableLogs.d.ts +11 -0
- package/dist/configuration/pages/log/components/LogsTable/customHooks/useLogTableData.d.ts +12 -0
- package/dist/configuration/pages/log/components/LogsTable/customHooks/useLogsOptionsFunctions.d.ts +11 -0
- package/dist/configuration/pages/log/components/ModalLogSelected/ModalLogSelected.d.ts +9 -0
- package/dist/configuration/pages/log/context/LogsContext.d.ts +77 -0
- package/dist/configuration/pages/log/data/LogTypeCodes.d.ts +21 -0
- package/dist/configuration/pages/log/index.d.ts +4 -0
- package/dist/configuration/pages/log/models/Log.d.ts +8 -0
- package/dist/configuration/pages/log/models/SearchData.d.ts +6 -0
- package/dist/configuration/pages/log/reducers/LogsReducer.d.ts +72 -0
- package/dist/configuration/pages/log/repositories/LogsRepository.d.ts +1 -0
- package/dist/configuration/pages/log/styles/tableStyles.d.ts +1 -0
- package/dist/configuration/pages/profiles/ProfilesPage.d.ts +4 -0
- package/dist/configuration/pages/profiles/components/Create/CreateProfile.d.ts +7 -0
- package/dist/configuration/pages/profiles/components/Delete/DeleteProfile.d.ts +9 -0
- package/dist/configuration/pages/profiles/components/ProceduresOfProfile/ActionsOfProfile.d.ts +9 -0
- package/dist/configuration/pages/profiles/components/ProceduresOfProfile/ProceduresDataTable/index.d.ts +8 -0
- package/dist/configuration/pages/profiles/components/ProfilesTable/TableProfiles.d.ts +7 -0
- package/dist/configuration/pages/profiles/components/ProfilesTable/customHooks/useProfilesOptionsFunctions.d.ts +12 -0
- package/dist/configuration/pages/profiles/components/ProfilesTable/customHooks/useTableData.d.ts +17 -0
- package/dist/configuration/pages/profiles/components/common/Pickers/ProfilesPicker.d.ts +11 -0
- package/dist/configuration/pages/profiles/components/common/Profiles/hook/useGetProfilesEffect.d.ts +8 -0
- package/dist/configuration/pages/profiles/context/ProfileContext.d.ts +26 -0
- package/dist/configuration/pages/profiles/index.d.ts +4 -0
- package/dist/configuration/pages/profiles/models/Action.d.ts +4 -0
- package/dist/configuration/pages/profiles/models/FormInitialValues.d.ts +2 -0
- package/dist/configuration/pages/profiles/models/Permission.d.ts +4 -0
- package/dist/configuration/pages/profiles/models/Profile.d.ts +5 -0
- package/dist/configuration/pages/profiles/reducers/ProfilesReducer.d.ts +21 -0
- package/dist/configuration/pages/profiles/repositories/ProfilesRepository.d.ts +8 -0
- package/dist/configuration/pages/realtime/client/index.d.ts +3 -0
- package/dist/configuration/pages/realtime/client/types.d.ts +15 -0
- package/dist/configuration/pages/realtime/config/index.d.ts +3 -0
- package/dist/configuration/pages/settings/SettingsPage.d.ts +2 -0
- package/dist/configuration/pages/settings/components/TableSettings.d.ts +9 -0
- package/dist/configuration/pages/settings/components/customHooks/useSettingsOptionsFunctions.d.ts +12 -0
- package/dist/configuration/pages/settings/components/customHooks/useTableSettings.d.ts +11 -0
- package/dist/configuration/pages/settings/components/upsertDelete/CreateSetting.d.ts +7 -0
- package/dist/configuration/pages/settings/components/upsertDelete/DeleteSetting.d.ts +7 -0
- package/dist/configuration/pages/settings/components/upsertDelete/EditSetting.d.ts +7 -0
- package/dist/configuration/pages/settings/context/SettingsContext.d.ts +26 -0
- package/dist/configuration/pages/settings/index.d.ts +3 -0
- package/dist/configuration/pages/settings/models/FormInitialValues.d.ts +2 -0
- package/dist/configuration/pages/settings/models/Setting.d.ts +6 -0
- package/dist/configuration/pages/settings/reducers/SettingReducer.d.ts +20 -0
- package/dist/configuration/pages/settings/repositories/settingRepository.d.ts +3 -0
- package/dist/configuration/pages/settings/styles/useStyles.d.ts +1 -0
- package/dist/configuration/pages/shifCrew/ShiftsCrewsPage.d.ts +4 -0
- package/dist/configuration/pages/shifCrew/components/Create/CreateShift.d.ts +7 -0
- package/dist/configuration/pages/shifCrew/components/Delete/DeleteShift.d.ts +7 -0
- package/dist/configuration/pages/shifCrew/components/Edit/EditShift.d.ts +7 -0
- package/dist/configuration/pages/shifCrew/components/TableShifts.d.ts +7 -0
- package/dist/configuration/pages/shifCrew/components/customHooks/useShiftsOptionsFunctions.d.ts +11 -0
- package/dist/configuration/pages/shifCrew/components/customHooks/useTableShift.d.ts +20 -0
- package/dist/configuration/pages/shifCrew/context/ShiftsCrewsContext.d.ts +26 -0
- package/dist/configuration/pages/shifCrew/index.d.ts +4 -0
- package/dist/configuration/pages/shifCrew/models/FormInitialValues.d.ts +2 -0
- package/dist/configuration/pages/shifCrew/models/ShiftParameters.d.ts +12 -0
- package/dist/configuration/pages/shifCrew/reducers/ShiftsCrewsReducer.d.ts +20 -0
- package/dist/configuration/pages/shifCrew/repositories/ShiftsCrewsRepository.d.ts +4 -0
- package/dist/configuration/pages/users/UsersPage.d.ts +4 -0
- package/dist/configuration/pages/users/components/ChangePassword/ChangePassword.d.ts +8 -0
- package/dist/configuration/pages/users/components/Create/CreateUser.d.ts +7 -0
- package/dist/configuration/pages/users/components/Delete/DeleteUser.d.ts +8 -0
- package/dist/configuration/pages/users/components/EditUser/EditUser.d.ts +8 -0
- package/dist/configuration/pages/users/components/UsersDataTable/TableUsers.d.ts +7 -0
- package/dist/configuration/pages/users/components/UsersDataTable/customHooks/buttonsCellRenderer.d.ts +2 -0
- package/dist/configuration/pages/users/components/UsersDataTable/customHooks/useTableData.d.ts +20 -0
- package/dist/configuration/pages/users/components/UsersDataTable/customHooks/useUsersOptionsFunctions.d.ts +13 -0
- package/dist/configuration/pages/users/components/common/AuthTypeSelector.d.ts +8 -0
- package/dist/configuration/pages/users/components/common/ProfilesPicker.d.ts +10 -0
- package/dist/configuration/pages/users/context/UsersContext.d.ts +17 -0
- package/dist/configuration/pages/users/index.d.ts +4 -0
- package/dist/configuration/pages/users/models/AuthType.d.ts +4 -0
- package/dist/configuration/pages/users/models/FormInitialValues.d.ts +2 -0
- package/dist/configuration/pages/users/models/Profile.d.ts +8 -0
- package/dist/configuration/pages/users/models/User.d.ts +11 -0
- package/dist/configuration/pages/users/reducers/UsersReducer.d.ts +11 -0
- package/dist/configuration/pages/users/repositories/UsersRepository.d.ts +31 -0
- package/dist/configuration/stylesGetters.d.ts +14 -0
- package/dist/configurationMenu.d.ts +13 -0
- package/dist/context/UTLSettingContext.d.ts +41 -0
- package/dist/context/assetContext.d.ts +26 -0
- package/dist/context/axiosInstance.d.ts +2 -0
- package/dist/context/userContext.d.ts +83 -0
- package/dist/controls/LazyLoading/LazyLoading.d.ts +3 -0
- package/dist/controls/alert.d.ts +3 -0
- package/dist/controls/charts/genericChart.d.ts +10 -0
- package/dist/controls/contextMenu/ContextMenu.d.ts +2 -0
- package/dist/controls/contextMenu/index.d.ts +4 -0
- package/dist/controls/contextMenu/models/MenuOptionType.d.ts +10 -0
- package/dist/controls/contextMenu/styles/ContextMenuStyles.d.ts +1 -0
- package/dist/controls/contextMenu/useContextMenuMESF.d.ts +22 -0
- package/dist/controls/filters/TreePickerControl.d.ts +11 -0
- package/dist/controls/filters/TreePickerControlV2.d.ts +15 -0
- package/dist/controls/filters/dialogFilter.d.ts +30 -0
- package/dist/controls/filters/filters.d.ts +29 -0
- package/dist/controls/index.d.ts +9 -0
- package/dist/controls/panels.d.ts +41 -0
- package/dist/controls/shift-navigator/component/shift-navigator.control.d.ts +7 -0
- package/dist/controls/shift-navigator/context/ShiftNavigatorProvider.d.ts +4 -0
- package/dist/controls/shift-navigator/hook/useShiftNavigator.d.ts +14 -0
- package/dist/controls/shift-navigator/index.d.ts +5 -0
- package/dist/controls/shift-navigator/models/shift-navigator.model.d.ts +30 -0
- package/dist/controls/shift-navigator/repositories/ShiftsRepository.d.ts +10 -0
- package/dist/controls/shift-navigator-v2/component/shift-period-navigator.control.d.ts +15 -0
- package/dist/controls/shift-navigator-v2/index.d.ts +4 -0
- package/dist/controls/shift-navigator-v2/models/SearchShiftsParameters.d.ts +4 -0
- package/dist/controls/shift-navigator-v2/models/shift-data.d.ts +22 -0
- package/dist/controls/shift-navigator-v2/repositories/ShiftsRepository.d.ts +14 -0
- package/dist/controls/tables/GenericTable.d.ts +5 -0
- package/dist/controls/tables/dataGrid.d.ts +10 -0
- package/dist/css/themeMESF.d.ts +1 -0
- package/dist/globalContext.d.ts +6 -0
- package/dist/hooks/useMesfRealtime.d.ts +5 -0
- package/dist/hooks/useSearchAssets.d.ts +3 -0
- package/dist/hooks/useSearchUTLSetting.d.ts +5 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.esm.js +8813 -5545
- package/dist/index.esm.js.map +1 -1
- package/dist/models/Asset.d.ts +10 -0
- package/dist/models/UTLSetting.d.ts +4 -0
- package/dist/pages/trendings/TrendingsPage.d.ts +4 -0
- package/dist/pages/trendings/components/chart/DateComponent.d.ts +6 -0
- package/dist/pages/trendings/components/chart/TableComponent.d.ts +26 -0
- package/dist/pages/trendings/components/chart/Trending.d.ts +8 -0
- package/dist/pages/trendings/components/chart/components/CellComponent.d.ts +11 -0
- package/dist/pages/trendings/components/chart/components/ColorPicker.d.ts +8 -0
- package/dist/pages/trendings/components/chart/components/DraggableLineControl.d.ts +11 -0
- package/dist/pages/trendings/components/chart/components/modals/deleteViewModal/DeleteViewModal.d.ts +9 -0
- package/dist/pages/trendings/components/chart/components/modals/editViewModal/EditViewModal.d.ts +9 -0
- package/dist/pages/trendings/components/chart/components/modals/loadView/LoadViewModal.d.ts +8 -0
- package/dist/pages/trendings/components/chart/components/modals/saveAsView/SaveAsViewModal.d.ts +7 -0
- package/dist/pages/trendings/components/chart/components/modals/saveView/SaveViewModal.d.ts +7 -0
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/ContextMenu/ContextMenu.d.ts +15 -0
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/ContextMenu/NewFolder/NewFolder.d.ts +10 -0
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/ContextMenu/RemoveFolder/RemoveFolder.d.ts +10 -0
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/CustomDragView.d.ts +8 -0
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/TagFolderCustomNode.d.ts +20 -0
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/TagSelectionModal.d.ts +9 -0
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/TagsTreeModal.d.ts +9 -0
- package/dist/pages/trendings/components/chart/context/TrendingContext.d.ts +120 -0
- package/dist/pages/trendings/components/chart/customOptionsComponent.d.ts +8 -0
- package/dist/pages/trendings/components/chart/hooks/useGetVerticalLinePlugin.d.ts +2 -0
- package/dist/pages/trendings/components/chart/hooks/useTagsDataTable.d.ts +24 -0
- package/dist/pages/trendings/components/chart/hooks/useUpdateCursorData.d.ts +2 -0
- package/dist/pages/trendings/components/chart/hooks/useXAxisDatePlugin.d.ts +2 -0
- package/dist/pages/trendings/components/chart/hooks/useYAxisPlugin.d.ts +2 -0
- package/dist/pages/trendings/components/chart/models/TagsTree.model.d.ts +12 -0
- package/dist/pages/trendings/components/chart/models/TrendingModels.d.ts +65 -0
- package/dist/pages/trendings/components/chart/models/scopes.model.d.ts +1 -0
- package/dist/pages/trendings/components/chart/repository/TrendingRepository.d.ts +13 -0
- package/dist/pages/trendings/components/chart/sections/chart/hooks/useChartOptions.d.ts +105 -0
- package/dist/pages/trendings/components/chart/sections/header.d.ts +6 -0
- package/dist/pages/trendings/components/chart/sections/trending-chart.d.ts +12 -0
- package/dist/pages/trendings/components/chart/styles/TagColorsStyles.d.ts +1 -0
- package/dist/pages/trendings/components/chart/styles/TagsTableStyles.d.ts +1 -0
- package/dist/pages/trendings/components/chart/styles/TasgTreeModalStyles.d.ts +1 -0
- package/dist/pages/trendings/components/chart/styles/TrendingStyles.d.ts +1 -0
- package/dist/pages/trendings/components/chart/utils/areRangeSimilar.d.ts +2 -0
- package/dist/pages/trendings/components/chart/utils/buildTagsTree.d.ts +4 -0
- package/dist/pages/trendings/components/chart/utils/calculateScales.d.ts +4 -0
- package/dist/pages/trendings/components/chart/utils/dateNavigator.d.ts +5 -0
- package/dist/pages/trendings/components/chart/utils/formatDateTimeToString.d.ts +4 -0
- package/dist/pages/trendings/components/chart/utils/formatTimeDiffWithMs.d.ts +1 -0
- package/dist/pages/trendings/components/chart/utils/tagColors.d.ts +2 -0
- package/dist/pages/trendings/components/chart/utils/timeDifference.d.ts +1 -0
- package/dist/pages/trendings/index.d.ts +3 -0
- package/dist/pages/trendings/reducers/trendings.reducer.d.ts +115 -0
- package/dist/reducers/AssetReducer.d.ts +20 -0
- package/dist/reducers/UTLSettingsReducer.d.ts +34 -0
- package/dist/reducers/UserReducer.d.ts +75 -0
- package/dist/repositorie/MESF-frontend-Repositorie.d.ts +4 -0
- package/dist/routes/MESFMainRouter.d.ts +3 -0
- package/dist/services/ApiService.d.ts +48 -0
- package/dist/services/TimeService.d.ts +15 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/utils/transforms.d.ts +30 -0
- package/dist/utils.d.ts +22 -0
- package/package.json +1 -1
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../node_modules/chartjs-adapter-moment/dist/chartjs-adapter-moment.esm.js"],"sourcesContent":["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","/*!\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"],"names":["moment"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/components/modals/modal.mesf.tsx","../src/components/modals/error-modal.tsx","../src/controls/charts/genericChart.tsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/controls/LazyLoading/LazyLoading.tsx","../src/controls/filters/dialogFilter.tsx","../src/controls/filters/TreePickerControl.tsx","../src/controls/filters/TreePickerControlV2.tsx","../src/controls/filters/filters.tsx","../src/controls/tables/GenericTable.tsx","../src/controls/tables/dataGrid.tsx","../src/controls/panels.tsx","../src/utils.ts","../src/controls/shift-navigator/repositories/ShiftsRepository.ts","../src/controls/shift-navigator/hook/useShiftNavigator.ts","../src/controls/shift-navigator/context/ShiftNavigatorProvider.tsx","../src/controls/shift-navigator/component/shift-navigator.control.tsx","../src/controls/shift-navigator-v2/repositories/ShiftsRepository.ts","../src/controls/shift-navigator-v2/component/shift-period-navigator.control.tsx","../src/controls/contextMenu/styles/ContextMenuStyles.ts","../src/controls/contextMenu/useContextMenuMESF.tsx","../src/controls/contextMenu/ContextMenu.tsx","../src/configuration/pages/job/repositories/JobsRepository.ts","../src/configuration/pages/job/components/ResetJob.tsx","../src/configuration/pages/job/components/onEnableJob.tsx","../src/configuration/pages/job/components/JobsTable/JobsDetails.tsx","../src/configuration/pages/job/components/JobsTable/customHooks/useJobsOptionsFunctions.tsx","../src/configuration/pages/job/reducers/JobsReducer.ts","../src/configuration/pages/job/context/JobsContext.tsx","../src/configuration/pages/job/components/JobsTable/customHooks/useJobsTableData.tsx","../src/configuration/pages/job/components/JobsTable/TableJobs.tsx","../src/configuration/pages/job/JobsPage.tsx","../src/configuration/pages/job/index.tsx","../src/services/TimeService.ts","../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/Filters/codeFilter.tsx","../src/configuration/pages/log/components/Filters/dateFilter.tsx","../src/configuration/pages/log/components/Filters/searchFilter.tsx","../src/configuration/pages/log/components/ModalLogSelected/ModalLogSelected.tsx","../src/configuration/pages/log/components/LogsTable/customHooks/useLogTableData.tsx","../src/components/shared/buttons/button-with-loading.tsx","../src/configuration/pages/log/styles/tableStyles.ts","../src/configuration/pages/log/components/Filters/TimezoneSelector.tsx","../src/configuration/pages/log/components/LogsTable/customHooks/useLogsOptionsFunctions.tsx","../src/configuration/pages/log/components/LogsTable/TableLogs.tsx","../src/configuration/pages/log/repositories/LogsRepository.ts","../src/configuration/pages/log/LogsPage.tsx","../src/configuration/pages/log/index.tsx","../src/controls/alert.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/ProceduresOfProfile/ProceduresDataTable/index.tsx","../src/configuration/pages/profiles/components/ProceduresOfProfile/ActionsOfProfile.tsx","../src/configuration/pages/profiles/components/ProfilesTable/customHooks/useProfilesOptionsFunctions.tsx","../src/configuration/pages/profiles/reducers/ProfilesReducer.ts","../src/configuration/pages/profiles/context/ProfileContext.tsx","../src/configuration/pages/profiles/components/ProfilesTable/customHooks/useTableData.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/useShiftsOptionsFunctions.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/reducers/AssetReducer.tsx","../src/context/assetContext.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/hooks/TransformAssetModelData.ts","../src/configuration/pages/asset/hooks/useSearchAssets.ts","../src/configuration/pages/asset/repositories/ConfigurationAssetRepository.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/edit-asset-dialog.tsx","../src/configuration/pages/asset/components/dialogs/remove-asset-dialog.tsx","../src/configuration/pages/asset/components/dialogs/viewer-asset-dialog.tsx","../src/configuration/pages/asset/components/hooks/useAssetActions.ts","../src/configuration/pages/asset/components/AssetConfiguration/TypeIcon.tsx","../src/configuration/pages/asset/components/AssetConfiguration/CustomDragPreview.tsx","../src/configuration/pages/asset/components/AssetConfiguration/CustomNode.tsx","../src/configuration/pages/asset/components/AssetConfiguration/MultipleDragPreview.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/repositories/UsersRepository.ts","../src/configuration/pages/users/components/ChangePassword/ChangePassword.tsx","../src/configuration/pages/users/models/FormInitialValues.ts","../src/configuration/pages/users/components/common/AuthTypeSelector.tsx","../src/configuration/pages/users/components/common/ProfilesPicker.tsx","../src/configuration/pages/users/components/Create/CreateUser.tsx","../src/configuration/pages/users/components/Delete/DeleteUser.tsx","../src/configuration/pages/users/components/EditUser/EditUser.tsx","../src/configuration/pages/users/reducers/UsersReducer.ts","../src/configuration/pages/users/context/UsersContext.tsx","../src/configuration/pages/users/components/UsersDataTable/customHooks/buttonsCellRenderer.tsx","../src/configuration/pages/users/components/UsersDataTable/customHooks/useTableData.tsx","../src/configuration/pages/users/components/UsersDataTable/customHooks/useUsersOptionsFunctions.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/context/axiosInstance.ts","../src/services/ApiService.ts","../src/repositorie/MESF-frontend-Repositorie.ts","../src/account/account.tsx","../src/account/changePassword.tsx","../src/hooks/useMesfRealtime.ts","../src/reducers/UserReducer.tsx","../src/context/userContext.tsx","../src/account/useToken.ts","../src/account/AuthProvider.tsx","../src/account/login-strategies/LoginAsGuest.tsx","../src/account/login-strategies/LoginWithEmailAndPassword.tsx","../src/account/login-strategies/windows.tsx","../src/account/login-strategies/LoginWithWindowsAuthentication.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.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/TimeAndUserMenu.tsx","../src/components/navigation/Header.tsx","../src/components/home/home.tsx","../src/configuration/pages/realtime/client/index.tsx","../src/configuration/pages/realtime/config/index.tsx","../src/configuration/pages/settings/reducers/SettingReducer.ts","../src/configuration/pages/settings/context/SettingsContext.tsx","../src/configuration/pages/settings/styles/useStyles.tsx","../src/configuration/pages/settings/components/customHooks/useSettingsOptionsFunctions.tsx","../src/configuration/pages/settings/components/customHooks/useTableSettings.tsx","../src/configuration/pages/settings/models/FormInitialValues.ts","../src/configuration/pages/settings/repositories/settingRepository.ts","../src/configuration/pages/settings/components/upsertDelete/CreateSetting.tsx","../src/configuration/pages/settings/components/upsertDelete/DeleteSetting.tsx","../src/configuration/pages/settings/components/upsertDelete/EditSetting.tsx","../src/configuration/pages/settings/components/TableSettings.tsx","../src/configuration/pages/settings/SettingsPage.tsx","../src/configuration/pages/settings/index.tsx","../src/configurationMenu.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/reducers/trendings.reducer.ts","../src/pages/trendings/components/chart/context/TrendingContext.tsx","../src/pages/trendings/components/chart/repository/TrendingRepository.ts","../src/pages/trendings/components/chart/styles/TrendingStyles.tsx","../src/pages/trendings/components/chart/components/modals/deleteViewModal/DeleteViewModal.tsx","../src/pages/trendings/components/chart/components/modals/editViewModal/EditViewModal.tsx","../src/pages/trendings/components/chart/components/modals/loadView/LoadViewModal.tsx","../src/pages/trendings/components/chart/components/modals/saveAsView/SaveAsViewModal.tsx","../src/pages/trendings/components/chart/styles/TasgTreeModalStyles.tsx","../src/pages/trendings/components/chart/utils/buildTagsTree.ts","../src/pages/trendings/components/chart/components/modals/tagsTreeModal/ContextMenu/NewFolder/NewFolder.tsx","../src/pages/trendings/components/chart/components/modals/tagsTreeModal/ContextMenu/RemoveFolder/RemoveFolder.tsx","../src/pages/trendings/components/chart/components/modals/tagsTreeModal/ContextMenu/ContextMenu.tsx","../src/pages/trendings/components/chart/components/modals/tagsTreeModal/CustomDragView.tsx","../src/pages/trendings/components/chart/components/modals/tagsTreeModal/TagFolderCustomNode.tsx","../src/pages/trendings/components/chart/components/modals/tagsTreeModal/TagSelectionModal.tsx","../src/pages/trendings/components/chart/components/modals/tagsTreeModal/TagsTreeModal.tsx","../src/pages/trendings/components/chart/hooks/useTagsDataTable.ts","../src/pages/trendings/components/chart/styles/TagsTableStyles.tsx","../src/pages/trendings/components/chart/utils/formatTimeDiffWithMs.ts","../src/pages/trendings/components/chart/TableComponent.tsx","../src/pages/trendings/components/chart/utils/formatDateTimeToString.ts","../src/pages/trendings/components/chart/sections/chart/hooks/useChartOptions.ts","../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/sections/trending-chart.tsx","../src/pages/trendings/components/chart/Trending.tsx","../src/pages/trendings/TrendingsPage.tsx","../src/pages/trendings/index.tsx","../src/routes/MESFMainRouter.tsx","../src/components/navigation/MainContainer.tsx","../src/components/navigation/Navigation.tsx","../src/css/themeMESF.ts","../src/MESFMain.tsx","../src/components/navigation/hooks/useDefaultAreaId.tsx","../src/components/navigation/areaSelector/area-selector.tsx"],"sourcesContent":["import {\n\tDialogContentProps,\n\tDialogActions as MuiDialogActions,\n\tDialogContent as MuiDialogContent,\n\tDialogTitle as MuiDialogTitle,\n\tStyleRules,\n\ttype Theme,\n\tcreateStyles,\n\twithStyles,\n} from \"@material-ui/core\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { type WithStyles } from \"@material-ui/core/styles\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport React, { ReactNode } from \"react\";\n\nconst styles: (theme: Theme) => StyleRules = (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});\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\ninterface CustomDialogContentProps extends Partial<DialogContentProps> {\n\tchildren: ReactNode;\n}\n\nconst DialogContent = withStyles((theme: Theme) => ({\n\troot: {\n\t\tpadding: theme.spacing(2),\n\t\tminWidth: 600,\n\t\toverflow: \"hidden\",\n\t},\n}))(MuiDialogContent as any) as typeof MuiDialogContent;\n\nconst DialogActions = withStyles((theme: Theme) => ({\n\troot: {\n\t\tmargin: 0,\n\t\tpadding: theme.spacing(1),\n\t},\n}))(MuiDialogActions as any) as typeof 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 { Button, Grid } from \"@material-ui/core\";\nimport React from \"react\";\nimport Modal from \"./modal.mesf\";\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 = \"Ups!\",\n\tsize = \"md\",\n}: Props) => {\n\treturn !!error ? (\n\t\t<Modal\n\t\t\topen={true}\n\t\t\thandleClose={() => {\n\t\t\t\tonHide();\n\t\t\t}}\n\t\t\ttitle={title}\n\t\t\tmaxWidth={size}\n\t\t>\n\t\t\t<Modal.Content>\n\t\t\t\t<div>{error}</div>\n\t\t\t</Modal.Content>\n\t\t\t<Modal.Actions>\n\t\t\t\t<Grid\n\t\t\t\t\tcontainer\n\t\t\t\t\tspacing={2}\n\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\tstyle={{ padding: \"1rem\", minWidth: \"600px\" }}\n\t\t\t\t>\n\t\t\t\t\t<Grid item md={2} xs={12}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\tcolor=\"default\"\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tonHide();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tOk\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t</Modal.Actions>\n\t\t</Modal>\n\t) : null;\n};\n","import { ResponsiveBar } from \"@nivo/bar\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\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","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 PropTypes from \"prop-types\";\nimport React, { type ChangeEvent, useEffect, useRef, useState } from \"react\";\n\nimport {\n\tButton,\n\tCheckbox,\n\tCollapse,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\tDialogTitle,\n\tSvgIcon,\n\tTypography,\n\talpha,\n\tmakeStyles,\n\twithStyles,\n} from \"@material-ui/core\";\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\";\nimport { LazyLoading } from \"../LazyLoading/LazyLoading\";\n\nexport interface TreeNode {\n\tid: number;\n\tname: string;\n\tisCode: boolean;\n\tisActive: boolean;\n\tisInternal?: boolean;\n\tisSelectable?: boolean;\n\tisLeaf?: boolean;\n\tchildren?: TreeNode[];\n\tdelayCategoryColor?: string;\n}\n\ninterface ModalTreeFilterControlProps {\n\tonClose: (value?: number, name?: string, node?: TreeNode) => void;\n\tvalue?: number;\n\topen: boolean;\n\ttitle: string;\n\tdata: TreeNode;\n\tselectBranch: boolean;\n\tselectActive: boolean;\n\tselectInternal: boolean;\n\tmultipleSelectNodes: boolean;\n\tonHide?: (value: boolean) => void;\n\tlistAssetDrawings?: number[];\n\tsetListAssetDrawings?: React.Dispatch<React.SetStateAction<number[]>>;\n\tonSuccess?: (value: boolean) => void;\n\tisLoading: boolean;\n}\n\nfunction MinusSquare(props: any) {\n\treturn (\n\t\t<SvgIcon fontSize=\"inherit\" style={{ width: 14, height: 14 }} {...props}>\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<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}\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}\n\nTransitionComponent.propTypes = {\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\tlabel: {\n\t\tbackgroundColor: (props: any) =>\n\t\t\tprops.isChecked ? \"lightblue !important\" : \"inherit\",\n\t},\n}))((props: any) => (\n\t<TreeItem {...props} TransitionComponent={TransitionComponent} />\n));\n\nconst useTreviewStyle = makeStyles((theme) => ({\n\troot: {\n\t\tminHeight: 264,\n\t\tflexGrow: 1,\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\ttreeLabelUnselectable: {\n\t\tcolor: \"grey\",\n\t},\n\tsmallCheckbox: {\n\t\ttransform: \"scale(0.8)\",\n\t},\n}));\n\nconst ModalTreeFilterControl: React.FC<ModalTreeFilterControlProps> = (\n\tprops,\n) => {\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\tmultipleSelectNodes,\n\t\tonHide,\n\t\tlistAssetDrawings,\n\t\tsetListAssetDrawings,\n\t\tonSuccess,\n\t\tisLoading,\n\t\t...other\n\t} = props;\n\n\tconst [value, setValue] = useState<number | undefined>(valueProp);\n\tconst [expanded, setExpanded] = useState<string[]>([]);\n\tconst treeRef = useRef<HTMLUListElement>(null);\n\tconst [selectedNodes, setSelectedNodes] = useState<number[]>([]);\n\n\tconst classes = useTreviewStyle();\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\tuseEffect(() => {\n\t\tif (Array.isArray(listAssetDrawings) && listAssetDrawings.length >= 1) {\n\t\t\tsetSelectedNodes(listAssetDrawings);\n\t\t\tconst expandedBranches = findBranchesWithSelectedNodes(\n\t\t\t\tdata,\n\t\t\t\tlistAssetDrawings,\n\t\t\t);\n\t\t\tsetExpanded(expandedBranches);\n\t\t}\n\t}, [listAssetDrawings, data]);\n\n\tconst findBranchesWithSelectedNodes = (\n\t\tnode: TreeNode,\n\t\tselectedNodes: number[],\n\t): string[] => {\n\t\tlet branches: string[] = [];\n\n\t\tif (selectedNodes.includes(node.id)) {\n\t\t\tbranches.push(node.id.toString());\n\t\t}\n\n\t\tif (Array.isArray(node.children)) {\n\t\t\tfor (const child of node.children) {\n\t\t\t\tconst childBranches = findBranchesWithSelectedNodes(\n\t\t\t\t\tchild,\n\t\t\t\t\tselectedNodes,\n\t\t\t\t);\n\t\t\t\tif (childBranches.length > 0) {\n\t\t\t\t\tbranches.push(node.id.toString());\n\t\t\t\t\tbranches = branches.concat(childBranches);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn branches;\n\t};\n\n\tconst handleCancel = () => {\n\t\tonClose();\n\t\tif (onHide) onHide(false);\n\t};\n\n\tconst handleOk = () => {\n\t\tlet findNode = getNodeData(data, value !== undefined ? value : -1);\n\t\tif (findNode === null) findNode = {} as TreeNode;\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\t\tif (onSuccess) onSuccess(true);\n\t\t\t}\n\t\t} else {\n\t\t\tif (branchFilter) {\n\t\t\t\tonClose(value, findNode.name, findNode);\n\t\t\t\tif (onSuccess) onSuccess(true);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (event.key === \"Escape\") {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst handleCheckboxClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n\t\tevent.stopPropagation();\n\t};\n\n\tconst getNodeParent = (\n\t\tnode: TreeNode,\n\t\tid: number,\n\t\tchain: string[] = [],\n\t): string[] => {\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 = (nodeId: number) => {\n\t\tconst expandedNode = getNodeParent(data, nodeId, []);\n\t\texpandedNode.push(nodeId.toString());\n\t\tsetExpanded(expandedNode);\n\t};\n\n\tconst handleChange = (event: ChangeEvent<{}>, nodeIds: string) => {\n\t\tlet findNode = getNodeData(\n\t\t\tdata,\n\t\t\tnodeIds !== undefined ? Number.parseInt(nodeIds) : -1,\n\t\t);\n\n\t\tif (\n\t\t\tfindNode?.hasOwnProperty(\"isSelectable\") &&\n\t\t\tfindNode.isSelectable === false\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetValue(Number.parseInt(nodeIds));\n\t};\n\n\tconst handleToogle = (event: ChangeEvent<{}>, nodeIds: string[]) => {\n\t\tsetExpanded(nodeIds);\n\t};\n\n\tconst getNodeData = (node: TreeNode, id: number): TreeNode | null => {\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\n\tconst handleCheckboxChange = (node: TreeNode) => {\n\t\tif (node) {\n\t\t\tconst isSelected = selectedNodes.includes(node.id);\n\t\t\tlet updatedSelectedNodes: number[];\n\n\t\t\tif (isSelected) {\n\t\t\t\tupdatedSelectedNodes = selectedNodes.filter((id) => id !== node.id);\n\t\t\t} else {\n\t\t\t\tupdatedSelectedNodes = [...selectedNodes, node.id];\n\t\t\t}\n\n\t\t\tsetSelectedNodes(updatedSelectedNodes);\n\n\t\t\tif (setListAssetDrawings) {\n\t\t\t\tsetListAssetDrawings(updatedSelectedNodes);\n\t\t\t}\n\n\t\t\tconst expandedBranches = findBranchesWithSelectedNodes(\n\t\t\t\tdata,\n\t\t\t\tupdatedSelectedNodes,\n\t\t\t);\n\t\t\tsetExpanded(expandedBranches);\n\t\t}\n\t};\n\n\tconst renderTree = (nodes: TreeNode) => (\n\t\t<StyledTreeItem\n\t\t\tisChecked={selectedNodes.includes(nodes.id)}\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.treLabelIcon} 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.treLabelIcon} 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\t${classes.treeLabelText}\n\t\t\t\t\t\t\t${!nodes.isActive ? classes.treeLabelInactive : \"\"}\n\t\t\t\t\t\t\t${\n\t\t\t\t\t\t\t\tnodes?.hasOwnProperty(\"isSelectable\") &&\n\t\t\t\t\t\t\t\tnodes.isSelectable === false\n\t\t\t\t\t\t\t\t\t? classes.treeLabelUnselectable\n\t\t\t\t\t\t\t\t\t: \"\"\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\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\t{multipleSelectNodes && (\n\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\tclassName={classes.smallCheckbox}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\tchecked={selectedNodes.includes(nodes.id)}\n\t\t\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\t\t\thandleCheckboxChange(nodes);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={handleCheckboxClick}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t}\n\t\t\tclassName={\"delay-item-node\"}\n\t\t\tid={nodes.id.toString()}\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: TreeNode) => 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={onHide ? () => onHide(false) : () => null}\n\t\t\taria-label={title}\n\t\t\tmaxWidth=\"sm\"\n\t\t\tdisableAutoFocus\n\t\t\tdisableEnforceFocus\n\t\t\tdisableRestoreFocus\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{isLoading ? (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: 600,\n\t\t\t\t\t\tminHeight: 416,\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<LazyLoading />\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<DialogContent dividers>\n\t\t\t\t\t<TreeView\n\t\t\t\t\t\tautoFocus={false}\n\t\t\t\t\t\tclassName={classes.root}\n\t\t\t\t\t\tdefaultCollapseIcon={<MinusSquare />}\n\t\t\t\t\t\tdefaultExpandIcon={<PlusSquare />}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tselected={value === undefined ? \"\" : value.toString()}\n\t\t\t\t\t\texpanded={expanded}\n\t\t\t\t\t\tonNodeSelect={handleChange}\n\t\t\t\t\t\tonNodeToggle={handleToogle}\n\t\t\t\t\t>\n\t\t\t\t\t\t{data && data.id !== undefined && renderTree(data)}\n\t\t\t\t\t</TreeView>\n\t\t\t\t</DialogContent>\n\t\t\t)}\n\t\t\t<DialogActions>\n\t\t\t\t<Button 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};\n\nexport { ModalTreeFilterControl };\n","import {\n\tGrid,\n\tIconButton,\n\tInputAdornment,\n\tTextField,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport AccountTreeIcon from \"@material-ui/icons/AccountTree\";\nimport { ClearIcon } from \"@mui/x-date-pickers\";\nimport React, { useMemo, useState } from \"react\";\nimport { ModalTreeFilterControl } from \"./dialogFilter\";\n\ntype TreePickerControlProps = {\n\tonSelect: (\n\t\tvalue: number,\n\t\tdescription: string,\n\t\tfindNode: any,\n\t\tshowPath?: boolean,\n\t\tlistAssetDrawings?: number[],\n\t\tmultipleSelectNodes?: boolean,\n\t\tonHide?: (showAssetTree?: boolean) => void,\n\t\tshowAssetTree?: boolean,\n\t) => void;\n\tisLoading?: boolean;\n\tsetListAssetDrawings?: Function;\n\tonSuccess?: (success: boolean) => void;\n\tshowClearButton?: boolean;\n\t[key: string]: any;\n};\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\twidth: \"100%\",\n\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\"& .MuiInputBase-input\": {\n\t\t\tcolor: \"black\",\n\t\t\tcursor: \"pointer\",\n\t\t\tpaddingRight: 45,\n\t\t},\n\t},\n\tpaper: {\n\t\twidth: \"100%\",\n\t\tmaxHeight: 600,\n\t},\n}));\nexport const TreePickerControl = (props: TreePickerControlProps) => {\n\tconst classes = useStyles();\n\tconst {\n\t\tonSelect,\n\t\tvalue,\n\t\tstyleLabel,\n\t\tdataSource,\n\t\tinputTitle = \"Asset\",\n\t\tshowPath = false,\n\t\tmultipleSelectNodes = false,\n\t\tshowClearButton = false,\n\t\tshowAssetTree,\n\t\tonHide,\n\t\tlistAssetDrawings = [],\n\t\tonSuccess,\n\t\tisLoading,\n\t\t...other\n\t}: TreePickerControlProps = props;\n\tconst [open, setOpen] = useState(showAssetTree || false);\n\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\tif (!showAssetTree) {\n\t\t\tsetOpen(false);\n\t\t}\n\t\tif (newValue) {\n\t\t\tif (onSelect !== undefined) {\n\t\t\t\tonSelect(newValue, newDescription, findNode);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst formatDescription = (description: string): string => {\n\t\tif (\n\t\t\tprops.showPath &&\n\t\t\tdescription?.includes(\"/\") &&\n\t\t\tdescription.split(\"/\").length > 3\n\t\t) {\n\t\t\tconst parts = description.split(\"/\");\n\t\t\tlet formattedDescription = \"\";\n\n\t\t\tfor (let i = 0; i < parts.length; i++) {\n\t\t\t\tif (i < parts.length - 2) {\n\t\t\t\t\tformattedDescription += \".../\";\n\t\t\t\t} else if (i === parts.length - 2) {\n\t\t\t\t\tif (parts[i].length > 6) {\n\t\t\t\t\t\tformattedDescription += parts[i].substring(0, 6) + \".../\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tformattedDescription += parts[i] + \"/\";\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tformattedDescription += parts[i];\n\t\t\t\t\tif (i < parts.length - 1) {\n\t\t\t\t\t\tformattedDescription += \"/\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn formattedDescription;\n\t\t} else {\n\t\t\treturn description;\n\t\t}\n\t};\n\n\tconst description = useMemo(\n\t\t() => formatDescription(props.description),\n\t\t[props.description],\n\t);\n\n\treturn (\n\t\t<Grid container className={classes.root}>\n\t\t\t{!showAssetTree ? (\n\t\t\t\t<Grid\n\t\t\t\t\tcontainer\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={{ position: \"relative\" }}\n\t\t\t\t\ttitle={props.description}\n\t\t\t\t>\n\t\t\t\t\t<Grid item style={{ position: \"relative\", width: \"100%\" }}>\n\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\tid=\"treePickerTextField\"\n\t\t\t\t\t\t\tlabel={inputTitle}\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\tvalue={description}\n\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t\t\t<InputAdornment\n\t\t\t\t\t\t\t\t\t\tposition=\"end\"\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\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{showClearButton && value ? (\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"clear input\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"onClear -> onSelect\");\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect(0, \"\", \"\");\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\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tzIndex: 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\tedge=\"end\"\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<ClearIcon />\n\t\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t<AccountTreeIcon\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\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</InputAdornment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\tzIndex: 999,\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClick={handleClickListItem}\n\t\t\t\t\t></div>\n\t\t\t\t</Grid>\n\t\t\t) : (\n\t\t\t\t<div></div>\n\t\t\t)}\n\t\t\t<Grid item xs={12} md={12}>\n\t\t\t\t<ModalTreeFilterControl\n\t\t\t\t\tclasses={{\n\t\t\t\t\t\tpaper: classes.paper,\n\t\t\t\t\t}}\n\t\t\t\t\tonHide={onHide}\n\t\t\t\t\tid=\"modal-treeview-filter\"\n\t\t\t\t\ttitle={props.title}\n\t\t\t\t\tkeepMounted\n\t\t\t\t\topen={open}\n\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdata={dataSource}\n\t\t\t\t\tonBackdropClick={() => setOpen(false)}\n\t\t\t\t\tmultipleSelectNodes={multipleSelectNodes}\n\t\t\t\t\tlistAssetDrawings={listAssetDrawings}\n\t\t\t\t\tsetListAssetDrawings={listAssetDrawings}\n\t\t\t\t\tonSuccess={onSuccess}\n\t\t\t\t\t{...(other as any)}\n\t\t\t\t></ModalTreeFilterControl>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import {\n\tGrid,\n\tIconButton,\n\tInputAdornment,\n\tTextField,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport AccountTreeIcon from \"@material-ui/icons/AccountTree\";\nimport { ClearIcon } from \"@mui/x-date-pickers\";\nimport React, { useMemo, useState } from \"react\";\nimport { ModalTreeFilterControl, TreeNode } from \"./dialogFilter\";\n\ntype TreePickerControlProps = {\n\tonSelect: (\n\t\tvalue: number,\n\t\tdescription: string,\n\t\tfindNode: any,\n\t\tshowPath?: boolean,\n\t\tlistAssetDrawings?: number[],\n\t\tmultipleSelectNodes?: boolean,\n\t\tonHide?: (showAssetTree?: boolean) => void,\n\t\tshowAssetTree?: boolean,\n\t) => void;\n\tisLoading?: boolean;\n\tsetListAssetDrawings?: Function;\n\tonSuccess?: (success: boolean) => void;\n\tshowClearButton?: boolean;\n\tshowFullPath?: boolean;\n\tdisabled?: boolean;\n\tdataSource: TreeNode;\n\t[key: string]: any;\n};\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\twidth: \"100%\",\n\t\tbackgroundColor: theme.palette.background.paper,\n\t},\n\tpaper: {\n\t\twidth: \"100%\",\n\t\tmaxHeight: 600,\n\t},\n}));\n\nfunction findNameById(node: TreeNode, id: number): string | null {\n\tif (node?.id === id) {\n\t\treturn node.name;\n\t}\n\tif (node?.children) {\n\t\tfor (const child of node.children) {\n\t\t\tconst result = findNameById(child, id);\n\t\t\tif (result !== null) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction getNodePath(\n\tnode: TreeNode,\n\tnodeId: number | string,\n\tparentPath: string = \"\",\n\tisRoot: boolean = true,\n): string | null {\n\tif (node.id === nodeId) {\n\t\tif (isRoot) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn parentPath ? `${parentPath}/${node.name}` : node.name;\n\t}\n\n\tif (node.children && node.children.length > 0) {\n\t\tfor (const child of node.children) {\n\t\t\tconst currentPath = isRoot\n\t\t\t\t? \"\"\n\t\t\t\t: parentPath\n\t\t\t\t\t? `${parentPath}/${node.name}`\n\t\t\t\t\t: node.name;\n\n\t\t\tconst foundPath = getNodePath(child, nodeId, currentPath, false);\n\t\t\tif (foundPath !== null) {\n\t\t\t\treturn foundPath;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport const TreePickerControlV2 = (props: TreePickerControlProps) => {\n\tconst classes = useStyles();\n\tconst {\n\t\tvalue,\n\t\tonSelect,\n\n\t\tstyleLabel,\n\t\tdataSource,\n\t\tgetOptionName,\n\t\tinputTitle = \"Asset\",\n\t\tshowPath = false,\n\t\tmultipleSelectNodes = false,\n\t\tshowClearButton = false,\n\t\tshowFullPath = false,\n\t\tshowAssetTree,\n\t\tonHide,\n\t\tlistAssetDrawings = [],\n\t\tonSuccess,\n\t\tisLoading,\n\t\tdisabled = false,\n\t\t...other\n\t}: TreePickerControlProps = props;\n\n\tconst [open, setOpen] = useState(false);\n\n\tconst handleClickListItem = (event: any) => {\n\t\tevent.stopPropagation();\n\t\tif (disabled) return;\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) {\n\t\t\t\tonSelect(newValue, newDescription, findNode);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst description = useMemo(\n\t\t() => findNameById(dataSource, value) || \"\",\n\t\t[dataSource, value],\n\t);\n\n\tconst fullPath = useMemo(\n\t\t() => getNodePath(dataSource, value) || \"\",\n\t\t[dataSource, value],\n\t);\n\n\treturn (\n\t\t<Grid container className={classes.root}>\n\t\t\t{!showAssetTree ? (\n\t\t\t\t<Grid\n\t\t\t\t\tcontainer\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={{ position: \"relative\" }}\n\t\t\t\t\ttitle={props.description}\n\t\t\t\t>\n\t\t\t\t\t<Grid item style={{ position: \"relative\", width: \"100%\" }}>\n\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\tid=\"treePickerTextField\"\n\t\t\t\t\t\t\tlabel={inputTitle || \"\"}\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\tvalue={showFullPath ? fullPath : description}\n\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\tcolor: disabled ? \"grey\" : \"black\",\n\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\tpaddingRight: 25,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t\t\t<InputAdornment\n\t\t\t\t\t\t\t\t\t\tposition=\"end\"\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\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{showClearButton && value ? (\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"clear input\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect(0, \"\", \"\");\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\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tzIndex: 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\tedge=\"end\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\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<ClearIcon />\n\t\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t<AccountTreeIcon\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\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</InputAdornment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClick={handleClickListItem}\n\t\t\t\t\t></div>\n\t\t\t\t</Grid>\n\t\t\t) : (\n\t\t\t\t<div></div>\n\t\t\t)}\n\t\t\t<Grid item xs={12} md={12}>\n\t\t\t\t<ModalTreeFilterControl\n\t\t\t\t\tclasses={{\n\t\t\t\t\t\tpaper: classes.paper,\n\t\t\t\t\t}}\n\t\t\t\t\tonHide={onHide}\n\t\t\t\t\tid=\"modal-treeview-filter\"\n\t\t\t\t\ttitle={props.title}\n\t\t\t\t\tkeepMounted\n\t\t\t\t\topen={open}\n\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdata={dataSource}\n\t\t\t\t\tonBackdropClick={() => setOpen(false)}\n\t\t\t\t\tmultipleSelectNodes={multipleSelectNodes}\n\t\t\t\t\tlistAssetDrawings={listAssetDrawings}\n\t\t\t\t\tsetListAssetDrawings={listAssetDrawings}\n\t\t\t\t\tonSuccess={onSuccess}\n\t\t\t\t\t{...(other as any)}\n\t\t\t\t></ModalTreeFilterControl>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import { MenuItem, TextField, Typography } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\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\ninterface SimpleSelectorControlProps {\n\ttitle?: string;\n\tdataSource?: any[];\n\tselectedValue?: any;\n\tonChange?: (value: any) => void;\n\tshowColor?: boolean;\n\tstyleList?: React.CSSProperties;\n\thasChoose?: boolean;\n}\n\nexport function SimpleSelectorControl({\n\ttitle,\n\tdataSource = [],\n\tselectedValue,\n\tonChange,\n\tshowColor,\n\tstyleList,\n\thasChoose,\n}: SimpleSelectorControlProps) {\n\treturn (\n\t\t<TextField\n\t\t\tselect\n\t\t\tlabel={title}\n\t\t\tvariant=\"outlined\"\n\t\t\tvalue={selectedValue || \"DEFAULT\"}\n\t\t\tonChange={(e) =>\n\t\t\t\tonChange && onChange(e.target.value === \"DEFAULT\" ? \"\" : e.target.value)\n\t\t\t}\n\t\t\tstyle={styleList}\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t{hasChoose && <MenuItem value=\"DEFAULT\">{`Choose ${title}`}</MenuItem>}\n\t\t\t{dataSource.map((item: any, index: number) => (\n\t\t\t\t<MenuItem value={item.id.toString()} key={index}>\n\t\t\t\t\t{showColor && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\t\t\t\t\twidth: 12,\n\t\t\t\t\t\t\t\theight: 12,\n\t\t\t\t\t\t\t\tmarginRight: 8,\n\t\t\t\t\t\t\t\tbackgroundColor: item.color || \"#FFFFFF\",\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{item.description}\n\t\t\t\t</MenuItem>\n\t\t\t))}\n\t\t</TextField>\n\t);\n}\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\tconst 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 * from \"./TreePickerControl\";\nexport * from \"./TreePickerControlV2\";\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 { makeStyles } from \"@material-ui/core\";\nimport { DataGrid, GridOverlay } from \"@material-ui/data-grid\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\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 {\n\tBox,\n\tButton,\n\tCard,\n\tCardActions,\n\tCardContent,\n\tCollapse,\n\tGrid,\n\tIconButton,\n\tPaper,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\nimport React, { Component, type MouseEventHandler } from \"react\";\n\nconst useStyles = makeStyles((theme) => ({\n\tcontentWrapper: {\n\t\tpadding: theme.spacing(2),\n\t},\n\ttitle: {\n\t\tmarginBottom: theme.spacing(2),\n\t\t\"& small\": {\n\t\t\tmarginLeft: theme.spacing(1),\n\t\t\tcolor: theme.palette.text.secondary,\n\t\t},\n\t},\n\talertContainer: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\talert: {\n\t\tpadding: theme.spacing(1, 2),\n\t},\n\tsuccess: {\n\t\tbackgroundColor: \"#d4edda\",\n\t\tcolor: \"#155724\",\n\t\tborder: \"1px solid #c3e6cb\",\n\t},\n\terror: {\n\t\tbackgroundColor: \"#f8d7da\",\n\t\tcolor: \"#721c24\",\n\t\tborder: \"1px solid #f5c6cb\",\n\t},\n\talertContent: {\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"space-between\",\n\t},\n\talertMessage: {\n\t\tpadding: theme.spacing(1),\n\t},\n\tcloseButton: {\n\t\tpadding: theme.spacing(0.5),\n\t},\n\tmasterDetailPanel: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tbuttonContainer: {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"flex-end\",\n\t\tmarginTop: theme.spacing(2),\n\t},\n\tbutton: {\n\t\tmarginLeft: theme.spacing(1),\n\t},\n\tcancelButton: {\n\t\tbackgroundColor: theme.palette.error.main,\n\t\tcolor: theme.palette.error.contrastText,\n\t\t\"&:hover\": {\n\t\t\tbackgroundColor: theme.palette.error.dark,\n\t\t},\n\t},\n\tsaveButton: {\n\t\tbackgroundColor: theme.palette.primary.main,\n\t\tcolor: theme.palette.primary.contrastText,\n\t},\n\texportButton: {\n\t\tbackgroundColor: \"#28a745\",\n\t\tcolor: \"#fff\",\n\t\t\"&:hover\": {\n\t\t\tbackgroundColor: \"#218838\",\n\t\t},\n\t},\n\tfilterPanel: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tfilterButtons: {\n\t\tdisplay: \"flex\",\n\t\tmarginTop: theme.spacing(2),\n\t},\n}));\n\ntype AlertProps = {\n\tshow: boolean;\n\tvariant: \"success\" | \"danger\";\n\tdismissible?: boolean;\n\tonClose?: MouseEventHandler;\n\tchildren: React.ReactNode;\n};\n\nconst Alert = ({\n\tshow,\n\tvariant,\n\tdismissible,\n\tonClose,\n\tchildren,\n}: AlertProps) => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<Collapse in={show}>\n\t\t\t<Paper\n\t\t\t\tclassName={`${classes.alert} ${variant === \"success\" ? classes.success : classes.error}`}\n\t\t\t\televation={0}\n\t\t\t>\n\t\t\t\t<div className={classes.alertContent}>\n\t\t\t\t\t<div className={classes.alertMessage}>{children}</div>\n\t\t\t\t\t{dismissible && onClose && (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tclassName={classes.closeButton}\n\t\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CloseIcon fontSize=\"small\" />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Paper>\n\t\t</Collapse>\n\t);\n};\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\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\tconst classes = useStyles();\n\n\treturn (\n\t\t<Box className={classes.contentWrapper}>\n\t\t\t<Box className={classes.alertContainer}>\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<Typography variant=\"subtitle1\" component=\"strong\">\n\t\t\t\t\t\tThere was an error\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<Typography variant=\"body2\" component=\"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\t? error?.internalError\n\t\t\t\t\t\t\t\t: error?.internalError?.message}\n\t\t\t\t\t</Typography>\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\tdismissible={true}\n\t\t\t\t>\n\t\t\t\t\t<Typography variant=\"body2\" component=\"p\">\n\t\t\t\t\t\t{successMessage || \"Operation was success\"}\n\t\t\t\t\t</Typography>\n\t\t\t\t</Alert>\n\t\t\t</Box>\n\t\t\t<Typography variant=\"h5\" component=\"h3\" className={classes.title}>\n\t\t\t\t{title}\n\t\t\t\t<Typography variant=\"body2\" component=\"small\">\n\t\t\t\t\t{description}\n\t\t\t\t</Typography>\n\t\t\t</Typography>\n\t\t\t{children}\n\t\t</Box>\n\t);\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\tchildren?: React.ReactNode;\n};\n\nconst MasterDetailPanel = ({\n\ttitle,\n\tonSave,\n\tonCancel,\n\tonDelete,\n\tsaveStatus,\n\tdeleteStatus,\n\tshowSave = true,\n\tshowDelete,\n\tchildren,\n}: MasterDetailPanelProps) => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t<Box className={classes.masterDetailPanel}>\n\t\t\t<Card variant=\"outlined\">\n\t\t\t\t<CardContent>\n\t\t\t\t\t<Typography gutterBottom variant=\"h5\" component=\"h2\">\n\t\t\t\t\t\t{title || \"\"}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t{children}\n\t\t\t\t</CardContent>\n\t\t\t\t<CardActions>\n\t\t\t\t\t<Box display=\"flex\" justifyContent=\"flex-end\" width=\"100%\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\tclassName={`${classes.button} ${classes.cancelButton}`}\n\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\tdisabled={!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{(showSave === undefined || showSave) && (\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\tclassName={classes.button}\n\t\t\t\t\t\t\t\tonClick={onSave}\n\t\t\t\t\t\t\t\tdisabled={!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{showDelete && (\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\tclassName={classes.button}\n\t\t\t\t\t\t\t\tonClick={onDelete}\n\t\t\t\t\t\t\t\tdisabled={!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</Box>\n\t\t\t\t</CardActions>\n\t\t\t</Card>\n\t\t</Box>\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\tchildren?: React.ReactNode;\n};\n\nconst FilterPanel = (props: FilterPanelProps) => {\n\tconst classes = useStyles();\n\tconst {\n\t\tonClickExport,\n\t\tonClickReset,\n\t\tOnClickGo,\n\t\tshowButtons,\n\t\tshowExport,\n\t\textraButtons = [],\n\t\tchildren,\n\t} = props;\n\n\tconst handleExport = () => {\n\t\tif (onClickExport) onClickExport();\n\t};\n\n\tconst handleReset = () => {\n\t\tif (onClickReset) onClickReset();\n\t};\n\n\tconst handleGo = () => {\n\t\tif (OnClickGo) OnClickGo();\n\t};\n\n\treturn (\n\t\t<Box className={classes.filterPanel}>\n\t\t\t<Grid container spacing={2}>\n\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t{children}\n\n\t\t\t\t\t{showButtons && (\n\t\t\t\t\t\t<Box className={classes.filterButtons}>\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={handleGo}\n\t\t\t\t\t\t\t\tclassName={classes.button}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tGo\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\tvariant=\"contained\"\n\t\t\t\t\t\t\t\tclassName={`${classes.button} ${classes.cancelButton}`}\n\t\t\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tReset\n\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t{extraButtons.map((button, index) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={index}\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\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={button.onClick}\n\t\t\t\t\t\t\t\t\tclassName={classes.button}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{button.name}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t\t{showExport && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tclassName={`${classes.button} ${classes.exportButton}`}\n\t\t\t\t\t\t\t\t\tonClick={handleExport}\n\t\t\t\t\t\t\t\t\tstartIcon={<GetAppIcon />}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tExcel\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t)}\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</Box>\n\t);\n};\n\nconst LongFilterPanel = (props: FilterPanelProps) => {\n\tconst classes = useStyles();\n\tconst {\n\t\tonClickExport,\n\t\tonClickReset,\n\t\tOnClickGo,\n\t\tshowButtons,\n\t\tshowExport,\n\t\textraButtons = [],\n\t\tchildren,\n\t} = props;\n\n\tconst handleExport = () => {\n\t\tif (onClickExport) onClickExport();\n\t};\n\n\tconst handleReset = () => {\n\t\tif (onClickReset) onClickReset();\n\t};\n\n\tconst handleGo = () => {\n\t\tif (OnClickGo) OnClickGo();\n\t};\n\n\treturn (\n\t\t<Box className={classes.filterPanel}>\n\t\t\t<Grid container spacing={2}>\n\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t{children}\n\n\t\t\t\t\t{showButtons && (\n\t\t\t\t\t\t<Box className={classes.filterButtons}>\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={handleGo}\n\t\t\t\t\t\t\t\tclassName={classes.button}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tGo\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\tvariant=\"contained\"\n\t\t\t\t\t\t\t\tclassName={`${classes.button} ${classes.cancelButton}`}\n\t\t\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tReset\n\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t{showExport && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tclassName={`${classes.button} ${classes.exportButton}`}\n\t\t\t\t\t\t\t\t\tonClick={handleExport}\n\t\t\t\t\t\t\t\t\tstartIcon={<GetAppIcon />}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tExcel\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{extraButtons.map((button, index) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={index}\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\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={button.onClick}\n\t\t\t\t\t\t\t\t\tclassName={classes.button}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{button.name}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t)}\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</Box>\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 = \"\";\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\"response.data.message\",\n\t\t\tget(\n\t\t\t\terror,\n\t\t\t\t\"internalError.message\",\n\t\t\t\tget(\n\t\t\t\t\terror,\n\t\t\t\t\t\"response.data.detail\",\n\t\t\t\t\tget(error, \"response.data.title\", error.toString()) + \" \" + allErrors,\n\t\t\t\t),\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 { get } from \"lodash-es\";\nimport { MESApiService } from \"../../../services\";\nimport { ShiftNavigatorFilterParams } from \"../../shift-navigator-v2\";\n\nexport const getShiftByParameters = async (\n\tparameters: ShiftNavigatorFilterParams,\n) => {\n\tconst utcString = parameters.productionDate?.toISOString();\n\n\ttry {\n\t\tconst sqlParameters = [];\n\t\tsqlParameters.push({\n\t\t\tname: \"@ShiftId\",\n\t\t\tvalue: parameters.shiftId === 0 ? null : parameters.shiftId,\n\t\t});\n\t\tsqlParameters.push({\n\t\t\tname: \"@ProductionDate\",\n\t\t\tvalue: utcString,\n\t\t});\n\t\tconst apiService = new MESApiService();\n\t\tconst resp = await apiService.callV2(\n\t\t\t\"[MES].[GetShiftByParameters]\",\n\t\t\tsqlParameters,\n\t\t);\n\n\t\tif (resp.ok) {\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: get(resp.data, \"tables[0].rows[0]\", {}),\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\tmessage: resp.message,\n\t\t\t};\n\t\t}\n\t} catch (e: any) {\n\t\treturn { ok: false, message: e.toString() };\n\t}\n};\n","import { useState } from \"react\";\n\nimport { isNil } from \"lodash-es\";\nimport { getMomentTz } from \"../../../services\";\nimport { ShiftNavigatorDirection } from \"../component/shift-navigator.control\";\nimport { ShiftInfo } from \"../models/shift-navigator.model\";\nimport { getShiftByParameters } from \"../repositories/ShiftsRepository\";\n\nexport const useShiftNavigatorManager = () => {\n\tconst [shiftInfo, setShiftInfo] = useState<ShiftInfo | null>(null);\n\tconst [isShiftInfoLoading, setIsShiftInfoLoading] = useState<boolean>(false);\n\tconst [error, setError] = useState<string>(\"\");\n\n\tconst moment = getMomentTz();\n\n\tconst moveShift = async (\n\t\tdirection: ShiftNavigatorDirection,\n\t): Promise<ShiftInfo | void> => {\n\t\tif (isNil(shiftInfo)) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsShiftInfoLoading(true);\n\n\t\tlet shiftId: number | null = null;\n\t\tif (direction === \"Next\" && shiftInfo.NextShiftId !== null) {\n\t\t\tshiftId = shiftInfo.NextShiftId;\n\t\t} else if (direction === \"Previous\" && shiftInfo.PreviousShiftId !== null) {\n\t\t\tshiftId = shiftInfo.PreviousShiftId;\n\t\t} else if (direction === \"Last\" && shiftInfo.LastShiftId !== null) {\n\t\t\tshiftId = shiftInfo.LastShiftId;\n\t\t}\n\n\t\tif (shiftId) {\n\t\t\tconst resp = await getShiftByParameters({\n\t\t\t\tproductionDate: null,\n\t\t\t\tshiftId: shiftId,\n\t\t\t});\n\t\t\tif (resp.ok) {\n\t\t\t\tconst shift: ShiftInfo = {\n\t\t\t\t\t...resp.data,\n\t\t\t\t\tCurrentProductionDate: moment\n\t\t\t\t\t\t.utc(resp.data.CurrentProductionDate)\n\t\t\t\t\t\t.toDate(),\n\t\t\t\t\tCurrentStart: moment.utc(resp.data.CurrentStart).toDate(),\n\t\t\t\t\tCurrentEnd: moment.utc(resp.data.CurrentEnd).toDate(),\n\t\t\t\t\tPreviousProductionDate: moment\n\t\t\t\t\t\t.utc(resp.data.PreviousProductionDate)\n\t\t\t\t\t\t.toDate(),\n\t\t\t\t\tPreviousStart: moment.utc(resp.data.PreviousStart).toDate(),\n\t\t\t\t\tPreviousEnd: moment.utc(resp.data.PreviousEnd).toDate(),\n\t\t\t\t\tLastProductionDate: moment.utc(resp.data.LastProductionDate).toDate(),\n\t\t\t\t\tLastStart: moment.utc(resp.data.LastStart).toDate(),\n\t\t\t\t\tLastEnd: moment.utc(resp.data.LastEnd).toDate(),\n\t\t\t\t};\n\t\t\t\tsetShiftInfo(shift);\n\t\t\t\treturn shift;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst getShiftDataFromAPI = async (\n\t\tproductionDate: Date | null,\n\t\tshiftId: number,\n\t): Promise<ShiftInfo | void> => {\n\t\tsetIsShiftInfoLoading(true);\n\t\ttry {\n\t\t\tconst resp = await getShiftByParameters({\n\t\t\t\tproductionDate: productionDate,\n\t\t\t\tshiftId: shiftId,\n\t\t\t});\n\t\t\tif (resp.ok) {\n\t\t\t\tconst shift: ShiftInfo = {\n\t\t\t\t\t...resp.data,\n\t\t\t\t\tCurrentProductionDate: moment\n\t\t\t\t\t\t.utc(resp.data.CurrentProductionDate)\n\t\t\t\t\t\t.toDate(),\n\t\t\t\t\tCurrentStart: moment.utc(resp.data.CurrentStart).toDate(),\n\t\t\t\t\tCurrentEnd: moment.utc(resp.data.CurrentEnd).toDate(),\n\t\t\t\t\tPreviousProductionDate: moment\n\t\t\t\t\t\t.utc(resp.data.PreviousProductionDate)\n\t\t\t\t\t\t.toDate(),\n\t\t\t\t\tPreviousStart: moment.utc(resp.data.PreviousStart).toDate(),\n\t\t\t\t\tPreviousEnd: moment.utc(resp.data.PreviousEnd).toDate(),\n\t\t\t\t\tLastProductionDate: moment.utc(resp.data.LastProductionDate).toDate(),\n\t\t\t\t\tLastStart: moment.utc(resp.data.LastStart).toDate(),\n\t\t\t\t\tLastEnd: moment.utc(resp.data.LastEnd).toDate(),\n\t\t\t\t};\n\t\t\t\tsetShiftInfo(shift);\n\t\t\t\treturn shift;\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tsetError(e.toString());\n\t\t}\n\t\tsetIsShiftInfoLoading(false);\n\t};\n\n\tconst initShiftNavigator = async (): Promise<ShiftInfo | void> => {\n\t\tconst resp = await getShiftByParameters({\n\t\t\tproductionDate: new Date(),\n\t\t\tshiftId: 0,\n\t\t});\n\t\tif (resp.ok) {\n\t\t\tconst shift: ShiftInfo = {\n\t\t\t\t...resp.data,\n\t\t\t\tCurrentProductionDate: moment\n\t\t\t\t\t.utc(resp.data.CurrentProductionDate)\n\t\t\t\t\t.toDate(),\n\t\t\t\tCurrentStart: moment.utc(resp.data.CurrentStart).toDate(),\n\t\t\t\tCurrentEnd: moment.utc(resp.data.CurrentEnd).toDate(),\n\t\t\t\tPreviousProductionDate: moment\n\t\t\t\t\t.utc(resp.data.PreviousProductionDate)\n\t\t\t\t\t.toDate(),\n\t\t\t\tPreviousStart: moment.utc(resp.data.PreviousStart).toDate(),\n\t\t\t\tPreviousEnd: moment.utc(resp.data.PreviousEnd).toDate(),\n\t\t\t\tLastProductionDate: moment.utc(resp.data.LastProductionDate).toDate(),\n\t\t\t\tLastStart: moment.utc(resp.data.LastStart).toDate(),\n\t\t\t\tLastEnd: moment.utc(resp.data.LastEnd).toDate(),\n\t\t\t};\n\t\t\tsetShiftInfo(shift);\n\t\t\treturn shift;\n\t\t}\n\t};\n\n\treturn {\n\t\tshiftInfo,\n\t\tmoveShift,\n\t\tgetShiftDataFromAPI,\n\t\tinitShiftNavigator,\n\t};\n};\n\nexport type ShiftNavigatorManagerResult = {\n\tshiftInfo: ShiftInfo | null;\n\tmoveShift: (direction: ShiftNavigatorDirection) => Promise<ShiftInfo | void>;\n\tgetShiftDataFromAPI: (\n\t\tproductionDate: Date | null,\n\t\tshiftId: number,\n\t) => Promise<ShiftInfo | void>;\n\tinitShiftNavigator: () => Promise<ShiftInfo | void>;\n};\n","import React, { createContext, useContext } from \"react\";\nimport {\n\ttype ShiftNavigatorManagerResult,\n\tuseShiftNavigatorManager,\n} from \"../hook/useShiftNavigator\";\n\nconst ShiftNavigatorContext = createContext<ShiftNavigatorManagerResult>({\n\tgetShiftDataFromAPI: async () => {},\n\tinitShiftNavigator: async () => {},\n\tmoveShift: async () => {},\n\tshiftInfo: {\n\t\tCurrentShiftId: 0,\n\t\tCurrentProductionDate: new Date(),\n\t\tCurrentProductionShift: 0,\n\t\tCurrentShift: \"\",\n\t\tCurrentCrew: \"\",\n\t\tCurrentStart: new Date(),\n\t\tCurrentEnd: new Date(),\n\t\tPreviousShiftId: 0,\n\t\tPreviousProductionDate: new Date(),\n\t\tPreviousProductionShift: 0,\n\t\tPreviousShift: \"\",\n\t\tPreviousCrew: \"\",\n\t\tPreviousStart: new Date(),\n\t\tPreviousEnd: new Date(),\n\t\tNextShiftId: null,\n\t\tNextProductionDate: null,\n\t\tNextProductionShift: null,\n\t\tNextShift: null,\n\t\tNextCrew: null,\n\t\tNextStart: null,\n\t\tNextEnd: null,\n\t\tLastShiftId: 0,\n\t\tLastProductionDate: new Date(),\n\t\tLastProductionShift: 0,\n\t\tLastShift: \"\",\n\t\tLastCrew: \"\",\n\t\tLastStart: new Date(),\n\t\tLastEnd: new Date(),\n\t},\n});\n\nexport const useShiftNavigator = () => useContext(ShiftNavigatorContext);\n\nexport const ShiftNavigatorProvider = ({ children }: any) => {\n\tconst shiftNavigatorManager = useShiftNavigatorManager();\n\n\treturn (\n\t\t<ShiftNavigatorContext.Provider value={shiftNavigatorManager}>\n\t\t\t{children}\n\t\t</ShiftNavigatorContext.Provider>\n\t);\n};\n","import { Grid, IconButton, Paper, TextField, Tooltip } from \"@material-ui/core\";\nimport {\n\tArrowBackRounded,\n\tArrowForwardRounded,\n\tSkipNext,\n} from \"@material-ui/icons\";\n\nimport { DatePicker as MuiDatePicker } from \"@mui/x-date-pickers/DatePicker\";\nimport { Moment } from \"moment-timezone\";\nimport moment from \"moment-timezone\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { getMomentTz } from \"../../../services\";\nimport { getError } from \"../../../utils\";\nimport { useShiftNavigator } from \"../context/ShiftNavigatorProvider\";\nimport { ShiftInfo } from \"../models/shift-navigator.model\";\nimport { getShiftByParameters } from \"../repositories/ShiftsRepository\";\n\nexport type ShiftNavigatorDirection = \"Previous\" | \"Next\" | \"Last\";\n\nexport const ShiftDayNavigatorControl = (props: {\n\tuseRouter?: boolean;\n\tonShiftChange?: (shiftId: number) => void;\n\tpreventInit?: boolean;\n}) => {\n\tconst { shiftInfo, initShiftNavigator, moveShift, getShiftDataFromAPI } =\n\t\tuseShiftNavigator();\n\n\tconst [shiftInfoCopy, setShiftInfoCopy] = useState(shiftInfo);\n\tconst [error, setError] = useState<string>(\"\");\n\n\tconst { shiftId } = useParams();\n\tconst firstRender = useRef(true);\n\n\tconst updateHistory = (shiftId: string) => {\n\t\tconst paths = location.pathname.split(\"/\");\n\t\twindow.history.replaceState(null, \"\", `/${paths[1]}` + `/${shiftId}`);\n\t};\n\n\tif (shiftInfo !== null && shiftInfo.CurrentShiftId) {\n\t\tif (props.useRouter) {\n\t\t\tupdateHistory(shiftInfo?.CurrentShiftId?.toString());\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst fn = async () => {\n\t\t\tif (shiftInfo?.CurrentEnd && shiftInfo.CurrentEnd < new Date()) {\n\t\t\t\ttry {\n\t\t\t\t\tconst resp = await getShiftByParameters({\n\t\t\t\t\t\tproductionDate: null,\n\t\t\t\t\t\tshiftId: shiftInfo!.CurrentShiftId,\n\t\t\t\t\t});\n\t\t\t\t\tif (resp.ok) {\n\t\t\t\t\t\tconst shift: ShiftInfo = {\n\t\t\t\t\t\t\t...resp.data,\n\t\t\t\t\t\t\tCurrentProductionDate: moment\n\t\t\t\t\t\t\t\t.utc(resp.data.CurrentProductionDate)\n\t\t\t\t\t\t\t\t.toDate(),\n\t\t\t\t\t\t\tCurrentStart: moment.utc(resp.data.CurrentStart).toDate(),\n\t\t\t\t\t\t\tCurrentEnd: moment.utc(resp.data.CurrentEnd).toDate(),\n\t\t\t\t\t\t\tPreviousProductionDate: moment\n\t\t\t\t\t\t\t\t.utc(resp.data.PreviousProductionDate)\n\t\t\t\t\t\t\t\t.toDate(),\n\t\t\t\t\t\t\tPreviousStart: moment.utc(resp.data.PreviousStart).toDate(),\n\t\t\t\t\t\t\tPreviousEnd: moment.utc(resp.data.PreviousEnd).toDate(),\n\t\t\t\t\t\t\tLastProductionDate: moment\n\t\t\t\t\t\t\t\t.utc(resp.data.LastProductionDate)\n\t\t\t\t\t\t\t\t.toDate(),\n\t\t\t\t\t\t\tLastStart: moment.utc(resp.data.LastStart).toDate(),\n\t\t\t\t\t\t\tLastEnd: moment.utc(resp.data.LastEnd).toDate(),\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsetShiftInfoCopy(shift);\n\t\t\t\t\t}\n\t\t\t\t} catch (e: any) {\n\t\t\t\t\tsetError(getError(e));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tconst interval = setInterval(fn, 1000 * 60);\n\t\treturn () => clearInterval(interval);\n\t}, [shiftInfo]);\n\n\tuseEffect(() => {\n\t\tsetShiftInfoCopy(shiftInfo);\n\t}, [shiftInfo]);\n\n\tuseEffect(() => {\n\t\tif (firstRender.current) {\n\t\t\tfirstRender.current = false;\n\n\t\t\tif (props.preventInit) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (props.useRouter && shiftId) {\n\t\t\t\tgetShiftDataFromAPI(null, Number(shiftId)).then(() => {\n\t\t\t\t\tprops.onShiftChange && props.onShiftChange(Number(shiftId));\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinitShiftNavigator().then(() => {\n\t\t\t\t\tprops.onShiftChange && props.onShiftChange(Number(shiftId));\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t<Paper>\n\t\t\t<Grid\n\t\t\t\titem\n\t\t\t\tcontainer\n\t\t\t\tstyle={{ minWidth: \"0%\", margin: \"1rem\" }}\n\t\t\t\tdirection={\"row\"}\n\t\t\t\tjustifyContent={\"flex-start\"}\n\t\t\t\talignItems={\"center\"}\n\t\t\t\tspacing={1}\n\t\t\t>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<Tooltip title={\"Previous Shift\"}>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\taria-label=\"Previous Shift\"\n\t\t\t\t\t\t\tcolor={\"primary\"}\n\t\t\t\t\t\t\tdisabled={!shiftInfo?.PreviousShiftId}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tmoveShift(\"Previous\").then(() => {});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ArrowBackRounded />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<MuiDatePicker\n\t\t\t\t\t\tlabel=\"Current Date\"\n\t\t\t\t\t\ttimezone={\"UTC\"}\n\t\t\t\t\t\tformat=\"MM/DD/YYYY\"\n\t\t\t\t\t\tmaxDate={moment()}\n\t\t\t\t\t\tcloseOnSelect\n\t\t\t\t\t\tformatDensity={\"dense\"}\n\t\t\t\t\t\tvalue={moment(shiftInfo?.CurrentProductionDate)}\n\t\t\t\t\t\tonChange={(date: Moment | null) => {\n\t\t\t\t\t\t\tif (date) {\n\t\t\t\t\t\t\t\tgetShiftDataFromAPI(date.toDate(), 0).then(() => {});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\ttextField: TextField,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\ttextField: {\n\t\t\t\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\tinputProps: {\n\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\t\t\t\twidth: \"110px\",\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}}\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item style={{ maxWidth: \"100px\" }}>\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tlabel={\"Shift - Crew\"}\n\t\t\t\t\t\tvalue={`${shiftInfo?.CurrentShift || \"\"} - ${shiftInfo?.CurrentCrew || \"\"}`}\n\t\t\t\t\t\tplaceholder={\"Shift\"}\n\t\t\t\t\t\taria-readonly\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<Tooltip title={\"Next Shift\"}>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\taria-label=\"next\"\n\t\t\t\t\t\t\tcolor={\"primary\"}\n\t\t\t\t\t\t\tdisabled={!shiftInfoCopy?.NextShiftId}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tmoveShift(\"Next\").then(() => {});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ArrowForwardRounded />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<Tooltip title={\"Last Shift\"}>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\taria-label=\"delete\"\n\t\t\t\t\t\t\tcolor={\"primary\"}\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t!shiftInfoCopy?.LastShiftId || !shiftInfoCopy?.NextShiftId\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tmoveShift(\"Last\").then(() => {});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SkipNext />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t</Paper>\n\t);\n};\n","import moment from \"moment-timezone\";\nimport { MESApiService, getMomentTz } from \"../../../services\";\nimport { ShiftsResponse } from \"../models/shift-data\";\n\nexport interface ShiftNavigatorFilterParams {\n\tproductionDate: Date | null;\n\tshiftId: number;\n}\n\nexport const getShiftsRangeByParameters = async (\n\tperiod: string | null,\n\tStart: Date | null = null,\n\tEnd: Date | null = null,\n\tStartShiftId: number | null = null,\n\tEndShiftId: number | null = null,\n\taction: \"prev\" | \"next\" | \"last\" | null = null,\n) => {\n\tconst apiService = new MESApiService();\n\n\tconst resp = await apiService.callV2(\"[MES].[GetShiftsRangeByParameters]\", [\n\t\t{\n\t\t\tname: \"Period\",\n\t\t\tvalue: period,\n\t\t},\n\t\t{\n\t\t\tname: \"Start\",\n\t\t\tvalue: Start?.toISOString(),\n\t\t},\n\t\t{\n\t\t\tname: \"End\",\n\t\t\tvalue: End?.toISOString(),\n\t\t},\n\t\t{\n\t\t\tname: \"StartShiftId\",\n\t\t\tvalue: StartShiftId,\n\t\t},\n\t\t{\n\t\t\tname: \"EndShiftId\",\n\t\t\tvalue: EndShiftId,\n\t\t},\n\t\t{\n\t\t\tname: \"Action\",\n\t\t\tvalue: action,\n\t\t},\n\t]);\n\tif (resp.ok) {\n\t\tconst data = resp.data as ShiftsResponse;\n\n\t\tdata.tables[0].rows.map((shift) => {\n\t\t\tshift.Start = moment.utc(shift[\"Start\"]).toDate();\n\t\t\tshift.End = moment.utc(shift[\"End\"]).toDate();\n\t\t});\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata,\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tmessage: resp.message!,\n\t\t};\n\t}\n};\n","import {\n\tFormControl,\n\tGrid,\n\tIconButton,\n\tInputLabel,\n\tMenuItem,\n\tSelect,\n\tTextField,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport { ChevronLeft, ChevronRight } from \"@material-ui/icons\";\nimport SkipNextIcon from \"@material-ui/icons/SkipNext\";\nimport { CalendarIcon, DatePicker } from \"@mui/x-date-pickers\";\nimport { get } from \"lodash-es\";\nimport moment from \"moment-timezone\";\nimport React, { useEffect, useState } from \"react\";\nimport { getMomentTz } from \"../../../services\";\nimport { SearchShiftsParameters } from \"../models/SearchShiftsParameters\";\nimport { ShiftData } from \"../models/shift-data\";\nimport { getShiftsRangeByParameters } from \"../repositories/ShiftsRepository\";\n\nconst useStyles = makeStyles((theme) => ({\n\tcontainer: {\n\t\tdisplay: \"grid\",\n\t\tgridTemplateColumns:\n\t\t\t\"auto minmax(100px, 1fr) 80px minmax(100px, 1fr) auto auto\",\n\t\talignItems: \"center\",\n\t\twidth: \"100%\",\n\t\tmargin: 0,\n\t\tpadding: \"8px 0\",\n\t\tgap: \"8px\",\n\t},\n\tgridItem: {\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t},\n\tdatePickerWrapper: {\n\t\tminWidth: \"100px\",\n\t\tfontSize: \".8rem!important\",\n\t\tmargin: \"0!important\",\n\t\t\"& .MuiInputAdornment-root\": {\n\t\t\tmargin: \"0!important\",\n\t\t},\n\t\t\"& .MuiInputBase-input\": {\n\t\t\tfontSize: \"1rem!important\",\n\t\t\tpadding: \"4px 8px !important\",\n\t\t},\n\t},\n\tselectWrapper: {\n\t\twidth: \"80px\",\n\t\t\"& .MuiInputBase-input\": {\n\t\t\tfontSize: \"0.8rem !important\",\n\t\t\tpadding: \"4px 8px !important\",\n\t\t\tdisplay: \"inline-flex\",\n\t\t\talignItems: \"center\",\n\t\t},\n\t},\n}));\n\ninterface PeriodOption {\n\tvalue: string;\n\tlabel: string;\n}\n\ntype Props = {\n\tvalue: SearchShiftsParameters | null;\n\tonChange: (value: any) => void;\n\tshowShiftAndCrews?: boolean;\n\tdateFormat?: string;\n\tperiodOptions?: PeriodOption[];\n};\n\nconst DEFAULT_PERIOD_OPTIONS: PeriodOption[] = [\n\t{ value: \"Shift\", label: \"Shift\" },\n\t{ value: \"Day\", label: \"Day\" },\n\t{ value: \"4Days\", label: \"4 Days\" },\n\t{ value: \"Week\", label: \"Week\" },\n\t{ value: \"Month\", label: \"Month\" },\n];\n\nexport const ShiftPeriodNavigatorControl = ({\n\tvalue,\n\tonChange,\n\tshowShiftAndCrews = true,\n\tdateFormat = \"MM/DD/YYYY HH:mm a\",\n\tperiodOptions = DEFAULT_PERIOD_OPTIONS,\n}: Props) => {\n\tconst classes = useStyles();\n\tconst [period, setPeriod] = useState(periodOptions[0]?.value || \"Day\");\n\tconst [loadingShiftPeriodList, setLoadingShiftPeriodList] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst [shiftPeriodList, setShiftPeriodList] = useState<ShiftData[]>([]);\n\tconst [isActionInProgress, setIsActionInProgress] = useState(false);\n\n\tconst handleArrowNavigation = async (direction: \"next\" | \"prev\") => {\n\t\tif (!startShift?.Start && !endShift?.End) return;\n\n\t\ttry {\n\t\t\tif (direction === \"prev\" && startShift?.Start) {\n\t\t\t\tawait searchShiftsRangeByParameters(\n\t\t\t\t\tperiod,\n\t\t\t\t\tmoment(startShift.Start).toDate(),\n\t\t\t\t\tnull,\n\t\t\t\t\tfalse,\n\t\t\t\t\t\"prev\",\n\t\t\t\t);\n\t\t\t} else if (direction === \"next\" && endShift?.End) {\n\t\t\t\tawait searchShiftsRangeByParameters(\n\t\t\t\t\tperiod,\n\t\t\t\t\tnull,\n\t\t\t\t\tmoment(endShift.End).toDate(),\n\t\t\t\t\tfalse,\n\t\t\t\t\t\"next\",\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetError(error as string);\n\t\t}\n\t};\n\n\tconst handleLastShift = async () => {\n\t\ttry {\n\t\t\tawait searchShiftsRangeByParameters(period, null, null, false, \"last\");\n\t\t} catch (error) {\n\t\t\tsetError(error as string);\n\t\t}\n\t};\n\n\tconst searchShiftsRangeByParameters = async (\n\t\tnewPeriod: string | null,\n\t\tnewStartDate: Date | null,\n\t\tnewEndDate: Date | null,\n\t\tuseShiftIds: boolean | null = true,\n\t\taction: \"prev\" | \"next\" | \"last\" | null = null,\n\t) => {\n\t\tif (isActionInProgress) return;\n\t\tsetIsActionInProgress(true);\n\t\tsetLoadingShiftPeriodList(true);\n\t\ttry {\n\t\t\tconst res = await getShiftsRangeByParameters(\n\t\t\t\tnewPeriod,\n\t\t\t\tnewStartDate,\n\t\t\t\tnewEndDate,\n\t\t\t\tuseShiftIds ? (value?.StartShiftId ?? null) : null,\n\t\t\t\tuseShiftIds ? (value?.EndShiftId ?? null) : null,\n\t\t\t\taction,\n\t\t\t);\n\n\t\t\tif (res.ok) {\n\t\t\t\tconst rowsSource = get(res, \"data.tables[0].rows\", []);\n\t\t\t\tsetShiftPeriodList(rowsSource);\n\n\t\t\t\tif (rowsSource.length >= 2) {\n\t\t\t\t\tonChange({\n\t\t\t\t\t\tStartShiftId: rowsSource[0].ShiftId,\n\t\t\t\t\t\tEndShiftId: rowsSource[1].ShiftId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetError(res.message as string);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetError(error as string);\n\t\t} finally {\n\t\t\tsetLoadingShiftPeriodList(false);\n\t\t\tsetIsActionInProgress(false);\n\t\t}\n\t};\n\n\tconst handleDateChange = async (\n\t\tvalue: moment.Moment | null,\n\t\tkey: \"start\" | \"end\",\n\t) => {\n\t\tif (!value || !value.isValid()) return;\n\n\t\ttry {\n\t\t\tconst newDate = value.toDate();\n\n\t\t\tif (key === \"start\") {\n\t\t\t\tawait searchShiftsRangeByParameters(period, newDate, null, false);\n\t\t\t} else {\n\t\t\t\tawait searchShiftsRangeByParameters(period, null, newDate, false);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetError(error as string);\n\t\t}\n\t};\n\n\tconst handleChangeScope = async (\n\t\te: React.ChangeEvent<{ value: unknown }>,\n\t) => {\n\t\tconst newPeriod = e.target.value as string;\n\t\tsetPeriod(newPeriod);\n\n\t\tawait searchShiftsRangeByParameters(\n\t\t\tnewPeriod,\n\t\t\tnull,\n\t\t\tendShift?.Start ? moment(endShift.Start).toDate() : null,\n\t\t\tfalse,\n\t\t);\n\t};\n\n\tuseEffect(() => {\n\t\tif (value?.StartShiftId || value?.EndShiftId) {\n\t\t\tsearchShiftsRangeByParameters(period, null, null, true);\n\t\t}\n\t}, [value?.StartShiftId, value?.EndShiftId]);\n\n\tuseEffect(() => {\n\t\tsearchShiftsRangeByParameters(period, null, null, true);\n\t}, []);\n\n\tconst startShift = shiftPeriodList[0];\n\tconst endShift = shiftPeriodList[1];\n\n\tconst renderShiftCrewInfo = (shift: ShiftData | undefined) => {\n\t\tif (!showShiftAndCrews || !shift) return null;\n\n\t\treturn (\n\t\t\t<span\n\t\t\t\tstyle={{\n\t\t\t\t\tpaddingRight: 5,\n\t\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\ttextOverflow: \"ellipsis\",\n\t\t\t\t\tfontSize: 15,\n\t\t\t\t\tfontWeight: \"bold\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{shift.Shift} - {shift.Crew}\n\t\t\t</span>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className={classes.container}>\n\t\t\t<div className={classes.gridItem}>\n\t\t\t\t<IconButton\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tdisabled={loadingShiftPeriodList}\n\t\t\t\t\tonClick={() => handleArrowNavigation(\"prev\")}\n\t\t\t\t>\n\t\t\t\t\t<ChevronLeft />\n\t\t\t\t</IconButton>\n\t\t\t</div>\n\n\t\t\t<div className={`${classes.gridItem} ${classes.datePickerWrapper}`}>\n\t\t\t\t<DatePicker\n\t\t\t\t\tlabel=\"Start\"\n\t\t\t\t\tformat={dateFormat}\n\t\t\t\t\tvalue={moment(startShift?.Start || moment().subtract(1, \"day\"))}\n\t\t\t\t\tonChange={(value) =>\n\t\t\t\t\t\thandleDateChange(value ? moment(value) : null, \"start\")\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={loadingShiftPeriodList}\n\t\t\t\t\tslots={{\n\t\t\t\t\t\ttextField: (props) => (\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tstyle={{ width: \"100%\" }}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\t...props.InputProps,\n\t\t\t\t\t\t\t\t\tstyle: { paddingTop: \"2px\" },\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\topenPickerIcon: () => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\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{renderShiftCrewInfo(startShift)}\n\t\t\t\t\t\t\t\t<IconButton style={{ padding: \"0px\", flexShrink: 0 }}>\n\t\t\t\t\t\t\t\t\t<CalendarIcon />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div className={`${classes.gridItem} ${classes.selectWrapper}`}>\n\t\t\t\t<FormControl variant=\"outlined\" size=\"small\" fullWidth>\n\t\t\t\t\t<InputLabel id=\"period-select-label\">Period</InputLabel>\n\t\t\t\t\t<Select\n\t\t\t\t\t\tvalue={period}\n\t\t\t\t\t\tonChange={handleChangeScope}\n\t\t\t\t\t\tdisabled={loadingShiftPeriodList}\n\t\t\t\t\t\tlabel=\"Period\"\n\t\t\t\t\t\tlabelId=\"period-select-label\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{periodOptions.map((option) => (\n\t\t\t\t\t\t\t<MenuItem key={option.value} value={option.value}>\n\t\t\t\t\t\t\t\t{option.label}\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</div>\n\n\t\t\t<div className={`${classes.gridItem} ${classes.datePickerWrapper}`}>\n\t\t\t\t<DatePicker\n\t\t\t\t\tlabel=\"End\"\n\t\t\t\t\tformat={dateFormat}\n\t\t\t\t\tvalue={moment(endShift?.Start || moment().subtract(1, \"day\"))}\n\t\t\t\t\tonChange={(value) =>\n\t\t\t\t\t\thandleDateChange(value ? moment(value) : null, \"end\")\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={loadingShiftPeriodList}\n\t\t\t\t\tslots={{\n\t\t\t\t\t\ttextField: (props) => (\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tstyle={{ width: \"100%\" }}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\t...props.InputProps,\n\t\t\t\t\t\t\t\t\tstyle: { paddingTop: \"2px\" },\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\topenPickerIcon: () => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tmargin: \"0 !important\",\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\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{renderShiftCrewInfo(endShift)}\n\t\t\t\t\t\t\t\t<IconButton style={{ padding: \"0px\", flexShrink: 0 }}>\n\t\t\t\t\t\t\t\t\t<CalendarIcon />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div className={classes.gridItem}>\n\t\t\t\t<IconButton\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tdisabled={loadingShiftPeriodList}\n\t\t\t\t\tonClick={() => handleArrowNavigation(\"next\")}\n\t\t\t\t>\n\t\t\t\t\t<ChevronRight />\n\t\t\t\t</IconButton>\n\t\t\t</div>\n\n\t\t\t<div className={classes.gridItem}>\n\t\t\t\t<IconButton\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tdisabled={loadingShiftPeriodList}\n\t\t\t\t\tonClick={handleLastShift}\n\t\t\t\t>\n\t\t\t\t\t<SkipNextIcon />\n\t\t\t\t</IconButton>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { type Theme, makeStyles } from \"@material-ui/core\";\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n\tcontextMenu: {\n\t\tbackgroundColor: \"#fff\",\n\t\tborderRadius: \"2px\",\n\t\tpadding: \"5px 0\",\n\t\twidth: \"180px\",\n\t\theight: \"auto\",\n\t\tmargin: \"0\",\n\t\tposition: \"fixed\",\n\t\tzIndex: 1,\n\t\tlistStyle: \"none\",\n\t\tboxShadow: \"0 0 20px 0 #ccc\",\n\t\t\"& .MuiMenuItem-root\": {\n\t\t\tfontSize: \"14px\",\n\t\t},\n\t\t\"& .MuiListItemIcon-root\": {\n\t\t\tminWidth: \"25px\",\n\t\t\tpadding: \"0\",\n\t\t},\n\t\t\"& .MuiSvgIcon-root\": {\n\t\t\tfontSize: \"16px\",\n\t\t},\n\t},\n}));\n","import React, {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { ContextMenu } from \"./ContextMenu\";\nimport { MenuOptionType } from \"./models/MenuOptionType\";\n\ntype ContextMenuConfig = {\n\tid: string;\n\tgetOptions: (data: any) => MenuOptionType[];\n};\n\ninterface ContextMenuMESFContextType {\n\tshow: boolean;\n\tposition: { x: number; y: number };\n\toptions: MenuOptionType[];\n\tshowContextMenu: (e: React.MouseEvent, data: any, configId: string) => void;\n\tregisterConfig: (config: ContextMenuConfig) => void;\n\tonClickOutside: () => void;\n}\n\nconst ContextMenuMESFContext = createContext<ContextMenuMESFContextType>({\n\tshow: false,\n\tposition: { x: 0, y: 0 },\n\toptions: [],\n\tshowContextMenu: () => {},\n\tregisterConfig: () => {},\n\tonClickOutside: () => {},\n});\n\nexport const ContextMenuMESFProvider = ({\n\tchildren,\n}: { children: ReactNode }) => {\n\tconst [show, setShow] = useState(false);\n\tconst [position, setPosition] = useState({ x: 0, y: 0 });\n\tconst [options, setOptions] = useState<MenuOptionType[]>([]);\n\tconst [configs, setConfigs] = useState<{ [key: string]: ContextMenuConfig }>(\n\t\t{},\n\t);\n\tconst currentDataRef = useRef<any>(null);\n\tconst currentConfigIdRef = useRef<string | null>(null);\n\n\tconst registerConfig = (config: ContextMenuConfig) => {\n\t\tsetConfigs((prev) => ({ ...prev, [config.id]: config }));\n\t};\n\n\tconst showContextMenu = (\n\t\te: React.MouseEvent,\n\t\tdata: any,\n\t\tconfigId: string,\n\t) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tsetShow(true);\n\t\tsetPosition({ x: e.clientX, y: e.clientY });\n\t\tcurrentDataRef.current = data;\n\t\tcurrentConfigIdRef.current = configId;\n\t\tif (configs[configId]) {\n\t\t\tsetOptions(configs[configId].getOptions(data));\n\t\t} else {\n\t\t\tconsole.warn(`No config found for id: ${configId}`);\n\t\t\tsetOptions([]);\n\t\t}\n\t};\n\n\tconst onClickOutside = () => {\n\t\tsetShow(false);\n\t};\n\n\tuseEffect(() => {\n\t\tconst handleGlobalClick = (e: MouseEvent) => {\n\t\t\tif (show) {\n\t\t\t\tonClickOutside();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"click\", handleGlobalClick);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"click\", handleGlobalClick);\n\t\t};\n\t}, [show]);\n\n\tconst contextValue: ContextMenuMESFContextType = {\n\t\tshow,\n\t\tposition,\n\t\toptions,\n\t\tshowContextMenu,\n\t\tregisterConfig,\n\t\tonClickOutside,\n\t};\n\n\treturn (\n\t\t<ContextMenuMESFContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t\t<ContextMenu />\n\t\t</ContextMenuMESFContext.Provider>\n\t);\n};\n\nexport const useContextMenuMESF = () => useContext(ContextMenuMESFContext);\n","import { ListItemIcon, MenuItem } from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useStyles } from \"./styles/ContextMenuStyles\";\nimport { useContextMenuMESF } from \"./useContextMenuMESF\";\n\nexport const ContextMenu = () => {\n\tconst { show, position, options } = useContextMenuMESF();\n\tconst classes = useStyles();\n\tconst menuRef = useRef<HTMLUListElement>(null);\n\n\tconst [x, setX] = useState(\"0\");\n\tconst [y, setY] = useState(\"0\");\n\tuseEffect(() => {\n\t\tconst positionDiv = () => {\n\t\t\tif (show && menuRef.current) {\n\t\t\t\tconst divRect = menuRef.current.getBoundingClientRect();\n\t\t\t\tconst viewportWidth = window.innerWidth;\n\t\t\t\tconst viewportHeight = window.innerHeight;\n\n\t\t\t\tlet left = position.x;\n\t\t\t\tlet top = position.y;\n\n\t\t\t\tif (left + divRect.width > viewportWidth) {\n\t\t\t\t\tleft = viewportWidth - divRect.width;\n\t\t\t\t}\n\n\t\t\t\tif (top + divRect.height > viewportHeight) {\n\t\t\t\t\ttop = viewportHeight - divRect.height;\n\t\t\t\t}\n\n\t\t\t\tsetX(`${left}px`);\n\t\t\t\tsetY(`${top}px`);\n\t\t\t} else {\n\t\t\t\tsetX(\"0\");\n\t\t\t\tsetY(\"0\");\n\t\t\t}\n\t\t};\n\n\t\tpositionDiv();\n\t}, [show, position.x, position.y]);\n\n\tif (!show) return null;\n\n\treturn (\n\t\t<ul\n\t\t\tref={menuRef}\n\t\t\tclassName={classes.contextMenu}\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\topacity: show ? 1 : 0,\n\t\t\t\tleft: x,\n\t\t\t\ttop: y,\n\t\t\t}}\n\t\t>\n\t\t\t{options.map((option, i) => (\n\t\t\t\t<MenuItem\n\t\t\t\t\tkey={option.key + i}\n\t\t\t\t\tstyle={option.style}\n\t\t\t\t\tonClick={option.onClick}\n\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon style={{ padding: 0, margin: 0 }}>\n\t\t\t\t\t\t{option.icon}\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t{option.name}\n\t\t\t\t</MenuItem>\n\t\t\t))}\n\t\t</ul>\n\t);\n};\n","import { get } from \"lodash-es\";\nimport {\n\tMESApiService,\n\ttype spParameter,\n} from \"../../../../services/ApiService\";\nimport { Job } from \"../models/Job\";\n\nimport moment from \"moment-timezone\";\n\nexport const GetJobsStatus = async () => {\n\tconst apiService = new MESApiService();\n\n\tconst resp = await apiService.callV2(\"[SYSTEM].[GetJobsStatus]\", []);\n\n\tif (resp.ok) {\n\t\tlet rows = get(resp, \"data.tables[0].rows\", []);\n\n\t\trows = rows.map((job: Job) => ({\n\t\t\t...job,\n\t\t\tLastStarted: job.LastStarted\n\t\t\t\t? moment.utc(job[\"LastStarted\"]).toDate()\n\t\t\t\t: null,\n\t\t\tLastContact: job.LastContact\n\t\t\t\t? moment.utc(job[\"LastContact\"]).toDate()\n\t\t\t\t: null,\n\t\t\tLastCounter: job.LastCounter\n\t\t\t\t? moment.utc(job[\"LastCounter\"]).toDate()\n\t\t\t\t: null,\n\t\t\tStartTime: job.StartTime ? moment.utc(job[\"StartTime\"]).toDate() : null,\n\t\t\tNextExecutionTime: job.NextExecutionTime\n\t\t\t\t? moment.utc(job[\"NextExecutionTime\"]).toDate()\n\t\t\t\t: null,\n\t\t\tLastExecutionTime: job.LastExecutionTime\n\t\t\t\t? moment.utc(job[\"LastExecutionTime\"]).toDate()\n\t\t\t\t: null,\n\t\t}));\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdata: rows,\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tmessage: resp.message,\n\t\t};\n\t}\n};\n\nexport const upsertJob = async (job: Job) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [\n\t\t{ name: \"JobId\", value: job.JobId },\n\t\t{ name: \"sProcedure\", value: job.sProcedure },\n\t\t{ name: \"StartTime\", value: job.StartTime },\n\t\t{ name: \"PeriodTime\", value: job.PeriodTime },\n\t\t{ name: \"RestartAfterFailure\", value: job.RestartAfterFailure },\n\t];\n\n\treturn await apiService.callV2(\"[SYSTEM].[UpsertJob]\", parameters);\n};\n\nexport const SetJobEnable = async (\n\tenabled: boolean | null,\n\tjobId: number | null,\n) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [\n\t\t{ name: \"Enabled\", value: enabled ?? true },\n\t\t{ name: \"JobId\", value: jobId },\n\t];\n\n\treturn await apiService.callV2(\"[SYSTEM].[SetJobEnable]\", parameters);\n};\n\nexport const RestartJob = async (jobId: number | null) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [{ name: \"JobId\", value: jobId }];\n\n\treturn await apiService.callV2(\"[SYSTEM].[RestartJob]\", parameters);\n};\n","import { Button, CircularProgress, Grid, Snackbar } from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport React, { useState } from \"react\";\nimport { ErrorModal } from \"../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../components/modals/modal.mesf\";\nimport { Job } from \"../models/Job\";\nimport { RestartJob } from \"../repositories/JobsRepository\";\n\ntype Props = {\n\tjobSelected: Job | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const ResetJob = ({ jobSelected, show, onHide }: Props) => {\n\tconst [error, setError] = useState(\"\");\n\tconst [isLoading, setIsLoading] = useState<boolean>(false);\n\tconst [openSnackbar, setOpenSnackbar] = useState(false);\n\n\tconst onSubmit = async () => {\n\t\tsetIsLoading(true);\n\t\tRestartJob(jobSelected?.JobId ?? null)\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\tsetOpenSnackbar(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});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MesfModal\n\t\t\t\ttitle=\"RESET JOB\"\n\t\t\t\topen={show}\n\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\tid=\"reset-job-modal\"\n\t\t\t>\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\tAre you sure you want to reset? This action leaves the task in enable\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<MesfModal.Actions style={{ padding: \"16px 24px\" }}>\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(false)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tDisagree\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\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\tstartIcon={isLoading && <CircularProgress size=\"1rem\" />}\n\t\t\t\t\t\t\t\tonClick={() => onSubmit()}\n\t\t\t\t\t\t\t\tdisabled={isLoading}\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>\n\t\t\t\t\t\t\t\tAgree\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</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<Snackbar\n\t\t\t\topen={openSnackbar}\n\t\t\t\tautoHideDuration={2500}\n\t\t\t\tonClose={() => setOpenSnackbar(false)}\n\t\t\t>\n\t\t\t\t<Alert severity=\"success\" onClose={() => setOpenSnackbar(false)}>\n\t\t\t\t\tThe job was reseted succesfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import { Button, CircularProgress, Grid, Snackbar } from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport React, { useState } from \"react\";\nimport { ErrorModal } from \"../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../components/modals/modal.mesf\";\nimport { Job } from \"../models/Job\";\nimport { SetJobEnable } from \"../repositories/JobsRepository\";\n\ntype Props = {\n\tjobSelected: Job | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const OnEnableJob = ({ jobSelected, show, onHide }: Props) => {\n\tconst [error, setError] = useState(\"\");\n\tconst [isLoading, setIsLoading] = useState<boolean>(false);\n\tconst [openSnackbar, setOpenSnackbar] = useState(false);\n\n\tconst onSubmit = async () => {\n\t\tsetIsLoading(true);\n\t\tconst resp = await SetJobEnable(\n\t\t\t!jobSelected?.Enabled!,\n\t\t\tjobSelected?.JobId!,\n\t\t);\n\t\tif (resp.ok) {\n\t\t\tsetOpenSnackbar(true);\n\t\t\tonHide(true);\n\t\t} else {\n\t\t\tsetError(resp.message);\n\t\t\tonHide(false);\n\t\t}\n\t\tsetIsLoading(false);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MesfModal\n\t\t\t\ttitle={`${jobSelected?.Enabled ? \"DISABLE\" : \"ENABLE\"} JOB`}\n\t\t\t\topen={show}\n\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\tid=\"enable-job-modal\"\n\t\t\t>\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\tAre you sure you want to {jobSelected?.Enabled ? \"disable\" : \"enable\"}{\" \"}\n\t\t\t\t\tthe job?\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<MesfModal.Actions style={{ padding: \"16px 24px\" }}>\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(false)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tDisagree\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Grid>\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\tstartIcon={isLoading && <CircularProgress size=\"1rem\" />}\n\t\t\t\t\t\t\t\tonClick={() => onSubmit()}\n\t\t\t\t\t\t\t\tdisabled={isLoading}\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>\n\t\t\t\t\t\t\t\tAgree\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</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<Snackbar\n\t\t\t\topen={openSnackbar}\n\t\t\t\tautoHideDuration={2500}\n\t\t\t\tonClose={() => setOpenSnackbar(false)}\n\t\t\t>\n\t\t\t\t<Alert severity=\"success\" onClose={() => setOpenSnackbar(false)}>\n\t\t\t\t\tThe job was {jobSelected?.Enabled ? \"disabled\" : \"enabled\"}{\" \"}\n\t\t\t\t\tsuccesfully\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\tFormControlLabel,\n\tGrid,\n\tSnackbar,\n\tTextField,\n\tTypography,\n} from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport { DateTimePicker } from \"@mui/x-date-pickers\";\nimport React, { useEffect, useState } from \"react\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { TimeService } from \"../../../../../services\";\nimport { Job } from \"../../models/Job\";\nimport { upsertJob } from \"../../repositories/JobsRepository\";\n\nimport moment from \"moment-timezone\";\n\ntype Props = {\n\tjob: Job | null;\n\tmodal: \"create\" | \"update\" | \"reset\" | \"enable\" | \"\";\n\tonHide: ({ close, entityId }: { close: boolean; entityId?: number }) => void;\n};\n\nexport const JobDetails = ({ job, modal, onHide }: Props) => {\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState<boolean>(false);\n\tconst [error, setError] = useState(\"\");\n\tconst [openSnackbar, setOpenSnackbar] = useState(false);\n\n\tconst succesfullyMessage = `The job was ${modal}d succesfully`;\n\n\tconst {\n\t\tcontrol,\n\t\treset,\n\t\thandleSubmit,\n\t\tformState: { dirtyFields },\n\t} = useForm<Job>({\n\t\tmode: \"onChange\",\n\t});\n\n\tconst isFormDirty = !(Object.keys(dirtyFields).length === 0);\n\n\tconst onSubmit: SubmitHandler<Job> = async (data: Job) => {\n\t\tsetIsSubmitLoading(true);\n\t\tif (modal !== \"reset\") {\n\t\t\tconst resp = await upsertJob(data);\n\t\t\tif (resp.ok) {\n\t\t\t\tsetOpenSnackbar(true);\n\t\t\t\tonHide({ close: false, entityId: resp.data.returnValue });\n\t\t\t} else {\n\t\t\t\tsetError(resp.message);\n\t\t\t}\n\t\t}\n\t\tsetIsSubmitLoading(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (modal === \"create\" || modal === \"update\") {\n\t\t\treset(\n\t\t\t\tjob || {\n\t\t\t\t\tsProcedure: \"\",\n\t\t\t\t\tRestartAfterFailure: true,\n\t\t\t\t\tPeriodTime: null,\n\t\t\t\t\tStartTime: null,\n\t\t\t\t\tLastStatus: null,\n\t\t\t\t\tLastExecutionTime: null,\n\t\t\t\t\tLastExecutionResult: \"\",\n\t\t\t\t\tNextExecutionTime: null,\n\t\t\t\t},\n\t\t\t);\n\t\t\tsetIsSubmitLoading(false);\n\t\t}\n\t}, [modal, job]);\n\n\treturn (\n\t\t<>\n\t\t\t{(job === null || modal !== \"update\") && modal !== \"create\" ? (\n\t\t\t\t<div\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\theight: \"100%\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Typography>Select a job or create a new one</Typography>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t<Grid container spacing={1}>\n\t\t\t\t\t\t<Grid item xs={12} md={12}>\n\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\tname=\"sProcedure\"\n\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\trules={{ required: \"Name is required\" }}\n\t\t\t\t\t\t\t\trender={({ field, fieldState: { error } }) => (\n\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\tlabel=\"Name\"\n\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\tonChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\terror={!!error}\n\t\t\t\t\t\t\t\t\t\thelperText={error?.message}\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\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\tname=\"RestartAfterFailure\"\n\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\t\t\tcontrol={\n\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\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\tonChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"RestartAfterFailure\"\n\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/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel=\"Restart After Failure\"\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\t<Grid item xs={12} md={6} style={{ marginTop: -7 }}>\n\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\tname=\"PeriodTime\"\n\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\trules={{ required: \"Period time is required\" }}\n\t\t\t\t\t\t\t\trender={({ field, fieldState: { error } }) => (\n\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\tlabel=\"Period Time\"\n\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\tonChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\terror={!!error}\n\t\t\t\t\t\t\t\t\t\thelperText={error?.message}\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\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\tname=\"StartTime\"\n\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\trender={({ field, fieldState: { error } }) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<DateTimePicker\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Start Time\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ? moment(field.value) : null}\n\t\t\t\t\t\t\t\t\t\t\tonChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\tformat=\"MM/DD/YYYY HH:mm:ss\"\n\t\t\t\t\t\t\t\t\t\t\tviews={[\"year\", \"month\", \"day\", \"hours\", \"minutes\"]}\n\t\t\t\t\t\t\t\t\t\t\tampm={false}\n\t\t\t\t\t\t\t\t\t\t\ttimezone={TimeService.getInstance().getServerTimeZone()}\n\t\t\t\t\t\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\t\t\t\t\t\ttextField: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\terror: !!error,\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)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\tname=\"LastStatus\"\n\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\tlabel=\"Last Status\"\n\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\tdisabled\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\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\tname=\"LastExecutionTime\"\n\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t<DateTimePicker\n\t\t\t\t\t\t\t\t\t\tlabel=\"Last Execution Time\"\n\t\t\t\t\t\t\t\t\t\tvalue={field.value ? moment(field.value) : null}\n\t\t\t\t\t\t\t\t\t\tformat=\"MM/DD/YYYY HH:mm:ss\"\n\t\t\t\t\t\t\t\t\t\tviews={[\"year\", \"month\", \"day\", \"hours\", \"minutes\"]}\n\t\t\t\t\t\t\t\t\t\tampm={false}\n\t\t\t\t\t\t\t\t\t\ttimezone={TimeService.getInstance().getServerTimeZone()}\n\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\t\t\t\t\ttextField: {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"none\",\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)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\tname=\"NextExecutionTime\"\n\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t<DateTimePicker\n\t\t\t\t\t\t\t\t\t\tlabel=\"Next Execution Time\"\n\t\t\t\t\t\t\t\t\t\tvalue={field.value ? moment(field.value) : null}\n\t\t\t\t\t\t\t\t\t\tformat=\"MM/DD/YYYY HH:mm:ss\"\n\t\t\t\t\t\t\t\t\t\tviews={[\"year\", \"month\", \"day\", \"hours\", \"minutes\"]}\n\t\t\t\t\t\t\t\t\t\tampm={false}\n\t\t\t\t\t\t\t\t\t\ttimezone={TimeService.getInstance().getServerTimeZone()}\n\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\t\t\t\t\ttextField: {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"none\",\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)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item xs={12} md={12}>\n\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\tname=\"LastExecutionResult\"\n\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\tlabel=\"Last Execution Result\"\n\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\tminRows={2}\n\t\t\t\t\t\t\t\t\t\tmaxRows={2}\n\t\t\t\t\t\t\t\t\t\tdisabled\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\t<Grid\n\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\tspacing={2}\n\t\t\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\t\t\tstyle={{ margin: 15 }}\n\t\t\t\t\t\t>\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({ close: true })}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tClose\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 || !isFormDirty}\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</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</form>\n\t\t\t)}\n\t\t\t<Snackbar\n\t\t\t\topen={openSnackbar}\n\t\t\t\tautoHideDuration={2500}\n\t\t\t\tonClose={() => setOpenSnackbar(false)}\n\t\t\t>\n\t\t\t\t<Alert severity=\"success\" onClose={() => setOpenSnackbar(false)}>\n\t\t\t\t\tThe job was updated succesfully\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 PlaylistAddIcon from \"@material-ui/icons/PlaylistAdd\";\nimport RefreshIcon from \"@material-ui/icons/Refresh\";\nimport ReplayIcon from \"@material-ui/icons/Replay\";\nimport ToggleOfIcon from \"@material-ui/icons/ToggleOff\";\nimport ToggleOnIcon from \"@material-ui/icons/ToggleOn\";\nimport React from \"react\";\nimport { MenuOptionType } from \"../../../../../../controls\";\nimport { Job } from \"../../../models/Job\";\n\ntype Props = {\n\tsetShowModal: (modal: \"create\" | \"update\" | \"reset\" | \"enable\" | \"\") => void;\n\tsetJobSelected: (job: Job) => void;\n\tgetJobsFromAPI: Function;\n};\n\nexport const useJobsOptionsFunctions = ({\n\tsetShowModal,\n\tsetJobSelected,\n\tgetJobsFromAPI,\n}: Props) => {\n\tconst getMenuOptions = (data: Job) => {\n\t\tlet options: MenuOptionType[] = [];\n\t\toptions = options.concat([\n\t\t\t{\n\t\t\t\tname: \"New Job\",\n\t\t\t\tkey: \"new_job\",\n\t\t\t\tonClick: () => {\n\t\t\t\t\tsetShowModal(\"create\");\n\t\t\t\t},\n\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t},\n\t\t]);\n\t\tif (data) {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"Enable Job\",\n\t\t\t\t\tkey: \"enable_job\",\n\t\t\t\t\tdisabled: data.Enabled ? true : false,\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowModal(\"enable\");\n\t\t\t\t\t\tsetJobSelected(data);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <ToggleOnIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Disable Job\",\n\t\t\t\t\tkey: \"disable_job\",\n\t\t\t\t\tdisabled: data.Enabled ? false : true,\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowModal(\"enable\");\n\t\t\t\t\t\tsetJobSelected(data);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <ToggleOfIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Reset Job\",\n\t\t\t\t\tkey: \"reset_job\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowModal(\"reset\");\n\t\t\t\t\t\tsetJobSelected(data);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <ReplayIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t\toptions = options.concat([\n\t\t\t{\n\t\t\t\tname: \"Refresh Job\",\n\t\t\t\tkey: \"refresh_job\",\n\t\t\t\tonClick: () => {\n\t\t\t\t\tgetJobsFromAPI();\n\t\t\t\t},\n\t\t\t\ticon: <RefreshIcon />,\n\t\t\t},\n\t\t]);\n\t\treturn options;\n\t};\n\treturn {\n\t\tgetMenuOptions,\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 {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { JobsReducer } from \"../reducers/JobsReducer\";\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 { Button, Grid, Switch, Theme, makeStyles } from \"@material-ui/core\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\nimport { ColDef, ICellRendererParams } from \"ag-grid-community\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { useJobsContext } from \"../../../context/JobsContext\";\nimport { Job } from \"../../../models/Job\";\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\tsetShowModal: (modal: \"create\" | \"update\" | \"reset\" | \"enable\" | \"\") => void;\n\tsetJobSelected: (job: Job) => void;\n\tshowContextMenu: Function;\n};\n\nexport const useJobsTableData = ({\n\tsetShowModal,\n\tsetJobSelected,\n\tshowContextMenu,\n}: Props) => {\n\tconst {\n\t\tstate: { jobsData: rows },\n\t} = useJobsContext();\n\tconst classes = useStyles();\n\n\tconst renderButtonMenu = (params: any) => {\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tstyle={{}}\n\t\t\t\tonClick={(e) => showContextMenu(e, params.data, \"jobsContext\")}\n\t\t\t>\n\t\t\t\t<FormatListBulletedSharpIcon\n\t\t\t\t\tstyle={{ height: \"auto\" }}\n\t\t\t\t\tcolor=\"action\"\n\t\t\t\t/>\n\t\t\t</Button>\n\t\t);\n\t};\n\n\tconst columnDefs: ColDef[] = [\n\t\t{\n\t\t\tfield: \"sProcedure\",\n\t\t\tminWidth: 240,\n\t\t\theaderName: \"Procedures\",\n\t\t\ttype: \"string\",\n\t\t\tflex: 2,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfield: \"PeriodTime\",\n\t\t\tminWidth: 90,\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\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\n\t\t\t\treturn `${horas}h ${minutos}min ${segundos}s`;\n\t\t\t},\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfield: \"NextExecutionTime\",\n\t\t\tminWidth: 115,\n\t\t\theaderName: \"Next Execution\",\n\t\t\tvalueFormatter: ({ value }) =>\n\t\t\t\tvalue === null ? \"\" : moment(value).format(\"DD/MM/YYYY HH:mm\"),\n\t\t\tflex: 1,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfield: \"Enabled\",\n\t\t\theaderName: \"Enabled\",\n\t\t\tminWidth: 50,\n\t\t\tvalueFormatter: ({ value }) => (!value ? \"N\" : \"Y\"),\n\t\t\tflex: 1,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t\tcellRenderer: (params: ICellRendererParams) => (\n\t\t\t\t<Switch\n\t\t\t\t\tchecked={!!(params.data as Job).Enabled}\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonChange={(event, checked) => {\n\t\t\t\t\t\tsetJobSelected(params.data);\n\t\t\t\t\t\tsetShowModal(\"enable\");\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"-\",\n\t\t\theaderName: \"\",\n\t\t\tcellRenderer: renderButtonMenu,\n\t\t\tflex: 1,\n\t\t\twrapText: false,\n\t\t\tsortable: false,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t},\n\t];\n\n\treturn { rows, columnDefs };\n};\n","import {\n\tGrid,\n\tIconButton,\n\tPaper,\n\tTheme,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport PlaylistAddIcon from \"@material-ui/icons/PlaylistAdd\";\nimport {\n\tColDef,\n\tDefaultMenuItem,\n\tGetContextMenuItemsParams,\n\tGridApi,\n\tIStatusPanelParams,\n\tMenuItemDef,\n\tRowSelectedEvent,\n\tthemeMaterial,\n} from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport * as React from \"react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { useContextMenuMESF } from \"../../../../../controls\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { Job } from \"../../models/Job\";\nimport { ResetJob } from \"../ResetJob\";\nimport { OnEnableJob } from \"../onEnableJob\";\nimport { JobDetails } from \"./JobsDetails\";\nimport { useJobsOptionsFunctions } from \"./customHooks/useJobsOptionsFunctions\";\nimport { useJobsTableData } from \"./customHooks/useJobsTableData\";\n\nconst CustomStatusPanel = ({ handleNew }: { handleNew: () => void }) => (\n\t<IconButton onClick={handleNew} color=\"primary\" style={{ marginLeft: -15 }}>\n\t\t<PlaylistAddIcon style={{ width: 30, height: 30 }} />\n\t</IconButton>\n);\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\tfontColor: \"black\",\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// \tfontSize: \"1rem\",\n\t\t// \tpadding: \"0\",\n\t\t// },\n\t\t//\n\t\t// \"& .ag-header-cell-text\": {\n\t\t// \ttextAlign: \"center !important\",\n\t\t// \tpadding: \"0\",\n\t\t// },\n\t\t//\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\ttable: {\n\t\t// \"& .ag-header-cell\": {\n\t\t// \tfontSize: 11,\n\t\t// \tdisplay: \"flex\",\n\t\t// \talignItems: \"center\",\n\t\t// \tjustifyContent: \"center\",\n\t\t// },\n\t\t// \"& .ag-header-cell-label\": {\n\t\t// \tjustifyContent: \"center\",\n\t\t// },\n\t},\n}));\n\ntype Props = {\n\tgetJobsFromAPI: Function;\n\tisLoading: boolean;\n};\n\nexport const TableJobs = ({ getJobsFromAPI, isLoading }: Props) => {\n\tconst classes = useStyles();\n\n\tconst [jobSelected, setJobSelected] = useState<Job | null>(null);\n\tconst [gridApi, setGridApi] = useState<GridApi | null>(null);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [showModal, setShowModal] = useState<\n\t\t\"create\" | \"update\" | \"reset\" | \"enable\" | \"\"\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\tflex: 1,\n\t\t\tminWidth: 150,\n\t\t};\n\t}, []);\n\n\tconst onRowSelected = (event: RowSelectedEvent) => {\n\t\tconst cell = gridApi?.getFocusedCell();\n\t\tif (cell?.column.getColId() !== \"-\" && event.node.isSelected()) {\n\t\t\tsetJobSelected(event.data);\n\t\t\tsetShowModal(\"update\");\n\t\t}\n\t\tif (cell?.column.getColId() === \"Enabled\") {\n\t\t\tsetJobSelected(event.data);\n\t\t\tsetShowModal(\"enable\");\n\t\t}\n\t};\n\n\tconst { showContextMenu, registerConfig } = useContextMenuMESF();\n\n\tconst { getMenuOptions } = useJobsOptionsFunctions({\n\t\tsetShowModal,\n\t\tsetJobSelected,\n\t\tgetJobsFromAPI,\n\t});\n\tconst { rows, columnDefs } = useJobsTableData({\n\t\tsetJobSelected,\n\t\tsetShowModal,\n\t\tshowContextMenu,\n\t});\n\n\tconst getContextMenuItems = (\n\t\tparams: GetContextMenuItemsParams,\n\t): (DefaultMenuItem | MenuItemDef)[] => {\n\t\tconst data = params.node?.data;\n\t\tshowContextMenu(event as any, data, \"jobContext\");\n\t\tif (data) {\n\t\t\tparams.api.deselectAll();\n\t\t\tparams.node?.setSelected(true);\n\t\t}\n\t\treturn [];\n\t};\n\n\tconst handleNewJob = () => {\n\t\tif (gridApi) gridApi.deselectAll();\n\t\tsetShowModal(\"create\");\n\t\tsetJobSelected(null);\n\t};\n\n\tconst onDetailsHide = async ({\n\t\tclose,\n\t\tentityId,\n\t}: {\n\t\tclose: boolean;\n\t\tentityId?: number;\n\t}) => {\n\t\tif (close) {\n\t\t\tsetShowModal(\"\");\n\t\t\tsetJobSelected(null);\n\t\t\tif (gridApi) gridApi?.deselectAll();\n\t\t\treturn;\n\t\t}\n\t\tawait getJobsFromAPI().then(() => {\n\t\t\tif (entityId) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconst rowNode = gridApi?.getRowNode(String(entityId));\n\n\t\t\t\t\tif (rowNode) {\n\t\t\t\t\t\tgridApi?.ensureIndexVisible(rowNode?.rowIndex ?? 0);\n\t\t\t\t\t\trowNode?.setSelected(true);\n\t\t\t\t\t\tsetJobSelected(rowNode?.data);\n\t\t\t\t\t}\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t});\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, gridApi]);\n\n\tuseEffect(() => {\n\t\tregisterConfig({\n\t\t\tid: \"jobsContext\",\n\t\t\tgetOptions: getMenuOptions,\n\t\t});\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid container justifyContent=\"center\">\n\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t<Typography variant=\"h5\" style={{ fontWeight: 600, marginBottom: 4 }}>\n\t\t\t\t\t\tSystem Jobs\n\t\t\t\t\t</Typography>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid\n\t\t\t\t\tcontainer\n\t\t\t\t\tjustifyContent=\"flex-start\"\n\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\tclassName={classes.root}\n\t\t\t\t\tstyle={{ width: \"100%\", padding: \"0 10px\" }}\n\t\t\t\t\tspacing={2}\n\t\t\t\t>\n\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t<Paper elevation={2} style={{ height: \"70vh\", width: \"100%\" }}>\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\tgetContextMenuItems={getContextMenuItems}\n\t\t\t\t\t\t\t\tloadingOverlayComponent={LazyLoading}\n\t\t\t\t\t\t\t\trowHeight={34}\n\t\t\t\t\t\t\t\theaderHeight={34}\n\t\t\t\t\t\t\t\tanimateRows\n\t\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\t\tonGridReady={(params) => setGridApi(params.api)}\n\t\t\t\t\t\t\t\tgetRowId={(params) => `${(params.data as Job).JobId}`}\n\t\t\t\t\t\t\t\tonRowSelected={onRowSelected}\n\t\t\t\t\t\t\t\tgridOptions={{\n\t\t\t\t\t\t\t\t\ttheme: themeMaterial.withParams({\n\t\t\t\t\t\t\t\t\t\tspacing: 2,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tstatusBar: {\n\t\t\t\t\t\t\t\t\t\tstatusPanels: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tstatusPanel: \"agTotalRowCountComponent\",\n\t\t\t\t\t\t\t\t\t\t\t\talign: \"right\",\n\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\tstatusPanel: (params: IStatusPanelParams) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<CustomStatusPanel handleNew={handleNewJob} />\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\talign: \"left\",\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}}\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\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t<Paper\n\t\t\t\t\t\t\televation={2}\n\t\t\t\t\t\t\tstyle={{ height: \"70vh\", width: \"100%\", padding: 15 }}\n\t\t\t\t\t\t\tclassName={`${classes.table} ag-theme-material`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<JobDetails\n\t\t\t\t\t\t\t\tjob={jobSelected}\n\t\t\t\t\t\t\t\tmodal={showModal}\n\t\t\t\t\t\t\t\tonHide={onDetailsHide}\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</Grid>\n\t\t\t<ResetJob\n\t\t\t\tshow={showModal === \"reset\"}\n\t\t\t\tonHide={async (shouldUpdate: boolean) => {\n\t\t\t\t\tsetShowModal(\"\");\n\t\t\t\t\tsetJobSelected(null);\n\t\t\t\t\tif (gridApi) {\n\t\t\t\t\t\tgridApi.deselectAll();\n\t\t\t\t\t}\n\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\tawait getJobsFromAPI();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tjobSelected={jobSelected}\n\t\t\t/>\n\t\t\t<OnEnableJob\n\t\t\t\tshow={showModal === \"enable\"}\n\t\t\t\tonHide={async (shouldUpdate: boolean) => {\n\t\t\t\t\tsetShowModal(\"\");\n\t\t\t\t\tsetJobSelected(null);\n\t\t\t\t\tif (gridApi) {\n\t\t\t\t\t\tgridApi.deselectAll();\n\t\t\t\t\t}\n\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\tawait getJobsFromAPI();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tjobSelected={jobSelected}\n\t\t\t/>\n\t\t\t<ErrorModal error={errorMessage} onHide={() => setErrorMessage(\"\")} />\n\t\t</>\n\t);\n};\n","import { Grid, Paper } from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../components/modals/error-modal\";\nimport { TableJobs } from \"./components/JobsTable/TableJobs\";\nimport { useJobsContext } from \"./context/JobsContext\";\nimport { GetJobsStatus } from \"./repositories/JobsRepository\";\n\ntype Props = {};\n\nexport const Jobs = (prop: Props) => {\n\tconst { state, actions } = useJobsContext();\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState(\"\");\n\n\tconst getJobsFromAPI = async () => {\n\t\tsetIsLoading(true);\n\t\tconst resp = await GetJobsStatus();\n\t\tif (resp.ok) {\n\t\t\tactions.setJobs(resp.data);\n\t\t\tsetIsLoading(false);\n\t\t} else {\n\t\t\tsetError(resp.message ?? \"Error loading jobs\");\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tgetJobsFromAPI();\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<TableJobs isLoading={isLoading} getJobsFromAPI={getJobsFromAPI} />\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 { Jobs } from \"./JobsPage\";\nimport { JobsProvider } from \"./context/JobsContext\";\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 {\n\tformat as formatDateFns,\n\tformatInTimeZone,\n\tfromZonedTime,\n} from \"date-fns-tz\";\nimport { isNil } from \"lodash-es\";\nimport moment from \"moment-timezone\";\nimport { findIana } from \"windows-iana\";\n\nexport class TimeService {\n\tprivate static instance: TimeService;\n\tprivate timeZone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n\tprivate constructor() {}\n\n\tpublic static getInstance(): TimeService {\n\t\tif (!TimeService.instance) {\n\t\t\tTimeService.instance = new TimeService();\n\t\t}\n\t\treturn TimeService.instance;\n\t}\n\n\tpublic setTimeZone(timeZone: string) {\n\t\tconst ianaTimeZones = findIana(timeZone);\n\t\tif (ianaTimeZones.length) {\n\t\t\tthis.timeZone = ianaTimeZones[0];\n\t\t} else {\n\t\t\tthis.timeZone = timeZone;\n\t\t}\n\t\tmoment.tz.setDefault(this.timeZone);\n\t}\n\n\tpublic toUTC(datetime: Date | string, format: string) {\n\t\ttry {\n\t\t\tif (datetime instanceof Date) {\n\t\t\t\treturn formatDateFns(datetime, format);\n\t\t\t}\n\t\t\treturn formatDateFns(\n\t\t\t\tfromZonedTime(datetime, TimeService.instance.timeZone),\n\t\t\t\tformat,\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tconsole.log({ datetime: datetime, e });\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tpublic toLocalServerTime(\n\t\tdatetime: Date | string | null | undefined,\n\t\tformat: string,\n\t) {\n\t\ttry {\n\t\t\tif (isNil(datetime) || !datetime) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t\tif (typeof datetime === \"string\") {\n\t\t\t\tif (datetime.includes(\"Z\")) {\n\t\t\t\t\tdatetime = new Date(datetime);\n\t\t\t\t} else {\n\t\t\t\t\tdatetime = new Date(`${datetime}Z`);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn formatInTimeZone(datetime, TimeService.instance.timeZone, format);\n\t\t} catch (e) {\n\t\t\tconsole.log({ datetime: datetime, e });\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tpublic getServerTimeZone() {\n\t\treturn this.timeZone;\n\t}\n}\n\nexport const getMomentTz = () => moment;\nexport const dxtServerTimeZone = () =>\n\tTimeService.getInstance().getServerTimeZone;\nexport const dxtToUTC = TimeService.getInstance().toUTC;\nexport const dxtToLocalServerTime = TimeService.getInstance().toLocalServerTime;\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\tTimezone: \"UTC\" | \"Server\";\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\tTimezone: \"UTC\",\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\tsetTimezone(state, { payload }) {\n\t\t\tstate.Timezone = payload;\n\t\t},\n\t},\n});\n","import {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { LogsReducer } from \"../reducers/LogsReducer\";\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\tA: { id: \"A\", description: \"All\" },\n\tI: { id: \"I\", color: \"#3f51b5\", description: \"Info\" },\n\tE: { id: \"E\", color: \"#f44336\", description: \"Error\" },\n\tW: { id: \"W\", color: \"#E69C00\", description: \"Warning\" },\n};\n","import { InputLabel, MenuItem, Select } from \"@material-ui/core\";\nimport React from \"react\";\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{Object.values(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 MomentUtils from \"@date-io/moment\";\nimport {\n\tKeyboardDatePicker,\n\tMuiPickersUtilsProvider,\n} from \"@material-ui/pickers\";\nimport { MaterialUiPickersDate } from \"@material-ui/pickers/typings/date\";\nimport React from \"react\";\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 { TextField } from \"@material-ui/core\";\nimport React from \"react\";\n\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\tbackgroundColor: \"#f5f8fa\",\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</>\n\t);\n};\n","import { TextField } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Card } from \"@material-ui/core\";\nimport { CardContent } from \"@material-ui/core\";\nimport { Typography } from \"@material-ui/core\";\nimport React from \"react\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Log } from \"../../models/Log\";\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<MesfModal\n\t\t\t\ttitle=\"LOG DETAILS\"\n\t\t\t\topen={show}\n\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\tmaxWidth=\"md\"\n\t\t\t\tid=\"log-details-modal\"\n\t\t\t>\n\t\t\t\t<MesfModal.Content 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</MesfModal.Content>\n\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t</Grid>\n\t);\n};\n","import { Chip } from \"@material-ui/core\";\nimport { ColDef } from \"ag-grid-community\";\nimport { get, isNil } from \"lodash\";\nimport React, { useState } from \"react\";\nimport { dxtToLocalServerTime } from \"../../../../../../services\";\nimport { getMomentTz } from \"../../../../../../services/TimeService\";\nimport { useLogsContext } from \"../../../context/LogsContext\";\nimport { LOG_TYPE_CODES } from \"../../../data/LogTypeCodes\";\nimport { Log } from \"../../../models/Log\";\n\nconst moment = getMomentTz();\n\nexport const useLogTableData = () => {\n\tconst { state } = useLogsContext();\n\n\tconst getLogTypeByCodeId = (logTypeCodeId: string) => {\n\t\treturn get(LOG_TYPE_CODES, `${logTypeCodeId}.description`, \" -\");\n\t};\n\n\tconst backgroundColor = (logTypeCode: string) => {\n\t\treturn get(LOG_TYPE_CODES, `${logTypeCode[0]}.color`, \"#BBBBBB\");\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:\n\t\t\t\tstate.Timezone === \"UTC\"\n\t\t\t\t\t? moment(Timestamp).utc().format(\"YYYY-MM-DD HH:mm:ss z\")\n\t\t\t\t\t: dxtToLocalServerTime(Timestamp, \"yyyy-MM-dd HH:mm:ss z\"),\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: 180,\n\t\t\tflex: 1,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t\theaderClass: \"ag-header-cell-centered\",\n\t\t},\n\t\t{\n\t\t\tfield: \"Source\",\n\t\t\theaderName: \"Source\",\n\t\t\tminWidth: 200,\n\t\t\tflex: 2,\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: 150,\n\t\t\tflex: 5,\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: 50,\n\t\t\tmaxWidth: 70,\n\t\t\tflex: 1,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t\tcellRenderer: (params: any) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Chip\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: backgroundColor(params.value),\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tlabel={params.value}\n\t\t\t\t\t\tsize={\"small\"}\n\t\t\t\t\t/>\n\t\t\t\t\t// <div\n\t\t\t\t\t// \tstyle={{\n\t\t\t\t\t// \t\tpadding: \"2px 6px\",\n\t\t\t\t\t// \t\tborderRadius: 4,\n\t\t\t\t\t// \t\tdisplay: \"flex\",\n\t\t\t\t\t// \t\talignItems: \"center\",\n\t\t\t\t\t// \t\tjustifyContent: \"center\",\n\t\t\t\t\t// \t\tcolor: \"#fff\",\n\t\t\t\t\t// \t\tfontWeight: \"bold\",\n\t\t\t\t\t// \t\tfontSize: \"0.75rem\",\n\t\t\t\t\t// \t\tbackgroundColor: backgroundColor(params.value),\n\t\t\t\t\t// \t}}\n\t\t\t\t\t// >\n\t\t\t\t\t// \t{params.value}\n\t\t\t\t\t// </div>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfield: \"User\",\n\t\t\theaderName: \"User\",\n\t\t\tminWidth: 70,\n\t\t\tflex: 1,\n\t\t\ttype: \"string\",\n\t\t\tvalueFormatter: ({ value }: { value: string }) => value || \" \",\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t\theaderClass: \"ag-header-cell-centered\",\n\t\t},\n\t]);\n\n\treturn { rows, columnDefs };\n};\n","import { Button, ButtonProps, CircularProgress } from \"@material-ui/core\";\nimport React, { ReactNode } from \"react\";\n\ninterface Props extends ButtonProps {\n\tchildren?: ReactNode;\n\tisLoading: boolean;\n}\n\nexport const ButtonWithLoading = ({ children, isLoading, ...props }: Props) => {\n\treturn (\n\t\t<Button {...props} disabled={isLoading}>\n\t\t\t{isLoading && <CircularProgress size={\"1rem\"} />}\n\t\t\t{children}\n\t\t</Button>\n\t);\n};\n","import { Theme, makeStyles } from \"@material-ui/core\";\n\nexport const 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: \"100% !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: \"start\",\n\t\t// \tjustifyContent: \"start\",\n\t\t// \tfontSize: \"1rem\",\n\t\t// \tfontWeight: \"bold\",\n\t\t// },\n\t\t// \"& .ag-header-cell-centered .ag-header-cell-label\": {\n\t\t// \tjustifyContent: \"center !important\",\n\t\t// },\n\t\t//\n\t\t// \"& .ag-header-cell-text\": {\n\t\t// \ttextAlign: \"start !important\",\n\t\t// },\n\t\t//\n\t\t// \"& .ag-checkbox-input-wrapper\": {\n\t\t// \tmargin: \"0 10px\",\n\t\t// },\n\t\t// \"& .ag-cell\": {\n\t\t// \tpadding: \"2px !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// \"& .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\theight: \"100%\",\n\t\t// justifyContent: \"center\",\n\t},\n\tfilters: {\n\t\tposition: \"relative\",\n\t\tmargin: \"0 2px\",\n\t},\n\tform: {},\n}));\n","import { InputLabel, MenuItem, Select } from \"@material-ui/core\";\nimport React from \"react\";\nimport { LOG_TYPE_CODES } from \"../../data/LogTypeCodes\";\n\ntype Props = {\n\tvalue: \"UTC\" | \"Server\";\n\tonChange: (value: \"UTC\" | \"Server\") => void;\n};\n\nexport const TimezoneSelector = ({ value, onChange }: 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=\"timezone-selector-label\"\n\t\t\t\tstyle={{ fontSize: 10, marginBottom: 0 }}\n\t\t\t>\n\t\t\t\tTimezone\n\t\t\t</InputLabel>\n\t\t\t<Select\n\t\t\t\tlabelId=\"timezone-selector-label\"\n\t\t\t\tid=\"timezone-selector\"\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={(event) => onChange(event.target.value as any)}\n\t\t\t\tstyle={{ minWidth: \"100%\" }}\n\t\t\t>\n\t\t\t\t<MenuItem value={\"UTC\"}>UTC</MenuItem>\n\t\t\t\t<MenuItem value={\"Server\"}>Server</MenuItem>\n\t\t\t</Select>\n\t\t</div>\n\t);\n};\n","import EditIcon from \"@material-ui/icons/Edit\";\nimport PlaylistAddIcon from \"@material-ui/icons/PlaylistAdd\";\nimport React from \"react\";\nimport { MenuOptionType } from \"../../../../../../controls\";\nimport { Log } from \"../../../models/Log\";\n\ntype Props = {\n\tsetSelectedLog: Function;\n\tsetShowLogModal: Function;\n\thandleResetButtonClick: Function;\n};\nexport const useLogsOptionsFunctions = ({\n\tsetSelectedLog,\n\tsetShowLogModal,\n\thandleResetButtonClick,\n}: Props) => {\n\tconst getMenuOptions = (data: Log) => {\n\t\tlet options: MenuOptionType[] = [];\n\t\tif (data) {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"View Log\",\n\t\t\t\t\tkey: \"view_log\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetSelectedLog(data);\n\t\t\t\t\t\tsetShowLogModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Reset Filter\",\n\t\t\t\t\tkey: \"reset_filters\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\thandleResetButtonClick();\n\t\t\t\t\t},\n\t\t\t\t\ticon: <EditIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t\treturn options;\n\t};\n\treturn {\n\t\tgetMenuOptions,\n\t};\n};\n","import {\n\tButton,\n\tCard,\n\tCardContent,\n\tGrid,\n\tPaper,\n\tTypography,\n} from \"@material-ui/core\";\nimport {\n\tColDef,\n\tDefaultMenuItem,\n\tGetContextMenuItemsParams,\n\tGridApi,\n\tGridReadyEvent,\n\tMenuItemDef,\n\tRowDoubleClickedEvent,\n\tthemeMaterial,\n} from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport * as React from \"react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { useLogsContext } from \"../../context/LogsContext\";\nimport { Log } from \"../../models/Log\";\nimport { CodeFilter } from \"../Filters/codeFilter\";\nimport { DateFilter } from \"../Filters/dateFilter\";\nimport { SearchFilter } from \"../Filters/searchFilter\";\nimport { ModalLogSelected } from \"../ModalLogSelected/ModalLogSelected\";\nimport { useLogTableData } from \"./customHooks/useLogTableData\";\n\nimport \"ag-grid-enterprise\";\nimport moment from \"moment\";\nimport { ButtonWithLoading } from \"../../../../../components/shared/buttons/button-with-loading\";\nimport { useContextMenuMESF } from \"../../../../../controls\";\nimport { SearchData } from \"../../models/SearchData\";\nimport { useStyles } from \"../../styles/tableStyles\";\nimport { TimezoneSelector } from \"../Filters/TimezoneSelector\";\nimport { useLogsOptionsFunctions } from \"./customHooks/useLogsOptionsFunctions\";\n\ninterface Props {\n\tisLoading: boolean;\n\trowData: Log[];\n\trefreshData: ({\n\t\tStart,\n\t\tEnd,\n\t\tSearch,\n\t\tLogTypeCode,\n\t}: SearchData) => Promise<(() => void) | undefined>;\n}\n\nexport const TableLogs = ({ isLoading, rowData, refreshData }: Props) => {\n\tconst {\n\t\tstate: {\n\t\t\tTimezone,\n\t\t\tsearchData: { Start, End, Search, LogTypeCode },\n\t\t},\n\t\tactions: {\n\t\t\tsetLogTypeCodeFilter,\n\t\t\tsetEndFilter,\n\t\t\tsetStartFilter,\n\t\t\tsetSearchFilter,\n\t\t\tsetTimezone,\n\t\t},\n\t} = useLogsContext();\n\tconst classes = useStyles();\n\n\tconst gridStyle = useMemo(() => ({ height: \"100%\", width: \"100%\" }), []);\n\tconst [gridAPI, setGridAPI] = useState<GridApi | null>(null);\n\n\tconst [showLogModal, setShowLogModal] = useState<boolean>(false);\n\n\tconst [selectedLog, setSelectedLog] = useState<Log | undefined>(undefined);\n\tconst [error, setError] = useState<string>(\"\");\n\tconst onGridReady = (params: GridReadyEvent) => {\n\t\tsetGridAPI(params.api);\n\t};\n\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 { showContextMenu, registerConfig } = useContextMenuMESF();\n\n\tconst handleSubmit = (ev: React.FormEvent<HTMLFormElement>) => {\n\t\tev.preventDefault();\n\t\trefreshData({ Start, End, Search, LogTypeCode });\n\t};\n\tconst handleResetButtonClick = () => {\n\t\tresetFilter();\n\t\trefreshData({\n\t\t\tStart: moment().add(-5, \"days\").hour(0).minute(0).second(0).toDate(),\n\t\t\tEnd: moment().hour(23).minute(59).second(59).toDate(),\n\t\t\tSearch: \"\",\n\t\t\tLogTypeCode: \"A\",\n\t\t});\n\t\tsetError(\"\");\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}, [isLoading]);\n\n\t// Btn reset data\n\tconst resetFilter = () => {\n\t\tsetStartFilter(null);\n\t\tsetEndFilter(null);\n\t\tsetSearchFilter(\"\");\n\t\tsetLogTypeCodeFilter(\"A\");\n\t\tsetSelectedLog(undefined);\n\t};\n\n\tconst rowClicked = (rowClickedEvent: RowDoubleClickedEvent<any>) => {\n\t\tlet data = rowClickedEvent.data;\n\t\tif (data) return;\n\t\tsetSelectedLog(data as Log);\n\t\tsetShowLogModal(true);\n\t};\n\n\tconst getContextMenuItems = (\n\t\tparams: GetContextMenuItemsParams,\n\t): (DefaultMenuItem | MenuItemDef)[] => {\n\t\tconst data = params.node?.data;\n\t\tparams.api.deselectAll();\n\t\tparams.node?.setSelected(true);\n\t\tshowContextMenu(event as any, data, \"TableLogs\");\n\t\treturn [];\n\t};\n\n\tconst { getMenuOptions } = useLogsOptionsFunctions({\n\t\tsetSelectedLog,\n\t\tsetShowLogModal,\n\t\thandleResetButtonClick,\n\t});\n\n\tuseEffect(() => {\n\t\tregisterConfig({\n\t\t\tid: \"TableLogs\",\n\t\t\tgetOptions: getMenuOptions,\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\trefreshData({ Start, End, Search, LogTypeCode }).then((r) => {});\n\t}, [Start, End, LogTypeCode]);\n\n\treturn (\n\t\t<Grid\n\t\t\tspacing={0}\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} className={classes.filters}>\n\t\t\t\t<ModalLogSelected\n\t\t\t\t\tshow={showLogModal}\n\t\t\t\t\tonHide={() => setShowLogModal(false)}\n\t\t\t\t\tselectedLog={selectedLog}\n\t\t\t\t/>\n\t\t\t\t<Typography variant=\"h5\" style={{ fontWeight: 600 }}>\n\t\t\t\t\tMES and System Logs\n\t\t\t\t</Typography>\n\t\t\t\t<Grid container direction=\"row\" spacing={1}>\n\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t<Card className={classes.card}>\n\t\t\t\t\t\t\t<CardContent style={{ padding: \"6px !important\", width: \"100%\" }}>\n\t\t\t\t\t\t\t\t<form onSubmit={handleSubmit} className={classes.form}>\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\talignItems=\"center\"\n\t\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t\t\tspacing={1}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Grid item md={2} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t<DateFilter\n\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\tdate={Start}\n\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/>\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={2} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t<DateFilter\n\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\tdate={End}\n\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/>\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={2} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t<CodeFilter\n\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\tsetLogTypeCodeFilter={setLogTypeCodeFilter}\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 md={2} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t<TimezoneSelector\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={Timezone}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={setTimezone}\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\titem\n\t\t\t\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t\t\tmd={4}\n\t\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\t\tspacing={1}\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\t\t\t\t\t\t\talignItems=\"flex-end\"\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<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={4} xs={12}>\n\t\t\t\t\t\t\t\t\t\t\t\t<ButtonWithLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\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=\"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</ButtonWithLoading>\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\t<Grid container direction=\"row\">\n\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<SearchFilter\n\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\tsetSearch={setSearchFilter}\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</form>\n\t\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t\t</Card>\n\t\t\t\t\t</Grid>\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: \"70vh\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Paper style={gridStyle}>\n\t\t\t\t\t\t\t<AgGridReact\n\t\t\t\t\t\t\t\tgridOptions={{\n\t\t\t\t\t\t\t\t\ttheme: themeMaterial.withParams({\n\t\t\t\t\t\t\t\t\t\tspacing: 2,\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\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\tonGridReady={onGridReady}\n\t\t\t\t\t\t\t\tgetRowId={(params) => params.data.id}\n\t\t\t\t\t\t\t\trowHeight={34}\n\t\t\t\t\t\t\t\theaderHeight={40}\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\trowSelection=\"single\"\n\t\t\t\t\t\t\t\tonRowDoubleClicked={(e) => {\n\t\t\t\t\t\t\t\t\trowClicked(e);\n\t\t\t\t\t\t\t\t}}\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</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</Grid>\n\t);\n};\n","import {\n\tMESApiService,\n\ttype spParameter,\n} 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 { Grid } from \"@material-ui/core\";\nimport { get } from \"lodash-es\";\nimport React, { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../components/modals/error-modal\";\nimport { getMomentTz } from \"../../../services/TimeService\";\nimport { TableLogs } from \"./components/LogsTable/TableLogs\";\nimport { useLogsContext } from \"./context/LogsContext\";\nimport { Log } from \"./models/Log\";\nimport { getLogs } from \"./repositories/LogsRepository\";\n\ntype Props = {};\n\nconst moment = getMomentTz();\n\nexport const Logs = (prop: Props) => {\n\tconst [loading, setLoading] = useState<boolean>(true);\n\tconst [error, setError] = useState<string>(\"\");\n\tconst {\n\t\tstate: {\n\t\t\tsearchData: { Start, End, Search, LogTypeCode },\n\t\t},\n\t\tstate,\n\t\tactions,\n\t} = useLogsContext();\n\n\tconst getLogsFromAPI = async () => {\n\t\tlet canceled = false;\n\t\tsetLoading(true);\n\t\tconst res = await getLogs(Start, End, Search, LogTypeCode);\n\t\tif (res.ok) {\n\t\t\tlet logs: Log[] = get(res, \"data.tables[0].rows\", []);\n\n\t\t\tif (canceled) return;\n\n\t\t\tlogs = logs.map((log) => ({\n\t\t\t\t...log,\n\t\t\t\tTimestamp: moment.utc(log[\"Timestamp\"]).toDate(),\n\t\t\t}));\n\n\t\t\tactions.setLogs(logs);\n\t\t} else setError(res.message);\n\n\t\tif (canceled) return;\n\t\tsetLoading(false);\n\n\t\treturn () => {\n\t\t\tcanceled = true;\n\t\t};\n\t};\n\n\tuseEffect(() => {\n\t\tgetLogsFromAPI();\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<TableLogs\n\t\t\t\tisLoading={loading}\n\t\t\t\trowData={state.logs}\n\t\t\t\trefreshData={getLogsFromAPI}\n\t\t\t/>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import * as React from \"react\";\nimport { Logs } from \"./LogsPage\";\nimport { LogsProvider } from \"./context/LogsContext\";\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 MuiAlert, { type AlertProps } from \"@material-ui/lab/Alert\";\nimport React from \"react\";\n\nexport const Alert = (props: AlertProps) => {\n\treturn <MuiAlert elevation={6} variant=\"filled\" {...props} />;\n};\n","import { Profile } from \"../../profiles/models/Profile\";\n\nexport const INITIAL_VALUES: Profile = {\n\tProfileId: null,\n\tProfileName: \"\",\n};\n","import {\n\tMESApiService,\n\ttype spParameter,\n} 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\";\nimport { Grid } from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\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<MesfModal\n\t\t\t\t\t\ttitle=\"NEW PROFILE\"\n\t\t\t\t\t\topen={show}\n\t\t\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\t\t\tid=\"create-profile-modal\"\n\t\t\t\t\t\tmaxWidth=\"md\"\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<MesfModal.Content style={{ padding: \"15px 30px\" }}>\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</MesfModal.Content>\n\t\t\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</MesfModal>\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\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error Creating Profile\"\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import { CircularProgress, Typography } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Dialog } from \"@material-ui/core\";\nimport { DialogActions } from \"@material-ui/core\";\nimport { DialogContent } from \"@material-ui/core\";\nimport { DialogContentText } from \"@material-ui/core\";\nimport { DialogTitle } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport React, { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\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\tprofile: Profile | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const DeleteProfile = ({ profile, 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<MesfModal\n\t\t\t\ttitle=\"DELETE PROFILE\"\n\t\t\t\topen={show}\n\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\tid=\"delete-profile-modal\"\n\t\t\t\tmaxWidth=\"md\"\n\t\t\t>\n\t\t\t\t<form>\n\t\t\t\t\t<MesfModal.Content 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>{profile?.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</MesfModal.Content>\n\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\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(profile?.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</MesfModal>\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\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error Deleting Profile\"\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import { Grid, TextField } from \"@material-ui/core\";\nimport {\n\tAgGridEvent,\n\tColDef,\n\tFirstDataRenderedEvent,\n\tGridApi,\n\tGridReadyEvent,\n\tSelectionChangedEvent,\n\tthemeMaterial,\n} from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport { get, isNil } from \"lodash-es\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ErrorModal } from \"../../../../../../components/modals/error-modal\";\nimport { Action } from \"../../../models/Action\";\nimport { getActions } from \"../../../repositories/ProfilesRepository\";\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\n\tconst handlerFilter = (e: any) => {\n\t\tsetFilterInput(e.target.value);\n\t};\n\n\tconst sortRows = (event: AgGridEvent) => {\n\t\tevent.api.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},\n\t\t[setGridApi],\n\t);\n\n\tuseEffect(() => {\n\t\tgridApi?.setGridOption(\"quickFilterText\", 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\tActions\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 style={{ width: \"100%\", height: \"60vh\" }}>\n\t\t\t\t<AgGridReact\n\t\t\t\t\tgridOptions={{\n\t\t\t\t\t\ttheme: themeMaterial.withParams({\n\t\t\t\t\t\t\tspacing: 4,\n\t\t\t\t\t\t}),\n\t\t\t\t\t}}\n\t\t\t\t\tgetRowId={(params) => String(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 {\n\tButton,\n\tCircularProgress,\n\tGrid,\n\tSnackbar,\n\tTextField,\n\tTheme,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport { get } from \"lodash-es\";\nimport * as React from \"react\";\nimport { ChangeEvent, useEffect, useState } from \"react\";\nimport { SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { Action } from \"../../models/Action\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { Profile } from \"../../models/Profile\";\nimport {\n\tgetActionsByProfileId,\n\tupsertProfile,\n\tupsertProfileActions,\n} from \"../../repositories/ProfilesRepository\";\nimport { DataTable } from \"./ProceduresDataTable\";\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<MesfModal\n\t\t\t\ttitle=\"EDIT PROFILE\"\n\t\t\t\topen={show}\n\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\tid=\"edit-profile-modal\"\n\t\t\t\tmaxWidth=\"xl\"\n\t\t\t>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t<MesfModal.Content style={{ padding: \"0 30px 15px\" }}>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\tstyle={{ position: \"relative\" }}\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<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\tid=\"outlined-basic\"\n\t\t\t\t\t\t\t\t\tlabel=\"Name\"\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\tvalue={profileName}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tsize=\"small\"\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\tonChange={(e: ChangeEvent) => handleChangeProfielName(e)}\n\t\t\t\t\t\t\t\t\tInputLabelProps={{\n\t\t\t\t\t\t\t\t\t\tshrink: true,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trequired={true}\n\t\t\t\t\t\t\t\t\terror={profileName.length === 0}\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{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\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</MesfModal.Content>\n\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t</form>\n\t\t\t</MesfModal>\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\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error Editing Profile\"\n\t\t\t/>\n\t\t\t<ErrorModal\n\t\t\t\terror={nameError}\n\t\t\t\tonHide={() => setNameError(\"\")}\n\t\t\t\ttitle=\"Error Editing Profile\"\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport PlaylistAddIcon from \"@material-ui/icons/PlaylistAdd\";\nimport React from \"react\";\nimport { MenuOptionType } from \"../../../../../../controls\";\nimport { Profile } from \"../../../models/Profile\";\n\ntype Props = {\n\tsetProfileId: Function;\n\tsetShowDeleteModal: Function;\n\tsetShowCreateModal: Function;\n\tsetModalProceduresProfile: Function;\n};\nexport const useProfilesOptionsFunctions = ({\n\tsetProfileId,\n\tsetShowDeleteModal,\n\tsetShowCreateModal,\n\tsetModalProceduresProfile,\n}: Props) => {\n\tconst getMenuOptions = (data: Profile) => {\n\t\tlet options: MenuOptionType[] = [];\n\t\tif (!data) {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"New Profile\",\n\t\t\t\t\tkey: \"new_profile\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowCreateModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t} else {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"New Profile\",\n\t\t\t\t\tkey: \"new_profile\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowCreateModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Edit Profile\",\n\t\t\t\t\tkey: \"edit_profile\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetProfileId(data);\n\t\t\t\t\t\tsetModalProceduresProfile(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <EditIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Delete Profile\",\n\t\t\t\t\tkey: \"delete_profile\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetProfileId(data);\n\t\t\t\t\t\tsetShowDeleteModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <DeleteIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t\treturn options;\n\t};\n\treturn {\n\t\tgetMenuOptions,\n\t};\n};\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 {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { ProfilesReducer } from \"../reducers/ProfilesReducer\";\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 { Button } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\nimport { ColDef, EditableCallbackParams } from \"ag-grid-community\";\nimport React, { useState } from \"react\";\nimport { useProfilesContext } from \"../../../context/ProfileContext\";\nimport { Profile } from \"../../../models/Profile\";\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\tsetProfileId: (profile: Profile) => void;\n\tsetModalProceduresProfile: (showModal: boolean) => void;\n\tsetModalDeleteProfile: (showModal: boolean) => void;\n\tshowContextMenu: Function;\n};\n\nexport const useTableData = ({\n\tsetProfileId,\n\tsetModalProceduresProfile,\n\tsetModalDeleteProfile,\n\tshowContextMenu,\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\tconst columnDefs: 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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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\tsetProfileId(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\tsetProfileId(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\n\t\t\t\t\t\t\t\tstyle={{}}\n\t\t\t\t\t\t\t\tonClick={(e) =>\n\t\t\t\t\t\t\t\t\tshowContextMenu(e, params.data, \"TableProfiles\")\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<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 {\n\tButton,\n\tGrid,\n\tPaper,\n\tTheme,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport {\n\tColDef,\n\tDefaultMenuItem,\n\tGetContextMenuItemsParams,\n\tGridApi,\n\tMenuItemDef,\n\tthemeMaterial,\n} from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport * as React from \"react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useContextMenuMESF } from \"../../../../../controls\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { Profile } from \"../../models/Profile\";\nimport { CreateProfile } from \"../Create/CreateProfile\";\nimport { DeleteProfile } from \"../Delete/DeleteProfile\";\nimport { ActionsOfProfile } from \"../ProceduresOfProfile/ActionsOfProfile\";\nimport { useProfilesOptionsFunctions } from \"./customHooks/useProfilesOptionsFunctions\";\nimport { useTableData } from \"./customHooks/useTableData\";\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\tfontSize: \"1rem\",\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 [modalProceduresProfile, setModalProceduresProfile] = useState(false);\n\tconst [modalDeleteProfile, setModalDeleteProfile] = useState(false);\n\tconst [profile, setProfile] = useState<Profile | null>(null);\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\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\tconst { getMenuOptions } = useProfilesOptionsFunctions({\n\t\tsetProfileId: setProfile,\n\t\tsetShowCreateModal: setModalCreateActive,\n\t\tsetShowDeleteModal: setModalDeleteProfile,\n\t\tsetModalProceduresProfile,\n\t});\n\tconst { showContextMenu, registerConfig } = useContextMenuMESF();\n\tconst { rows, columnDefs } = useTableData({\n\t\tsetModalDeleteProfile,\n\t\tsetModalProceduresProfile,\n\t\tsetProfileId: setProfile,\n\t\tshowContextMenu,\n\t});\n\tconst getContextMenuItems = (\n\t\tparams: GetContextMenuItemsParams,\n\t): (DefaultMenuItem | MenuItemDef)[] => {\n\t\tconst data = params.node?.data;\n\t\tparams.api.deselectAll();\n\t\tparams.node?.setSelected(true);\n\t\tshowContextMenu(event as any, data, \"TableProfiles\");\n\t\treturn [];\n\t};\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\tuseEffect(() => {\n\t\tregisterConfig({\n\t\t\tid: \"TableProfiles\",\n\t\t\tgetOptions: getMenuOptions,\n\t\t});\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid container justifyContent=\"center\">\n\t\t\t\t<Grid item md={12} xs={12} style={{ padding: \"0 15px\" }}>\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\tProfile Management\n\t\t\t\t\t</Typography>\n\t\t\t\t</Grid>\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\tclassName={classes.root}\n\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={{ padding: \"0 15px\" }}\n\t\t\t\t\t\tclassName={classes.relative}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t<Paper\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\theight: \"70vh\",\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\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<AgGridReact\n\t\t\t\t\t\t\t\t\tgridOptions={{\n\t\t\t\t\t\t\t\t\t\ttheme: themeMaterial,\n\t\t\t\t\t\t\t\t\t}}\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={34}\n\t\t\t\t\t\t\t\t\theaderHeight={34}\n\t\t\t\t\t\t\t\t\tloadingOverlayComponent={loadingOverlayComponent}\n\t\t\t\t\t\t\t\t\tanimateRows\n\t\t\t\t\t\t\t\t\tgetContextMenuItems={(e: any) => getContextMenuItems(e)}\n\t\t\t\t\t\t\t\t\tgetRowId={(params) => params.data.ProfileId}\n\t\t\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\t\t\tonRowDoubleClicked={(event) => {\n\t\t\t\t\t\t\t\t\t\tsetProfile(event.data);\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\tonGridReady={(params) => setGridApi(params.api)}\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<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t<Grid item md={2} xs={12} className={classes.btnModal}>\n\t\t\t\t\t\t\t\t<Button\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\tonClick={() => setModalCreateActive(!modalCreateActive)}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tstyle={{ marginTop: \"10px\" }}\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</Button>\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</Grid>\n\t\t\t</Grid>\n\n\t\t\t<CreateProfile\n\t\t\t\tshow={modalCreateActive}\n\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\tsetModalCreateActive(false);\n\t\t\t\t\tif (shouldUpdate) getProfilesFromAPI().then(() => {});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<DeleteProfile\n\t\t\t\tshow={modalDeleteProfile}\n\t\t\t\tprofile={profile}\n\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\tsetModalDeleteProfile(false);\n\t\t\t\t\tsetProfile(null);\n\t\t\t\t\tif (shouldUpdate) getProfilesFromAPI().then(() => {});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<ActionsOfProfile\n\t\t\t\tshow={modalProceduresProfile}\n\t\t\t\tprofileForEdit={profile}\n\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\tsetModalProceduresProfile(false);\n\t\t\t\t\tsetProfile(null);\n\t\t\t\t\tif (shouldUpdate) getProfilesFromAPI().then(() => {});\n\t\t\t\t}}\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import { Grid } from \"@material-ui/core\";\nimport { Paper } from \"@material-ui/core\";\nimport { get } from \"lodash\";\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\";\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<TableProfiles\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\tgetProfilesFromAPI={getProfilesFromAPI}\n\t\t\t\t\t\t/>\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 (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\theight: \"100vh\",\n\t\t\t}}\n\t\t>\n\t\t\t<LazyLoading />\n\t\t</div>\n\t);\n};\n","import * as React from \"react\";\nimport { Profiles } from \"./ProfilesPage\";\nimport { ProfilesProvider } from \"./context/ProfileContext\";\n\ntype Props = {};\n\nconst ProfilesPage = (props: Props) => {\n\treturn (\n\t\t<ProfilesProvider>\n\t\t\t<Profiles />\n\t\t</ProfilesProvider>\n\t);\n};\n\nexport default ProfilesPage;\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 {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { ShiftsCrewsReducer } from \"../reducers/ShiftsCrewsReducer\";\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 {\n\tMESApiService,\n\ttype spParameter,\n} 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 MomentUtils from \"@date-io/moment\";\nimport { CircularProgress, TextField } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport {\n\tKeyboardDatePicker,\n\tKeyboardTimePicker,\n\tMuiPickersUtilsProvider,\n} from \"@material-ui/pickers\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { useShiftsCrewsContext } from \"../../context/ShiftsCrewsContext\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { ShiftParameters } from \"../../models/ShiftParameters\";\nimport { upsertShiftParameters } from \"../../repositories/ShiftsCrewsRepository\";\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<MesfModal\n\t\t\t\t\t\ttitle=\"NEW SHIFT/CREW\"\n\t\t\t\t\t\topen={show}\n\t\t\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\t\t\tid=\"create-shift-modal\"\n\t\t\t\t\t\tmaxWidth=\"md\"\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<MesfModal.Content 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</MesfModal.Content>\n\t\t\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</MesfModal>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error Creating Shift\"\n\t\t\t/>\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 MomentUtils from \"@date-io/moment\";\nimport { CircularProgress, TextField } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport { Dialog } from \"@material-ui/core\";\nimport { DialogActions } from \"@material-ui/core\";\nimport { DialogContent } from \"@material-ui/core\";\nimport { DialogContentText } from \"@material-ui/core\";\nimport { DialogTitle } from \"@material-ui/core\";\nimport {\n\tKeyboardDatePicker,\n\tKeyboardTimePicker,\n\tMuiPickersUtilsProvider,\n} from \"@material-ui/pickers\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { useShiftsCrewsContext } from \"../../context/ShiftsCrewsContext\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { ShiftParameters } from \"../../models/ShiftParameters\";\nimport { DeleteShiftParameters } from \"../../repositories/ShiftsCrewsRepository\";\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<MesfModal\n\t\t\t\t\t\ttitle=\"DELETE SHIFT\"\n\t\t\t\t\t\topen={show}\n\t\t\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\t\t\tid=\"delete-shift-MesfModal\"\n\t\t\t\t\t\tmaxWidth=\"md\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t<MesfModal.Content 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</MesfModal.Content>\n\t\t\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\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</MesfModal>\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 MomentUtils from \"@date-io/moment\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport { TextField } from \"@material-ui/core\";\nimport {\n\tKeyboardDatePicker,\n\tKeyboardTimePicker,\n\tMuiPickersUtilsProvider,\n} from \"@material-ui/pickers\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { useShiftsCrewsContext } from \"../../context/ShiftsCrewsContext\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { ShiftParameters } from \"../../models/ShiftParameters\";\nimport { upsertShiftParameters } from \"../../repositories/ShiftsCrewsRepository\";\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<MesfModal\n\t\t\t\t\t\ttitle=\"EDIT SHIFT\"\n\t\t\t\t\t\topen={show}\n\t\t\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\t\t\tid=\"edit-shift-modal\"\n\t\t\t\t\t\tmaxWidth=\"md\"\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<MesfModal.Content 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</MesfModal.Content>\n\t\t\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</MesfModal>\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 DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport PlaylistAddIcon from \"@material-ui/icons/PlaylistAdd\";\nimport React from \"react\";\nimport { MenuOptionType, ShiftInfo } from \"../../../../../controls\";\n\ntype Props = {\n\tsetShiftId: Function;\n\tsetShowDeleteModal: Function;\n\tsetShowCreateModal: Function;\n\tsetShowEditModal: Function;\n};\nexport const useShiftsOptionsFunctions = ({\n\tsetShiftId,\n\tsetShowDeleteModal,\n\tsetShowCreateModal,\n\tsetShowEditModal,\n}: Props) => {\n\tconst getMenuOptions = (data: ShiftInfo) => {\n\t\tlet options: MenuOptionType[] = [];\n\t\tif (!data) {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"New Shift\",\n\t\t\t\t\tkey: \"new_shift\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowCreateModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t} else {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"New Shift\",\n\t\t\t\t\tkey: \"new_shift\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowCreateModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Edit Shift\",\n\t\t\t\t\tkey: \"edit_shift\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShiftId(data);\n\t\t\t\t\t\tsetShowEditModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <EditIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Delete Shift\",\n\t\t\t\t\tkey: \"delete_shift\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShiftId(data);\n\t\t\t\t\t\tsetShowDeleteModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <DeleteIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t\treturn options;\n\t};\n\treturn {\n\t\tgetMenuOptions,\n\t};\n};\n","import { Grid } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\nimport { ColDef, EditableCallbackParams } from \"ag-grid-community\";\nimport moment from \"moment\";\nimport React, { useState } from \"react\";\nimport { useShiftsCrewsContext } from \"../../context/ShiftsCrewsContext\";\nimport { ShiftParameters } from \"../../models/ShiftParameters\";\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\tshowContextMenu: Function;\n};\n\nexport const useTableData = ({\n\tsetOpenModalEditShift,\n\tsetOpenModalDeleteShift,\n\tshowContextMenu,\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\tconst columnDefs: 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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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\n\t\t\t\t\t\t\t\tstyle={{}}\n\t\t\t\t\t\t\t\tonClick={(e) => showContextMenu(e, params.data, \"TableShifts\")}\n\t\t\t\t\t\t\t>\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 {\n\tButton,\n\tGrid,\n\tPaper,\n\ttype Theme,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport {\n\tColDef,\n\tDefaultMenuItem,\n\tGetContextMenuItemsParams,\n\tMenuItemDef,\n\tthemeMaterial,\n} from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport * as React from \"react\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useContextMenuMESF } from \"../../../../controls\";\nimport { LazyLoading } from \"../../../../controls/LazyLoading/LazyLoading\";\nimport { useShiftsCrewsContext } from \"../context/ShiftsCrewsContext\";\nimport { ShiftParameters } from \"../models/ShiftParameters\";\nimport { CreateShift } from \"./Create/CreateShift\";\nimport { DeleteShift } from \"./Delete/DeleteShift\";\nimport { EditShift } from \"./Edit/EditShift\";\nimport { useShiftsOptionsFunctions } from \"./customHooks/useShiftsOptionsFunctions\";\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// \tfontSize: \"1rem\",\n\t\t// },\n\t\t//\n\t\t// \"& .ag-header-cell-text\": {\n\t\t// \ttextAlign: \"center !important\",\n\t\t// },\n\t\t//\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 [messageTable, setMessageTable] = useState(\"\");\n\tconst gridRef = useRef<AgGridReact>(null);\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\tconst {\n\t\tactions: { setShiftTableData },\n\t} = useShiftsCrewsContext();\n\tconst { getMenuOptions } = useShiftsOptionsFunctions({\n\t\tsetShiftId: setShiftTableData,\n\t\tsetShowCreateModal: setOpenModalNew,\n\t\tsetShowDeleteModal: setOpenModalDeleteShift,\n\t\tsetShowEditModal: setOpenModalEditShift,\n\t});\n\tconst { showContextMenu, registerConfig } = useContextMenuMESF();\n\tconst { rows, columnDefs } = useTableData({\n\t\tsetOpenModalEditShift,\n\t\tsetOpenModalDeleteShift,\n\t\tshowContextMenu,\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\tconst getContextMenuItems = (\n\t\tparams: GetContextMenuItemsParams,\n\t): (DefaultMenuItem | MenuItemDef)[] => {\n\t\tconst data = params.node?.data;\n\t\tparams.api.deselectAll();\n\t\tparams.node?.setSelected(true);\n\t\tshowContextMenu(event as any, data, \"TableShifts\");\n\t\treturn [];\n\t};\n\n\tuseEffect(() => {\n\t\tregisterConfig({\n\t\t\tid: \"TableShifts\",\n\t\t\tgetOptions: getMenuOptions,\n\t\t});\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 item md={12} xs={12} style={{ padding: \"0 15px\" }}>\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\tcomponent={Paper}\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: \"70vh\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<AgGridReact\n\t\t\t\t\t\t\tgridOptions={{\n\t\t\t\t\t\t\t\ttheme: themeMaterial,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tref={gridRef}\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\trowHeight={34}\n\t\t\t\t\t\t\theaderHeight={34}\n\t\t\t\t\t\t\tanimateRows\n\t\t\t\t\t\t\tloadingOverlayComponent={loadingOverlayComponent}\n\t\t\t\t\t\t\tgetContextMenuItems={(e: any) => getContextMenuItems(e)}\n\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\toverlayNoRowsTemplate={messageTable}\n\t\t\t\t\t\t\tonRowDoubleClicked={(event) => {\n\t\t\t\t\t\t\t\tsetShiftTableData(event.data as ShiftParameters);\n\t\t\t\t\t\t\t\tsetOpenModalEditShift(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t></AgGridReact>\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 SHIFT\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\";\nimport { Paper } from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../components/modals/error-modal\";\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\nimport { TableShiftsCrews } from \"./components/TableShifts\";\nimport { useShiftsCrewsContext } from \"./context/ShiftsCrewsContext\";\nimport { getShiftParameters } from \"./repositories/ShiftsCrewsRepository\";\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<TableShiftsCrews\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tgetShiftsCrewsFromAPI={getShiftsCrewsFromAPI}\n\t\t\t\t/>\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 { ShiftsCrews } from \"./ShiftsCrewsPage\";\nimport { ShiftsCrewsProvider } from \"./context/ShiftsCrewsContext\";\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 { 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\tsetAllAssets(state, { payload }) {\n\t\t\tstate.allAssets = payload;\n\t\t},\n\t},\n});\n","import {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} 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 { 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 { AssetParameters } from \"../models/AssetParameters\";\nimport { DATA_ASSET_INITIAL_VALUES } from \"../models/InitialValueDataAsset\";\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 {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} 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 { 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 { getAssets } from \"../../../../repositorie/MESF-frontend-Repositorie\";\nimport { useConfigurationAssetContext } from \"../context/ConfigurationAssetContext\";\nimport { TransformAssetModelData } from \"./TransformAssetModelData\";\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 {\n\tMESApiService,\n\ttype spParameter,\n} 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 { 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: AssetCode[]) => {\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) => {\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// Handle the case where the element has no parent\n\t\t\tif (!parentEl) {\n\t\t\t\tconsole.log(el);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Add our current el to its parent's `children` array\n\t\t\tif (!parentEl[\"children\"]) {\n\t\t\t\tparentEl[\"children\"] = [];\n\t\t\t}\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\tconst nodes = allAssets.map(\n\t\t\t(el) =>\n\t\t\t\t({\n\t\t\t\t\tid: el.AssetId,\n\t\t\t\t\tparentId: el.ParentAssetId,\n\t\t\t\t\tname: el.AssetName,\n\t\t\t\t\tisLeaf: !!el.IsLeaf,\n\t\t\t\t\tisActive: true,\n\t\t\t\t\tchildren: [],\n\t\t\t\t}) as AssetCode,\n\t\t);\n\t\tbuildTreeAssets(nodes);\n\t};\n\n\treturn { loadFilterAssets };\n};\n","import {\n\tButton,\n\tCheckbox,\n\tCircularProgress,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\ttype DialogProps,\n\tFormControlLabel,\n\tGrid,\n\tSnackbar,\n\tTextField,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport React, { type SyntheticEvent, useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { useAssetContext } from \"../../../../../context/assetContext\";\nimport { TreePickerControl } from \"../../../../../controls\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport { AssetAPI } from \"../../models/AssetAPI\";\nimport { DATA_ASSET_INITIAL_VALUES } from \"../../models/InitialValueDataAsset\";\nimport { insertAsset } from \"../../repositories/ConfigurationAssetRepository\";\nimport { useAssetCodes } from \"../hooks/useAssetCodes\";\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\", Number.parseInt(value));\n\t\tsetAssetParentAssetIdToCreateAsset(Number.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\tNumber.parseInt(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\tButton,\n\tCheckbox,\n\tCircularProgress,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\ttype DialogProps,\n\tFormControlLabel,\n\tGrid,\n\tSnackbar,\n\tTextField,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport React, { type SyntheticEvent, useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { useAssetContext } from \"../../../../../context/assetContext\";\nimport { TreePickerControl } from \"../../../../../controls\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport { AssetAPI } from \"../../models/AssetAPI\";\nimport { DATA_ASSET_INITIAL_VALUES } from \"../../models/InitialValueDataAsset\";\nimport { UpdateAssetData } from \"../../repositories/ConfigurationAssetRepository\";\nimport { useAssetCodes } from \"../hooks/useAssetCodes\";\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\", Number.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 {\n\tButton,\n\tCircularProgress,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\tDialogContentText,\n\ttype DialogProps,\n\tDialogTitle,\n} from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport React from \"react\";\nimport { type SyntheticEvent, useState } from \"react\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport { removeAsset } from \"../../repositories/ConfigurationAssetRepository\";\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\tCheckbox,\n\tDialog,\n\tDialogContent,\n\ttype DialogProps,\n\tFormControlLabel,\n\tGrid,\n\tTextField,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport React, { useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { useAssetContext } from \"../../../../../context/assetContext\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport { AssetAPI } from \"../../models/AssetAPI\";\nimport { DATA_ASSET_INITIAL_VALUES } from \"../../models/InitialValueDataAsset\";\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\ttype DropOptions,\n\ttype NodeModel,\n\tisAncestor,\n} 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 DescriptionIcon from \"@material-ui/icons/Description\";\nimport FolderIcon from \"@material-ui/icons/Folder\";\nimport ImageIcon from \"@material-ui/icons/Image\";\nimport ListAltIcon from \"@material-ui/icons/ListAlt\";\nimport React from \"react\";\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 { makeStyles } from \"@material-ui/core\";\nimport { DragLayerMonitorProps } from \"@minoru/react-dnd-treeview\";\nimport React from \"react\";\nimport { FileProperties } from \"../../models/FileProperties\";\nimport { TypeIcon } from \"./TypeIcon\";\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 { Typography, makeStyles } from \"@material-ui/core\";\nimport { ArrowRight } from \"@material-ui/icons\";\nimport { NodeModel, RenderParams } from \"@minoru/react-dnd-treeview\";\nimport React, { useCallback, useEffect } from \"react\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport { FileProperties } from \"../../models/FileProperties\";\nimport { TypeIcon } from \"./TypeIcon\";\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 { Badge, makeStyles } from \"@material-ui/core\";\nimport { NodeModel } from \"@minoru/react-dnd-treeview\";\nimport React from \"react\";\nimport { FileProperties } from \"../../models/FileProperties\";\nimport { TypeIcon } from \"./TypeIcon\";\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 {\n\tGrid,\n\tMenuItem,\n\tPaper,\n\tSnackbar,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport AddBoxIcon from \"@material-ui/icons/AddBox\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport FindInPageIcon from \"@material-ui/icons/FindInPage\";\nimport { Alert } from \"@material-ui/lab\";\nimport { Tree } from \"@minoru/react-dnd-treeview\";\nimport {\n\tDragLayerMonitorProps,\n\tNodeModel,\n} from \"@minoru/react-dnd-treeview/dist/types\";\nimport React, {\n\ttype SyntheticEvent,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport { useAssetContext } from \"../../../../../context/assetContext\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { useConfigurationAssetContext } from \"../../context/ConfigurationAssetContext\";\nimport { useSearchAssets } from \"../../hooks/useSearchAssets\";\nimport { FileProperties } from \"../../models/FileProperties\";\nimport { CreateNewAssetDialog } from \"../dialogs/create-new-asset-dialog\";\nimport { EditAssetDialog } from \"../dialogs/edit-asset-dialog\";\nimport { RemoveAssetDialog } from \"../dialogs/remove-asset-dialog\";\nimport { ViewerAssetDialog } from \"../dialogs/viewer-asset-dialog\";\nimport { useAssetActions } from \"../hooks/useAssetActions\";\nimport { CustomDragPreview } from \"./CustomDragPreview\";\nimport { CustomNode } from \"./CustomNode\";\nimport { MultipleDragPreview } from \"./MultipleDragPreview\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {},\n\tcontextMenu: {\n\t\tbackgroundColor: \"#F8F8F8\",\n\t\tborderRadius: \"4px\",\n\t\tpadding: \"0\",\n\t\theight: \"auto\",\n\t\twidth: \"170px\",\n\t\tmargin: \"0\",\n\t\tposition: \"fixed\",\n\t\tlistStyle: \"none\",\n\t\tboxShadow: \"0 4px 8px rgba(0, 0, 0, 0.15)\",\n\t\tzIndex: 1000,\n\t},\n\tmenuItem: {\n\t\tpadding: \"6px 12px 6px 10px\",\n\t\tcursor: \"pointer\",\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tbackgroundColor: \"#F8F8F8\",\n\t\tfontSize: \"12px\",\n\t\tfontFamily:\n\t\t\t'-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n\t\t\"&:last-child\": {\n\t\t\tborderBottom: \"none\",\n\t\t},\n\t\t\"&:hover\": {\n\t\t\tbackgroundColor: \"#d4edff\",\n\t\t},\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) => Number.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=\"flex-start\"\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<Typography\n\t\t\t\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\t\t\t\tstyle={{ margin: \"20px 0 20px\", fontWeight: 600 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tAssets Tree\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t{isLoading ? (\n\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<Grid\n\t\t\t\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\t\t\t\txs={12}\n\t\t\t\t\t\t\t\t\t\tmd={12}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\theight: \"71vh\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\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<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\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\theight: \"100%\",\n\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\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<LazyLoading />\n\t\t\t\t\t\t\t\t\t\t</div>\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\t\t<Paper\n\t\t\t\t\t\t\t\t\televation={2}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\tpadding: \"15px 20px 10px\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"0.75rem\",\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<Grid container alignItems=\"center\">\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={{\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"71vh\",\n\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\tpaddingBottom: 10,\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\t<Tree\n\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\tinitialOpen={openAssetsArray}\n\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\tenableAnimateExpand={true}\n\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\troot: classes.assetRoot,\n\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}}\n\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\tonDragStart={handleDragStart}\n\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\tcanDrop={(asset: any, options: any): boolean => {\n\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(selectedNode) =>\n\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);\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\trender={(node, options) => {\n\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(selectedNode) => selectedNode.id === node.id,\n\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\treturn (\n\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\tsetContextMenuOver={handleContextMenu}\n\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{...options}\n\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\tisDragging={selected && isDragging}\n\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\tonDoubleClick={handleShowViewerAsset}\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\tdragPreviewRender={(\n\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) => {\n\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\treturn (\n\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\tdragSources={selectedNodes}\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\n\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<CustomDragPreview monitorProps={monitorProps} />\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</Paper>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<CreateNewAssetDialog\n\t\t\t\t\t\t\t\tshow={showCreateNewAssetDialog}\n\t\t\t\t\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\t\t\t\t\tsetShowCreateNewAssetDialog(false);\n\t\t\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\t\t\tsearchAssets();\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<EditAssetDialog\n\t\t\t\t\t\t\t\tshow={showEditAssetDialog}\n\t\t\t\t\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\t\t\t\t\tsetShowEditAssetDialog(false);\n\t\t\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\t\t\tsearchAssets();\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<ViewerAssetDialog\n\t\t\t\t\t\t\t\tshow={showViewerAssetDialog}\n\t\t\t\t\t\t\t\tonHide={() => handleOnHideViewer()}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<RemoveAssetDialog\n\t\t\t\t\t\t\t\tshow={showRemoveAssetDialog}\n\t\t\t\t\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\t\t\t\t\tsetShowRemoveAssetDialog(false);\n\t\t\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\t\t\tsearchAssets();\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\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\n\t\t\t\t\t\t\tclassName={classes.contextMenu}\n\t\t\t\t\t\t\tstyle={{ top: y, left: x, padding: \"6px 0\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tclassName={classes.menuItem}\n\t\t\t\t\t\t\t\tonClick={() => setShowViewerAssetDialog(true)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Grid container style={{ alignItems: \"center\" }}>\n\t\t\t\t\t\t\t\t\t<Grid item md={2} xs={3}>\n\t\t\t\t\t\t\t\t\t\t<FindInPageIcon style={{ width: 18 }} />\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={9} xs={9}>\n\t\t\t\t\t\t\t\t\t\t<div style={{ marginLeft: 5 }}>View Asset</div>\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</MenuItem>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tclassName={classes.menuItem}\n\t\t\t\t\t\t\t\tonClick={() => setShowEditAssetDialog(true)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Grid container style={{ alignItems: \"center\" }}>\n\t\t\t\t\t\t\t\t\t<Grid item md={2} xs={3}>\n\t\t\t\t\t\t\t\t\t\t<EditIcon style={{ width: 18 }} />\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={9} xs={9}>\n\t\t\t\t\t\t\t\t\t\t<div style={{ marginLeft: 5 }}>Edit Asset</div>\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</MenuItem>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tclassName={classes.menuItem}\n\t\t\t\t\t\t\t\tonClick={() => setShowCreateNewAssetDialog(true)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Grid container style={{ alignItems: \"center\" }}>\n\t\t\t\t\t\t\t\t\t<Grid item md={2} xs={3}>\n\t\t\t\t\t\t\t\t\t\t<AddBoxIcon style={{ width: 18 }} />\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={9} xs={9}>\n\t\t\t\t\t\t\t\t\t\t<div style={{ marginLeft: 5 }}>Create Asset</div>\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</MenuItem>\n\t\t\t\t\t\t\t{assetNodeSelectedInTree?.IsBranch === false && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tclassName={classes.menuItem}\n\t\t\t\t\t\t\t\t\tonClick={() => setShowRemoveAssetDialog(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Grid container style={{ alignItems: \"center\" }}>\n\t\t\t\t\t\t\t\t\t\t<Grid item md={2} xs={3}>\n\t\t\t\t\t\t\t\t\t\t\t<DeleteIcon style={{ width: 18 }} />\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={9} xs={9}>\n\t\t\t\t\t\t\t\t\t\t\t<div style={{ marginLeft: 5 }}>Remove Asset</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</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\n\t\t\t\t\t\t\t\tclassName={classes.menuItem}\n\t\t\t\t\t\t\t\tonClick={() => setShowCreateNewAssetDialog(true)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Grid container style={{ alignItems: \"center\" }}>\n\t\t\t\t\t\t\t\t\t<Grid item md={2} xs={3}>\n\t\t\t\t\t\t\t\t\t\t<AddBoxIcon style={{ width: 18 }} />\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t\t<Grid item md={9} xs={9}>\n\t\t\t\t\t\t\t\t\t\t<div style={{ marginLeft: 5 }}>Create Asset</div>\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</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 { Grid } from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { ConfigurationAssetComponent } from \"./components/AssetConfiguration/ConfigurationAssetComponent\";\n\nexport const ConfigurationAssetPage = () => {\n\treturn (\n\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t<ConfigurationAssetComponent />\n\t\t</Grid>\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 { get } from \"lodash-es\";\nimport { MESApiService, type spParameter } from \"../../../../services\";\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\ntype PermissionsProp =\n\t| { UserId: number; UserName?: string | null }\n\t| { UserId?: number | null; UserName: string };\nexport const getUserPermissionsFromAPI = async ({\n\tUserId = null,\n\tUserName = null,\n}: PermissionsProp) => {\n\tconst apiService = new MESApiService();\n\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"UserId\", value: UserId });\n\tparameters.push({ name: \"UserName\", value: UserName });\n\tconst resp = await apiService.callV2(\"SEC.GetPermissions\", parameters);\n\tconst rows = get(resp, \"data.tables[0].rows\", []) as {\n\t\tUserId: number;\n\t\tUserName: string;\n\t\tProfilesId: string;\n\t\tPermissions: string;\n\t}[];\n\treturn rows[0] ? rows[0] : null;\n};\n","// @flow\nimport { Button, Grid, TextField } from \"@material-ui/core\";\nimport { isEmpty } from \"lodash-es\";\nimport * as React from \"react\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport Modal from \"../../../../../components/modals/modal.mesf\";\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 { 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","import {\n\tChip,\n\tFormControl,\n\tInput,\n\tInputLabel,\n\tMenuItem,\n\tSelect,\n\ttype Theme,\n\tmakeStyles,\n\tuseTheme,\n} from \"@material-ui/core\";\nimport { get } from \"lodash-es\";\n// @flow\nimport * as React from \"react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { getAuthTypes } from \"../../repositories/UsersRepository\";\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\tdisabled?: boolean;\n};\nexport const AuthTypeSelector = ({ value, onChange, disabled }: 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} disabled={disabled}>\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 {\n\tChip,\n\tFormControl,\n\tInput,\n\tInputLabel,\n\tMenuItem,\n\tSelect,\n\ttype Theme,\n\tmakeStyles,\n\tuseTheme,\n} from \"@material-ui/core\";\nimport { get } from \"lodash-es\";\nimport React, { useEffect, useState } from \"react\";\nimport { Profile } from \"../../models/Profile\";\nimport { getProfiles } from \"../../repositories/UsersRepository\";\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\tdisabled?: boolean;\n};\n\nexport const ProfilesPicker = ({\n\tvalue,\n\tonChange,\n\tuserIdForDelete,\n\tsetprofileError,\n\tdisabled,\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 className={classes.formControl} disabled={disabled}>\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 { CircularProgress, TextField } from \"@material-ui/core\";\nimport { FormControlLabel } from \"@material-ui/core\";\nimport { Checkbox } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { User } from \"../../models/User\";\nimport {\n\tsetPassword,\n\tsetProfilesToUser,\n\tupsertUser,\n} from \"../../repositories/UsersRepository\";\nimport { AuthTypeSelector } from \"../common/AuthTypeSelector\";\nimport { ProfilesPicker } from \"../common/ProfilesPicker\";\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<MesfModal\n\t\t\t\ttitle=\"NEW USER\"\n\t\t\t\topen={show}\n\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\tid=\"create-user-modal\"\n\t\t\t\tmaxWidth=\"md\"\n\t\t\t>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t<MesfModal.Content 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</MesfModal.Content>\n\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t</form>\n\t\t\t\t<ErrorModal\n\t\t\t\t\terror={error}\n\t\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\t\ttitle=\"Error Creating User\"\n\t\t\t\t/>\n\t\t\t\t<ErrorModal\n\t\t\t\t\terror={profileError}\n\t\t\t\t\tonHide={() => setprofileError(\"\")}\n\t\t\t\t\ttitle=\"Error Choosing Profile\"\n\t\t\t\t/>\n\t\t\t</MesfModal>\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 { Button } from \"@material-ui/core\";\nimport { CircularProgress, TextField } from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { FormControlLabel } from \"@material-ui/core\";\nimport { Checkbox } from \"@material-ui/core\";\nimport { Dialog } from \"@material-ui/core\";\nimport { DialogActions } from \"@material-ui/core\";\nimport { DialogContent } from \"@material-ui/core\";\nimport { DialogContentText } from \"@material-ui/core\";\nimport { DialogTitle } from \"@material-ui/core\";\nimport React, { useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { User } from \"../../models/User\";\nimport { deleteUser, getDataUser } from \"../../repositories/UsersRepository\";\nimport { AuthTypeSelector } from \"../common/AuthTypeSelector\";\nimport { ProfilesPicker } from \"../common/ProfilesPicker\";\n\ntype Props = {\n\tuserId: number | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const DeleteUser = ({ userId, 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(userId);\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<MesfModal\n\t\t\t\ttitle=\"DELETE USER\"\n\t\t\t\topen={show}\n\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\tid=\"delete-user-modal\"\n\t\t\t\tmaxWidth=\"md\"\n\t\t\t>\n\t\t\t\t<form>\n\t\t\t\t\t<MesfModal.Content 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\tdisabled={true}\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\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={onChange}\n\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/>\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\tdisabled\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</MesfModal.Content>\n\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t</form>\n\t\t\t</MesfModal>\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<MesfModal\n\t\t\t\topen={deleteAlert}\n\t\t\t\ttitle=\"WARNING\"\n\t\t\t\thandleClose={() => handleClose()}\n\t\t\t\tid=\"responsive-dialog-title\"\n\t\t\t>\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\tBe careful, once deleted you will not be able to recover this user,\n\t\t\t\t\tare you sure you want to delete it?\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<MesfModal.Actions 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\tvariant=\"contained\"\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\tvariant=\"contained\"\n\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\tonClick={() => onSubmit(userId)}\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</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<ErrorModal\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error Deleting User\"\n\t\t\t/>\n\t\t\t<ErrorModal\n\t\t\t\terror={profileError}\n\t\t\t\tonHide={() => setprofileError(\"\")}\n\t\t\t\ttitle=\"Error Choosing Profile\"\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import { CircularProgress, TextField } from \"@material-ui/core\";\nimport { FormControlLabel } from \"@material-ui/core\";\nimport { Checkbox } from \"@material-ui/core\";\nimport { Grid } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport { Snackbar } from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { User } from \"../../models/User\";\nimport {\n\tgetDataUser,\n\tsetProfilesToUser,\n\tupsertUser,\n} from \"../../repositories/UsersRepository\";\nimport { AuthTypeSelector } from \"../common/AuthTypeSelector\";\nimport { ProfilesPicker } from \"../common/ProfilesPicker\";\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\tuserId: number | null;\n\tshow: boolean;\n\tonHide: (shouldUpdate: boolean) => void;\n};\n\nexport const EditUser = ({ userId, 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(userId);\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<MesfModal\n\t\t\t\ttitle=\"EDIT USER\"\n\t\t\t\topen={show}\n\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\tid=\"edit-user-modal\"\n\t\t\t\tmaxWidth=\"md\"\n\t\t\t>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t<MesfModal.Content\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<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</MesfModal.Content>\n\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t</form>\n\t\t\t</MesfModal>\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\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error Editing User\"\n\t\t\t/>\n\t\t\t<ErrorModal\n\t\t\t\terror={profileError}\n\t\t\t\tonHide={() => setprofileError(\"\")}\n\t\t\t\ttitle=\"Error Choosing Profile\"\n\t\t\t/>\n\t\t</>\n\t);\n};\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 {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { UsersReducer } from \"../reducers/UsersReducer\";\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 { Button, Grid, Theme, makeStyles } from \"@material-ui/core\";\nimport { EditableCallbackParams } from \"ag-grid-community\";\nimport React from \"react\";\n\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\nimport LockOutlinedIcon from \"@material-ui/icons/LockOutlined\";\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 buttonsCellRenderer = (params: any) => {\n\tconst classes = useStyles();\n\n\tconst {\n\t\tsetUserId,\n\t\tsetOpenModalEditDataUser,\n\t\tsetOpenModalDeleteUser,\n\t\tsetOpenModalChangePasswordd,\n\t\tshowContextMenu,\n\t} = params;\n\n\treturn (\n\t\t<Grid\n\t\t\tcontainer\n\t\t\tstyle={{\n\t\t\t\theight: \"100%\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\talignItems: \"center\",\n\t\t\t}}\n\t\t\tclassName={classes.buttons}\n\t\t>\n\t\t\t<Grid\n\t\t\t\titem\n\t\t\t\txs={12}\n\t\t\t\tmd={12}\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}}\n\t\t\t>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\tsetUserId(params.data.UserId);\n\t\t\t\t\t\t\tsetOpenModalChangePasswordd(true);\n\t\t\t\t\t\t})();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<LockOutlinedIcon style={{ height: \"auto\" }} color=\"primary\" />\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\tsetUserId(params.data.UserId);\n\t\t\t\t\t\t\tsetOpenModalEditDataUser(true);\n\t\t\t\t\t\t})();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<EditIcon style={{ height: \"auto\" }} color=\"primary\" />\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\tsetUserId(params.data.UserId);\n\t\t\t\t\t\t\tsetOpenModalDeleteUser(true);\n\t\t\t\t\t\t})();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<DeleteIcon style={{ height: \"auto\" }} color=\"secondary\" />\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tstyle={{}}\n\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\tshowContextMenu(e, params.data, \"TableUsers\");\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<FormatListBulletedSharpIcon\n\t\t\t\t\t\tstyle={{ height: \"auto\" }}\n\t\t\t\t\t\tcolor=\"action\"\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n};\n","import { ColDef } from \"ag-grid-community\";\nimport { useUsersContext } from \"../../../context/UsersContext\";\nimport { buttonsCellRenderer } from \"./buttonsCellRenderer\";\n\ntype Props = {\n\tsetUserId: Function;\n\tsetOpenModalEditDataUser: Function;\n\tsetOpenModalDeleteUser: Function;\n\tsetOpenModalChangePasswordd: Function;\n\tshowContextMenu: Function;\n};\n\nexport const useTableData = ({\n\tsetUserId,\n\tsetOpenModalEditDataUser,\n\tsetOpenModalDeleteUser,\n\tsetOpenModalChangePasswordd,\n\tshowContextMenu,\n}: Props) => {\n\tconst { state } = useUsersContext();\n\tconst columnDefs: ColDef[] = [\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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tcellRenderer: buttonsCellRenderer,\n\t\t\tcellRendererParams: {\n\t\t\t\tsetUserId,\n\t\t\t\tsetOpenModalEditDataUser,\n\t\t\t\tsetOpenModalDeleteUser,\n\t\t\t\tsetOpenModalChangePasswordd,\n\t\t\t\tshowContextMenu,\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","import DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport LockOutlinedIcon from \"@material-ui/icons/LockOutlined\";\nimport PlaylistAddIcon from \"@material-ui/icons/PlaylistAdd\";\nimport React from \"react\";\nimport { MenuOptionType } from \"../../../../../../controls\";\nimport { User } from \"../../../models/User\";\n\ntype Props = {\n\tsetUserId: Function;\n\tsetShowEditModal: Function;\n\tsetShowDeleteModal: Function;\n\tsetShowCreateModal: Function;\n\tsetShowChangePasswordModal: Function;\n};\nexport const useUsersOptionsFunctions = ({\n\tsetUserId,\n\tsetShowEditModal,\n\tsetShowDeleteModal,\n\tsetShowCreateModal,\n\tsetShowChangePasswordModal,\n}: Props) => {\n\tconst getMenuOptions = (data: User) => {\n\t\tlet options: MenuOptionType[] = [];\n\t\tif (!data) {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"New User\",\n\t\t\t\t\tkey: \"new_user\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowCreateModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t} else {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"New User\",\n\t\t\t\t\tkey: \"new_user\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowCreateModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Edit User\",\n\t\t\t\t\tkey: \"edit_user\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetUserId(data.UserId);\n\t\t\t\t\t\tsetShowEditModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <EditIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Delete User\",\n\t\t\t\t\tkey: \"delete_user\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetUserId(data.UserId);\n\t\t\t\t\t\tsetShowDeleteModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <DeleteIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Change Password\",\n\t\t\t\t\tkey: \"change_password_user\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetUserId(data.UserId);\n\t\t\t\t\t\tsetShowChangePasswordModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <LockOutlinedIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t\treturn options;\n\t};\n\treturn {\n\t\tgetMenuOptions,\n\t};\n};\n","import {\n\tButton,\n\tGrid,\n\tPaper,\n\tTextField,\n\tTheme,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport {\n\tColDef,\n\tDefaultMenuItem,\n\tGetContextMenuItemsParams,\n\tGridApi,\n\tMenuItemDef,\n\tthemeMaterial,\n} from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport * as React from \"react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useContextMenuMESF } from \"../../../../../controls\";\nimport { LazyLoading } from \"../../../../../controls/LazyLoading/LazyLoading\";\nimport { ChangePassword } from \"../ChangePassword/ChangePassword\";\nimport { CreateUser } from \"../Create/CreateUser\";\nimport { DeleteUser } from \"../Delete/DeleteUser\";\nimport { EditUser } from \"../EditUser/EditUser\";\nimport { useTableData } from \"./customHooks/useTableData\";\nimport { useUsersOptionsFunctions } from \"./customHooks/useUsersOptionsFunctions\";\n\ntype Props = {\n\tgetUsersFromAPI: Function;\n\tisLoading: boolean;\n};\nexport const TableUsers = ({ getUsersFromAPI, isLoading }: Props) => {\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 [searchText, setSearchText] = useState(\"\");\n\n\tconst [userId, setUserId] = useState<number | null>(null);\n\tconst [gridApi, setGridApi] = useState<GridApi | null>(null);\n\n\tconst loadingOverlayComponent = useMemo<any>(() => {\n\t\treturn LazyLoading;\n\t}, []);\n\tconst { getMenuOptions } = useUsersOptionsFunctions({\n\t\tsetUserId,\n\t\tsetShowEditModal: setOpenModalEditDataUser,\n\t\tsetShowDeleteModal: setOpenModalDeleteUser,\n\t\tsetShowCreateModal: setOpenModalCreate,\n\t\tsetShowChangePasswordModal: setOpenModalChangePasswordd,\n\t});\n\tconst { showContextMenu, registerConfig } = useContextMenuMESF();\n\tconst { rows, columnDefs } = useTableData({\n\t\tsetUserId,\n\t\tsetOpenModalEditDataUser,\n\t\tsetOpenModalDeleteUser,\n\t\tsetOpenModalChangePasswordd,\n\t\tshowContextMenu,\n\t});\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 = (\n\t\tparams: GetContextMenuItemsParams,\n\t): (DefaultMenuItem | MenuItemDef)[] => {\n\t\tconst data = params.node?.data;\n\t\tparams.api.deselectAll();\n\t\tparams.node?.setSelected(true);\n\t\tshowContextMenu(event as any, data, \"TableUsers\");\n\t\treturn [];\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\tuseEffect(() => {\n\t\tregisterConfig({\n\t\t\tid: \"TableUsers\",\n\t\t\tgetOptions: getMenuOptions,\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (gridApi) {\n\t\t\tgridApi.setGridOption(\"quickFilterText\", searchText || \"\");\n\t\t}\n\t}, [searchText, gridApi]);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid container justifyContent=\"center\">\n\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t<Typography variant=\"h5\" style={{ fontWeight: 600 }}>\n\t\t\t\t\t\tUser Management\n\t\t\t\t\t</Typography>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t\t\t<Grid item container md={12} xs={12} spacing={1}>\n\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t<Paper>\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\tlabel={\"Search\"}\n\t\t\t\t\t\t\t\t\tvalue={searchText}\n\t\t\t\t\t\t\t\t\tonChange={(e) => setSearchText(e.target.value)}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\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<Grid item md={12} xs={12}>\n\t\t\t\t\t\t\t<Paper\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\theight: \"70vh\",\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<AgGridReact\n\t\t\t\t\t\t\t\t\tgridOptions={{\n\t\t\t\t\t\t\t\t\t\ttheme: themeMaterial,\n\t\t\t\t\t\t\t\t\t}}\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={34}\n\t\t\t\t\t\t\t\t\theaderHeight={34}\n\t\t\t\t\t\t\t\t\tloadingOverlayComponent={loadingOverlayComponent}\n\t\t\t\t\t\t\t\t\tanimateRows={true}\n\t\t\t\t\t\t\t\t\tgetContextMenuItems={getContextMenuItems}\n\t\t\t\t\t\t\t\t\tgetRowId={(params) => params.data.UserId}\n\t\t\t\t\t\t\t\t\trowSelection=\"single\"\n\t\t\t\t\t\t\t\t\tonRowDoubleClicked={(event) => {\n\t\t\t\t\t\t\t\t\t\tsetUserId(event.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\tonGridReady={(params) => setGridApi(params.api)}\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<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t\t<Grid item md={2} xs={12}>\n\t\t\t\t\t\t\t\t<Button\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\tonClick={() => setOpenModalCreate(!openModalCreate)}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tstyle={{ marginTop: \"10px\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tNew user\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</Grid>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<CreateUser\n\t\t\t\tshow={openModalCreate}\n\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\tsetOpenModalCreate(false);\n\t\t\t\t\tsetUserId(null);\n\t\t\t\t\tif (shouldUpdate) getUsersFromAPI();\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<EditUser\n\t\t\t\tshow={openModalEditDataUser}\n\t\t\t\tuserId={userId}\n\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\tsetOpenModalEditDataUser(false);\n\t\t\t\t\tsetUserId(null);\n\t\t\t\t\tif (shouldUpdate) getUsersFromAPI();\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<ChangePassword\n\t\t\t\tshow={openModalChangePassword}\n\t\t\t\tuserId={userId}\n\t\t\t\tonHide={(shouldUpdate) => {\n\t\t\t\t\tsetOpenModalChangePasswordd(false);\n\t\t\t\t\tsetUserId(null);\n\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\tgetUsersFromAPI();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<DeleteUser\n\t\t\t\tshow={openModalDeleteUser}\n\t\t\t\tuserId={userId}\n\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\tsetOpenModalDeleteUser(false);\n\t\t\t\t\tsetUserId(null);\n\t\t\t\t\tif (shouldUpdate) getUsersFromAPI();\n\t\t\t\t}}\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import { Grid } from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../components/modals/error-modal\";\nimport { TableUsers } from \"./components/UsersDataTable/TableUsers\";\nimport { useUsersContext } from \"./context/UsersContext\";\nimport { getUsers } from \"./repositories/UsersRepository\";\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 xs={12}>\n\t\t\t\t<TableUsers isLoading={isLoading} getUsersFromAPI={getUsersFromAPI} />\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 { Users } from \"./UsersPage\";\nimport { UsersProvider } from \"./context/UsersContext\";\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 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\treturn Promise.reject(error);\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\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\ttry {\n\t\t\t\treturn await axios.request(originalConfig);\n\t\t\t} catch (innerError) {\n\t\t\t\tif (isUnauthorizedError(innerError)) {\n\t\t\t\t\treturn Promise.reject(innerError);\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(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\treturn Promise.reject(err);\n\t\t} finally {\n\t\t\trefreshingFunc = undefined;\n\t\t}\n\t},\n);\n","import moment from \"moment\";\nimport { getTokenFromLS } from \"../account\";\nimport { Configuration } from \"../configuration\";\nimport { axiosInstance } from \"../context/axiosInstance\";\nimport { FetchError, getError } from \"../utils\";\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 = \"\") {\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\tconst curatedMethod = procedure.replace(/[\\[\\]]/g, \"\"); // remove brackets from method name\n\t\ttry {\n\t\t\tconst response = await axiosInstance.post(\n\t\t\t\t`/action/${curatedMethod}`,\n\t\t\t\tdata,\n\t\t\t\t{\n\t\t\t\t\tparams: data.parameters.map((param: any) => {\n\t\t\t\t\t\tlet mapKey = param.name.replace(\"@\", \"\");\n\t\t\t\t\t\tif (typeof param.value == \"string\" && param.value.length > 100) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t[mapKey]: \"__truncated__\",\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t[mapKey]: param.value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn { ok: true, data: response.data };\n\t\t} catch (err: any) {\n\t\t\tthis.hasErrors = true;\n\t\t\tthis.error = err;\n\t\t\treturn { ok: false, message: getError(err) };\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 = \"\",\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 = \"\",\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, type 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 {\n\tBox,\n\tButton,\n\tCheckbox,\n\tFormControlLabel,\n\tGrid,\n\tPaper,\n\tTextField,\n\tTypography,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { get } from \"lodash-es\";\nimport React, { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../components/modals/error-modal\";\nimport { getUser } from \"../repositorie/MESF-frontend-Repositorie\";\nimport { ChangePassword } from \"./changePassword\";\nimport { useToken } from \"./useToken\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\tpadding: theme.spacing(3),\n\t},\n\tpaper: {\n\t\tpadding: theme.spacing(3),\n\t\tmarginBottom: theme.spacing(3),\n\t},\n\ttitle: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tformRow: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tchangePasswordButton: {\n\t\tmarginLeft: theme.spacing(2),\n\t},\n\ttextArea: {\n\t\twidth: \"100%\",\n\t\theight: \"50vh\",\n\t\tpadding: theme.spacing(1),\n\t\tfontFamily: \"inherit\",\n\t\tborder: `1px solid ${theme.palette.divider}`,\n\t\tborderRadius: 4,\n\t\tbackgroundColor: theme.palette.action.disabledBackground,\n\t},\n\tsuccessMessage: {\n\t\tpadding: theme.spacing(1),\n\t\tmarginBottom: theme.spacing(2),\n\t\tbackgroundColor: theme.palette.success.light,\n\t\tcolor: theme.palette.success.contrastText,\n\t\tborderRadius: 4,\n\t},\n}));\n\nexport const Account = () => {\n\tconst classes = useStyles();\n\tconst [error, setError] = useState(\"\");\n\tconst [userLastName, setUserLastName] = useState<string>(\"\");\n\tconst [userFirstName, setUserFirstName] = useState<string>(\"\");\n\tconst [user] = useState(() => {\n\t\tconst sessionData = localStorage.getItem(\"userMESData\");\n\t\treturn JSON.parse(sessionData || \"{}\");\n\t});\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\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\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(user.UserId, user.UserName);\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(() => {\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) {\n\t\t\tcloseMessage();\n\t\t}\n\t}, [showSuccess]);\n\n\treturn (\n\t\t<Box className={classes.root}>\n\t\t\t<Paper className={classes.paper}>\n\t\t\t\t<Typography variant=\"h5\" component=\"h1\" className={classes.title}>\n\t\t\t\t\tAccount Configuration\n\t\t\t\t</Typography>\n\n\t\t\t\t{showSuccess && (\n\t\t\t\t\t<Box className={classes.successMessage}>\n\t\t\t\t\t\t<Typography>{successMessage}</Typography>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\n\t\t\t\t<Grid container spacing={3}>\n\t\t\t\t\t<Grid item xs={12} md={6}>\n\t\t\t\t\t\t<Box display=\"flex\" alignItems=\"center\" className={classes.formRow}>\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\tlabel=\"Username\"\n\t\t\t\t\t\t\t\tvalue={userName}\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tfullWidth\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\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{/*\tclassName={classes.changePasswordButton}*/}\n\t\t\t\t\t\t\t{/*\tonClick={changePassword}*/}\n\t\t\t\t\t\t\t{/*\tstartIcon={<i className=\"fas fa-lock\"></i>}*/}\n\t\t\t\t\t\t\t{/*>*/}\n\t\t\t\t\t\t\t{/*\tChange Password*/}\n\t\t\t\t\t\t\t{/*</Button>*/}\n\t\t\t\t\t\t\t{/*<ChangePassword*/}\n\t\t\t\t\t\t\t{/*\topen={open}*/}\n\t\t\t\t\t\t\t{/*\tonClose={closeChangePassword}*/}\n\t\t\t\t\t\t\t{/*\tuserId={userId}*/}\n\t\t\t\t\t\t\t{/*/>*/}\n\t\t\t\t\t\t</Box>\n\n\t\t\t\t\t\t<Box className={classes.formRow}>\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\tlabel=\"Name\"\n\t\t\t\t\t\t\t\tvalue={userFirstName}\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tfullWidth\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</Box>\n\n\t\t\t\t\t\t<Box className={classes.formRow}>\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\tlabel=\"Lastname\"\n\t\t\t\t\t\t\t\tvalue={userLastName}\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tfullWidth\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</Box>\n\n\t\t\t\t\t\t<Box className={classes.formRow}>\n\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\tcontrol={<Checkbox checked={userIsDomain} disabled />}\n\t\t\t\t\t\t\t\tlabel=\"Domain User\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Box>\n\n\t\t\t\t\t\t<Box className={classes.formRow}>\n\t\t\t\t\t\t\t<FormControlLabel\n\t\t\t\t\t\t\t\tcontrol={<Checkbox checked={userIsActive} disabled />}\n\t\t\t\t\t\t\t\tlabel=\"Active\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\n\t\t\t\t<Grid container spacing={3}>\n\t\t\t\t\t<Grid item xs={12} md={4}>\n\t\t\t\t\t\t<Typography variant=\"h6\" gutterBottom>\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={classes.textArea}\n\t\t\t\t\t\t\tplaceholder={userProfiles}\n\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\tvalue={userProfiles}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid>\n\n\t\t\t\t\t<Grid item xs={12} md={4}>\n\t\t\t\t\t\t<Typography variant=\"h6\" gutterBottom>\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={classes.textArea}\n\t\t\t\t\t\t\tplaceholder={userPermissions}\n\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\tvalue={userPermissions}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid>\n\n\t\t\t\t\t<Grid item xs={12} md={4}>\n\t\t\t\t\t\t<Typography variant=\"h6\" gutterBottom>\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={classes.textArea}\n\t\t\t\t\t\t\tplaceholder={userProcedures}\n\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\tvalue={userProcedures}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Grid>\n\t\t\t</Paper>\n\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</Box>\n\t);\n};\n","import {\n\tButton,\n\tCollapse,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\tDialogTitle,\n} from \"@material-ui/core\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport React from \"react\";\nimport { SimplePasswordControl } from \"../controls\";\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\tconst 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//effects\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\n\treturn (\n\t\t<Dialog\n\t\t\tonClose={() => {}}\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<Collapse in={showError}>\n\t\t\t\t\t<Alert\n\t\t\t\t\t\tseverity=\"error\"\n\t\t\t\t\t\taction={\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\taria-label=\"close\"\n\t\t\t\t\t\t\t\tcolor=\"inherit\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tsetShowError(false);\n\t\t\t\t\t\t\t\t\tsetError(undefined);\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<CloseIcon fontSize=\"inherit\" />\n\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<strong>There was an error</strong>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{error === undefined\n\t\t\t\t\t\t\t\t? \"There was an error\"\n\t\t\t\t\t\t\t\t: error.internalError.message === undefined\n\t\t\t\t\t\t\t\t\t? error.internalError\n\t\t\t\t\t\t\t\t\t: error.internalError.message}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</Alert>\n\t\t\t\t</Collapse>\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/>\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/>\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 { HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\nimport { useEffect } from \"react\";\n\ntype Props = {\n\tonReceiveMessage: (author: string, message: string) => void;\n};\nexport const useMesfRealtime = ({ onReceiveMessage }: Props) => {\n\tuseEffect(() => {\n\t\tconst connection = new HubConnectionBuilder()\n\t\t\t.withUrl(\"/ws\")\n\t\t\t.withAutomaticReconnect()\n\t\t\t.configureLogging(LogLevel.Information)\n\t\t\t.build();\n\n\t\tconnection\n\t\t\t.start()\n\t\t\t.then(() => {\n\t\t\t\tconsole.log(\"Connection started\");\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tconsole.log(\"Error while starting connection: \" + err);\n\t\t\t});\n\n\t\tconnection.on(\"ReceiveMessage\", (author, message) => {\n\t\t\tonReceiveMessage(author, message);\n\t\t});\n\n\t\treturn () => {\n\t\t\tconnection\n\t\t\t\t.stop()\n\t\t\t\t.then(() => {\n\t\t\t\t\tconsole.log(\"Connection stopped\");\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\tconsole.log(\"Error while stopping connection: \" + err);\n\t\t\t\t});\n\t\t};\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\tpermissions: string[];\n} = {\n\tuserLastName: \"\",\n\tuserId: null,\n\tdefaultAreaId: null,\n\tdefaultAreaName: \"\",\n\tuserLogged: false,\n\tpermissions: [],\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\tsetPermissions(state, { payload }) {\n\t\t\tstate.permissions = payload;\n\t\t},\n\t},\n});\n","import { CircularProgress } from \"@material-ui/core\";\nimport { get } from \"lodash-es\";\nimport {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { getUserPermissionsFromAPI } from \"../configuration/pages/users/repositories/UsersRepository\";\nimport { useMesfRealtime } from \"../hooks/useMesfRealtime\";\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 useHasPermission = () => {\n\tconst { state } = useUserContext();\n\n\treturn (permission: string) => {\n\t\treturn state.permissions.some((p) => p === permission);\n\t};\n};\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\tconst [permissionsLoaded, setPermissionsLoaded] = useState(false);\n\n\tconst getUserId = () => {\n\t\tconst sessionData = localStorage.getItem(\"userMESData\") || \"{}\";\n\t\tconst userData = JSON.parse(sessionData);\n\t\treturn get(userData, \"id\", null);\n\t};\n\n\tconst getUserPermissions = async () => {\n\t\tlet userId = getUserId();\n\t\tif (userId) {\n\t\t\ttry {\n\t\t\t\tconst resp = (await getUserPermissionsFromAPI({\n\t\t\t\t\tUserId: userId,\n\t\t\t\t})) as {\n\t\t\t\t\tUserId: number;\n\t\t\t\t\tUserName: string;\n\t\t\t\t\tProfilesId: string;\n\t\t\t\t\tPermissions: string;\n\t\t\t\t};\n\n\t\t\t\tif (resp && resp.Permissions) {\n\t\t\t\t\tlet permissionsArray = resp.Permissions.split(\",\");\n\t\t\t\t\tactions.setPermissions(permissionsArray);\n\t\t\t\t\tsetPermissionsLoaded(true);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Failed to load permissions:\", error);\n\t\t\t}\n\t\t}\n\t};\n\n\tlet userId = getUserId();\n\n\tuseEffect(() => {\n\t\tgetUserPermissions();\n\t}, [userId]);\n\n\tuseMesfRealtime({\n\t\tonReceiveMessage: (author, message) => {\n\t\t\tif (message === \"SEC.GetPermissions\") {\n\t\t\t\tgetUserPermissions();\n\t\t\t}\n\t\t},\n\t});\n\n\tif (!permissionsLoaded) {\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: \"100vh\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularProgress />\n\t\t\t</div>\n\t\t);\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 { useState } from \"react\";\nimport { axiosInstance } from \"../context/axiosInstance\";\nimport { useUserContext } from \"../context/userContext\";\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 React, { useContext, useEffect, useRef } from \"react\";\nimport { Login } from \"./login\";\nimport { useToken } from \"./useToken\";\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 { Button, Collapse, makeStyles } from \"@material-ui/core\";\nimport PersonOutlineIcon from \"@material-ui/icons/PersonOutline\";\nimport { Alert } from \"@material-ui/lab\";\nimport React from \"react\";\nimport { MESApiService } from \"../../services\";\nimport { AuthContext } from \"../AuthProvider\";\n\nconst useStyles = makeStyles((theme) => ({\n\tbutton: {\n\t\tpadding: theme.spacing(1.2),\n\t\tfontWeight: 600,\n\t\ttransition: \"all 0.3s ease\",\n\t\t\"&:hover\": {\n\t\t\ttransform: \"translateY(-2px)\",\n\t\t\tboxShadow: theme.shadows[4],\n\t\t},\n\t},\n\ticon: {\n\t\tmarginRight: theme.spacing(1),\n\t},\n}));\n\nexport const LoginAsGuest = () => {\n\tconst classes = useStyles();\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<Collapse in={showError}>\n\t\t\t\t<Alert\n\t\t\t\t\tseverity=\"error\"\n\t\t\t\t\tvariant=\"filled\"\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{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</Collapse>\n\t\t\t<Button\n\t\t\t\tfullWidth\n\t\t\t\tvariant=\"contained\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tclassName={classes.button}\n\t\t\t\tstyle={{ backgroundColor: \"#479DC4\", color: \"white\" }}\n\t\t\t\trole=\"button\"\n\t\t\t\tonClick={loginAsGuest}\n\t\t\t\tstartIcon={<PersonOutlineIcon className={classes.icon} />}\n\t\t\t>\n\t\t\t\tGuest Access\n\t\t\t</Button>\n\t\t</>\n\t);\n};\n","import {\n\tBox,\n\tButton,\n\tIconButton,\n\tInputAdornment,\n\tPaper,\n\tSnackbar,\n\tTextField,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport PersonIcon from \"@material-ui/icons/Person\";\nimport { Alert } from \"@material-ui/lab\";\nimport React, { useState } from \"react\";\nimport { MESApiService } from \"../../services\";\nimport { AuthContext } from \"../AuthProvider\";\n\nconst useStyles = makeStyles((theme) => ({\n\tform: {\n\t\twidth: \"100%\",\n\t\tmarginTop: theme.spacing(1),\n\t},\n\ttextField: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tsubmitButton: {\n\t\tmargin: theme.spacing(2, 0),\n\t\tpadding: theme.spacing(1.2),\n\t\tfontWeight: 600,\n\t\ttransition: \"all 0.3s ease\",\n\t\t\"&:hover\": {\n\t\t\ttransform: \"translateY(-2px)\",\n\t\t\tboxShadow: theme.shadows[4],\n\t\t},\n\t},\n\ticon: {\n\t\tcolor: theme.palette.text.secondary,\n\t},\n}));\n\nexport const LoginWithEmailAndPassword = () => {\n\tconst classes = useStyles();\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\tconst handleCloseError = () => {\n\t\tsetShowError(false);\n\t\tsetError(undefined);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<form onSubmit={login} className={classes.form}>\n\t\t\t\t<TextField\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tmargin=\"normal\"\n\t\t\t\t\trequired\n\t\t\t\t\tfullWidth\n\t\t\t\t\tid=\"txtUserName\"\n\t\t\t\t\tlabel=\"Username\"\n\t\t\t\t\tname=\"userName\"\n\t\t\t\t\tautoComplete=\"username\"\n\t\t\t\t\tautoFocus\n\t\t\t\t\tclassName={classes.textField}\n\t\t\t\t\tvalue={username}\n\t\t\t\t\tonChange={(e) => setUserName(e.target.value)}\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t<InputAdornment position=\"start\">\n\t\t\t\t\t\t\t\t<PersonIcon className={classes.icon} />\n\t\t\t\t\t\t\t</InputAdornment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<TextField\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tmargin=\"normal\"\n\t\t\t\t\trequired\n\t\t\t\t\tfullWidth\n\t\t\t\t\tname=\"password\"\n\t\t\t\t\tlabel=\"Password\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\tid=\"txtPassword\"\n\t\t\t\t\tautoComplete=\"current-password\"\n\t\t\t\t\tclassName={classes.textField}\n\t\t\t\t\tvalue={password}\n\t\t\t\t\tonChange={(e) => setPassword(e.target.value)}\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t<InputAdornment position=\"start\">\n\t\t\t\t\t\t\t\t<LockIcon className={classes.icon} />\n\t\t\t\t\t\t\t</InputAdornment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\tfullWidth\n\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tclassName={classes.submitButton}\n\t\t\t\t\tdisabled={password.length === 0 || username.length === 0}\n\t\t\t\t>\n\t\t\t\t\tLogin\n\t\t\t\t</Button>\n\t\t\t\t<Snackbar\n\t\t\t\t\topen={showError}\n\t\t\t\t\tautoHideDuration={6000}\n\t\t\t\t\tonClose={handleCloseError}\n\t\t\t\t\tanchorOrigin={{ vertical: \"top\", horizontal: \"center\" }}\n\t\t\t\t>\n\t\t\t\t\t<Alert\n\t\t\t\t\t\tseverity=\"error\"\n\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\tonClose={handleCloseError}\n\t\t\t\t\t\taction={\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\taria-label=\"close\"\n\t\t\t\t\t\t\t\tcolor=\"inherit\"\n\t\t\t\t\t\t\t\tonClick={handleCloseError}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<CloseIcon fontSize=\"small\" />\n\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Typography variant=\"subtitle2\" style={{ fontWeight: \"bold\" }}>\n\t\t\t\t\t\t\tBad credentials\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t<Typography variant=\"body2\">\n\t\t\t\t\t\t\t{error === undefined\n\t\t\t\t\t\t\t\t? \"There was an error\"\n\t\t\t\t\t\t\t\t: error.internalError.message === undefined\n\t\t\t\t\t\t\t\t\t? error.internalError\n\t\t\t\t\t\t\t\t\t: error.internalError.message}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Alert>\n\t\t\t\t</Snackbar>\n\t\t\t</form>\n\t\t</>\n\t);\n};\n","import React from \"react\";\n\nexport const WindowsLogo = ({ color = \"white\" }: { color: string }) => (\n\t<svg\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth={50}\n\t\theight={50}\n\t\tviewBox=\"0 0 30 30\"\n\t>\n\t\t<path\n\t\t\tcolor={color}\n\t\t\td=\"M12 16H3v7.75l9 1.238zm0-11L3 6.25V14h9zm2-.25V14h13V3zM14 16v9.25L27 27V16z\"\n\t\t/>\n\t</svg>\n);\n","import {\n\tBox,\n\tButton,\n\tIconButton,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { Alert } from \"@material-ui/lab\";\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { MESApiService } from \"../../services\";\nimport { AuthContext } from \"../AuthProvider\";\nimport { WindowsLogo } from \"./windows\";\n\nconst useStyles = makeStyles((theme) => ({\n\tbutton: {\n\t\tpadding: theme.spacing(1.2),\n\t\tfontWeight: 600,\n\t\ttransition: \"all 0.3s ease\",\n\t\t\"&:hover\": {\n\t\t\ttransform: \"translateY(-2px)\",\n\t\t\tboxShadow: theme.shadows[4],\n\t\t},\n\t},\n\ticon: {\n\t\tmarginRight: theme.spacing(1),\n\t},\n\talertContainer: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n}));\n\nexport const LoginWithWindowsAuthentication = () => {\n\tconst classes = useStyles();\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\tconst handleCloseError = () => {\n\t\tsetShowError(false);\n\t\tsetError(undefined);\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{showError && (\n\t\t\t\t\t<Box className={classes.alertContainer}>\n\t\t\t\t\t\t<Alert\n\t\t\t\t\t\t\tseverity=\"error\"\n\t\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\t\tonClose={handleCloseError}\n\t\t\t\t\t\t\taction={\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\taria-label=\"close\"\n\t\t\t\t\t\t\t\t\tcolor=\"inherit\"\n\t\t\t\t\t\t\t\t\tonClick={handleCloseError}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CloseIcon fontSize=\"small\" />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Typography variant=\"subtitle2\" style={{ fontWeight: \"bold\" }}>\n\t\t\t\t\t\t\t\tBad credentials\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t<Typography variant=\"body2\">{error}</Typography>\n\t\t\t\t\t\t</Alert>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t\t<Button\n\t\t\t\t\tfullWidth\n\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tclassName={classes.button}\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\tonClick={login}\n\t\t\t\t\tstartIcon={<WindowsLogo color={\"red\"} />}\n\t\t\t\t>\n\t\t\t\t\tWindows Authentication\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\treturn null;\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 { AuthenticationResult } from \"@azure/msal-browser\";\nimport { useMsal } from \"@azure/msal-react\";\nimport { Button, makeStyles } from \"@material-ui/core\";\nimport CloudIcon from \"@material-ui/icons/Cloud\";\nimport React, { type FormEvent, type FormEventHandler } from \"react\";\nimport { MESApiService } from \"../../../services\";\nimport { AuthContext } from \"../../AuthProvider\";\nimport { loginRequest } from \"./AzureADAuthConfig\";\n\nconst useStyles = makeStyles((theme) => ({\n\tbutton: {\n\t\tpadding: theme.spacing(1.2),\n\t\tfontWeight: 600,\n\t\ttransition: \"all 0.3s ease\",\n\t\t\"&:hover\": {\n\t\t\ttransform: \"translateY(-2px)\",\n\t\t\tboxShadow: theme.shadows[4],\n\t\t},\n\t},\n\ticon: {\n\t\tmarginRight: theme.spacing(1),\n\t},\n}));\n\nexport const LoginWithAzureADForm = () => {\n\tconst classes = useStyles();\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<Button\n\t\t\t\tfullWidth\n\t\t\t\tvariant=\"contained\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tclassName={classes.button}\n\t\t\t\tstyle={{ backgroundColor: \"#479DC4\", color: \"white\" }}\n\t\t\t\ttype=\"submit\"\n\t\t\t\tstartIcon={<CloudIcon className={classes.icon} />}\n\t\t\t>\n\t\t\t\tLogin with Azure AD\n\t\t\t</Button>\n\t\t</form>\n\t);\n};\n","import { PublicClientApplication } from \"@azure/msal-browser\";\nimport { MsalProvider } from \"@azure/msal-react\";\nimport React from \"react\";\nimport { AzureConfig } from \"../../AuthProvider\";\nimport { msalConfig } from \"./AzureADAuthConfig\";\nimport { LoginWithAzureADForm } from \"./LoginWithAzureADForm\";\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 {\n\tAppBar,\n\tBox,\n\tContainer,\n\tCssBaseline,\n\tGrid,\n\tPaper,\n\tSnackbar,\n\tToolbar,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport { get } from \"lodash-es\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { LoginAsGuest } from \"./login-strategies/LoginAsGuest\";\nimport { LoginWithEmailAndPassword } from \"./login-strategies/LoginWithEmailAndPassword\";\nimport { LoginWithWindowsAuthentication } from \"./login-strategies/LoginWithWindowsAuthentication\";\nimport { LoginWithAzureAD } from \"./login-strategies/azure-ad/LoginWithAzureAD\";\nimport { LoginParams } from \"./models/login.models\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\tminHeight: \"100vh\",\n\t\tbackgroundImage: \"linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%)\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t},\n\tappBar: {\n\t\tbackgroundColor: \"#3f51b5\",\n\t\tboxShadow: \"0 4px 20px 0 rgba(0, 0, 0, 0.1)\",\n\t},\n\tbrand: {\n\t\ttextDecoration: \"none\",\n\t\tcolor: \"white\",\n\t\tfontWeight: \"bold\",\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t},\n\tbrandText: {\n\t\tmarginLeft: theme.spacing(1),\n\t\tfontWeight: 700,\n\t\tletter: \"1px\",\n\t},\n\tcontainer: {\n\t\tpadding: theme.spacing(4),\n\t\tflex: 1,\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\tloginCard: {\n\t\tmargin: `${theme.spacing(5)}px auto`,\n\t\tmaxWidth: 800,\n\t\tborderRadius: theme.spacing(1),\n\t\toverflow: \"hidden\",\n\t\tboxShadow: \"0 10px 30px 0 rgba(0, 0, 0, 0.1)\",\n\t},\n\tcardHeader: {\n\t\ttextAlign: \"center\",\n\t\tpadding: theme.spacing(3),\n\t\tfontWeight: \"bold\",\n\t\tbackgroundColor: \"#f5f5f5\",\n\t\tborderBottom: \"1px solid #eaeaea\",\n\t},\n\tloginPaper: {\n\t\tpadding: theme.spacing(5),\n\t\tmargin: theme.spacing(3),\n\t\tborderRadius: theme.spacing(1),\n\t\tboxShadow: \"0 5px 15px 0 rgba(0, 0, 0, 0.05)\",\n\t\ttransition: \"all 0.3s ease\",\n\t\t\"&:hover\": {\n\t\t\tboxShadow: \"0 8px 25px 0 rgba(0, 0, 0, 0.1)\",\n\t\t\ttransform: \"translateY(-5px)\",\n\t\t},\n\t},\n\torDivider: {\n\t\ttextAlign: \"center\",\n\t\tfontWeight: \"bold\",\n\t\tcolor: theme.palette.text.secondary,\n\t\tmargin: theme.spacing(2, 0),\n\t},\n\trightSidePaper: {\n\t\tpadding: theme.spacing(5),\n\t\tmargin: theme.spacing(3),\n\t\tminHeight: 248,\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tjustifyContent: \"space-evenly\",\n\t\tborderRadius: theme.spacing(1),\n\t\tboxShadow: \"0 5px 15px 0 rgba(0, 0, 0, 0.05)\",\n\t\ttransition: \"all 0.3s ease\",\n\t\t\"&:hover\": {\n\t\t\tboxShadow: \"0 8px 25px 0 rgba(0, 0, 0, 0.1)\",\n\t\t\ttransform: \"translateY(-5px)\",\n\t\t},\n\t},\n}));\n\nexport function Login({ authConfig }: LoginParams) {\n\tconst classes = useStyles();\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<div className={classes.root}>\n\t\t\t<CssBaseline />\n\t\t\t<AppBar position=\"static\" className={classes.appBar}>\n\t\t\t\t<Toolbar>\n\t\t\t\t\t<Typography variant=\"h6\">\n\t\t\t\t\t\t<a href=\"/\" className={classes.brand}>\n\t\t\t\t\t\t\t<Box component=\"span\" className={classes.brandText}>\n\t\t\t\t\t\t\t\tMESF\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</Typography>\n\t\t\t\t</Toolbar>\n\t\t\t</AppBar>\n\n\t\t\t<Container className={classes.container}>\n\t\t\t\t<Paper elevation={3} className={classes.loginCard}>\n\t\t\t\t\t<div className={classes.cardHeader}>\n\t\t\t\t\t\t<Typography variant=\"h5\">Welcome Back</Typography>\n\t\t\t\t\t\t<Typography variant=\"body2\" color=\"textSecondary\">\n\t\t\t\t\t\t\tPlease sign in to your account\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\tspacing={2}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!useAzureAD && !guestIsEnabled && !useWindowsAuth ? (\n\t\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t<Paper elevation={0} className={classes.loginPaper}>\n\t\t\t\t\t\t\t\t\t{useEmailAndPassword && <LoginWithEmailAndPassword />}\n\t\t\t\t\t\t\t\t</Paper>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t<Paper elevation={0} className={classes.loginPaper}>\n\t\t\t\t\t\t\t\t\t\t{useEmailAndPassword && <LoginWithEmailAndPassword />}\n\t\t\t\t\t\t\t\t\t</Paper>\n\t\t\t\t\t\t\t\t</Grid>\n\n\t\t\t\t\t\t\t\t<Grid item md={6} xs={12}>\n\t\t\t\t\t\t\t\t\t<Paper elevation={0} className={classes.rightSidePaper}>\n\t\t\t\t\t\t\t\t\t\t<Box display=\"flex\" flexDirection=\"column\">\n\t\t\t\t\t\t\t\t\t\t\t<LoginWithWindowsAuthentication />\n\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<LoginWithAzureAD config={authConfig.AzureConfig} />\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{guestIsEnabled && <LoginAsGuest />}\n\t\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t</Paper>\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</Grid>\n\t\t\t\t</Paper>\n\t\t\t</Container>\n\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\tanchorOrigin={{ vertical: \"top\", horizontal: \"center\" }}\n\t\t\t>\n\t\t\t\t<Alert onClose={handleClose} severity=\"info\" variant=\"filled\">\n\t\t\t\t\t{message}\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</div>\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, { createContext, type ReactNode } from \"react\";\nimport { ConfigurationsType } from \"./configurationMenu\";\n\nconst RouterContext = createContext<ReactNode>(() => <></>);\nconst ConfigurationContext = createContext<ConfigurationsType>([\n\t[],\n\t() => <></>,\n]);\nconst NavbarContext = createContext<ReactNode>(() => <></>);\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\";\nimport { TimeService } from \"../services/TimeService\";\n\nexport type SettingModel = { SettingName: string; Value: string };\n\ntype SettingsMap = {\n\t[key: string]: any;\n};\nconst UTLSettingsInitialState: {\n\tserverTimeZone: string;\n\tsettings: SettingsMap;\n} = {\n\tserverTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n\tsettings: {},\n};\n\nexport const UTLSettingsReducer = createSlice({\n\tname: \"__\",\n\tinitialState: UTLSettingsInitialState,\n\treducers: {\n\t\tsetServerTimeZone(state, { payload }) {\n\t\t\tstate.serverTimeZone = payload;\n\t\t},\n\t\tsetSetting(state, { payload }) {\n\t\t\tstate.settings[payload.key] = payload.value;\n\t\t},\n\t\tinitSettings(state, { payload }) {\n\t\t\tstate.settings = (payload as SettingModel[]).reduce((acc, cur) => {\n\t\t\t\tif (cur.SettingName.trim() === \"TimeZone\") {\n\t\t\t\t\tconst timeService: TimeService = TimeService.getInstance();\n\t\t\t\t\ttimeService.setTimeZone(cur.Value);\n\t\t\t\t}\n\n\t\t\t\tacc[cur.SettingName.trim()] = cur.Value;\n\t\t\t\treturn acc;\n\t\t\t}, {} as SettingsMap);\n\t\t},\n\t},\n});\n","import {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} 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 { SettingModel } from \"../reducers/UTLSettingsReducer\";\nimport { getUTLSettings } from \"../repositorie/MESF-frontend-Repositorie\";\n\nexport const useSearchUTLSettings = ({\n\tonError,\n}: { onError: (err: string) => void }) => {\n\tconst {\n\t\tactions: { initSettings },\n\t} = useUTLSettingsContext();\n\n\tconst searchUTLSettings = async () => {\n\t\tconst res = await getUTLSettings();\n\t\tif (res.ok) {\n\t\t\tconst settings = get(res, \"data.tables[0].rows\", []) as SettingModel[];\n\t\t\tinitSettings(settings);\n\t\t} else {\n\t\t\tonError(res.message);\n\t\t}\n\t};\n\treturn { searchUTLSettings };\n};\n","import {\n\tButton,\n\tMenu,\n\tMenuItem,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\nimport React, { useState, useEffect } from \"react\";\nimport { useToken } from \"../../account\";\nimport { dxtToLocalServerTime } from \"../../services\";\n\nconst useStyles = makeStyles((theme) => ({\n\tcontainer: {\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tcolor: \"white\",\n\t},\n\ttimeDisplay: {\n\t\tmarginRight: theme.spacing(2),\n\t\tcolor: \"white\",\n\t},\n\tuserButton: {\n\t\tmarginLeft: theme.spacing(1),\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tcolor: \"white\",\n\t},\n\tuserIcon: {\n\t\tmarginRight: theme.spacing(1),\n\t\tcolor: \"white\",\n\t},\n}));\n\ninterface TimeAndUserMenuProps {\n\tclassName?: string;\n}\n\nexport const TimeAndUserMenu: React.FC<TimeAndUserMenuProps> = ({\n\tclassName,\n}) => {\n\tconst classes = useStyles();\n\tconst { getUserName } = useToken();\n\tconst [userName] = useState(getUserName());\n\tconst [date, setDate] = useState(new Date());\n\tconst [userMenuAnchorEl, setUserMenuAnchorEl] = useState<null | HTMLElement>(\n\t\tnull,\n\t);\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\tconst handleUserMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\n\t\tsetUserMenuAnchorEl(event.currentTarget);\n\t};\n\n\tconst handleUserMenuClose = () => {\n\t\tsetUserMenuAnchorEl(null);\n\t};\n\n\treturn (\n\t\t<div className={`${classes.container} ${className || \"\"}`}>\n\t\t\t<Typography variant=\"body2\" className={classes.timeDisplay}>\n\t\t\t\t{dxtToLocalServerTime(date, \"HH:mm:ss z\")}\n\t\t\t</Typography>\n\n\t\t\t<Button\n\t\t\t\tclassName={classes.userButton}\n\t\t\t\tonClick={handleUserMenuOpen}\n\t\t\t\tcolor=\"inherit\"\n\t\t\t>\n\t\t\t\t<AccountCircleIcon className={classes.userIcon} />\n\t\t\t\t{userName}\n\t\t\t</Button>\n\n\t\t\t<Menu\n\t\t\t\tid=\"user-menu\"\n\t\t\t\tanchorEl={userMenuAnchorEl}\n\t\t\t\tkeepMounted\n\t\t\t\topen={Boolean(userMenuAnchorEl)}\n\t\t\t\tonClose={handleUserMenuClose}\n\t\t\t>\n\t\t\t\t<MenuItem component=\"a\" href=\"account\">\n\t\t\t\t\tAccount\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem component=\"a\" href=\"logout\">\n\t\t\t\t\tLogout\n\t\t\t\t</MenuItem>\n\t\t\t</Menu>\n\t\t</div>\n\t);\n};\n","import React, { lazy, Suspense, useContext, useEffect, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport {\n\tAppBar,\n\tDrawer,\n\tHidden,\n\tIconButton,\n\tToolbar,\n\tTooltip,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport SettingsIcon from \"@material-ui/icons/Settings\";\nimport ShowChartIcon from \"@material-ui/icons/ShowChart\";\nimport { useHasPermission, useUserContext } from \"../../context/userContext\";\nimport { NavbarContext } from \"../../globalContext\";\nimport { useSearchAssets } from \"../../hooks/useSearchAssets\";\nimport { useSearchUTLSettings } from \"../../hooks/useSearchUTLSetting\";\nimport { ErrorModal } from \"../modals/error-modal\";\nimport { TimeAndUserMenu } from \"./TimeAndUserMenu\";\n\nconst AreaSelector = lazy(() =>\n\timport(\"./areaSelector/area-selector\").then((mod) => ({\n\t\tdefault: mod.AreaSelector,\n\t})),\n);\n\nconst useStyles = makeStyles((theme) => ({\n\tappBar: {\n\t\t// You can use dark or light variants of the primary color\n\t\t// backgroundColor: theme.palette.primary.dark, // Darker shade\n\t\tbackgroundColor: theme.palette.primary.main, // Lighter shade\n\t\t// Or use a specific opacity\n\t\t// backgroundColor: alpha(theme.palette.primary.main, 0.9), // 90% opacity\n\t},\n\ttitle: {\n\t\tflexGrow: 0,\n\t\tmarginRight: theme.spacing(2),\n\t\ttextDecoration: \"none\",\n\t\tcolor: \"white\",\n\t\ttextWrap: \"nowrap\",\n\t},\n\tnavContainer: {\n\t\tdisplay: \"flex\",\n\t\tflexGrow: 1,\n\t\t\"& a\": {\n\t\t\tcolor: \"white\",\n\t\t},\n\t},\n\trightItems: {\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tcolor: \"white\",\n\t},\n\n\tmenuButton: {\n\t\tmarginRight: theme.spacing(2),\n\t\tcolor: \"white\",\n\t},\n\tdrawer: {\n\t\twidth: 250,\n\t\t\"& .MuiDrawer-paper\": {\n\t\t\twidth: 250,\n\t\t\tmarginTop: 56, // Height of AppBar on mobile\n\t\t\theight: `calc(100% - 56px)`,\n\t\t\tbackgroundColor: theme.palette.grey[100], // Light grey background\n\t\t\t// Alternatively, you can use a specific color:\n\t\t\t// backgroundColor: '#f5f5f5',\n\t\t},\n\t},\n\n\tmobileNav: {\n\t\twidth: \"100%\",\n\t\tbackgroundColor: theme.palette.grey[100], // Light grey background to match\n\t\t// backgroundColor: '#f5f5f5', // If using a specific color above\n\t\t\"& a, & button\": {\n\t\t\twidth: \"100%\",\n\t\t\tjustifyContent: \"flex-start\",\n\t\t\tpadding: theme.spacing(1, 2),\n\t\t\tcolor: theme.palette.text.primary,\n\t\t},\n\t},\n}));\n\nexport default function Header({\n\tshowAreaSelector = false,\n\tshowTrendingsIcon = true,\n\tnavbarTitle = \"MESF\",\n}: {\n\tshowAreaSelector?: boolean;\n\tshowTrendingsIcon?: boolean;\n\tnavbarTitle?: string;\n}) {\n\tconst classes = useStyles();\n\tconst [error, setError] = useState(\"\");\n\tconst CustomNavbar: any = useContext(NavbarContext);\n\tconst { searchAssets } = useSearchAssets(setError);\n\tconst [drawerOpen, setDrawerOpen] = useState(false);\n\n\tconst [settingsIsReady, setSettingsIsReady] = useState<boolean>(false);\n\tconst hasPermissionTo = useHasPermission();\n\n\tconst { searchUTLSettings } = useSearchUTLSettings({\n\t\tonError: setError,\n\t});\n\n\tconst {\n\t\tstate: { userLogged },\n\t} = useUserContext();\n\n\tuseEffect(() => {\n\t\tsearchUTLSettings().then(() => {\n\t\t\tsetSettingsIsReady(true);\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (showAreaSelector && userLogged && settingsIsReady) {\n\t\t\tsearchAssets();\n\t\t}\n\t}, [userLogged, settingsIsReady]);\n\n\tconst handleDrawerToggle = () => {\n\t\tsetDrawerOpen(!drawerOpen);\n\t};\n\n\tuseEffect(() => {\n\t\tconst handleMenuItemClick = (event: MouseEvent) => {\n\t\t\tconst target = event.target as HTMLElement;\n\t\t\t// Check if the clicked element or its parents is a MenuItem\n\t\t\tconst menuItem = target.closest(\".MuiMenuItem-root\");\n\n\t\t\tif (menuItem) {\n\t\t\t\tsetDrawerOpen(false);\n\t\t\t}\n\t\t};\n\n\t\t// Add the event listener to the document\n\t\tdocument.addEventListener(\"click\", handleMenuItemClick);\n\n\t\t// Cleanup\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"click\", handleMenuItemClick);\n\t\t};\n\t}, []);\n\n\tconst canShowSettings = hasPermissionTo(\"ui.navbar.settings\");\n\n\treturn (\n\t\t<>\n\t\t\t<AppBar position=\"static\" className={classes.appBar}>\n\t\t\t\t<Toolbar>\n\t\t\t\t\t<Hidden mdUp>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tedge=\"start\"\n\t\t\t\t\t\t\tclassName={classes.menuButton}\n\t\t\t\t\t\t\tcolor=\"inherit\"\n\t\t\t\t\t\t\taria-label=\"menu\"\n\t\t\t\t\t\t\tonClick={handleDrawerToggle}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MenuIcon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Hidden>\n\n\t\t\t\t\t<Typography\n\t\t\t\t\t\tvariant=\"h6\"\n\t\t\t\t\t\tcomponent={Link}\n\t\t\t\t\t\tto=\"/home\"\n\t\t\t\t\t\tclassName={classes.title}\n\t\t\t\t\t>\n\t\t\t\t\t\t{navbarTitle}\n\t\t\t\t\t</Typography>\n\n\t\t\t\t\t<div className={classes.navContainer}>\n\t\t\t\t\t\t<Hidden smDown>\n\t\t\t\t\t\t\t<CustomNavbar closeDrawer={handleDrawerToggle} />\n\t\t\t\t\t\t</Hidden>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className={classes.rightItems}>\n\t\t\t\t\t\t{showTrendingsIcon && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\ttitle=\"Trendings\"\n\t\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t\t\tarrow\n\t\t\t\t\t\t\t\tenterDelay={1500}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<IconButton color=\"inherit\" component={Link} to=\"/trendings\">\n\t\t\t\t\t\t\t\t\t<ShowChartIcon />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{canShowSettings && (\n\t\t\t\t\t\t\t<Tooltip title=\"Settings\" placement=\"bottom\">\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tcolor=\"inherit\"\n\t\t\t\t\t\t\t\t\tcomponent={Link}\n\t\t\t\t\t\t\t\t\tto=\"/configuration\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<SettingsIcon />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{showAreaSelector && (\n\t\t\t\t\t\t\t<Suspense fallback={<div>...</div>}>\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)}\n\n\t\t\t\t\t\t<TimeAndUserMenu />\n\t\t\t\t\t</div>\n\t\t\t\t</Toolbar>\n\t\t\t</AppBar>\n\n\t\t\t<Drawer\n\t\t\t\tvariant=\"temporary\"\n\t\t\t\tanchor=\"left\"\n\t\t\t\topen={drawerOpen}\n\t\t\t\tonClose={handleDrawerToggle}\n\t\t\t\tclassName={classes.drawer}\n\t\t\t\tModalProps={{\n\t\t\t\t\tkeepMounted: true,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className={classes.mobileNav}>\n\t\t\t\t\t<CustomNavbar isMobile={true} />\n\t\t\t\t</div>\n\t\t\t</Drawer>\n\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\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","import {\n\tBox,\n\tButton,\n\tChip,\n\tList,\n\tListItem,\n\tListItemText,\n\tPaper,\n\tTextField,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport { Send as SendIcon } from \"@material-ui/icons\";\nimport {\n\tHubConnection,\n\tHubConnectionBuilder,\n\tLogLevel,\n} from \"@microsoft/signalr\";\nimport React, { useState, useEffect, useCallback, useRef } from \"react\";\nimport { ChatMessage, ConnectionState } from \"./types\";\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\twidth: \"100%\",\n\t\tmaxWidth: 800,\n\t\tmargin: \"0 auto\",\n\t\tpadding: theme.spacing(3),\n\t},\n\tmessageList: {\n\t\theight: 400,\n\t\toverflow: \"auto\",\n\t\tmarginBottom: theme.spacing(2),\n\t\tpadding: theme.spacing(2),\n\t\tbackgroundColor: theme.palette.background.default,\n\t},\n\tmessageForm: {\n\t\tdisplay: \"flex\",\n\t\tgap: theme.spacing(2),\n\t},\n\tmessageInput: {\n\t\tflexGrow: 1,\n\t},\n\ttimestamp: {\n\t\tcolor: theme.palette.text.secondary,\n\t\tfontSize: \"0.8rem\",\n\t},\n\tstatusChip: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n}));\n\nconst ChatComponent: React.FC = () => {\n\tconst classes = useStyles();\n\tconst [hubUrl, setHubUrl] = useState<string>(\"/ws\");\n\tconst [connection, setConnection] = useState<HubConnection | null>(null);\n\tconst [connectionState, setConnectionState] = useState<ConnectionState>({\n\t\tisConnected: false,\n\t});\n\tconst [messages, setMessages] = useState<ChatMessage[]>([]);\n\tconst [user, setUser] = useState<string>(\"\");\n\tconst [message, setMessage] = useState<string>(\"\");\n\tconst messageEndRef = useRef<null | HTMLDivElement>(null);\n\n\tconst latestMessages = useRef<ChatMessage[]>([]);\n\tlatestMessages.current = messages;\n\n\tconst scrollToBottom = () => {\n\t\tmessageEndRef.current?.scrollIntoView({ behavior: \"smooth\" });\n\t};\n\n\tuseEffect(() => {\n\t\tscrollToBottom();\n\t}, [messages]);\n\n\tconst startConnection = useCallback(async () => {\n\t\ttry {\n\t\t\tconst newConnection = new HubConnectionBuilder()\n\t\t\t\t.withUrl(hubUrl)\n\t\t\t\t.withAutomaticReconnect()\n\t\t\t\t.configureLogging(LogLevel.Information)\n\t\t\t\t.build();\n\n\t\t\tnewConnection.on(\"ReceiveMessage\", (user: string, message: string) => {\n\t\t\t\tconst newMessage: ChatMessage = {\n\t\t\t\t\tuser,\n\t\t\t\t\tmessage,\n\t\t\t\t\ttimestamp: new Date(),\n\t\t\t\t};\n\t\t\t\tsetMessages((prev) => [...prev, newMessage]);\n\t\t\t});\n\n\t\t\tnewConnection.on(\"UserConnected\", (connectionId: string) => {\n\t\t\t\tconsole.log(`User connected: ${connectionId}`);\n\t\t\t\tsetConnectionState((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tisConnected: true,\n\t\t\t\t\tconnectionId,\n\t\t\t\t}));\n\t\t\t});\n\n\t\t\tnewConnection.on(\"UserDisconnected\", (connectionId: string) => {\n\t\t\t\tconsole.log(`User disconnected: ${connectionId}`);\n\t\t\t\tif (connectionId === connectionState.connectionId) {\n\t\t\t\t\tsetConnectionState((prev) => ({\n\t\t\t\t\t\t...prev,\n\t\t\t\t\t\tisConnected: false,\n\t\t\t\t\t\tconnectionId: undefined,\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tawait newConnection.start();\n\t\t\tsetConnection(newConnection);\n\t\t\tconsole.log(\"SignalR Connected\");\n\t\t} catch (err) {\n\t\t\tconsole.error(\"SignalR Connection Error:\", err);\n\t\t\tsetConnectionState((prev) => ({\n\t\t\t\t...prev,\n\t\t\t\tisConnected: false,\n\t\t\t\terror: err as Error,\n\t\t\t}));\n\t\t}\n\t}, [hubUrl]);\n\n\tuseEffect(() => {\n\t\tstartConnection();\n\t\treturn () => {\n\t\t\tconnection?.stop();\n\t\t};\n\t}, [startConnection]);\n\n\tconst sendMessage = async (e: React.FormEvent) => {\n\t\te.preventDefault();\n\t\tif (!connection || !message || !user) return;\n\n\t\ttry {\n\t\t\tawait connection.invoke(\"SendMessage\", user, message);\n\t\t\tsetMessage(\"\");\n\t\t} catch (err) {\n\t\t\tconsole.error(\"Error sending message:\", err);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Paper className={classes.root} elevation={3}>\n\t\t\t<Box mb={2}>\n\t\t\t\t<Chip\n\t\t\t\t\tlabel={connectionState.isConnected ? \"Connected\" : \"Disconnected\"}\n\t\t\t\t\tcolor={connectionState.isConnected ? \"primary\" : \"default\"}\n\t\t\t\t\tclassName={classes.statusChip}\n\t\t\t\t/>\n\t\t\t\t{connectionState.error && (\n\t\t\t\t\t<Typography color=\"error\">\n\t\t\t\t\t\tError: {connectionState.error.message}\n\t\t\t\t\t</Typography>\n\t\t\t\t)}\n\t\t\t</Box>\n\n\t\t\t<Paper className={classes.messageList} variant=\"outlined\">\n\t\t\t\t<List>\n\t\t\t\t\t{messages.map((msg, index) => (\n\t\t\t\t\t\t<ListItem key={index}>\n\t\t\t\t\t\t\t<ListItemText\n\t\t\t\t\t\t\t\tprimary={\n\t\t\t\t\t\t\t\t\t<Typography>\n\t\t\t\t\t\t\t\t\t\t<strong>{msg.user}:</strong> {msg.message}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsecondary={\n\t\t\t\t\t\t\t\t\t<span className={classes.timestamp}>\n\t\t\t\t\t\t\t\t\t\t{msg.timestamp.toLocaleTimeString()}\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/>\n\t\t\t\t\t\t</ListItem>\n\t\t\t\t\t))}\n\t\t\t\t\t<div ref={messageEndRef} />\n\t\t\t\t</List>\n\t\t\t</Paper>\n\n\t\t\t<form onSubmit={sendMessage} className={classes.messageForm}>\n\t\t\t\t<TextField\n\t\t\t\t\tvalue={user}\n\t\t\t\t\tonChange={(e) => setUser(e.target.value)}\n\t\t\t\t\tlabel=\"Your name\"\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t/>\n\t\t\t\t<TextField\n\t\t\t\t\tclassName={classes.messageInput}\n\t\t\t\t\tvalue={message}\n\t\t\t\t\tonChange={(e) => setMessage(e.target.value)}\n\t\t\t\t\tlabel=\"Type a message\"\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t/>\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tdisabled={!connectionState.isConnected || !user || !message}\n\t\t\t\t\tendIcon={<SendIcon />}\n\t\t\t\t>\n\t\t\t\t\tSend\n\t\t\t\t</Button>\n\t\t\t</form>\n\t\t</Paper>\n\t);\n};\n\nexport default ChatComponent;\n","import {\n\tBox,\n\tButton,\n\tCircularProgress,\n\tGrid,\n\tTextField,\n\tTypography,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { ColDef, themeMaterial } from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport React, { useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport MesfModal from \"../../../../components/modals/modal.mesf\";\nimport { MESApiService } from \"../../../../services\";\n\ninterface Action {\n\tActionId: number;\n\tActionName: string;\n\tActionTypeId: number;\n}\n\ninterface CacheInvalidation {\n\tSourceId: number;\n\tSource: string;\n\tTargetsCSV: string;\n}\n\ninterface FormData {\n\tsource: Action | null;\n\ttargets: Action[];\n}\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\theight: \"100vh\",\n\t\tpadding: theme.spacing(4),\n\t},\n\theader: {\n\t\tmarginBottom: theme.spacing(4),\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t},\n\tgridContainer: {\n\t\theight: \"75%\",\n\t\twidth: \"100%\",\n\t},\n\tautocomplete: {\n\t\tmarginTop: theme.spacing(2),\n\t\tmarginBottom: theme.spacing(2),\n\t},\n}));\n\nconst QueryCacheInvalidations: React.FC = () => {\n\tconst classes = useStyles();\n\tconst [rowData, setRowData] = useState<CacheInvalidation[]>([]);\n\tconst [actions, setActions] = useState<Action[]>([]);\n\tconst [modal, setModal] = useState<\"add\" | \"edit\" | \"\">(\"\");\n\tconst [selectedRow, setSelectedRow] = useState<CacheInvalidation | null>(\n\t\tnull,\n\t);\n\tconst [notification, setNotification] = useState(\"\");\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\tconst { control, reset, handleSubmit, setValue } = useForm<FormData>({\n\t\tdefaultValues: {\n\t\t\tsource: null,\n\t\t\ttargets: [],\n\t\t},\n\t});\n\n\tconst columnDefs: ColDef[] = [\n\t\t{ field: \"SourceId\", headerName: \"Source ID\" },\n\t\t{ field: \"Source\", headerName: \"Source\" },\n\t\t{ field: \"TargetsCSV\", headerName: \"Targets\" },\n\t\t{\n\t\t\theaderName: \"Actions\",\n\t\t\tcellRenderer: (params: { data: CacheInvalidation }) => (\n\t\t\t\t<Box>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\tonClick={() => handleEdit(params.data)}\n\t\t\t\t\t>\n\t\t\t\t\t\tEdit\n\t\t\t\t\t</Button>\n\t\t\t\t</Box>\n\t\t\t),\n\t\t},\n\t];\n\n\tconst fetchData = async () => {\n\t\ttry {\n\t\t\tconst api = new MESApiService();\n\t\t\tconst resp = await api.callV2(\n\t\t\t\t\"[SYSTEM].[GetQueryCacheInvalidations]\",\n\t\t\t\t[],\n\t\t\t);\n\n\t\t\tif (resp.ok && resp.data) {\n\t\t\t\tsetRowData(resp.data.tables[0].rows);\n\t\t\t\tsetActions(resp.data.tables[1].rows);\n\t\t\t} else {\n\t\t\t\tsetNotification(\"Failed to fetch data\");\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetNotification(\"Failed to fetch data\");\n\t\t\tconsole.error(\"Fetch error:\", error);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tfetchData();\n\t}, []);\n\n\tconst handleAdd = () => {\n\t\treset({\n\t\t\tsource: null,\n\t\t\ttargets: [],\n\t\t});\n\t\tsetModal(\"add\");\n\t};\n\n\tconst handleEdit = (row: CacheInvalidation) => {\n\t\tsetSelectedRow(row);\n\t\tconst targetsIds = row.TargetsCSV.split(\",\").map(Number);\n\t\treset({\n\t\t\tsource: actions.find((a) => a.ActionId === row.SourceId) || null,\n\t\t\ttargets: actions.filter((a) => targetsIds.includes(a.ActionId)),\n\t\t});\n\t\tsetModal(\"edit\");\n\t};\n\n\tconst onSubmit = async (data: FormData) => {\n\t\tif (!data.source) return;\n\n\t\tsetIsLoading(true);\n\t\ttry {\n\t\t\tconst api = new MESApiService();\n\t\t\tconst resp = await api.callV2(\n\t\t\t\t\"[SYSTEM].[UpsertQueryCacheInvalidations]\",\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"SourceId\",\n\t\t\t\t\t\tvalue: data.source.ActionId,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"TargetsCSV\",\n\t\t\t\t\t\tvalue: data.targets.map((t) => t.ActionId).join(\",\"),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t);\n\n\t\t\tif (resp.ok) {\n\t\t\t\tsetNotification(\"Operation successful\");\n\t\t\t\tsetModal(\"\");\n\t\t\t\tfetchData();\n\t\t\t} else {\n\t\t\t\tsetNotification(\"Operation failed\");\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetNotification(\"Failed to perform operation\");\n\t\t\tconsole.error(\"Operation error:\", error);\n\t\t}\n\t\tsetIsLoading(false);\n\t};\n\n\treturn (\n\t\t<Box className={classes.root}>\n\t\t\t<Box className={classes.header}>\n\t\t\t\t<Typography variant=\"h4\" component=\"h2\">\n\t\t\t\t\tQuery Cache Invalidations\n\t\t\t\t</Typography>\n\t\t\t\t<Button variant=\"contained\" color=\"primary\" onClick={handleAdd}>\n\t\t\t\t\tAdd New\n\t\t\t\t</Button>\n\t\t\t</Box>\n\n\t\t\t<Box className={`${classes.gridContainer}`}>\n\t\t\t\t<AgGridReact<CacheInvalidation>\n\t\t\t\t\tgridOptions={{\n\t\t\t\t\t\ttheme: themeMaterial.withParams({\n\t\t\t\t\t\t\tspacing: 2,\n\t\t\t\t\t\t}),\n\t\t\t\t\t}}\n\t\t\t\t\trowData={rowData}\n\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\tdefaultColDef={{ flex: 1 }}\n\t\t\t\t/>\n\t\t\t</Box>\n\n\t\t\t<MesfModal\n\t\t\t\ttitle={\n\t\t\t\t\tmodal === \"add\" ? \"Add Cache Invalidation\" : \"Edit Cache Invalidation\"\n\t\t\t\t}\n\t\t\t\topen={[\"add\", \"edit\"].includes(modal)}\n\t\t\t\thandleClose={() => setModal(\"\")}\n\t\t\t>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t\t<MesfModal.Content dividers>\n\t\t\t\t\t\t<Grid container spacing={3}>\n\t\t\t\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\tname={\"source\"}\n\t\t\t\t\t\t\t\t\trender={(params) => (\n\t\t\t\t\t\t\t\t\t\t<Autocomplete<Action>\n\t\t\t\t\t\t\t\t\t\t\toptions={actions}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionLabel={(option) => `${option.ActionName}`}\n\t\t\t\t\t\t\t\t\t\t\tvalue={params.field.value}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(_, value) => params.field.onChange(value)}\n\t\t\t\t\t\t\t\t\t\t\trenderInput={(params: any) => (\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\t{...params}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Select Source Action\"\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/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classes.autocomplete}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={modal === \"edit\"}\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\t<Grid item xs={12}>\n\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\t\t\tname={\"targets\"}\n\t\t\t\t\t\t\t\t\trender={(params) => (\n\t\t\t\t\t\t\t\t\t\t<Autocomplete<Action, true, true, true>\n\t\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\t\toptions={actions.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t(a) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\ta.ActionId !== control._formValues.source?.ActionId,\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\tgetOptionLabel={(option) => option.ActionName}\n\t\t\t\t\t\t\t\t\t\t\tvalue={params.field.value}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(_, value) => {\n\t\t\t\t\t\t\t\t\t\t\t\tparams.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\trenderInput={(params: any) => (\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\t{...params}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Select Target Actions\"\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/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classes.autocomplete}\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</MesfModal.Content>\n\t\t\t\t\t<MesfModal.Actions>\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={() => setModal(\"\")}\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={isLoading && <CircularProgress size=\"1rem\" />}\n\t\t\t\t\t\t\t\t\tdisabled={isLoading}\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</MesfModal.Actions>\n\t\t\t\t</form>\n\t\t\t</MesfModal>\n\t\t</Box>\n\t);\n};\n\nexport default QueryCacheInvalidations;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport { Setting } from \"../models/Setting\";\n\nconst SettingsInitialState: {\n\tsettings: Setting[];\n\tsettingSelected: Setting | null;\n} = {\n\tsettings: [],\n\tsettingSelected: null,\n};\n\nexport const SettingsReducer = createSlice({\n\tname: \"__\",\n\tinitialState: SettingsInitialState,\n\treducers: {\n\t\tsetSettings(state, { payload }) {\n\t\t\tstate.settings = payload;\n\t\t},\n\t\tsetSettingSelected(state, { payload }) {\n\t\t\tstate.settingSelected = payload;\n\t\t},\n\t},\n});\n","import {\n\tdefault as React,\n\ttype ReactNode,\n\tcreateContext,\n\tuseContext,\n} from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { SettingsReducer } from \"../reducers/SettingReducer\";\n\nconst SettingsContext = createContext({\n\tstate: SettingsReducer.getInitialState(),\n\tactions: SettingsReducer.actions,\n});\n\nexport const useSettingsContext = () => useContext(SettingsContext);\n\nexport const SettingsProvider = ({ children }: { children: ReactNode }) => {\n\tconst [state, actions] = useComplexState({\n\t\tinitialState: SettingsReducer.getInitialState(),\n\t\treducers: SettingsReducer.caseReducers,\n\t});\n\n\treturn (\n\t\t<SettingsContext.Provider value={{ state, actions }}>\n\t\t\t{children}\n\t\t</SettingsContext.Provider>\n\t);\n};\n","import { Theme, makeStyles } from \"@material-ui/core\";\n\nexport const 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// \tfontSize: \"1rem\",\n\t\t// },\n\t\t//\n\t\t// \"& .ag-header-cell-text\": {\n\t\t// \ttextAlign: \"center !important\",\n\t\t// },\n\t\t//\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","import DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport PlaylistAddIcon from \"@material-ui/icons/PlaylistAdd\";\nimport React from \"react\";\nimport { MenuOptionType } from \"../../../../../controls\";\nimport { Setting } from \"../../models/Setting\";\n\ntype Props = {\n\tsetSettingId: Function;\n\tsetShowDeleteModal: Function;\n\tsetShowCreateModal: Function;\n\tsetShowEditModal: Function;\n};\nexport const useSettingsOptionsFunctions = ({\n\tsetSettingId,\n\tsetShowDeleteModal,\n\tsetShowCreateModal,\n\tsetShowEditModal,\n}: Props) => {\n\tconst getMenuOptions = (data: Setting) => {\n\t\tlet options: MenuOptionType[] = [];\n\t\tif (!data) {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"New Setting\",\n\t\t\t\t\tkey: \"new_setting\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowCreateModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t} else {\n\t\t\toptions = options.concat([\n\t\t\t\t{\n\t\t\t\t\tname: \"New Setting\",\n\t\t\t\t\tkey: \"new_setting\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetShowCreateModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <PlaylistAddIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Edit Setting\",\n\t\t\t\t\tkey: \"edit_setting\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetSettingId(data);\n\t\t\t\t\t\tsetShowEditModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <EditIcon />,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"Delete Setting\",\n\t\t\t\t\tkey: \"delete_setting\",\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tsetSettingId(data);\n\t\t\t\t\t\tsetShowDeleteModal(true);\n\t\t\t\t\t},\n\t\t\t\t\ticon: <DeleteIcon />,\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t\treturn options;\n\t};\n\treturn {\n\t\tgetMenuOptions,\n\t};\n};\n","import { Grid } from \"@material-ui/core\";\nimport { Button } from \"@material-ui/core\";\nimport { Theme, makeStyles } from \"@material-ui/core\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport FormatListBulletedSharpIcon from \"@material-ui/icons/FormatListBulletedSharp\";\nimport { ColDef, EditableCallbackParams } from \"ag-grid-community\";\nimport moment from \"moment\";\nimport React, { useMemo, useState } from \"react\";\nimport { useSettingsContext } from \"../../context/SettingsContext\";\nimport { Setting } from \"../../models/Setting\";\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\tsetOpenModalEditSetting: Function;\n\tsetOpenModalDeleteSetting: Function;\n\tshowContextMenu: Function;\n};\n\nexport const useTableData = ({\n\tsetOpenModalEditSetting,\n\tsetOpenModalDeleteSetting,\n\tshowContextMenu,\n}: Props) => {\n\tconst { state, actions } = useSettingsContext();\n\tconst classes = useStyles();\n\n\tconst columnDefs: ColDef[] = [\n\t\t{\n\t\t\tfield: \"SettingName\",\n\t\t\theaderName: \"Name\",\n\t\t\tminWidth: 180,\n\t\t\tflex: 4,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfield: \"Value\",\n\t\t\theaderName: \"Value\",\n\t\t\tminWidth: 180,\n\t\t\tflex: 2,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfield: \"Description\",\n\t\t\theaderName: \"Description\",\n\t\t\tminWidth: 150,\n\t\t\tflex: 4,\n\t\t\tcellStyle: {\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t},\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.setSettingSelected(params?.data as Setting);\n\t\t\t\t\t\t\t\t\t\tsetOpenModalEditSetting(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.setSettingSelected(params?.data as Setting);\n\t\t\t\t\t\t\t\t\t\tsetOpenModalDeleteSetting(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\n\t\t\t\t\t\t\t\tstyle={{}}\n\t\t\t\t\t\t\t\tonClick={(e) =>\n\t\t\t\t\t\t\t\t\tshowContextMenu(e, params.data, \"TableSettings\")\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<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: 1,\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\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\treturn { columnDefs, defaultColDef };\n};\n","import { Setting } from \"./Setting\";\n\nexport const INITIAL_VALUES: Setting = {\n\tSettingId: null,\n\tSettingName: \"\",\n\tValue: \"\",\n\tDescription: \"\",\n};\n","import {\n\tMESApiService,\n\ttype spParameter,\n} from \"../../../../services/ApiService\";\nimport { Setting } from \"../models/Setting\";\n\nexport const upsertSettings = async ({\n\tSettingId,\n\tDescription,\n\tSettingName,\n\tValue,\n}: Setting) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"SettingId\", value: SettingId });\n\tparameters.push({ name: \"SettingName\", value: SettingName });\n\tparameters.push({ name: \"Description\", value: Description });\n\tparameters.push({ name: \"Value\", value: Value });\n\n\tconst resp = await apiService.callV2(\"[UTL].[SetSetting]\", parameters);\n\treturn resp;\n};\n\nexport const deleteSetting = async (SettingId: number) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"SettingId\", value: SettingId });\n\n\tconst resp = await apiService.callV2(\"[UTL].[DeleteSetting]\", parameters);\n\treturn resp;\n};\n","import {\n\tButton,\n\tCircularProgress,\n\tGrid,\n\tSnackbar,\n\tTextField,\n\tTheme,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { useSettingsContext } from \"../../context/SettingsContext\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { Setting } from \"../../models/Setting\";\nimport { upsertSettings } from \"../../repositories/settingRepository\";\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 CreateSetting = ({ 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: { settingSelected },\n\t} = useSettingsContext();\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<Setting>({\n\t\tdefaultValues: settingSelected ? settingSelected : INITIAL_VALUES,\n\t});\n\n\t// Progress bar\n\n\tconst onSubmit: SubmitHandler<Setting> = async (data) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst settingsResp = await upsertSettings(data);\n\t\tif (settingsResp.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(settingsResp.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\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<MesfModal\n\t\t\t\t\t\ttitle=\"NEW SETTING/CREW\"\n\t\t\t\t\t\topen={show}\n\t\t\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\t\t\tid=\"create-setting-modal\"\n\t\t\t\t\t\tmaxWidth=\"md\"\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<MesfModal.Content 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<Grid item xs={12} md={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=\"SettingName\"\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={{ required: \"Name is required\" }}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field, fieldState: { error } }) => (\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\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"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={!!error}\n\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={error ? error.message : null}\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</Grid>\n\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<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Value\"\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\trequired: \"Value is required\",\n\t\t\t\t\t\t\t\t\t\t\t\tpattern: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: /^[A-Za-z0-9]+$/,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmessage: \"Only letters and numbers are allowed\",\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\trender={({ field, fieldState: { error } }) => (\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\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Value\"\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={!!error}\n\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={error ? error.message : null}\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</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=\"Description\"\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=\"Description\"\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</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</MesfModal.Content>\n\t\t\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</MesfModal>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error Creating Setting\"\n\t\t\t/>\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 setting was created successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import {\n\tButton,\n\tCircularProgress,\n\tGrid,\n\tSnackbar,\n\tTextField,\n\tTheme,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { useSettingsContext } from \"../../context/SettingsContext\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { Setting } from \"../../models/Setting\";\nimport {\n\tdeleteSetting,\n\tupsertSettings,\n} from \"../../repositories/settingRepository\";\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 DeleteSetting = ({ show, onHide }: Props) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst {\n\t\tstate: { settingSelected },\n\t} = useSettingsContext();\n\n\tconst { control, handleSubmit, reset, setValue } = useForm<Setting>({\n\t\tdefaultValues: settingSelected ? settingSelected : INITIAL_VALUES,\n\t});\n\n\tconst onSubmit: SubmitHandler<Setting> = async (data) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst settingsResp = await deleteSetting(data.SettingId!);\n\t\tif (settingsResp.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(settingsResp.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\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t\tif (settingSelected) {\n\t\t\t\tsetValue(\"SettingId\", settingSelected.SettingId);\n\t\t\t\tsetValue(\"SettingName\", settingSelected.SettingName);\n\t\t\t\tsetValue(\"Value\", settingSelected.Value);\n\t\t\t\tsetValue(\"Description\", settingSelected.Description);\n\t\t\t}\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<MesfModal\n\t\t\t\t\t\ttitle=\"DELETE SETTING/CREW\"\n\t\t\t\t\t\topen={show}\n\t\t\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\t\t\tid=\"delete-setting-modal\"\n\t\t\t\t\t\tmaxWidth=\"md\"\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<MesfModal.Content 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<Grid item xs={12} md={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=\"SettingName\"\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={{ required: \"Name is required\" }}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field, fieldState: { error } }) => (\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\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"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={!!error}\n\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={error ? error.message : null}\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</Grid>\n\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<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Value\"\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={{ required: \"Value is required\" }}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field, fieldState: { error } }) => (\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\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Value\"\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={!!error}\n\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={error ? error.message : null}\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</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=\"Description\"\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\tdisabled\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=\"Description\"\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</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</MesfModal.Content>\n\t\t\t\t\t\t\t<MesfModal.Actions 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=\"secondary\"\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\tDelete\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</MesfModal.Actions>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</MesfModal>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error deleting Setting\"\n\t\t\t/>\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 setting was deleted successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import {\n\tButton,\n\tCircularProgress,\n\tGrid,\n\tSnackbar,\n\tTextField,\n\tTheme,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { ErrorModal } from \"../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../components/modals/modal.mesf\";\nimport { Alert } from \"../../../../../controls/alert\";\nimport { useSettingsContext } from \"../../context/SettingsContext\";\nimport { INITIAL_VALUES } from \"../../models/FormInitialValues\";\nimport { Setting } from \"../../models/Setting\";\nimport { upsertSettings } from \"../../repositories/settingRepository\";\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 EditSetting = ({ show, onHide }: Props) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst {\n\t\tstate: { settingSelected },\n\t} = useSettingsContext();\n\n\tconst { control, handleSubmit, reset, setValue } = useForm<Setting>({\n\t\tdefaultValues: settingSelected ? settingSelected : INITIAL_VALUES,\n\t});\n\n\tconst onSubmit: SubmitHandler<Setting> = async (data) => {\n\t\tsetIsSubmitLoading(true);\n\t\tconst settingsResp = await upsertSettings(data);\n\t\tif (settingsResp.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(settingsResp.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\tuseEffect(() => {\n\t\tif (show) {\n\t\t\treset();\n\t\t\tif (settingSelected) {\n\t\t\t\tsetValue(\"SettingId\", settingSelected.SettingId);\n\t\t\t\tsetValue(\"SettingName\", settingSelected.SettingName);\n\t\t\t\tsetValue(\"Value\", settingSelected.Value);\n\t\t\t\tsetValue(\"Description\", settingSelected.Description);\n\t\t\t}\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<MesfModal\n\t\t\t\t\t\ttitle=\"EDIT SETTING/CREW\"\n\t\t\t\t\t\topen={show}\n\t\t\t\t\t\thandleClose={() => onHide(false)}\n\t\t\t\t\t\tid=\"edit-setting-modal\"\n\t\t\t\t\t\tmaxWidth=\"md\"\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<MesfModal.Content 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<Grid item xs={12} md={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=\"SettingName\"\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={{ required: \"Name is required\" }}\n\t\t\t\t\t\t\t\t\t\t\trender={({ field, fieldState: { error } }) => (\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\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"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={!!error}\n\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={error ? error.message : null}\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</Grid>\n\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<Controller\n\t\t\t\t\t\t\t\t\t\t\tname=\"Value\"\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\trequired: \"Value is required\",\n\t\t\t\t\t\t\t\t\t\t\t\tpattern: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: /^[A-Za-z0-9]+$/,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmessage: \"Only letters and numbers are allowed\",\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\trender={({ field, fieldState: { error } }) => (\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\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Value\"\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={!!error}\n\t\t\t\t\t\t\t\t\t\t\t\t\thelperText={error ? error.message : null}\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</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=\"Description\"\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=\"Description\"\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</Grid>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t</MesfModal.Content>\n\t\t\t\t\t\t\t<MesfModal.Actions 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</MesfModal.Actions>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</MesfModal>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\ttitle=\"Error updating Setting\"\n\t\t\t/>\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 setting was edited successfully\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n","import {\n\tButton,\n\tGrid,\n\tIconButton,\n\tInputAdornment,\n\tPaper,\n\tTextField,\n\tTypography,\n} from \"@material-ui/core\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport {\n\tDefaultMenuItem,\n\tGetContextMenuItemsParams,\n\tGridApi,\n\tMenuItemDef,\n\tthemeMaterial,\n} from \"ag-grid-community\";\nimport { AgGridReact } from \"ag-grid-react\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useContextMenuMESF } from \"../../../../controls\";\nimport { LazyLoading } from \"../../../../controls/LazyLoading/LazyLoading\";\nimport { useSettingsContext } from \"../context/SettingsContext\";\nimport { Setting } from \"../models/Setting\";\nimport { useStyles } from \"../styles/useStyles\";\nimport { useSettingsOptionsFunctions } from \"./customHooks/useSettingsOptionsFunctions\";\nimport { useTableData } from \"./customHooks/useTableSettings\";\nimport { CreateSetting } from \"./upsertDelete/CreateSetting\";\nimport { DeleteSetting } from \"./upsertDelete/DeleteSetting\";\nimport { EditSetting } from \"./upsertDelete/EditSetting\";\n\ninterface Props {\n\trows: Setting[];\n\tisLoading: boolean;\n\tgetSettingsFromAPI: () => void;\n}\n\nexport const TableSettings = ({\n\tgetSettingsFromAPI,\n\tisLoading,\n\trows,\n}: Props) => {\n\tconst { showContextMenu, registerConfig } = useContextMenuMESF();\n\tconst {\n\t\tactions: { setSettingSelected },\n\t} = useSettingsContext();\n\tconst classes = useStyles();\n\n\tconst [gridApi, setGridApi] = useState<GridApi | null>(null);\n\tconst [filterValue, setFilterValue] = useState(\"\");\n\tconst [openModalNew, setOpenModalNew] = useState(false);\n\tconst [openModalEditSetting, setOpenModalEditSetting] = useState(false);\n\tconst [openModalDeleteSetting, setOpenModalDeleteSetting] = useState(false);\n\n\tconst { getMenuOptions } = useSettingsOptionsFunctions({\n\t\tsetSettingId: setSettingSelected,\n\t\tsetShowDeleteModal: setOpenModalDeleteSetting,\n\t\tsetShowCreateModal: setOpenModalNew,\n\t\tsetShowEditModal: setOpenModalEditSetting,\n\t});\n\n\tconst { columnDefs, defaultColDef } = useTableData({\n\t\tsetOpenModalEditSetting,\n\t\tsetOpenModalDeleteSetting,\n\t\tshowContextMenu,\n\t});\n\n\tconst loadingOverlayComponent = () => {\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 = (\n\t\tparams: GetContextMenuItemsParams,\n\t): (DefaultMenuItem | MenuItemDef)[] => {\n\t\tconst data = params.node?.data;\n\t\tparams.api.deselectAll();\n\t\tparams.node?.setSelected(true);\n\t\tshowContextMenu(event as any, data, \"TableSettings\");\n\t\treturn [];\n\t};\n\n\tuseEffect(() => {\n\t\tregisterConfig({\n\t\t\tid: \"TableSettings\",\n\t\t\tgetOptions: getMenuOptions,\n\t\t});\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, gridApi]);\n\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\tclassName={classes.root}\n\t\t\t>\n\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t<Typography\n\t\t\t\t\t\tvariant=\"h5\"\n\t\t\t\t\t\tstyle={{ margin: \"8px 0 8px\", fontWeight: 600 }}\n\t\t\t\t\t>\n\t\t\t\t\t\tSettings\n\t\t\t\t\t</Typography>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item md={12} xs={12}>\n\t\t\t\t\t<Paper>\n\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\tlabel=\"Search\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\tvalue={filterValue}\n\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\tsetFilterValue(event.target.value);\n\t\t\t\t\t\t\t\tgridApi?.setGridOption(\"quickFilterText\", event.target.value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t\t\t<InputAdornment position=\"start\">\n\t\t\t\t\t\t\t\t\t\t<IconButton edge=\"start\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t\t\t<SearchIcon />\n\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t</InputAdornment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Paper>\n\t\t\t\t</Grid>\n\n\t\t\t\t<Grid item md={12} xs={12} className={classes.relative} container>\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: \"70vh\",\n\t\t\t\t\t\t\tmarginTop: 2,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Paper style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t\t\t\t<AgGridReact\n\t\t\t\t\t\t\t\tgridOptions={{\n\t\t\t\t\t\t\t\t\ttheme: themeMaterial.withParams({\n\t\t\t\t\t\t\t\t\t\tspacing: 2,\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\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={34}\n\t\t\t\t\t\t\t\theaderHeight={34}\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\trowSelection=\"single\"\n\t\t\t\t\t\t\t\tonRowDoubleClicked={(event) => {\n\t\t\t\t\t\t\t\t\tsetSettingSelected(event.data as Setting);\n\t\t\t\t\t\t\t\t\tsetOpenModalEditSetting(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</Paper>\n\n\t\t\t\t\t\t<CreateSetting\n\t\t\t\t\t\t\tshow={openModalNew}\n\t\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\t\tsetOpenModalNew(false);\n\t\t\t\t\t\t\t\tif (shouldUpdate) getSettingsFromAPI();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<EditSetting\n\t\t\t\t\t\t\tshow={openModalEditSetting}\n\t\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\t\tsetOpenModalEditSetting(false);\n\t\t\t\t\t\t\t\tif (shouldUpdate) getSettingsFromAPI();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<DeleteSetting\n\t\t\t\t\t\t\tshow={openModalDeleteSetting}\n\t\t\t\t\t\t\tonHide={(shouldUpdate: boolean) => {\n\t\t\t\t\t\t\t\tsetOpenModalDeleteSetting(false);\n\t\t\t\t\t\t\t\tif (shouldUpdate) getSettingsFromAPI();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\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\n\t\t\t\t\t\t\titem\n\t\t\t\t\t\t\tmd={2}\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\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"flex-end\",\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\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: 2 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tNEW SETTING\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</>\n\t);\n};\n","import { Grid, Paper } from \"@material-ui/core\";\nimport { get } from \"lodash-es\";\nimport React, { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../components/modals/error-modal\";\nimport { getUTLSettings } from \"../../../repositorie/MESF-frontend-Repositorie\";\nimport { TableSettings } from \"./components/TableSettings\";\nimport { useSettingsContext } from \"./context/SettingsContext\";\nimport { Setting } from \"./models/Setting\";\n\nexport const SettingsPage = () => {\n\tconst { state, actions } = useSettingsContext();\n\tconst [error, setError] = useState<string>(\"\");\n\tconst [isLoading, setIsLoading] = useState<boolean>(false);\n\n\tconst getSettingsFromAPI = async () => {\n\t\tsetIsLoading(true);\n\t\tconst res = await getUTLSettings();\n\t\tif (res.ok) {\n\t\t\tconst settings = get(res, \"data.tables[0].rows\", []) as Setting[];\n\t\t\tactions.setSettings(settings);\n\t\t} else {\n\t\t\tsetError(res.message);\n\t\t}\n\t\tsetIsLoading(false);\n\t};\n\n\tuseEffect(() => {\n\t\tgetSettingsFromAPI();\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid container justifyContent=\"center\" alignItems=\"center\">\n\t\t\t\t<TableSettings\n\t\t\t\t\trows={state.settings}\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tgetSettingsFromAPI={getSettingsFromAPI}\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import React from \"react\";\nimport { SettingsPage } from \"./SettingsPage\";\nimport { SettingsProvider } from \"./context/SettingsContext\";\n\nconst Settings = () => {\n\treturn (\n\t\t<SettingsProvider>\n\t\t\t<SettingsPage />\n\t\t</SettingsProvider>\n\t);\n};\n\nexport default Settings;\n","import {\n\tDivider,\n\tDrawer,\n\tIconButton,\n\tList,\n\tListItem,\n\tListItemIcon,\n\tListItemText,\n\tListSubheader,\n\tTypography,\n\tuseMediaQuery,\n\tuseTheme,\n} from \"@material-ui/core\";\nimport {\n\tAssignment as AssignmentIcon,\n\tBuild as BuildIcon,\n\tChat as ChatIcon,\n\tChevronLeft as ChevronLeftIcon,\n\tGroup as GroupIcon,\n\tMenu as MenuIcon,\n\tPeople as PeopleIcon,\n\tSettings as SettingsIcon,\n\tStorage as StorageIcon,\n\tTimeline as TimelineIcon,\n\tViewList as ViewListIcon,\n} from \"@material-ui/icons\";\nimport React, {\n\tFC,\n\tReactElement,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\nimport { Link, Navigate, Route, Routes, useParams } from \"react-router-dom\";\n\nimport AssetPage from \"./configuration/pages/asset\";\nimport Jobs from \"./configuration/pages/job\";\nimport Logs from \"./configuration/pages/log\";\nimport Profiles from \"./configuration/pages/profiles\";\nimport ChatComponent from \"./configuration/pages/realtime/client\";\nimport QueryCacheInvalidations from \"./configuration/pages/realtime/config\";\nimport Settings from \"./configuration/pages/settings\";\nimport ShiftsCrews from \"./configuration/pages/shifCrew\";\nimport Users from \"./configuration/pages/users\";\nimport { ConfigurationContext } from \"./globalContext\";\n\ninterface RouteParams {\n\toption?: string;\n}\n\ninterface SectionComponent {\n\tpath: string;\n\tsidebar: FC;\n\tmain: FC;\n\texact?: boolean;\n}\n\nexport type SidebarType = FC<{ option?: string }>;\n\nexport type ConfigurationsType = [SectionComponent[], SidebarType];\n\nconst Configuration: FC = (): ReactElement => {\n\tconst { option } = useParams();\n\n\tconst [customConfiguration, CustomSidebar] =\n\t\tuseContext<ConfigurationsType>(ConfigurationContext);\n\n\tconst routes: Array<SectionComponent> = [\n\t\t{\n\t\t\tpath: \"/\",\n\t\t\tsidebar: (): ReactElement => <div>Configuration</div>,\n\t\t\tmain: (): ReactElement => <Navigate to=\"users\" />,\n\t\t},\n\t\t{\n\t\t\tpath: \"shifts\",\n\t\t\tsidebar: (): ReactElement => <div>Shifts</div>,\n\t\t\tmain: (): ReactElement => <ShiftsCrews />,\n\t\t},\n\t\t{\n\t\t\tpath: \"asset\",\n\t\t\tsidebar: (): ReactElement => <div>Configuration Asset</div>,\n\t\t\tmain: (): ReactElement => <AssetPage />,\n\t\t},\n\t\t{\n\t\t\tpath: \"users\",\n\t\t\tsidebar: (): ReactElement => <div>Users</div>,\n\t\t\tmain: (): ReactElement => <Users />,\n\t\t},\n\t\t{\n\t\t\tpath: \"profiles\",\n\t\t\tsidebar: (): ReactElement => <div>profiles</div>,\n\t\t\tmain: (): ReactElement => <Profiles />,\n\t\t},\n\t\t{\n\t\t\tpath: \"logs\",\n\t\t\tsidebar: (): ReactElement => <div>Logs</div>,\n\t\t\tmain: (): ReactElement => <Logs />,\n\t\t},\n\t\t{\n\t\t\tpath: \"jobs\",\n\t\t\tsidebar: (): ReactElement => <div>Jobs</div>,\n\t\t\tmain: (): ReactElement => <Jobs />,\n\t\t},\n\t\t{\n\t\t\tpath: \"settings\",\n\t\t\tsidebar: (): ReactElement => <div>Settings</div>,\n\t\t\tmain: (): ReactElement => <Settings />,\n\t\t},\n\t\t{\n\t\t\tpath: \"real-time/client\",\n\t\t\tsidebar: (): ReactElement => <div>Client</div>,\n\t\t\tmain: (): ReactElement => <ChatComponent />,\n\t\t},\n\t\t{\n\t\t\tpath: \"real-time/config\",\n\t\t\tsidebar: (): ReactElement => <div>Config</div>,\n\t\t\tmain: (): ReactElement => <QueryCacheInvalidations />,\n\t\t},\n\t\t...customConfiguration,\n\t];\n\n\t// At the top level of your component, add a useEffect to handle window resizing\n\tconst theme = useTheme();\n\tconst isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\tconst [drawerOpen, setDrawerOpen] = useState(!isMobile);\n\n\t// Add useEffect to handle drawer state on screen resize\n\tReact.useEffect(() => {\n\t\tsetDrawerOpen(!isMobile);\n\t}, [isMobile]);\n\n\tconst renderDrawerContent = () => (\n\t\t<>\n\t\t\t<Typography\n\t\t\t\tvariant=\"h6\"\n\t\t\t\tstyle={{\n\t\t\t\t\tpadding: theme.spacing(2, 2, 1),\n\t\t\t\t\tcolor: theme.palette.primary.main,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tConfiguration\n\t\t\t</Typography>\n\t\t\t<Divider />\n\n\t\t\t<List\n\t\t\t\tsubheader={\n\t\t\t\t\t<ListSubheader\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\n\t\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tPlant\n\t\t\t\t\t</ListSubheader>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"shifts\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/shifts\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<PeopleIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Shift / Crews\" />\n\t\t\t\t</ListItem>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"asset\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/asset\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<StorageIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Assets Tree\" />\n\t\t\t\t</ListItem>\n\t\t\t</List>\n\n\t\t\t<Divider />\n\n\t\t\t<List\n\t\t\t\tsubheader={\n\t\t\t\t\t<ListSubheader\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\n\t\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tSecurity\n\t\t\t\t\t</ListSubheader>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"users\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/users\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<GroupIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Users\" />\n\t\t\t\t</ListItem>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"profiles\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/profiles\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<AssignmentIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Profiles\" />\n\t\t\t\t</ListItem>\n\t\t\t</List>\n\n\t\t\t<Divider />\n\n\t\t\t<div>\n\t\t\t\t<CustomSidebar option={option} />\n\t\t\t</div>\n\n\t\t\t<Divider />\n\n\t\t\t<List\n\t\t\t\tsubheader={\n\t\t\t\t\t<ListSubheader\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\n\t\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tReal Time\n\t\t\t\t\t</ListSubheader>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"real-time/client\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/real-time/client\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<ChatIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Client\" />\n\t\t\t\t</ListItem>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"real-time/config\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/real-time/config\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<TimelineIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Config\" />\n\t\t\t\t</ListItem>\n\t\t\t</List>\n\n\t\t\t<Divider />\n\n\t\t\t<List\n\t\t\t\tsubheader={\n\t\t\t\t\t<ListSubheader\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\n\t\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tMaintenance\n\t\t\t\t\t</ListSubheader>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"logs\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/logs\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<ViewListIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Logs\" />\n\t\t\t\t</ListItem>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"jobs\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/jobs\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<BuildIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Jobs\" />\n\t\t\t\t</ListItem>\n\t\t\t\t<ListItem\n\t\t\t\t\tbutton\n\t\t\t\t\tselected={option === \"settings\"}\n\t\t\t\t\tcomponent={Link}\n\t\t\t\t\tto=\"/configuration/settings\"\n\t\t\t\t>\n\t\t\t\t\t<ListItemIcon>\n\t\t\t\t\t\t<SettingsIcon />\n\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t<ListItemText primary=\"Settings\" />\n\t\t\t\t</ListItem>\n\t\t\t</List>\n\t\t</>\n\t);\n\n\tuseEffect(() => {\n\t\tconst handleListItemClick = (event: MouseEvent) => {\n\t\t\tconst target = event.target as HTMLElement;\n\t\t\t// Check if the clicked element or its parents is a ListItem\n\t\t\tconst listItem = target.closest(\".MuiListItem-root\");\n\n\t\t\tif (listItem && isMobile) {\n\t\t\t\tsetDrawerOpen(false);\n\t\t\t}\n\t\t};\n\n\t\t// Add the event listener to the document\n\t\tdocument.addEventListener(\"click\", handleListItemClick);\n\n\t\t// Cleanup\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"click\", handleListItemClick);\n\t\t};\n\t}, [isMobile]);\n\n\treturn (\n\t\t// Update the container div styling\n\t\t<div style={{ display: \"flex\", position: \"relative\" }}>\n\t\t\t<Drawer\n\t\t\t\tvariant={isMobile ? \"temporary\" : \"permanent\"}\n\t\t\t\topen={drawerOpen}\n\t\t\t\tonClose={() => isMobile && setDrawerOpen(false)}\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: drawerOpen ? 240 : 0,\n\t\t\t\t\tflexShrink: 0,\n\t\t\t\t}}\n\t\t\t\tPaperProps={{\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\twidth: 240,\n\t\t\t\t\t\theight: \"calc(100vh - 64px)\",\n\t\t\t\t\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\t\t\t\ttop: 64,\n\t\t\t\t\t\tzIndex: 1200,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{renderDrawerContent()}\n\t\t\t</Drawer>\n\n\t\t\t<main\n\t\t\t\tstyle={{\n\t\t\t\t\tflexGrow: 1,\n\t\t\t\t\tpadding: theme.spacing(3),\n\t\t\t\t\ttransition: theme.transitions.create([\"padding-left\"], {\n\t\t\t\t\t\teasing: theme.transitions.easing.sharp,\n\t\t\t\t\t\tduration: theme.transitions.duration.leavingScreen,\n\t\t\t\t\t}),\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Routes>\n\t\t\t\t\t{routes.map((route) => (\n\t\t\t\t\t\t<Route\n\t\t\t\t\t\t\tkey={`${route.path}`}\n\t\t\t\t\t\t\tpath={route.path}\n\t\t\t\t\t\t\telement={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{isMobile && (\n\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => setDrawerOpen(!drawerOpen)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\t\t\ttop: -10,\n\t\t\t\t\t\t\t\t\t\t\t\tzIndex: 1100,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"0 4px 4px 0\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.primary.main,\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.background.paper,\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{drawerOpen ? <ChevronLeftIcon /> : <MenuIcon />}\n\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<route.main />\n\t\t\t\t\t\t\t\t</>\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</Routes>\n\t\t\t</main>\n\t\t</div>\n\t);\n};\n\nexport default Configuration;\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\tswatch: {\n\t\twidth: \"25px\",\n\t\theight: \"25px\",\n\t\tdisplay: \"inline-block\",\n\t\tmargin: \"2px\",\n\t\tborderRadius: \"4px\",\n\t\tcursor: \"pointer\",\n\t},\n\tpopover: {\n\t\tdisplay: \"flex\",\n\t\tflexWrap: \"wrap\",\n\t\tpadding: \"10px\",\n\t\tmaxWidth: \"165px\",\n\t},\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\nlet availableColors: string[] = [...tagColors];\nlet lastColor: string | null = null;\n\nexport const getRandomColor = (): string => {\n\tif (availableColors.length === 0) {\n\t\tavailableColors = [...tagColors];\n\t\tif (lastColor && availableColors.length > 1) {\n\t\t\tavailableColors.splice(availableColors.indexOf(lastColor), 1);\n\t\t}\n\t}\n\n\tconst randomIndex = Math.floor(Math.random() * availableColors.length);\n\tconst color = availableColors[randomIndex];\n\tavailableColors.splice(randomIndex, 1);\n\tlastColor = color;\n\treturn color;\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\tcolor: string;\n\tonSelect: (color: string) => void;\n}\n\nconst Swatch = ({ color, onSelect }: SwatchProps) => {\n\tconst classes = useTagColorsStyles();\n\treturn (\n\t\t<div\n\t\t\tclassName={classes.swatch}\n\t\t\tstyle={{ backgroundColor: color }}\n\t\t\tonClick={() => onSelect(color)}\n\t\t/>\n\t);\n};\n\ninterface Props {\n\tonChange: Function;\n\tcolor: string;\n\telementId?: number;\n}\n\nconst ColorPicker = ({ onChange, color, elementId }: Props) => {\n\tconst classes = useTagColorsStyles();\n\tconst [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null);\n\n\tconst handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n\t\tsetAnchorEl(event.currentTarget);\n\t};\n\n\tconst handleClose = () => {\n\t\tsetAnchorEl(null);\n\t};\n\tconst open = Boolean(anchorEl);\n\tconst id = open ? \"simple-popover\" : undefined;\n\n\treturn (\n\t\t<div>\n\t\t\t<Button\n\t\t\t\taria-describedby={id}\n\t\t\t\tvariant=\"outlined\"\n\t\t\t\tonClick={handleClick}\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: color,\n\t\t\t\t\twidth: \"20px\",\n\t\t\t\t\theight: \"20px\",\n\t\t\t\t\tminWidth: \"20px\",\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tmargin: \"4px\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<Popover\n\t\t\t\tid={id}\n\t\t\t\topen={open}\n\t\t\t\tanchorEl={anchorEl}\n\t\t\t\tonClose={handleClose}\n\t\t\t\tanchorOrigin={{\n\t\t\t\t\tvertical: \"bottom\",\n\t\t\t\t\thorizontal: \"left\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className={classes.popover}>\n\t\t\t\t\t{tagColors.map((color) => (\n\t\t\t\t\t\t<Swatch\n\t\t\t\t\t\t\tkey={color}\n\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\tonSelect={(color: string) => {\n\t\t\t\t\t\t\t\tonChange(elementId, color);\n\t\t\t\t\t\t\t\thandleClose();\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</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n};\n\nexport default ColorPicker;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport { isNil } from \"lodash-es\";\nimport moment from \"moment\";\nimport { View, ViewTagsMap } from \"../components/chart/models/TrendingModels\";\nimport { scopeType } from \"../components/chart/models/scopes.model\";\n\nconst TrendingsInitialState: {\n\ttimeScopeStart: Date;\n\ttimeScopeEnd: Date;\n\tscope: scopeType;\n\tgraphPan?: boolean;\n\tgraphShouldUpdate: number;\n\tshouldRefetchSeries: number;\n\tviews: View[];\n\tviewSelected: View | null;\n\tviewTags: ViewTagsMap;\n} = {\n\ttimeScopeStart: moment(new Date()).subtract(1, \"days\").toDate(),\n\ttimeScopeEnd: new Date(),\n\tscope: \"1 day\",\n\tgraphPan: false,\n\tgraphShouldUpdate: 0,\n\tviews: [\n\t\t{\n\t\t\tViewId: 0,\n\t\t\tViewName: \"\",\n\t\t\tUserName: null,\n\t\t\tIsPublic: false,\n\t\t\tLastModified: null,\n\t\t\tLastModifiedBy: null,\n\t\t},\n\t],\n\tviewSelected: null,\n\tviewTags: {},\n\tshouldRefetchSeries: 1,\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\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\n\t\t\t\t\t\t\tgraphPan: boolean;\n\t\t\t\t\t };\n\n\t\t\t\ttype: string;\n\t\t\t},\n\t\t) {\n\t\t\tstate.shouldRefetchSeries += 1;\n\t\t\tstate.graphShouldUpdate += 1;\n\t\t\tif (\n\t\t\t\t!isNil(payload.start) &&\n\t\t\t\t!isNil(payload.end) &&\n\t\t\t\t!isNil(payload.scope)\n\t\t\t) {\n\t\t\t\t//from arrow navigators\n\t\t\t\tstate.timeScopeStart = payload.start;\n\t\t\t\tstate.timeScopeEnd = payload.end;\n\t\t\t\tstate.scope = payload.scope;\n\t\t\t\treturn;\n\t\t\t}\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\t\t\tif (\n\t\t\t\t!isNil(payload.start) &&\n\t\t\t\t!isNil(payload.end) &&\n\t\t\t\tisNil(payload.graphPan)\n\t\t\t) {\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 (\n\t\t\t\t!isNil(payload.start) &&\n\t\t\t\t!isNil(payload.end) &&\n\t\t\t\t!isNil(payload.graphPan)\n\t\t\t) {\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\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\tsetViews(state, { payload }) {\n\t\t\tstate.views = payload;\n\t\t},\n\t\tsetViewSelected(state, { payload }) {\n\t\t\tstate.viewSelected = payload;\n\t\t},\n\t\tsetViewTags(state, { payload }) {\n\t\t\tstate.viewTags = payload;\n\t\t\tstate.graphShouldUpdate += 1;\n\t\t},\n\t\tsetViewTagsAndRefetch(state, { payload }) {\n\t\t\tconst newTags = structuredClone(payload);\n\t\t\tconst newTagsSorted = [...Object.values(payload as ViewTagsMap)]\n\t\t\t\t.sort((a, b) => b.order - a.order)\n\t\t\t\t.forEach((vtMap, idx) => {\n\t\t\t\t\tnewTags[vtMap.viewTag.TagId][\"order\"] = idx;\n\t\t\t\t});\n\t\t\tstate.viewTags = newTags;\n\t\t\tstate.shouldRefetchSeries += 1;\n\t\t},\n\t\tsetGraphShouldUpdate(state) {\n\t\t\tstate.graphShouldUpdate = +1;\n\t\t},\n\t},\n});\n","import React, { type ReactNode, createContext, useContext } from \"react\";\nimport { useComplexState } from \"use-complex-state\";\nimport { TrendingsReducer } from \"../../../reducers/trendings.reducer\";\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","import { MESApiService, type spParameter } from \"../../../../../services\";\n\nconst getIhPath = () =>\n\tlocalStorage.getItem(\"ihPath\") || \"[mssql2022].[IH_100020].[ih]\";\n\n//tags\nexport const getTagsTree = async () => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[GetTagsTree]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const deleteTagFolder = async (TagFolderId: number) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\tconst backendOffset = 1000000;\n\n\tif (TagFolderId && TagFolderId > backendOffset) {\n\t\tTagFolderId = TagFolderId - backendOffset;\n\t}\n\n\tparameters.push({ name: \"TagFolderId\", value: TagFolderId });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[DeleteTagFolder]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const upsertTagFolder = async (\n\tTagFolderId: number | null,\n\tParentTagFolderId: number | null,\n\tTagFolderName: string,\n\tIsActive: boolean,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\tconst backendOffset = 1000000;\n\n\tif (TagFolderId && TagFolderId > backendOffset) {\n\t\tTagFolderId = TagFolderId - backendOffset;\n\t}\n\tif (ParentTagFolderId && ParentTagFolderId > backendOffset) {\n\t\tParentTagFolderId = ParentTagFolderId - backendOffset;\n\t}\n\n\tparameters.push({ name: \"TagFolderId\", value: TagFolderId });\n\tparameters.push({ name: \"ParentTagFolderId\", value: ParentTagFolderId });\n\tparameters.push({ name: \"TagFolderName\", value: TagFolderName });\n\tparameters.push({ name: \"IsActive\", value: IsActive });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[UpsertTagFolder]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const changeTagFolderToTag = async (\n\tTagId: number | null,\n\tTagFolderId: number | null,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\tconst backendOffset = 1000000;\n\n\tif (TagFolderId && TagFolderId > backendOffset) {\n\t\tTagFolderId = TagFolderId - backendOffset;\n\t}\n\n\tparameters.push({ name: \"TagId\", value: TagId });\n\tparameters.push({ name: \"TagFolderId\", value: TagFolderId });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[ChangeTagFolderToTag]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n/* */\n\nexport const getSeriesData = async (\n\tTagIds: string,\n\tStart: number | null,\n\tEnd: number | null,\n\tSampleCount: number,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"TagIds\", value: TagIds });\n\tparameters.push({ name: \"Start\", value: Start });\n\tparameters.push({ name: \"End\", value: End });\n\tparameters.push({ name: \"SampleCount\", value: SampleCount });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[GetSeriesData]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const saveTagDefaults = async (\n\tTagId: number,\n\tAlias: string,\n\tColor: string,\n\tMinScale: number,\n\tMaxScale: number,\n\tUnit: string,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"TagId\", value: TagId });\n\tparameters.push({ name: \"Alias\", value: Alias });\n\tparameters.push({ name: \"Color\", value: Color });\n\tparameters.push({ name: \"MinScale\", value: MinScale });\n\tparameters.push({ name: \"MaxScale\", value: MaxScale });\n\tparameters.push({ name: \"Unit\", value: Unit });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[SaveTagDefaults]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\n//views\n\nexport const getViews = async (Search: string | null) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"Search\", value: Search });\n\n\tconst resp = await apiService.callV2(getIhPath() + \".[GetViews]\", parameters);\n\treturn resp;\n};\n\nexport const upsertView = async (\n\tViewId: number | null,\n\tViewName: string,\n\tisPublic: boolean,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ViewId\", value: ViewId });\n\tparameters.push({ name: \"ViewName\", value: ViewName });\n\tparameters.push({ name: \"isPublic\", value: isPublic });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[UpsertView]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const deleteView = async (ViewId: number) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ViewId\", value: ViewId });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[DeleteView]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\n//viewTags\nexport const getViewTags = async (ViewId: number) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ViewId\", value: ViewId });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[GetViewTags]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const upsertViewTag = async (\n\tViewId: number,\n\tTagId: number,\n\tColor: string,\n\tMinScale: number,\n\tMaxScale: number,\n\tIsVisible: boolean,\n\tIsAutoScale: boolean,\n\tUnit: string,\n) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ViewId\", value: ViewId });\n\tparameters.push({ name: \"TagId\", value: TagId });\n\tparameters.push({ name: \"Color\", value: Color });\n\tparameters.push({ name: \"MinScale\", value: MinScale });\n\tparameters.push({ name: \"MaxScale\", value: MaxScale });\n\tparameters.push({ name: \"IsVisible\", value: IsVisible });\n\tparameters.push({ name: \"IsAutoScale\", value: IsAutoScale });\n\tparameters.push({ name: \"Unit\", value: Unit });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[UpsertViewTag]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\n\nexport const deleteViewTag = async (ViewId: number, TagId: number) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ViewId\", value: ViewId });\n\tparameters.push({ name: \"TagId\", value: TagId });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[DeleteViewTag]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\nexport const deleteAllViewTagsFromView = async (ViewId: number) => {\n\tconst apiService = new MESApiService();\n\tconst parameters: spParameter[] = [];\n\n\tparameters.push({ name: \"ViewId\", value: ViewId });\n\n\tconst resp = await apiService.callV2(\n\t\tgetIhPath() + \".[DeleteAllViewTagsFromView]\",\n\t\tparameters,\n\t);\n\treturn resp;\n};\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: \"3px\",\n\t\t},\n\t\t\"& .MuiInput-underline:before\": {\n\t\t\tborderBottomColor: \"rgba(0, 0, 0, 0.42)\",\n\t\t},\n\t\tpadding: 0,\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\tpadding: 0,\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\tisPublicCheckbox: {\n\t\tuserSelect: \"none\",\n\t\tpaddingLeft: \"1rem\",\n\t\t\"& > label\": {\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tgap: \"15px\",\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\theight: \"24px\",\n\t\t\twidth: \"24px\",\n\t\t\t\"& svg\": {\n\t\t\t\t// Adjust the icon size as well\n\t\t\t\tfontSize: \"1.5rem\",\n\t\t\t},\n\t\t},\n\t\tcolor: \"black\",\n\t},\n\n\ticonContainer: {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"flex-end\",\n\t\talignItems: \"center\",\n\t\tflex: 1,\n\t},\n\toptionContainer: {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"flex-start\",\n\t\talignItems: \"center\",\n\t\twidth: \"100%\",\n\t},\n\toptionLabel: {\n\t\tflexGrow: 1,\n\t},\n\n\tinputCustom: {\n\t\tcolor: \"rgba(0, 0, 0, 0.87)\",\n\t\tcursor: \"text\",\n\t\tfontSize: \"0.7rem\",\n\t\tboxSizing: \"border-box\",\n\t\tfontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n\t\tfontWeight: 400,\n\t\tlineHeight: 1.1876,\n\t\tletterSpacing: \"0.00938em\",\n\t\t\"& .MuiOutlinedInput-input\": {\n\t\t\tpadding: \"10px 10px\",\n\t\t},\n\t},\n}));\n","import { Button, Divider, Grid, Typography } from \"@material-ui/core\";\nimport { isNil } from \"lodash-es\";\nimport React, { useState } from \"react\";\nimport { ErrorModal } from \"../../../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../../../components/modals/modal.mesf\";\nimport { ButtonWithLoading } from \"../../../../../../../components/shared/buttons/button-with-loading\";\nimport { View } from \"../../../models/TrendingModels\";\nimport { deleteView } from \"../../../repository/TrendingRepository\";\n\ninterface Props {\n\topen: boolean;\n\thandleClose: (shouldUpdate: boolean) => void;\n\tview: View | null;\n}\n\nexport const DeleteViewModal = ({ open, handleClose, view }: Props) => {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\n\tconst handleSubmit = async () => {\n\t\tsetIsLoading(true);\n\t\tif (!isNil(view)) {\n\t\t\tconst resp = await deleteView(view.ViewId);\n\t\t\tif (!resp.ok) {\n\t\t\t\tsetError(resp.message);\n\t\t\t} else {\n\t\t\t\thandleClose(true);\n\t\t\t}\n\t\t}\n\n\t\tsetIsLoading(false);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MesfModal\n\t\t\t\topen={open}\n\t\t\t\thandleClose={() => handleClose(false)}\n\t\t\t\tmaxWidth={\"xl\"}\n\t\t\t\taria-labelledby=\"modal-modal-title\"\n\t\t\t\taria-describedby=\"modal-modal-description\"\n\t\t\t\ttitle=\"Delete View\"\n\t\t\t>\n\t\t\t\t<Divider />\n\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\t{!isNil(view) ? (\n\t\t\t\t\t\t<Grid container spacing={5} style={{ padding: \"2rem\" }}>\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\tstyle={{ padding: \"10px\", width: \"100%\" }}\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\tAre yu sure you want to delete{\" \"}\n\t\t\t\t\t\t\t\t\t<strong>{view?.ViewName}</strong> ?\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) : (\n\t\t\t\t\t\t<Typography>ERROR: No view detected, please select one</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<Divider />\n\t\t\t\t<MesfModal.Actions>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tspacing={1}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\t\tjustifyContent: \"flex-end\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={() => handleClose(false)}\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</Grid>\n\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t{!isNil(view) ? (\n\t\t\t\t\t\t\t\t<ButtonWithLoading\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={handleSubmit}\n\t\t\t\t\t\t\t\t\tisLoading={isLoading}\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</ButtonWithLoading>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant={\"contained\"}\n\t\t\t\t\t\t\t\t\tstyle={{ marginRight: \"1rem\" }}\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\tonClick={() => handleClose(false)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tOk\n\t\t\t\t\t\t\t\t</Button>\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</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import {\n\tButton,\n\tDivider,\n\tGrid,\n\tTextField,\n\tTypography,\n} from \"@material-ui/core\";\nimport { isNil } from \"lodash-es\";\nimport React, { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../../../components/modals/modal.mesf\";\nimport { ButtonWithLoading } from \"../../../../../../../components/shared/buttons/button-with-loading\";\nimport { View } from \"../../../models/TrendingModels\";\nimport { upsertView } from \"../../../repository/TrendingRepository\";\nimport { useTrendingStyles } from \"../../../styles/TrendingStyles\";\n\ninterface Props {\n\topen: boolean;\n\thandleClose: (shouldUpdate: boolean) => void;\n\tview: View | null;\n}\n\nexport const EditViewModal = ({ open, handleClose, view }: Props) => {\n\tconst classes = useTrendingStyles();\n\n\tconst [newName, setNewName] = useState(\"\");\n\tconst [isPublic, setIsPublic] = useState(true);\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\n\tconst handleSubmit = async () => {\n\t\tsetIsLoading(true);\n\t\tif (!isNil(view)) {\n\t\t\tconst resp = await upsertView(view.ViewId, newName, isPublic);\n\t\t\tif (!resp.ok) {\n\t\t\t\tsetError(resp.message);\n\t\t\t} else {\n\t\t\t\thandleClose(true);\n\t\t\t}\n\t\t}\n\n\t\tsetIsLoading(false);\n\t};\n\n\tconst handleChangeInput = (e: any) => {\n\t\te.preventDefault();\n\t\tconst name = e.target.value;\n\t\tsetNewName(name);\n\t};\n\n\tconst handleCheck = () => setIsPublic(!isPublic);\n\n\tuseEffect(() => {\n\t\tif (view) {\n\t\t\tsetIsPublic(view.IsPublic);\n\t\t\tsetNewName(view.ViewName);\n\t\t}\n\t}, [view]);\n\n\treturn (\n\t\t<>\n\t\t\t<MesfModal\n\t\t\t\topen={open}\n\t\t\t\thandleClose={() => handleClose(false)}\n\t\t\t\tmaxWidth={\"xl\"}\n\t\t\t\taria-labelledby=\"modal-modal-title\"\n\t\t\t\taria-describedby=\"modal-modal-description\"\n\t\t\t\ttitle=\"Update View\"\n\t\t\t>\n\t\t\t\t<Divider />\n\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\t{!isNil(view) ? (\n\t\t\t\t\t\t<Grid container spacing={5} style={{ padding: \"2rem\" }}>\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\tstyle={{ padding: \"10px\", width: \"100%\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\tclassName={classes.inputCustom}\n\t\t\t\t\t\t\t\t\tid=\"viewName\"\n\t\t\t\t\t\t\t\t\tlabel=\"Name\"\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\tonChange={handleChangeInput}\n\t\t\t\t\t\t\t\t\tvalue={newName}\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\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\tstyle={{ paddingTop: \"2rem\" }}\n\t\t\t\t\t\t\t\tclassName={classes.isPublicCheckbox}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tchecked={isPublic}\n\t\t\t\t\t\t\t\t\t\tonChange={handleCheck}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Typography>Public</Typography>\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Typography>ERROR: No view detected, please select one</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<Divider />\n\t\t\t\t<MesfModal.Actions>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tspacing={1}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\t\tjustifyContent: \"flex-end\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={() => handleClose(false)}\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</Grid>\n\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t{!isNil(view) ? (\n\t\t\t\t\t\t\t\t<ButtonWithLoading\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\tonClick={handleSubmit}\n\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tUpdate\n\t\t\t\t\t\t\t\t</ButtonWithLoading>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\tstyle={{ marginRight: \"1rem\" }}\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\tonClick={() => handleClose(false)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tOk\n\t\t\t\t\t\t\t\t</Button>\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</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import {\n\tButton,\n\tGrid,\n\tIconButton,\n\tTextField,\n\tTooltip,\n\tTypography,\n} from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport React, { useMemo, useState } from \"react\";\nimport { ErrorModal } from \"../../../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../../../components/modals/modal.mesf\";\nimport { ButtonWithLoading } from \"../../../../../../../components/shared/buttons/button-with-loading\";\nimport { useTrendingContext } from \"../../../context/TrendingContext\";\nimport { getViewTags } from \"../../../repository/TrendingRepository\";\nimport { useTrendingStyles } from \"../../../styles/TrendingStyles\";\n\nimport CreateIcon from \"@material-ui/icons/Create\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport { isNil } from \"lodash-es\";\nimport { View, ViewTag, ViewTagsMap } from \"../../../models/TrendingModels\";\nimport { getRandomColor } from \"../../../utils/tagColors\";\nimport { DeleteViewModal } from \"../deleteViewModal/DeleteViewModal\";\nimport { EditViewModal } from \"../editViewModal/EditViewModal\";\n\ninterface Props {\n\tgetTagsFromAPI: Function;\n\topen: boolean;\n\thandleClose: (shouldUpdate: boolean) => void;\n}\n\nexport const LoadViewModal = ({ open, handleClose, getTagsFromAPI }: Props) => {\n\tconst {\n\t\tstate: { views, viewSelected },\n\t\tactions: { setViews, setViewTagsAndRefetch, setViewSelected },\n\t} = useTrendingContext();\n\tconst classes = useTrendingStyles();\n\tconst [viewForDelete, setViewForDelete] = useState<View | null>(null);\n\tconst [viewForEdit, setViewForEdit] = useState<View | null>(null);\n\n\tconst [deleteViewModalOpen, setDeleteViewModalOpen] = useState(false);\n\tconst [editViewModalOpen, setEditViewModalOpen] = useState(false);\n\n\tconst [allViewsChecked, setAllViewsChecked] = useState(false);\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\n\tconst handleSelect = async () => {\n\t\tif (viewSelected) {\n\t\t\tsetIsLoading(true);\n\t\t\tconst viewTagsResp = await getViewTags(viewSelected.ViewId);\n\t\t\tif (viewTagsResp.ok) {\n\t\t\t\tsetViewTagsAndRefetch(\n\t\t\t\t\tviewTagsResp.data.tables[0].rows.reduce(\n\t\t\t\t\t\t(carr: ViewTagsMap, curr: ViewTag, idx: number) => {\n\t\t\t\t\t\t\tif (isNil(curr.Color)) {\n\t\t\t\t\t\t\t\tcurr.Color = getRandomColor();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcarr[curr.TagId] = {\n\t\t\t\t\t\t\t\tviewTag: curr,\n\t\t\t\t\t\t\t\torder: idx,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn carr;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsetError(viewTagsResp.message);\n\t\t\t}\n\n\t\t\tsetIsLoading(false);\n\t\t\thandleClose(false);\n\t\t}\n\t};\n\n\tconst handleDeleteView = async (view: View, e: any) => {\n\t\te.stopPropagation();\n\t\tif (view.ViewId === viewSelected?.ViewId) {\n\t\t\tsetError(\"Can not delete current view\");\n\t\t} else {\n\t\t\tsetViewForDelete(view);\n\t\t\tsetDeleteViewModalOpen(true);\n\t\t}\n\t};\n\tconst handleEditView = async (view: View, e: any) => {\n\t\tsetViewForEdit(view);\n\t\tsetEditViewModalOpen(true);\n\t};\n\n\tconst handleAllViewsCheckbox = () => {\n\t\tsetAllViewsChecked((prev) => !prev);\n\t};\n\n\tconst publicViews: View[] = useMemo(() => {\n\t\treturn views.filter((v) => v.IsPublic === true);\n\t}, [views, allViewsChecked]);\n\n\treturn (\n\t\t<div>\n\t\t\t<MesfModal\n\t\t\t\topen={open}\n\t\t\t\thandleClose={() => handleClose(false)}\n\t\t\t\tmaxWidth={\"xl\"}\n\t\t\t\taria-labelledby=\"modal-modal-title\"\n\t\t\t\taria-describedby=\"modal-modal-description\"\n\t\t\t\ttitle=\"Views\"\n\t\t\t>\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t{views.length ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Grid item md={12}>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={classes.isPublicCheckbox}\n\t\t\t\t\t\t\t\t\t\tstyle={{ paddingBottom: \"1rem\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"\">\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={allViewsChecked}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleAllViewsCheckbox}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<Typography>All Views</Typography>\n\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t<Grid item md={12}>\n\t\t\t\t\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tid=\"list-of-views\"\n\t\t\t\t\t\t\t\t\t\tnoOptionsText={\n\t\t\t\t\t\t\t\t\t\t\tallViewsChecked\n\t\t\t\t\t\t\t\t\t\t\t\t? \"No views detected, please create a new view\"\n\t\t\t\t\t\t\t\t\t\t\t\t: \"No private views detected, please create a new view .\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\toptions={allViewsChecked ? views : publicViews}\n\t\t\t\t\t\t\t\t\t\tgetOptionLabel={(option) => option.ViewName}\n\t\t\t\t\t\t\t\t\t\tonChange={(ev, val) => setViewSelected(val)}\n\t\t\t\t\t\t\t\t\t\tdefaultValue={viewSelected}\n\t\t\t\t\t\t\t\t\t\tstyle={{ width: \"100%\" }}\n\t\t\t\t\t\t\t\t\t\trenderOption={(option) => (\n\t\t\t\t\t\t\t\t\t\t\t<div className={classes.optionContainer}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div className={classes.optionLabel}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option.ViewName}\n\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<div className={classes.iconContainer}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option.IsPublic ? (\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\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip title={\"Private\"} arrow>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<LockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\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\t\t\t\tcolor: \"black\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"18px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"18px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"auto\",\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</Tooltip>\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\t<IconButton\n\t\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\t\te: React.MouseEvent<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tHTMLButtonElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMouseEvent\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) => handleEditView(option, e)}\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<CreateIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize=\"small\"\n\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\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"18px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"18px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\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</IconButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\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\t\te: React.MouseEvent<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tHTMLButtonElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMouseEvent\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) => handleDeleteView(option, e)}\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<DeleteIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\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\t\theight: \"18px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"18px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\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</IconButton>\n\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</div>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\trenderInput={(params) => (\n\t\t\t\t\t\t\t\t\t\t\t<TextField {...params} label=\"Views\" variant=\"outlined\" />\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</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Typography>No views detected, please add one</Typography>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Grid>\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<MesfModal.Actions>\n\t\t\t\t\t<div style={{ paddingTop: \"1rem\" }}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\tstyle={{ marginRight: \"1rem\" }}\n\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\tonClick={() => handleClose(false)}\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{views.length ? (\n\t\t\t\t\t\t\t<ButtonWithLoading\n\t\t\t\t\t\t\t\tonClick={handleSelect}\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\tisLoading={isLoading}\n\t\t\t\t\t\t\t\tstyle={{ marginRight: \"1rem\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t\t</ButtonWithLoading>\n\t\t\t\t\t\t) : (\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\tstyle={{ marginRight: \"1rem\" }}\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\tonClick={() => handleClose(false)}\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)}\n\t\t\t\t\t</div>\n\t\t\t\t</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<DeleteViewModal\n\t\t\t\topen={deleteViewModalOpen}\n\t\t\t\tview={viewForDelete}\n\t\t\t\thandleClose={(shouldUpdate: boolean) => {\n\t\t\t\t\tsetDeleteViewModalOpen(false);\n\t\t\t\t\tif (shouldUpdate) getTagsFromAPI().then(() => {});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<EditViewModal\n\t\t\t\topen={editViewModalOpen}\n\t\t\t\tview={viewForEdit}\n\t\t\t\thandleClose={(shouldUpdate: boolean) => {\n\t\t\t\t\tsetEditViewModalOpen(false);\n\t\t\t\t\tif (shouldUpdate) getTagsFromAPI().then(() => {});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</div>\n\t);\n};\n","import { Box, Button, Divider, Grid, TextField } from \"@material-ui/core\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport React, { useState } from \"react\";\nimport { ErrorModal } from \"../../../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../../../components/modals/modal.mesf\";\nimport { ButtonWithLoading } from \"../../../../../../../components/shared/buttons/button-with-loading\";\nimport { useTrendingContext } from \"../../../context/TrendingContext\";\nimport {\n\tupsertView,\n\tupsertViewTag,\n} from \"../../../repository/TrendingRepository\";\nimport { useTrendingStyles } from \"../../../styles/TrendingStyles\";\n\ninterface Props {\n\topen: boolean;\n\thandleClose: (shouldUpdate: boolean) => void;\n}\n\nexport const SaveAsViewModal = ({ open, handleClose }: Props) => {\n\tconst classes = useTrendingStyles();\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\n\tconst {\n\t\tstate: { viewTags, views, viewSelected },\n\t\tactions: { setViewSelected, setViewTags },\n\t} = useTrendingContext();\n\tconst [isPublic, setIsPublic] = useState(true);\n\tconst [newView, setNewView] = useState(\"\");\n\n\tconst handleCheck = () => setIsPublic(!isPublic);\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) =>\n\t\tsetNewView(e.target.value);\n\n\tconst handleSubmit = async () => {\n\t\tsetIsLoading(true);\n\t\tconst resp = await upsertView(null, newView, isPublic);\n\n\t\tif (resp.ok) {\n\t\t\tconst ViewId = resp.data.returnValue;\n\t\t\tlet shouldClose = true;\n\n\t\t\tconst results = await Promise.allSettled(\n\t\t\t\tObject.values(viewTags).map(\n\t\t\t\t\t({\n\t\t\t\t\t\tviewTag: {\n\t\t\t\t\t\t\tTagId,\n\t\t\t\t\t\t\tColor,\n\t\t\t\t\t\t\tMinScale,\n\t\t\t\t\t\t\tMaxScale,\n\t\t\t\t\t\t\tIsAutoScale,\n\t\t\t\t\t\t\tIsVisible,\n\t\t\t\t\t\t\tUnit,\n\t\t\t\t\t\t},\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tupsertViewTag(\n\t\t\t\t\t\t\tViewId,\n\t\t\t\t\t\t\tTagId,\n\t\t\t\t\t\t\tColor,\n\t\t\t\t\t\t\tMinScale,\n\t\t\t\t\t\t\tMaxScale,\n\t\t\t\t\t\t\tIsVisible,\n\t\t\t\t\t\t\tIsAutoScale,\n\t\t\t\t\t\t\tUnit,\n\t\t\t\t\t\t).then((r) => {\n\t\t\t\t\t\t\tif (!r.ok) {\n\t\t\t\t\t\t\t\tsetError((prevErr) => `${prevErr}. ${r.message}`);\n\t\t\t\t\t\t\t\tif (shouldClose) {\n\t\t\t\t\t\t\t\t\tshouldClose = false;\n\t\t\t\t\t\t\t\t}\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),\n\t\t\t);\n\n\t\t\thandleClose(shouldClose);\n\t\t} else {\n\t\t\tsetError(resp.message);\n\t\t}\n\n\t\tsetIsLoading(false);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MesfModal\n\t\t\t\topen={open}\n\t\t\t\thandleClose={() => handleClose(false)}\n\t\t\t\tmaxWidth={\"xl\"}\n\t\t\t\taria-labelledby=\"modal-modal-title\"\n\t\t\t\taria-describedby=\"modal-modal-description\"\n\t\t\t\ttitle=\"Save View As\"\n\t\t\t>\n\t\t\t\t<Divider />\n\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\t<Grid container spacing={5} style={{ padding: \"1rem\" }}>\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={{ padding: \"10px\", width: \"100%\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{views.length && viewSelected ? (\n\t\t\t\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tid=\"list-of-views\"\n\t\t\t\t\t\t\t\t\toptions={views}\n\t\t\t\t\t\t\t\t\tdefaultValue={viewSelected}\n\t\t\t\t\t\t\t\t\tgetOptionLabel={(option) => option.ViewName}\n\t\t\t\t\t\t\t\t\tfreeSolo\n\t\t\t\t\t\t\t\t\tonChange={(ev, val) => {\n\t\t\t\t\t\t\t\t\t\tsetViewSelected(val);\n\t\t\t\t\t\t\t\t\t\tif (val) {\n\t\t\t\t\t\t\t\t\t\t\tsetNewView(\"\");\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\tonInputChange={(event, newInputValue) => {\n\t\t\t\t\t\t\t\t\t\tconst isValueInViews = views.some(\n\t\t\t\t\t\t\t\t\t\t\t(view) => view.ViewName === newInputValue,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tif (!isValueInViews) {\n\t\t\t\t\t\t\t\t\t\t\tsetNewView(newInputValue);\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\tstyle={{ width: \"100%\" }}\n\t\t\t\t\t\t\t\t\trenderInput={(params) => (\n\t\t\t\t\t\t\t\t\t\t<TextField {...params} label=\"Views\" variant=\"outlined\" />\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<Box>\n\t\t\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\t\t\tstyle={{ minWidth: \"600px\" }}\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tid=\"outlined-basic\"\n\t\t\t\t\t\t\t\t\t\tlabel=\"View name\"\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\tvalue={newView}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => setNewView(e.target.value)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Box>\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\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={{ paddingTop: \"2rem\" }}\n\t\t\t\t\t\tclassName={classes.isPublicCheckbox}\n\t\t\t\t\t>\n\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\tPublic\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\tchecked={isPublic}\n\t\t\t\t\t\t\t\tonChange={handleCheck}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</Grid>\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<Divider />\n\t\t\t\t<MesfModal.Actions>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcontainer\n\t\t\t\t\t\tspacing={1}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\t\tjustifyContent: \"flex-end\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={() => handleClose(false)}\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</Grid>\n\t\t\t\t\t\t<Grid item>\n\t\t\t\t\t\t\t<ButtonWithLoading\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={handleSubmit}\n\t\t\t\t\t\t\t\tisLoading={isLoading}\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</ButtonWithLoading>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t</Grid>\n\t\t\t\t</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import { makeStyles } from \"@material-ui/core\";\n\nexport const useTagsTreeModalStyles = makeStyles((theme) => ({\n\tdataTypeOfTree: {\n\t\twidth: \"25px\",\n\t\theight: \"25px\",\n\t\tcolor: \"white\",\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tcursor: \"pointer\",\n\t\tborder: \"1px black solid\",\n\t},\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\t\"&:hover\": {\n\t\t\tbackgroundColor: \"#f2f2f2\",\n\t\t},\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\tcontextMenu: {\n\t\tfontSize: \"14px\",\n\t\tbackgroundColor: \"#fff\",\n\t\tborderRadius: \"2px\",\n\t\tpadding: \"5px 10px;\",\n\t\twidth: \"140px\",\n\t\theight: \"auto\",\n\t\tmargin: \"0\",\n\t\tposition: \"fixed\",\n\t\tboxShadow: \"0 0 20px 0 #ccc\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t},\n\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\tborderRadius: \"1px\",\n\t\tbackgroundColor: \"#DAE4F2\",\n\t},\n\tcustomDragRoot: {\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\tcustomDragLabel: {\n\t\talignItems: \"center\",\n\t\tdisplay: \"flex\",\n\t},\n}));\n","import { NodeModel } from \"@minoru/react-dnd-treeview\";\nimport { TagFromTree } from \"../models/TagsTree.model\";\n\nexport function buildTagsTree(data: TagFromTree[]) {\n\tconst nodeMap = new Map();\n\n\t// Step 1: Create node entries in the map.\n\tdata.forEach((item) => {\n\t\tnodeMap.set(item.TagId, { ...item, children: [] });\n\t});\n\n\t// Step 2: Build the tree by linking nodes to their parents.\n\tconst rootNodes: TagFromTree[] = [];\n\tdata.forEach((item) => {\n\t\tif (item.ParentTagId === null) {\n\t\t\t// This is a root node.\n\t\t\trootNodes.push(nodeMap.get(item.TagId));\n\t\t} else {\n\t\t\t// Find the parent node in the map and add this node as a child.\n\t\t\tconst parentNode = nodeMap.get(item.ParentTagId);\n\t\t\tif (parentNode) {\n\t\t\t\tparentNode.children.push(nodeMap.get(item.TagId));\n\t\t\t} else {\n\t\t\t\t// If parent is not found, consider this as a root node.\n\t\t\t\t// This situation shouldn't happen in a well-formed tree,\n\t\t\t\t// unless the parent ID is invalid.\n\t\t\t\trootNodes.push(nodeMap.get(item.TagId));\n\t\t\t}\n\t\t}\n\t});\n\n\t// This will return the array of root nodes.\n\treturn rootNodes;\n}\n\nexport function buildTagsTreeV2(data: TagFromTree[]): NodeModel<TagFromTree>[] {\n\tconst tagsForTree: NodeModel<TagFromTree>[] = [];\n\n\tdata.forEach((el) => {\n\t\tconst tagForTree: NodeModel<TagFromTree> = {\n\t\t\tid: el.TagId,\n\t\t\tparent: el.ParentTagId || 0,\n\t\t\ttext: el.TagName,\n\t\t\tdata: el,\n\t\t\tdroppable: el.TagTypeCode === \"F\",\n\t\t};\n\t\treturn tagsForTree.push(tagForTree);\n\t});\n\treturn tagsForTree;\n}\n","import { Box, Button, TextField } from \"@material-ui/core\";\nimport { NodeModel } from \"@minoru/react-dnd-treeview\";\nimport React, { useState } from \"react\";\nimport { ErrorModal } from \"../../../../../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../../../../../components/modals/modal.mesf\";\nimport { ButtonWithLoading } from \"../../../../../../../../../components/shared/buttons/button-with-loading\";\nimport { TagFromTree } from \"../../../../../models/TagsTree.model\";\nimport { upsertTagFolder } from \"../../../../../repository/TrendingRepository\";\n\ninterface Props {\n\topen: boolean;\n\thandleClose: (shouldUpdate: boolean) => void;\n\ttagNodeSelectedInTree: NodeModel<TagFromTree> | null;\n}\nexport const NewFolderModal = ({\n\topen,\n\thandleClose,\n\ttagNodeSelectedInTree,\n}: Props) => {\n\tconst [name, setName] = useState<string>();\n\tconst [error, setError] = useState<string>(\"\");\n\tconst [isLoading, setIsLoading] = useState<boolean>(false);\n\n\tconst onSubmit = async (e: any) => {\n\t\te.preventDefault();\n\n\t\tconst parentId = Number(tagNodeSelectedInTree?.parent) || null;\n\t\tconst parentTagId =\n\t\t\ttagNodeSelectedInTree?.data?.TagTypeCode === \"F\"\n\t\t\t\t? Number(tagNodeSelectedInTree.id)\n\t\t\t\t: parentId;\n\n\t\tsetIsLoading(true);\n\t\tif (name) {\n\t\t\tconst resp = await upsertTagFolder(null, parentTagId, name, true);\n\t\t\tif (!resp.ok) {\n\t\t\t\tsetError(resp.message);\n\t\t\t}\n\t\t}\n\n\t\thandleClose(true);\n\t\tsetName(\"\");\n\t\tsetIsLoading(false);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MesfModal\n\t\t\t\topen={open}\n\t\t\t\thandleClose={() => handleClose(false)}\n\t\t\t\tmaxWidth={\"lg\"}\n\t\t\t\taria-labelledby=\"modal-modal-title\"\n\t\t\t\taria-describedby=\"modal-modal-description\"\n\t\t\t\ttitle=\"New folder\"\n\t\t\t>\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\t<Box>\n\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\tstyle={{ minWidth: \"600px\" }}\n\t\t\t\t\t\t\tid=\"outlined-basic\"\n\t\t\t\t\t\t\tlabel=\"Folder name\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\tvalue={name}\n\t\t\t\t\t\t\tonChange={(e) => setName(e.target.value)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Box>\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<MesfModal.Actions>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\tonClick={() => handleClose(false)}\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</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ButtonWithLoading\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\tonClick={onSubmit}\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t</ButtonWithLoading>\n\t\t\t\t\t</div>\n\t\t\t\t</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import { Box, Button, Typography } from \"@material-ui/core\";\nimport { NodeModel } from \"@minoru/react-dnd-treeview\";\nimport React, { useState } from \"react\";\nimport { ErrorModal } from \"../../../../../../../../../components/modals/error-modal\";\nimport MesfModal from \"../../../../../../../../../components/modals/modal.mesf\";\nimport { ButtonWithLoading } from \"../../../../../../../../../components/shared/buttons/button-with-loading\";\nimport { TagFromTree } from \"../../../../../models/TagsTree.model\";\nimport {\n\tdeleteTagFolder,\n\tupsertTagFolder,\n} from \"../../../../../repository/TrendingRepository\";\n\ninterface Props {\n\topen: boolean;\n\thandleClose: (shouldUpdate: boolean) => void;\n\ttagNodeSelectedInTree: NodeModel<TagFromTree> | null;\n}\nexport const RemoveFolderModal = ({\n\topen,\n\thandleClose,\n\ttagNodeSelectedInTree,\n}: Props) => {\n\tconst [error, setError] = useState<string>(\"\");\n\tconst [isLoading, setIsLoading] = useState<boolean>(false);\n\n\tconst onSubmit = async (e: any) => {\n\t\te.preventDefault();\n\t\tif (tagNodeSelectedInTree) {\n\t\t\tconst parentId = Number(tagNodeSelectedInTree?.parent) || null;\n\t\t\tconst name = tagNodeSelectedInTree?.text;\n\t\t\tconst id = Number(tagNodeSelectedInTree?.id);\n\t\t\tlet resp;\n\t\t\tsetIsLoading(true);\n\t\t\tif (parentId) {\n\t\t\t\tresp = await deleteTagFolder(id);\n\t\t\t\tif (!resp.ok) {\n\t\t\t\t\tsetError(resp.message);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresp = await upsertTagFolder(id, parentId, name, false);\n\t\t\t}\n\t\t\tif (!resp.ok) {\n\t\t\t\tsetError(resp.message);\n\t\t\t}\n\t\t}\n\t\thandleClose(true);\n\t\tsetIsLoading(false);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MesfModal\n\t\t\t\topen={open}\n\t\t\t\thandleClose={() => handleClose(false)}\n\t\t\t\tmaxWidth={\"lg\"}\n\t\t\t\taria-labelledby=\"modal-modal-title\"\n\t\t\t\taria-describedby=\"modal-modal-description\"\n\t\t\t\ttitle=\"Remove Folder\"\n\t\t\t>\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\t<Box>\n\t\t\t\t\t\t<Typography>\n\t\t\t\t\t\t\tAre you sure you want to remove{\" \"}\n\t\t\t\t\t\t\t<strong>{tagNodeSelectedInTree?.text}</strong> folder?\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Box>\n\t\t\t\t</MesfModal.Content>\n\t\t\t\t<MesfModal.Actions>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\tonClick={() => handleClose(false)}\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</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ButtonWithLoading\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\tonClick={onSubmit}\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tRemove\n\t\t\t\t\t\t</ButtonWithLoading>\n\t\t\t\t\t</div>\n\t\t\t\t</MesfModal.Actions>\n\t\t\t</MesfModal>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import { MenuItem } from \"@material-ui/core\";\nimport { NodeModel } from \"@minoru/react-dnd-treeview\";\nimport React, { type Dispatch, useState } from \"react\";\nimport { TagFromTree } from \"../../../../models/TagsTree.model\";\nimport { useTagsTreeModalStyles } from \"../../../../styles/TasgTreeModalStyles\";\nimport { NewFolderModal } from \"./NewFolder/NewFolder\";\nimport { RemoveFolderModal } from \"./RemoveFolder/RemoveFolder\";\n\ninterface Props {\n\tisOpen: boolean;\n\ttagNodeSelectedInTree: NodeModel<TagFromTree> | null;\n\tanchorPoint: { x: number; y: number } | null;\n\tgetTagsTreeData: Function;\n\tsetShowContextMenu: Dispatch<boolean>;\n}\n\nexport const ContextMenu = ({\n\tisOpen,\n\tanchorPoint,\n\ttagNodeSelectedInTree,\n\tgetTagsTreeData,\n\tsetShowContextMenu,\n}: Props) => {\n\tconst classes = useTagsTreeModalStyles();\n\n\tconst [showNewTagModal, setShowNewTagModal] = useState<boolean>(false);\n\tconst [showRemoveTagModal, setShowRemoveTagModal] = useState<boolean>(false);\n\tconst isFolder = tagNodeSelectedInTree?.data?.TagTypeCode === \"F\";\n\n\treturn (\n\t\t<>\n\t\t\t{isOpen && anchorPoint ? (\n\t\t\t\t<ul\n\t\t\t\t\tclassName={classes.contextMenu}\n\t\t\t\t\tstyle={{ top: anchorPoint.y, left: anchorPoint.x }}\n\t\t\t\t>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tstyle={{ width: \"100%\", justifyContent: \"left\" }}\n\t\t\t\t\t\tonClick={() => setShowNewTagModal(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\tNew Folder\n\t\t\t\t\t</MenuItem>\n\t\t\t\t\t{tagNodeSelectedInTree && isFolder && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tstyle={{ width: \"100%\", justifyContent: \"left\" }}\n\t\t\t\t\t\t\tonClick={() => setShowRemoveTagModal(true)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tRemove Folder\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t)}\n\t\t\t\t</ul>\n\t\t\t) : null}\n\t\t\t<NewFolderModal\n\t\t\t\topen={showNewTagModal}\n\t\t\t\thandleClose={(shouldUpdate) => {\n\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\tgetTagsTreeData();\n\t\t\t\t\t}\n\t\t\t\t\tsetShowContextMenu(false);\n\t\t\t\t\tsetShowNewTagModal(false);\n\t\t\t\t}}\n\t\t\t\ttagNodeSelectedInTree={tagNodeSelectedInTree}\n\t\t\t/>\n\t\t\t<RemoveFolderModal\n\t\t\t\topen={showRemoveTagModal}\n\t\t\t\thandleClose={(shouldUpdate) => {\n\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\tgetTagsTreeData();\n\t\t\t\t\t}\n\t\t\t\t\tsetShowContextMenu(false);\n\t\t\t\t\tsetShowRemoveTagModal(false);\n\t\t\t\t}}\n\t\t\t\ttagNodeSelectedInTree={tagNodeSelectedInTree}\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import FolderIcon from \"@material-ui/icons/Folder\";\nimport InsertChartIcon from \"@material-ui/icons/InsertChart\";\nimport { DragLayerMonitorProps } from \"@minoru/react-dnd-treeview\";\nimport React from \"react\";\nimport { TagFromTree } from \"../../../models/TagsTree.model\";\nimport { useTagsTreeModalStyles } from \"../../../styles/TasgTreeModalStyles\";\n\ntype Props = {\n\tmonitorProps: DragLayerMonitorProps<TagFromTree>;\n};\n\nexport const CustomDragPreview: React.FC<Props> = (props) => {\n\tconst classes = useTagsTreeModalStyles();\n\n\tconst item = props.monitorProps.item;\n\tconst isFolder = item.data?.TagTypeCode === \"F\" ? true : false;\n\n\treturn (\n\t\t<div className={classes.customDragRoot}>\n\t\t\t<div className={classes.icon}>\n\t\t\t\t{isFolder ? <FolderIcon /> : <InsertChartIcon fontSize=\"small\" />}\n\t\t\t</div>\n\t\t\t<div className={classes.customDragLabel}>\n\t\t\t\t{item.data?.Alias || item.data?.TagName}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","// TagFolderCustomNode.js\nimport { Tooltip, Typography } from \"@material-ui/core\";\nimport { ArrowRight } from \"@material-ui/icons\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport FolderIcon from \"@material-ui/icons/Folder\";\nimport InsertChartIcon from \"@material-ui/icons/InsertChart\";\nimport { NodeModel, RenderParams } from \"@minoru/react-dnd-treeview\";\nimport React, { useCallback, useEffect } from \"react\";\nimport { TagFromTree } from \"../../../models/TagsTree.model\";\nimport { useTagsTreeModalStyles } from \"../../../styles/TasgTreeModalStyles\";\n\ninterface CustomNodeProps {\n\tnode: NodeModel<TagFromTree>;\n\tsetContextMenuOver: (\n\t\tdata: NodeModel<TagFromTree>,\n\t\te: React.MouseEvent<HTMLElement>,\n\t) => void;\n\toptions: RenderParams;\n\topenTagFolders: {\n\t\t[TagId: string]: string | number;\n\t\t[TagId: number]: string | number;\n\t};\n\thandleSelect: (node: NodeModel<TagFromTree>) => void;\n\tsetOpenTagFolders: React.Dispatch<\n\t\tReact.SetStateAction<{\n\t\t\t[TagId: string]: string | number;\n\t\t\t[TagId: number]: string | number;\n\t\t}>\n\t>;\n\tisSelected: boolean;\n}\n\nconst customStyles = `\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n`;\n\nexport const TagFolderCustomNode: React.FC<CustomNodeProps> = ({\n\tnode,\n\toptions: { depth, isOpen, onToggle, containerRef },\n\toptions,\n\tsetOpenTagFolders,\n\topenTagFolders,\n\thandleSelect,\n\tsetContextMenuOver,\n\tisSelected,\n}) => {\n\tconst classes = useTagsTreeModalStyles();\n\tconst nodeClasses = `${classes.customNodeRoot} ${classes.root} ${\n\t\tisSelected ? classes.selected : \"\"\n\t}`;\n\tconst onClickHandler = () => {\n\t\tif (options.hasChild || node.data?.TagTypeCode === \"F\") {\n\t\t\tif (openTagFolders[node.id]) {\n\t\t\t\tconst newOpenTagFolders = { ...openTagFolders };\n\t\t\t\tdelete newOpenTagFolders[node.id as number];\n\t\t\t\tsetOpenTagFolders(newOpenTagFolders);\n\t\t\t} else {\n\t\t\t\tsetOpenTagFolders({ ...openTagFolders, [node.id]: node.id });\n\t\t\t}\n\t\t\tonToggle();\n\t\t\treturn;\n\t\t}\n\t\tif (!options.hasChild) {\n\t\t\thandleSelect(node);\n\t\t}\n\t};\n\n\tconst handleContextMenu = useCallback(\n\t\t(ev: any) => {\n\t\t\tev.stopPropagation();\n\t\t\tev.preventDefault();\n\t\t\tsetContextMenuOver(node, ev);\n\t\t},\n\t\t[node.id, setContextMenuOver],\n\t);\n\n\tuseEffect(() => {\n\t\tcontainerRef.current?.addEventListener(\"contextmenu\", handleContextMenu);\n\n\t\treturn () => {\n\t\t\tcontainerRef.current?.removeEventListener(\n\t\t\t\t\"contextmenu\",\n\t\t\t\thandleContextMenu,\n\t\t\t);\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={nodeClasses}\n\t\t\tonClick={onClickHandler}\n\t\t\tstyle={{ paddingLeft: depth * 20, cursor: \"pointer\" }}\n\t\t>\n\t\t\t<style>{customStyles}</style>\n\t\t\t{\n\t\t\t\t<>\n\t\t\t\t\t{options.hasChild ? (\n\t\t\t\t\t\t<div>{isOpen ? <ArrowDropDownIcon /> : <ArrowRight />}</div>\n\t\t\t\t\t) : null}\n\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{options.hasChild || node.data?.TagTypeCode === \"F\" ? (\n\t\t\t\t\t\t\t<FolderIcon />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<InsertChartIcon fontSize=\"small\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t}\n\t\t\t{node.data?.TagName && (\n\t\t\t\t<>\n\t\t\t\t\t{node.data?.TagTypeCode && node.data?.TagTypeCode !== \"F\" && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={classes.dataTypeOfTree}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\t\tnode.data?.TagTypeCode === \"A\" ? \"#AD48C4\" : \"#C46F48\",\n\t\t\t\t\t\t\t\tmargin: \"0 5px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{node.data?.TagTypeCode}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<Tooltip title={node.data.TagName} placement=\"top\" arrow>\n\t\t\t\t\t\t<Typography variant=\"body2\">\n\t\t\t\t\t\t\t{node.data?.Alias || node.data?.TagName}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { CircularProgress, Grid } from \"@material-ui/core\";\nimport {\n\tDndProvider,\n\ttype DragLayerMonitorProps,\n\ttype DropOptions,\n\ttype NodeModel,\n\tTree,\n} from \"@minoru/react-dnd-treeview\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ErrorModal } from \"../../../../../../../components/modals/error-modal\";\nimport { useTrendingContext } from \"../../../context/TrendingContext\";\nimport { TagFromTree } from \"../../../models/TagsTree.model\";\nimport {\n\tchangeTagFolderToTag,\n\tgetTagsTree,\n\tupsertTagFolder,\n} from \"../../../repository/TrendingRepository\";\nimport { useTagsTreeModalStyles } from \"../../../styles/TasgTreeModalStyles\";\nimport { buildTagsTreeV2 } from \"../../../utils/buildTagsTree\";\nimport { ContextMenu } from \"./ContextMenu/ContextMenu\";\nimport { CustomDragPreview } from \"./CustomDragView\";\nimport { TagFolderCustomNode } from \"./TagFolderCustomNode\";\n\ninterface TagSelectionModalProps {\n\tisOpen: boolean;\n\tonClose: () => void;\n\tonTagSelect: (tag: TagFromTree) => void;\n}\n\nexport const TagSelectionModal = ({\n\tisOpen,\n\tonClose,\n\tonTagSelect,\n}: TagSelectionModalProps) => {\n\tconst classes = useTagsTreeModalStyles();\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState(\"\");\n\n\tconst [tagsTreeData, setTagsTreeData] = useState<NodeModel<TagFromTree>[]>(\n\t\t[],\n\t);\n\tconst [tagNodeSelectedInTree, setTagNodeSelectedInTree] =\n\t\tuseState<NodeModel<TagFromTree> | null>(null);\n\tconst [anchorPoint, setAnchorPoint] = useState<{\n\t\tx: number;\n\t\ty: number;\n\t} | null>(null);\n\tconst [showContextMenu, setShowContextMenu] = useState(false);\n\n\tconst backendOffset = 1000000;\n\n\tconst [openTagFolders, setOpenTagFolders] = useState<{\n\t\t[TagId: string]: string | number;\n\t\t[TagId: number]: string | number;\n\t}>({});\n\tconst [selectedNodes, setSelectedNodes] = useState<NodeModel<TagFromTree>[]>(\n\t\t[],\n\t);\n\n\tconst {\n\t\tstate: { viewTags },\n\t} = useTrendingContext();\n\n\tconst handleContextMenu = (\n\t\tdata: NodeModel<TagFromTree>,\n\t\te: React.MouseEvent<HTMLElement>,\n\t) => {\n\t\te.preventDefault();\n\t\tconst top = e.clientY;\n\t\tconst left = e.clientX;\n\n\t\tsetAnchorPoint({ x: left, y: top });\n\n\t\tsetSelectedNodes([data]);\n\n\t\tsetShowContextMenu(true);\n\t\tconst selectedNode = tagsTreeData.find(\n\t\t\t(node: NodeModel<TagFromTree>) => node.data?.TagId === data.id,\n\t\t);\n\t\tif (selectedNode) {\n\t\t\tsetTagNodeSelectedInTree(selectedNode);\n\t\t}\n\t};\n\n\tconst getTagsTreeData = async () => {\n\t\tif (isOpen) {\n\t\t\tsetIsLoading(true);\n\t\t\tconst tagsTree = await getTagsTree();\n\t\t\tif (tagsTree.ok) {\n\t\t\t\tconst rows = tagsTree.data.tables[0].rows;\n\t\t\t\tconst tree = buildTagsTreeV2(rows);\n\t\t\t\tsetTagsTreeData(tree);\n\t\t\t}\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tconst expanded = useMemo(() => {\n\t\treturn Object.keys(openTagFolders).map((el) => Number.parseInt(el));\n\t}, [openTagFolders]);\n\n\tuseEffect(() => {\n\t\tgetTagsTreeData();\n\t}, [isOpen]);\n\n\tconst handleDrop = async (\n\t\ttree: NodeModel<TagFromTree>[],\n\t\toptions: DropOptions<TagFromTree>,\n\t) => {\n\t\tsetIsLoading(true);\n\t\tif (options.dragSource) {\n\t\t\tconst tagId = Number(options.dragSource.id);\n\t\t\tconst newFolderId = Number(options.dropTarget?.id) || null;\n\n\t\t\tif (tagId === newFolderId) {\n\t\t\t\tsetIsLoading(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (options.dragSource.data?.TagTypeCode === \"F\") {\n\t\t\t\tconst newTree = await upsertTagFolder(\n\t\t\t\t\ttagId,\n\t\t\t\t\tnewFolderId,\n\t\t\t\t\toptions.dragSource.text,\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t\tif (!newTree.ok) {\n\t\t\t\t\tsetError(newTree.message);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst newTree = await changeTagFolderToTag(tagId, newFolderId);\n\t\t\t\tif (!newTree.ok) {\n\t\t\t\t\tsetError(newTree.message);\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetTagsTreeData(tree);\n\t\t}\n\t\tsetIsLoading(false);\n\t};\n\n\tconst handleClick = (node: NodeModel<TagFromTree>) => {\n\t\tif (node.data) {\n\t\t\tonTagSelect(node.data);\n\t\t}\n\t};\n\n\tconst handleCloseContextMenu = (e: any) => {\n\t\tif (showContextMenu) {\n\t\t\tsetShowContextMenu(false);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: isOpen ? \"block\" : \"none\",\n\t\t\t\t\tminHeight: \"700px\",\n\t\t\t\t\tminWidth: \"800px\",\n\t\t\t\t}}\n\t\t\t\tonClick={handleCloseContextMenu}\n\t\t\t>\n\t\t\t\t<div style={{ overflowY: \"auto\", maxHeight: \"700px\" }}>\n\t\t\t\t\t{isLoading ? (\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\tstyle={{ minHeight: \"100px\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CircularProgress size=\"2rem\" />\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<Tree\n\t\t\t\t\t\t\t\tclasses={{\n\t\t\t\t\t\t\t\t\troot: classes.assetRoot,\n\t\t\t\t\t\t\t\t\tdropTarget: classes.dropTarget,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tinitialOpen={expanded}\n\t\t\t\t\t\t\t\ttree={tagsTreeData}\n\t\t\t\t\t\t\t\trootId={backendOffset}\n\t\t\t\t\t\t\t\tonDrop={handleDrop}\n\t\t\t\t\t\t\t\tcanDrop={(\n\t\t\t\t\t\t\t\t\ttag: any,\n\t\t\t\t\t\t\t\t\toptions: DropOptions<TagFromTree>,\n\t\t\t\t\t\t\t\t): boolean => {\n\t\t\t\t\t\t\t\t\treturn !selectedNodes.some(\n\t\t\t\t\t\t\t\t\t\t(selectedNode) =>\n\t\t\t\t\t\t\t\t\t\t\tNumber(selectedNode.id) === Number(options.dropTargetId),\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\trender={(node, options) => {\n\t\t\t\t\t\t\t\t\tconst selected = selectedNodes.some(\n\t\t\t\t\t\t\t\t\t\t(selectedNode) =>\n\t\t\t\t\t\t\t\t\t\t\tNumber(selectedNode.id) === Number(node.id),\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<TagFolderCustomNode\n\t\t\t\t\t\t\t\t\t\t\tsetContextMenuOver={handleContextMenu}\n\t\t\t\t\t\t\t\t\t\t\tnode={node}\n\t\t\t\t\t\t\t\t\t\t\toptions={options}\n\t\t\t\t\t\t\t\t\t\t\tisSelected={selected}\n\t\t\t\t\t\t\t\t\t\t\topenTagFolders={openTagFolders}\n\t\t\t\t\t\t\t\t\t\t\tsetOpenTagFolders={setOpenTagFolders}\n\t\t\t\t\t\t\t\t\t\t\thandleSelect={handleClick}\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\tdragPreviewRender={(\n\t\t\t\t\t\t\t\t\tmonitorProps: DragLayerMonitorProps<TagFromTree>,\n\t\t\t\t\t\t\t\t) => (\n\t\t\t\t\t\t\t\t\t<CustomDragPreview monitorProps={monitorProps} />\n\t\t\t\t\t\t\t\t\t// <div>{monitorProps.item.data?.TagName}</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<ContextMenu\n\t\t\t\tanchorPoint={anchorPoint}\n\t\t\t\tisOpen={showContextMenu}\n\t\t\t\tsetShowContextMenu={setShowContextMenu}\n\t\t\t\ttagNodeSelectedInTree={tagNodeSelectedInTree}\n\t\t\t\tgetTagsTreeData={getTagsTreeData}\n\t\t\t/>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t</>\n\t);\n};\n","import { Box, Typography } from \"@material-ui/core\";\nimport React from \"react\";\nimport MesfModal from \"../../../../../../../components/modals/modal.mesf\";\nimport { TagFromTree } from \"../../../models/TagsTree.model\";\nimport { TagSelectionModal } from \"./TagSelectionModal\";\n\ninterface Props {\n\topen: boolean;\n\thandleClose: () => void;\n\tonTagSelect: (selected: TagFromTree) => void;\n}\n\nexport const TagsTreeModal = ({ open, handleClose, onTagSelect }: Props) => {\n\treturn (\n\t\t<>\n\t\t\t<MesfModal\n\t\t\t\topen={open}\n\t\t\t\thandleClose={handleClose}\n\t\t\t\tmaxWidth={\"lg\"}\n\t\t\t\taria-labelledby=\"modal-modal-title\"\n\t\t\t\taria-describedby=\"modal-modal-description\"\n\t\t\t\ttitle=\"Tags\"\n\t\t\t>\n\t\t\t\t<MesfModal.Content>\n\t\t\t\t\t<Box>\n\t\t\t\t\t\t<Typography id=\"modal-modal-description\">\n\t\t\t\t\t\t\t<TagSelectionModal\n\t\t\t\t\t\t\t\tisOpen={open}\n\t\t\t\t\t\t\t\tonClose={() => handleClose}\n\t\t\t\t\t\t\t\tonTagSelect={onTagSelect}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Box>\n\t\t\t\t</MesfModal.Content>\n\t\t\t</MesfModal>\n\t\t</>\n\t);\n};\n","import { ChartData } from \"chart.js\";\nimport { useMemo } from \"react\";\nimport { CursorData, ViewTagsMap } from \"../models/TrendingModels\";\n\ninterface Props {\n\tcursorData: CursorData;\n\tviewTagsMap: ViewTagsMap;\n\tchartData: ChartData;\n}\n\ninterface TagsDataTable {\n\t[tagName: string]: {\n\t\ty1: number;\n\t\ty2: number;\n\t\ty2y1: number;\n\t\tpmin: {\n\t\t\tx: number | Date;\n\t\t\ty: number;\n\t\t};\n\t\tpmax: {\n\t\t\tx: number | Date;\n\t\t\ty: number;\n\t\t};\n\t};\n}\n\nexport const useTagsDataTable = ({\n\tcursorData,\n\tviewTagsMap,\n\tchartData,\n}: Props): TagsDataTable => {\n\treturn useMemo(() => {\n\t\tconst dataTable: TagsDataTable = {};\n\n\t\tif (cursorData) {\n\t\t\tfor (const viewTagEntry in viewTagsMap) {\n\t\t\t\tconst tag = viewTagsMap[viewTagEntry].viewTag;\n\n\t\t\t\tconst datasetForTag =\n\t\t\t\t\tchartData.datasets.find((ds: any) => {\n\t\t\t\t\t\treturn ds.tagId === tag?.TagId;\n\t\t\t\t\t})?.data || [];\n\n\t\t\t\tlet p1 = { x: new Date(\"1900-01-01\"), y: 0 };\n\t\t\t\tlet p1idx = 0;\n\t\t\t\tlet p2idx = 0;\n\t\t\t\tlet p2 = { x: new Date(\"1900-01-01\"), y: 0 };\n\t\t\t\tlet p1Found = false;\n\n\t\t\t\tlet pmin = { x: 0, y: Number.POSITIVE_INFINITY };\n\t\t\t\tlet pmax = { x: 0, y: Number.NEGATIVE_INFINITY };\n\t\t\t\tfor (let idx = 0; idx < datasetForTag.length; idx++) {\n\t\t\t\t\tconst curr = datasetForTag[idx];\n\t\t\t\t\tconst currentVal = (curr! as any).x;\n\n\t\t\t\t\tif (!p1Found) {\n\t\t\t\t\t\tif (currentVal < cursorData.x1) {\n\t\t\t\t\t\t\tp1 = curr as any;\n\t\t\t\t\t\t\tp1idx = idx;\n\t\t\t\t\t\t\tp2idx = idx;\n\t\t\t\t\t\t\tp2 = JSON.parse(JSON.stringify(p1));\n\t\t\t\t\t\t\tpmin = JSON.parse(JSON.stringify(p1));\n\t\t\t\t\t\t\tpmax = JSON.parse(JSON.stringify(p1));\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tp1Found = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (currentVal < cursorData.x2) {\n\t\t\t\t\t\t\tp2 = curr as any;\n\t\t\t\t\t\t\tp2idx = idx;\n\n\t\t\t\t\t\t\tif (pmin[\"y\"] > (curr! as any)[\"y\"]) {\n\t\t\t\t\t\t\t\tpmin = JSON.parse(JSON.stringify(curr));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (pmax[\"y\"] < (curr! as any)[\"y\"]) {\n\t\t\t\t\t\t\t\tpmax = JSON.parse(JSON.stringify(curr));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdataTable[tag?.TagName] = {\n\t\t\t\t\ty1: p1.y,\n\t\t\t\t\ty2: p2.y,\n\t\t\t\t\ty2y1: Number(p2.y) - Number(p1.y),\n\t\t\t\t\tpmin,\n\t\t\t\t\tpmax,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn dataTable;\n\t}, [viewTagsMap, chartData, cursorData]);\n};\n","import { makeStyles } from \"@material-ui/core\";\n\nexport const useTagsTableStyles = makeStyles((theme) => ({\n\ttopTitles: {\n\t\tborder: \"0.0625rem solid black\",\n\t\tborderBottom: \"none\",\n\t\tbackgroundColor: \"#f5f7f7\",\n\t\tcolor: \"#333\",\n\t\tfontWeight: \"normal\",\n\t\ttextAlign: \"center\",\n\t\tpadding: \"6px 0\",\n\t},\n\n\tbottomTitlesRow: {\n\t\t\"& th\": {\n\t\t\tborder: \"0.0625rem solid black\",\n\t\t\tbackgroundColor: \"#f5f7f7\",\n\t\t\tcolor: \"#333\",\n\t\t\tfontWeight: \"normal\",\n\t\t\ttextAlign: \"center\",\n\t\t\tpadding: \"6px 0\",\n\t\t},\n\t},\n\tcheckbox: {\n\t\t'& input[type=\"checkbox\"]': {\n\t\t\tzoom: 1.5,\n\t\t},\n\t\ttextAlign: \"center\",\n\t},\n\trowHover: {\n\t\t\"&:hover\": {\n\t\t\tbackgroundColor: \"#f2f2f2\",\n\t\t},\n\t},\n\n\tdoubleInput: {\n\t\tpadding: \"0\",\n\n\t\t'& input[type=\"text\"] ': {\n\t\t\twidth: \"100%\", // 180px / 16px,\n\t\t\theight: \"17px\",\n\t\t\tdisplay: \"block\",\n\t\t\tmargin: \"0\",\n\t\t\tpadding: \"0\",\n\t\t},\n\t},\n\n\tinputCol: {\n\t\twidth: \"11.25rem\", // 180px / 16px\n\t\toverflow: \"hidden\",\n\t\ttextOverflow: \"ellipsis\",\n\t\twhiteSpace: \"nowrap\",\n\t},\n\taliasCol: {\n\t\twidth: \"18rem\",\n\t\toverflow: \"hidden\",\n\t\ttextOverflow: \"ellipsis\",\n\t\twhiteSpace: \"nowrap\",\n\t},\n\tviewSelected: {\n\t\twidth: \"26.125rem\",\n\t\tpadding: \"0\",\n\t},\n\tautoScale: {\n\t\twidth: \"7.5rem\", // 120px / 16px\n\t},\n\tscale: {\n\t\twidth: \"37.5rem\", // 600px / 16px\n\t\tpadding: \"0\",\n\t},\n\tvisible: {\n\t\twidth: \"3.75rem\", // 60px / 16px\n\t\tfontSize: \"12px\",\n\t},\n\tcolor: {\n\t\twidth: \"4.375rem\", // 70px / 16px\n\t},\n\tunit: {\n\t\twidth: \"7.5rem\", // 120px / 16px\n\t},\n\tnumberInput: {\n\t\t\"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button\": {\n\t\t\t\"-webkit-appearance\": \"none\",\n\t\t\tmargin: 0,\n\t\t},\n\t\t\"&\": {\n\t\t\t\"-moz-appearance\": \"textfield\", // to Firefox\n\t\t},\n\t},\n\txStats: {\n\t\t// ...\n\t},\n\tdataType: {\n\t\twidth: \"30px\",\n\t\theight: \"30px\",\n\t\tcolor: \"white\",\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tcursor: \"pointer\",\n\t\tborder: \"1px black solid\",\n\t},\n}));\n","export const formatTimeDiffWithMs = (start: number, end: number): string => {\n\t// Calculate total difference in milliseconds\n\tconst totalMilliseconds: number = end - start;\n\n\t// Convert milliseconds to seconds, minutes, hours, days, and months for comparison\n\tconst seconds: number = totalMilliseconds / 1000;\n\tconst minutes: number = seconds / 60;\n\tconst hours: number = minutes / 60;\n\tconst days: number = hours / 24;\n\tconst months: number = days / 30; // Approximation of a month\n\tconst remainingSeconds: number = seconds % 60; // Remaining seconds after full minutes\n\n\tif (months > 12) {\n\t\tconst years: number = months / 12;\n\t\treturn `${Math.floor(years)} years, ${Math.floor(months % 12)} months`;\n\t} else if (months > 6) {\n\t\treturn `${Math.floor(months)} months, ${Math.floor(days % 30)} days`;\n\t} else if (days > 10) {\n\t\treturn `${Math.floor(days)} days, ${Math.floor(hours % 24)} hours`;\n\t} else if (days > 1) {\n\t\treturn `${Math.floor(days)} days, ${Math.floor(hours % 24)} hours`;\n\t} else if (hours > 12) {\n\t\treturn `${Math.floor(hours)} hours, ${Math.floor(minutes % 60)} minutes, ${remainingSeconds.toFixed(2)} seconds`;\n\t} else if (hours < 1) {\n\t\t// If there are 0 hours, return just minutes and remaining seconds\n\t\treturn `${Math.floor(minutes)} minutes, ${remainingSeconds.toFixed(2)} seconds`;\n\t} else {\n\t\t// For time intervals less than 12 hours but more than 1 hour, return hours, minutes, and remaining seconds\n\t\treturn `${Math.floor(hours)} hours, ${Math.floor(minutes % 60)} minutes, ${remainingSeconds.toFixed(2)} seconds`;\n\t}\n};\n","import { Button, Grid, Snackbar, Tooltip } from \"@material-ui/core\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport SaveIcon from \"@material-ui/icons/Save\";\nimport { Alert } from \"@material-ui/lab\";\nimport { ChartData } from \"chart.js\";\nimport { isNaN, isNil, round } from \"lodash-es\";\nimport React, { type Dispatch, useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../../../components/modals/error-modal\";\nimport \"./ContextMenu.css\";\nimport ColorPicker from \"./components/ColorPicker\";\nimport { LoadViewModal } from \"./components/modals/loadView/LoadViewModal\";\nimport { SaveAsViewModal } from \"./components/modals/saveAsView/SaveAsViewModal\";\nimport { TagsTreeModal } from \"./components/modals/tagsTreeModal/TagsTreeModal\";\nimport { useTrendingContext } from \"./context/TrendingContext\";\nimport { useTagsDataTable } from \"./hooks/useTagsDataTable\";\nimport { CursorData, ViewTag } from \"./models/TrendingModels\";\nimport {\n\tdeleteAllViewTagsFromView,\n\tsaveTagDefaults,\n\tupsertView,\n\tupsertViewTag,\n} from \"./repository/TrendingRepository\";\nimport { useTagsTableStyles } from \"./styles/TagsTableStyles\";\nimport { formatTimeDiffWithMs } from \"./utils/formatTimeDiffWithMs\";\nimport { getRandomColor } from \"./utils/tagColors\";\n\ninterface TableComponentProps {\n\tcursorData: CursorData;\n\tchartData: ChartData;\n\tgetTagsFromAPI: Function;\n\tviewTagForDelete: ViewTag | null;\n\tsetViewTagForDelete: Dispatch<ViewTag | null>;\n\tselectedRowTagId: number | null;\n\tsetSelectedRowTagId: Dispatch<number | null>;\n\thandleRightClick: (e: any, tagId: number | null) => void;\n\topenContextMenu: boolean;\n\tsetOpenContextMenu: Dispatch<boolean>;\n\tsetContextMenuPosition: Dispatch<{\n\t\tx: number;\n\t\ty: number;\n\t}>;\n\tcontextMenuPosition: {\n\t\tx: number;\n\t\ty: number;\n\t};\n}\n\nconst TableComponent: React.FC<TableComponentProps> = ({\n\tchartData,\n\tcursorData,\n\tgetTagsFromAPI,\n\tviewTagForDelete,\n\tsetViewTagForDelete,\n\tselectedRowTagId,\n\tsetSelectedRowTagId,\n\thandleRightClick,\n\tsetContextMenuPosition,\n\tcontextMenuPosition,\n\topenContextMenu,\n\tsetOpenContextMenu,\n}) => {\n\tconst classes = useTagsTableStyles();\n\n\tconst {\n\t\tstate: { viewTags, viewSelected },\n\t\tactions: { setViewTags, setViewTagsAndRefetch },\n\t} = useTrendingContext();\n\tconst [localValues, setLocalValues] = useState<{ [key: number]: string }>({});\n\n\tconst [error, setError] = useState(\"\");\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\tconst [tagsTreeModalOpen, setTagsTreeModalOpen] = useState(false);\n\tconst [saveAsViewModalOpen, setSaveAsViewModalOpen] = useState(false);\n\tconst [loadViewOpen, setLoadViewOpen] = useState(false);\n\n\tconst [snackbarMessage, setSnackbarMessage] = useState(\"\");\n\n\tconst dataTable = useTagsDataTable({\n\t\tviewTagsMap: viewTags,\n\t\tchartData,\n\t\tcursorData,\n\t});\n\n\tconst handleChange = (\n\t\ttagId: number,\n\t\tvalue: number,\n\t\tproperty: \"MinScale\" | \"MaxScale\",\n\t) => {\n\t\tconst newTags = structuredClone(viewTags);\n\n\t\tnewTags[tagId][\"viewTag\"][property] = value;\n\t\tnewTags[tagId][\"viewTag\"][\"IsAutoScale\"] = false;\n\t\tsetViewTags(newTags);\n\t};\n\tconst handleChangeScale = (\n\t\tvalue: number,\n\t\tscale: \"MinScale\" | \"MaxScale\",\n\t\ttagId: number,\n\t) => {\n\t\thandleChange(tagId, value, scale);\n\t};\n\tconst handleChangeAlias = (tagId: number, newName: string) => {\n\t\tconst newTags = structuredClone(viewTags);\n\t\tnewTags[tagId][\"viewTag\"][\"Alias\"] = newName;\n\t\tsetViewTags(newTags);\n\t};\n\tconst handleVisibilityChange = (tagId: any, value: any) => {\n\t\tconst newTags = structuredClone(viewTags);\n\t\tnewTags[tagId][\"viewTag\"][\"IsVisible\"] = value;\n\t\tsetViewTags(newTags);\n\t};\n\n\tconst handleUnitChange = (tagId: number, newUnit: string) => {\n\t\tconst newTags = structuredClone(viewTags);\n\t\tnewTags[tagId][\"viewTag\"][\"Unit\"] = newUnit;\n\t\tsetViewTags(newTags);\n\t};\n\n\tconst handleAutoScaleChange = (tagId: number, checked: boolean) => {\n\t\tconst newTags = structuredClone(viewTags);\n\t\tnewTags[tagId][\"viewTag\"][\"IsAutoScale\"] = !checked;\n\t\tsetViewTags(newTags);\n\t};\n\n\tconst handleColorChange = (tagId: any, value: any) => {\n\t\tconst newTags = structuredClone(viewTags);\n\t\tnewTags[tagId][\"viewTag\"][\"Color\"] = value;\n\t\tsetViewTags(newTags);\n\t};\n\n\tconst handleDeleteTag = (tagId: number) => {\n\t\tconst newTags = structuredClone(viewTags);\n\t\tdelete newTags[tagId];\n\t\tsetViewTagsAndRefetch(newTags);\n\t};\n\n\tconst handleAddTag = (newTag: any) => {\n\t\tconst newTags = structuredClone(viewTags);\n\t\tnewTags[newTag.TagId] = {\n\t\t\tviewTag: {\n\t\t\t\t...newTag,\n\t\t\t\tIsVisible: true,\n\t\t\t\tTagType: newTag.TagTypeCode,\n\t\t\t\tColor: newTag.Color || getRandomColor(),\n\t\t\t\tIsAutoScale: newTag.MinScale || newTag.MaxScale ? false : true,\n\t\t\t},\n\t\t\torder: Object.keys(viewTags).length,\n\t\t};\n\t\tsetViewTagsAndRefetch(newTags);\n\t};\n\n\tconst handleAbleScales = (tagId: number, checked: boolean) => {\n\t\tif (checked) {\n\t\t\thandleAutoScaleChange(tagId, checked);\n\t\t}\n\t};\n\n\tconst handleClose = () => setTagsTreeModalOpen(false);\n\n\tconst ContextMenu = ({ x, y, options }: any) => {\n\t\tconst handleContextMenuClick = (e: any) => {\n\t\t\te.stopPropagation(); // Prevent click inside the menu from closing it\n\t\t};\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName=\"context-menu\"\n\t\t\t\tstyle={{ top: y, left: x }}\n\t\t\t\tonClick={handleContextMenuClick}\n\t\t\t>\n\t\t\t\t<ul>\n\t\t\t\t\t{options.map((option: any) => (\n\t\t\t\t\t\t<li key={option.id} onClick={option.onClick}>\n\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst contextMenuOptions = [];\n\n\tif (viewTagForDelete) {\n\t\tcontextMenuOptions.push({\n\t\t\tid: \"delete\",\n\t\t\tlabel: \"Remove Tag\",\n\t\t\tonClick: () => {\n\t\t\t\thandleDelete();\n\t\t\t\tsetOpenContextMenu(false);\n\t\t\t},\n\t\t});\n\t}\n\tcontextMenuOptions.push(\n\t\t...[\n\t\t\t{\n\t\t\t\tid: \"add\",\n\t\t\t\tlabel: \"Tags Tree\",\n\t\t\t\tonClick: () => {\n\t\t\t\t\tsetTagsTreeModalOpen(true);\n\t\t\t\t\tsetOpenContextMenu(false);\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"saveDefault\",\n\t\t\t\tlabel: \"Save Default To Tag\",\n\t\t\t\tonClick: () => {\n\t\t\t\t\thandleSaveDefaultToTag();\n\t\t\t\t\tsetOpenContextMenu(false);\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"saveView\",\n\t\t\t\tlabel: \"Save View\",\n\t\t\t\tonClick: () => {\n\t\t\t\t\thandleSaveView();\n\t\t\t\t\tsetOpenContextMenu(false);\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"saveViewAs\",\n\t\t\t\tlabel: \"Save View as\",\n\t\t\t\tonClick: () => {\n\t\t\t\t\tsetSaveAsViewModalOpen(true);\n\t\t\t\t\tsetOpenContextMenu(false);\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"loadView\",\n\t\t\t\tlabel: \"Load View\",\n\t\t\t\tonClick: () => {\n\t\t\t\t\tsetLoadViewOpen(true);\n\t\t\t\t\tsetOpenContextMenu(false);\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t);\n\n\tconst handleTagSelect = (selectedTag: any) => {\n\t\tconst alreadySelected = viewTags[selectedTag.TagId];\n\t\tif (!alreadySelected) {\n\t\t\thandleAddTag(selectedTag);\n\t\t} else {\n\t\t\tsetError(`${selectedTag.TagName} is already selected`);\n\t\t}\n\t};\n\n\tconst handleDelete = async () => {\n\t\tif (!isNil(viewTagForDelete)) {\n\t\t\tif (viewSelected?.ViewId) {\n\t\t\t\thandleDeleteTag(viewTagForDelete.TagId);\n\t\t\t}\n\t\t\tsetSelectedRowTagId(null); // Reset the selected row index\n\t\t\tsetViewTagForDelete(null);\n\t\t}\n\t};\n\n\tconst handleSaveView = async () => {\n\t\tif (!viewSelected) {\n\t\t\tsetSaveAsViewModalOpen(true);\n\t\t\treturn;\n\t\t} else {\n\t\t\tsetIsLoading(true);\n\t\t\tif (viewSelected?.ViewId) {\n\t\t\t\tconst resp = await upsertView(\n\t\t\t\t\tviewSelected?.ViewId,\n\t\t\t\t\tviewSelected.ViewName,\n\t\t\t\t\tviewSelected.IsPublic,\n\t\t\t\t);\n\t\t\t\tif (resp.ok) {\n\t\t\t\t\tconst deleteResp = await deleteAllViewTagsFromView(\n\t\t\t\t\t\tviewSelected.ViewId,\n\t\t\t\t\t);\n\t\t\t\t\tif (!deleteResp.ok) {\n\t\t\t\t\t\tsetError(deleteResp.message);\n\t\t\t\t\t}\n\t\t\t\t\tconst results = await Promise.allSettled(\n\t\t\t\t\t\tObject.values(viewTags)\n\t\t\t\t\t\t\t.sort((a, b) => b.order - a.order)\n\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t({\n\t\t\t\t\t\t\t\t\tviewTag: {\n\t\t\t\t\t\t\t\t\t\tTagId,\n\t\t\t\t\t\t\t\t\t\tColor,\n\t\t\t\t\t\t\t\t\t\tMinScale,\n\t\t\t\t\t\t\t\t\t\tMaxScale,\n\t\t\t\t\t\t\t\t\t\tIsAutoScale,\n\t\t\t\t\t\t\t\t\t\tIsVisible,\n\t\t\t\t\t\t\t\t\t\tUnit,\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\tupsertViewTag(\n\t\t\t\t\t\t\t\t\t\tviewSelected?.ViewId,\n\t\t\t\t\t\t\t\t\t\tTagId,\n\t\t\t\t\t\t\t\t\t\tColor,\n\t\t\t\t\t\t\t\t\t\tMinScale,\n\t\t\t\t\t\t\t\t\t\tMaxScale,\n\t\t\t\t\t\t\t\t\t\tIsVisible,\n\t\t\t\t\t\t\t\t\t\tIsAutoScale,\n\t\t\t\t\t\t\t\t\t\tUnit,\n\t\t\t\t\t\t\t\t\t).then((r) => {\n\t\t\t\t\t\t\t\t\t\tif (!r.ok) {\n\t\t\t\t\t\t\t\t\t\t\tsetError(r.message);\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),\n\t\t\t\t\t);\n\t\t\t\t\tresults.forEach((result, index) => {\n\t\t\t\t\t\tif (result.status === \"rejected\") {\n\t\t\t\t\t\t\tsetError(`Tag ${index} failed with reason: ${result.reason}`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetSelectedRowTagId(null);\n\t\t\t\t\t\t\tsetSnackbarMessage(\"View saved successfully\");\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsetError(resp.message);\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tconst handleCloseSnackbar = (\n\t\tevent?: React.SyntheticEvent,\n\t\treason?: string,\n\t) => {\n\t\tif (reason === \"clickaway\") {\n\t\t\treturn;\n\t\t}\n\n\t\tsetSnackbarMessage(\"\");\n\t};\n\n\tuseEffect(() => {\n\t\tconst handleGlobalClick = (e: any) => {\n\t\t\tif (selectedRowTagId !== null) {\n\t\t\t\tsetSelectedRowTagId(null);\n\t\t\t}\n\t\t};\n\n\t\tconst handleKeyDown = (e: any) => {\n\t\t\tif (e.key === \"Escape\" && selectedRowTagId !== null) {\n\t\t\t\tsetSelectedRowTagId(null);\n\t\t\t}\n\t\t};\n\n\t\t// Attach event listeners\n\t\tdocument.addEventListener(\"click\", handleGlobalClick);\n\t\tdocument.addEventListener(\"keydown\", handleKeyDown);\n\n\t\t// Cleanup function\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"click\", handleGlobalClick);\n\t\t\tdocument.removeEventListener(\"keydown\", handleKeyDown);\n\t\t};\n\t}, [selectedRowTagId]);\n\n\tconst handleSaveDefaultToTag = async () => {\n\t\tif (viewSelected && selectedRowTagId !== null) {\n\t\t\tconst {\n\t\t\t\tTagId,\n\t\t\t\tAlias,\n\t\t\t\tColor,\n\t\t\t\tMinScale,\n\t\t\t\tMaxScale,\n\t\t\t\tUnit,\n\t\t\t\tIsVisible,\n\t\t\t\tIsAutoScale,\n\t\t\t} = viewTags[selectedRowTagId].viewTag;\n\n\t\t\tconst saveTagDefaultsResp = await saveTagDefaults(\n\t\t\t\tTagId,\n\t\t\t\tAlias,\n\t\t\t\tColor,\n\t\t\t\tMinScale,\n\t\t\t\tMaxScale,\n\t\t\t\tUnit,\n\t\t\t);\n\t\t\tconst upsertViewTagResp = await upsertViewTag(\n\t\t\t\tviewSelected?.ViewId,\n\t\t\t\tTagId,\n\t\t\t\tColor,\n\t\t\t\tMinScale,\n\t\t\t\tMaxScale,\n\t\t\t\tIsVisible,\n\t\t\t\tIsAutoScale,\n\t\t\t\tUnit,\n\t\t\t);\n\n\t\t\tif (!saveTagDefaultsResp.ok) {\n\t\t\t\tsetError(saveTagDefaultsResp.message);\n\t\t\t}\n\t\t\tif (!upsertViewTagResp.ok) {\n\t\t\t\tsetError(upsertViewTagResp.message);\n\t\t\t}\n\t\t\tsetSelectedRowTagId(null);\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\tspacing={1}\n\t\t\t\talignContent={\"flex-start\"}\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tmaxHeight: \"100%\",\n\t\t\t\t\toverflowY: \"auto\",\n\t\t\t\t}}\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\tstyle={{\n\t\t\t\t\t\tposition: \"sticky\",\n\t\t\t\t\t\tbackground: \"white\",\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tzIndex: 1000,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div style={{ overflowX: \"auto\", width: \"100%\" }}>\n\t\t\t\t\t\t<table\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\ttableLayout: \"fixed\",\n\t\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\t\tclassName={`${classes.topTitles} ${classes.viewSelected}`}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{viewSelected ? (\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\tvariant=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ color: \"#0075ff\" }}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.viewSelected}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => setLoadViewOpen(true)}\n\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\tviewSelected.IsPublic ? (\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\t\t<LockIcon fontSize=\"small\" />\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\t{viewSelected?.ViewName || \"\"}\n\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t) : (\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\tvariant=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ color: \"#0075ff\" }}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={classes.viewSelected}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => setSaveAsViewModalOpen(true)}\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<i>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SaveIcon />\n\t\t\t\t\t\t\t\t\t\t\t\t\t(Save view as)\n\t\t\t\t\t\t\t\t\t\t\t\t</i>\n\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\t\tcolSpan={4}\n\t\t\t\t\t\t\t\t\t\tclassName={`${classes.topTitles} ${classes.scale}`}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tScale\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t<th className={`${classes.topTitles} ${classes.xStats}`}>\n\t\t\t\t\t\t\t\t\t\t{cursorData\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\tconst dateX1 = new Date(cursorData.x1);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst dateX2 = new Date(cursorData.x2);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst formattedDate = dateX1.toLocaleString(\"en-US\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thour12: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmonth: \"short\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tday: \"numeric\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(dateX1.getFullYear() !==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdateX2.getFullYear() && { year: \"numeric\" }),\n\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\tconst dateText = `${formattedDate}`;\n\n\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<>\n\t\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\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"10px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"10px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"red\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginRight: \"5px\",\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></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{dateText}\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: null}\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t<th className={`${classes.topTitles} ${classes.xStats}`}>\n\t\t\t\t\t\t\t\t\t\t{cursorData\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\tconst dateX1 = new Date(cursorData.x1);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst dateX2 = new Date(cursorData.x2);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst formattedDate = dateX2.toLocaleString(\"en-US\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thour12: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmonth: \"short\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tday: \"numeric\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(dateX1.getFullYear() !==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdateX2.getFullYear() && { year: \"numeric\" }),\n\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\tconst dateText = `${formattedDate}`;\n\n\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<>\n\t\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\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"10px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"10px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"blue\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginRight: \"5px\",\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></span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{dateText}\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: null}\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\t\tcolSpan={3}\n\t\t\t\t\t\t\t\t\t\tclassName={`${classes.topTitles} ${classes.xStats}`}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{cursorData\n\t\t\t\t\t\t\t\t\t\t\t? formatTimeDiffWithMs(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcursorData.x1 as any,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcursorData.x2 as any,\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: null}\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t\t<table\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\ttableLayout: \"fixed\",\n\t\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr className={classes.bottomTitlesRow}>\n\t\t\t\t\t\t\t\t\t<th className={classes.visible}>Visible</th>\n\t\t\t\t\t\t\t\t\t<th className={classes.aliasCol}>Alias / Tagname</th>\n\t\t\t\t\t\t\t\t\t<th className={classes.color}>Color</th>\n\t\t\t\t\t\t\t\t\t<th className={classes.inputCol}>Min Scale</th>\n\t\t\t\t\t\t\t\t\t<th className={classes.inputCol}>Max Scale</th>\n\t\t\t\t\t\t\t\t\t<th className={classes.autoScale}>AutoScale</th>\n\t\t\t\t\t\t\t\t\t<th className={classes.unit}>Unit</th>\n\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t\t{cursorData\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\tconst date = new Date(cursorData.x1);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst formattedHour = date.toLocaleString(\"en-US\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thour12: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thour: \"2-digit\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminute: \"2-digit\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsecond: \"2-digit\",\n\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\tconst milliseconds = (date.getMilliseconds() / 1000)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.toFixed(2)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.substring(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst dateText = `${formattedHour}.${milliseconds} hs`;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn <>{dateText}</>;\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: null}{\" \"}\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t\t{cursorData\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\tconst date = new Date(cursorData.x2);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst formattedHour = date.toLocaleString(\"en-US\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thour12: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thour: \"2-digit\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminute: \"2-digit\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsecond: \"2-digit\",\n\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\tconst milliseconds = (date.getMilliseconds() / 1000)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.toFixed(2)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.substring(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst dateText = `${formattedHour}.${milliseconds} hs`;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn <>{dateText}</>;\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: null}{\" \"}\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t<th>Y2-Y1</th>\n\t\t\t\t\t\t\t\t\t<th>Min</th>\n\t\t\t\t\t\t\t\t\t<th>Max</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</div>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item xs={12}>\n\t\t\t\t\t<div style={{ width: \"100%\", height: \"100%\", maxHeight: \"100%\" }}>\n\t\t\t\t\t\t<table\n\t\t\t\t\t\t\tcellPadding=\"4px\"\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\ttableLayout: \"fixed\",\n\t\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t{Object.values(viewTags).length ? (\n\t\t\t\t\t\t\t\t\tObject.values(viewTags).map(({ viewTag: tag }) => (\n\t\t\t\t\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\t\t\t\t\tkey={tag.TagName}\n\t\t\t\t\t\t\t\t\t\t\t// onClick={() => handleRowClick(index)}\n\t\t\t\t\t\t\t\t\t\t\tonContextMenu={(e) => handleRightClick(e, tag.TagId)}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classes.rowHover}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<td className={`${classes.visible} ${classes.checkbox}`}>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={tag.IsVisible}\n\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\thandleVisibilityChange(tag.TagId, e.target.checked)\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</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className={classes.aliasCol}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={tag.TagName}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tarrow\n\t\t\t\t\t\t\t\t\t\t\t\t\tinteractive\n\t\t\t\t\t\t\t\t\t\t\t\t\tenterDelay={500}\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<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", alignItems: \"center\" }}\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{tag.TagType && (\n\t\t\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\t\t\t\tclassName={classes.dataType}\n\t\t\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\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttag.TagType === \"A\" ? \"#AD48C4\" : \"#C46F48\",\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\t\t{tag.TagType}\n\t\t\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\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ width: \"100%\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={tag.Alias || tag.TagName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => e.target.select()}\n\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\tconst newAlias = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleChangeAlias(tag.TagId, newAlias);\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</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className={classes.color}>\n\t\t\t\t\t\t\t\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColorChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor={tag.Color}\n\t\t\t\t\t\t\t\t\t\t\t\t\telementId={tag.TagId}\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</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className={classes.inputCol}>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\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\tclassName={classes.numberInput}\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\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(tag.IsAutoScale\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\t\tbackgroundColor: \"rgba(239, 239, 239, 0.3)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"rgba(84, 84, 84, 1)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid rgba(118, 118, 118, 0.3)\",\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}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={tag.MinScale}\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\thandleAbleScales(tag.TagId, tag.IsAutoScale)\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\tonFocus={(e) => e.target.select()}\n\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\thandleChangeScale(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value as any,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"MinScale\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttag.TagId,\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</td>\n\t\t\t\t\t\t\t\t\t\t\t<td className={classes.inputCol}>\n\t\t\t\t\t\t\t\t\t\t\t\t<input\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\tclassName={classes.numberInput}\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\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitAppearance: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...(tag.IsAutoScale\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\t\tbackgroundColor: \"rgba(239, 239, 239, 0.3)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"rgba(84, 84, 84, 1)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid rgba(118, 118, 118, 0.3)\",\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}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={tag.MaxScale}\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\thandleAbleScales(tag.TagId, tag.IsAutoScale)\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\tonFocus={(e) => e.target.select()}\n\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\thandleChangeScale(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value as any,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"MaxScale\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttag.TagId,\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</td>\n\t\t\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={`${classes.autoScale} ${classes.checkbox}`}\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<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!!tag.IsAutoScale}\n\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\thandleAutoScaleChange(tag.TagId, tag.IsAutoScale)\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</td>\n\t\t\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={`${classes.autoScale} ${classes.checkbox}`}\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<input\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\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\twidth: \"100%\",\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\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleAbleScales(tag.TagId, tag.IsAutoScale)\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\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst value = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleUnitChange(tag.TagId, 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\tvalue={tag.Unit === \"-\" ? \"\" : tag.Unit}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => e.target.select()}\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</td>\n\n\t\t\t\t\t\t\t\t\t\t\t<td>{round(dataTable[tag.TagName]?.y1, 3) || 0}</td>\n\n\t\t\t\t\t\t\t\t\t\t\t<td className={classes.doubleInput}>\n\t\t\t\t\t\t\t\t\t\t\t\t{round(dataTable[tag.TagName]?.y2, 3) || 0}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>{round(dataTable[tag.TagName]?.y2y1, 3) || 0}</td>\n\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{!isNaN(dataTable[tag.TagName]?.pmin.y * 0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? round(dataTable[tag.TagName]?.pmin.y, 3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 0}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\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{!isNaN(dataTable[tag.TagName]?.pmax.y * 0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? round(dataTable[tag.TagName]?.pmax.y)\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 0}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\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<div style={{ padding: \"1rem\" }}>\n\t\t\t\t\t\t\t\t\t\t<div style={{ padding: \"1rem\" }}>\n\t\t\t\t\t\t\t\t\t\t\tNo tag view detected.{\" \"}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div style={{ padding: \"1rem\" }}>\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\tonClick={() => setTagsTreeModalOpen(true)}\n\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\tcolor=\"primary\"\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{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\tAdd tag\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\t<div>\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\tonClick={() => setLoadViewOpen(true)}\n\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\tcolor=\"primary\"\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{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\tLoad view\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</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</div>\n\t\t\t\t</Grid>\n\t\t\t\t{openContextMenu && (\n\t\t\t\t\t<ContextMenu\n\t\t\t\t\t\tx={contextMenuPosition.x}\n\t\t\t\t\t\ty={contextMenuPosition.y}\n\t\t\t\t\t\toptions={contextMenuOptions}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<TagsTreeModal\n\t\t\t\t\topen={tagsTreeModalOpen}\n\t\t\t\t\thandleClose={handleClose}\n\t\t\t\t\tonTagSelect={handleTagSelect}\n\t\t\t\t/>\n\t\t\t\t<SaveAsViewModal\n\t\t\t\t\topen={saveAsViewModalOpen}\n\t\t\t\t\thandleClose={(shouldUpdate: boolean) => {\n\t\t\t\t\t\tsetSaveAsViewModalOpen(false);\n\t\t\t\t\t\tif (shouldUpdate) getTagsFromAPI(true).then(() => {});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<LoadViewModal\n\t\t\t\t\topen={loadViewOpen}\n\t\t\t\t\tgetTagsFromAPI={getTagsFromAPI}\n\t\t\t\t\thandleClose={(shouldUpdate: boolean) => {\n\t\t\t\t\t\tsetLoadViewOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} />\n\t\t\t<Snackbar\n\t\t\t\topen={!!snackbarMessage}\n\t\t\t\tautoHideDuration={800}\n\t\t\t\tonClose={handleCloseSnackbar}\n\t\t\t>\n\t\t\t\t<Alert onClose={handleCloseSnackbar} severity=\"success\">\n\t\t\t\t\t{snackbarMessage}\n\t\t\t\t</Alert>\n\t\t\t</Snackbar>\n\t\t</>\n\t);\n};\n\nexport default TableComponent;\n","export const formatDateTimeToString = (date: Date) => {\n\tlet hour = date.getHours().toString().padStart(2, \"0\");\n\tconst minute = date.getMinutes().toString().padStart(2, \"0\");\n\tconst second = date.getSeconds().toString().padStart(2, \"0\");\n\n\tif (hour === \"24\") {\n\t\thour = \"00\";\n\t}\n\n\tconst formattedDate = date.toLocaleDateString(\"en-US\", {\n\t\tmonth: \"short\",\n\t\tday: \"numeric\",\n\t});\n\n\tconst formattedTime = `${hour}:${minute}:${second}`;\n\n\treturn { formattedDate, formattedTime };\n};\n","import { useRef, useState } from \"react\";\nimport { useTrendingContext } from \"../../../context/TrendingContext\";\nimport { formatDateTimeToString } from \"../../../utils/formatDateTimeToString\";\n\nexport const useChartOptions = () => {\n\tconst { state, actions } = useTrendingContext();\n\n\tconst debounceTimerRef = useRef<NodeJS.Timeout | null>(null);\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\treturn 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: (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\t\t\t\t\t},\n\t\t\t\t},\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}\n\t\t\t\t},\n\t\t\t},\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};\n","import { Grid } from \"@material-ui/core\";\nimport React from \"react\";\nimport { CustomOptions } from \"./models/TrendingModels\";\nimport { useTrendingStyles } from \"./styles/TrendingStyles\";\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 = (\n\tstartDate: Date,\n\tendDate: Date,\n\tscope: scopeType,\n\toperator: \"add\" | \"subtract\",\n\tcurrent = false,\n) => {\n\tlet newStartDate: Date;\n\tlet newEndDate: Date = endDate;\n\n\tif (current) {\n\t\tnewEndDate = new Date();\n\t\tif (scope === \"custom\") {\n\t\t\t// If scope is custom, keep the same startDate\n\t\t\tnewStartDate = startDate;\n\t\t} else {\n\t\t\tconst [quantity, duration] = scope.split(\" \");\n\t\t\tnewStartDate = moment(newEndDate)\n\t\t\t\t.subtract(\n\t\t\t\t\tquantity,\n\t\t\t\t\tduration[0] as moment.unitOfTime.DurationConstructor,\n\t\t\t\t)\n\t\t\t\t.toDate();\n\t\t}\n\t} else {\n\t\tif (scope === \"custom\") {\n\t\t\tconst durationInMs = moment(endDate).diff(moment(startDate));\n\t\t\tnewStartDate = moment(startDate)[operator](durationInMs).toDate();\n\t\t} else {\n\t\t\tconst [quantity, duration] = scope.split(\" \");\n\t\t\tnewStartDate = moment(startDate)\n\t\t\t\t[operator](\n\t\t\t\t\tquantity,\n\t\t\t\t\tduration[0] as moment.unitOfTime.DurationConstructor,\n\t\t\t\t)\n\t\t\t\t.toDate();\n\t\t\tnewEndDate = moment(endDate)\n\t\t\t\t[operator](\n\t\t\t\t\tquantity,\n\t\t\t\t\tduration[0] as moment.unitOfTime.DurationConstructor,\n\t\t\t\t)\n\t\t\t\t.toDate();\n\t\t}\n\t}\n\n\treturn { newStartDate, newEndDate };\n};\n","import {\n\tFormControl,\n\tGrid,\n\tIconButton,\n\tMenuItem,\n\tSelect,\n\tTextField,\n} from \"@material-ui/core\";\nimport { ChevronLeft, ChevronRight } from \"@material-ui/icons\";\nimport SkipNextIcon from \"@material-ui/icons/SkipNext\";\nimport moment from \"moment\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTrendingContext } from \"../context/TrendingContext\";\nimport CustomOptionsComponent from \"../customOptionsComponent\";\nimport { CustomOptions } from \"../models/TrendingModels\";\nimport { useTrendingStyles } from \"../styles/TrendingStyles\";\nimport { dateNavigator } from \"../utils/dateNavigator\";\n\ninterface Props {\n\tsetChartOptions: (options: any) => void;\n}\nexport const Header = ({ setChartOptions }: Props) => {\n\tconst classes = useTrendingStyles();\n\tconst { state, actions } = useTrendingContext();\n\n\tconst [customOptions, setCustomOptions] = useState<CustomOptions>({\n\t\tshowGrid: true,\n\t\tstepped: false,\n\t});\n\n\tconst handleDateNavigator = (\n\t\toperator: \"add\" | \"subtract\",\n\t\tcurrent = false,\n\t) => {\n\t\tconst newDates = dateNavigator(\n\t\t\tstate.timeScopeStart,\n\t\t\tstate.timeScopeEnd,\n\t\t\tstate.scope,\n\t\t\toperator,\n\t\t\tcurrent,\n\t\t);\n\t\tif (newDates) {\n\t\t\tactions.setTotalScope({\n\t\t\t\tstart: newDates.newStartDate,\n\t\t\t\tend: newDates.newEndDate,\n\t\t\t\tscope: state.scope,\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleDateChange = (newValue: any, key: \"start\" | \"end\") => {\n\t\t//@ts-ignore\n\t\tactions.setTotalScope({ [key]: moment(newValue).toDate() });\n\t};\n\n\tconst handleChangeScope = (e: any) => {\n\t\tconst newScope = e.target.value;\n\t\tactions.setTotalScope({\n\t\t\tscope: newScope,\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tconst changeOptions = () => {\n\t\t\tsetChartOptions((prevOptions: any) => {\n\t\t\t\tconst newScales = { ...prevOptions.scales };\n\n\t\t\t\tObject.keys(newScales).forEach((key) => {\n\t\t\t\t\tif (key) {\n\t\t\t\t\t\tnewScales[key] = {\n\t\t\t\t\t\t\t...newScales[key],\n\t\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t\t...newScales[key].grid,\n\t\t\t\t\t\t\t\tdisplay: customOptions.showGrid,\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});\n\n\t\t\t\treturn {\n\t\t\t\t\t...prevOptions,\n\t\t\t\t\telements: {\n\t\t\t\t\t\tline: {\n\t\t\t\t\t\t\tstepped: customOptions.stepped,\n\t\t\t\t\t\t\tlineTension: 0.1,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tscales: newScales,\n\t\t\t\t};\n\t\t\t});\n\t\t};\n\n\t\tchangeOptions();\n\t}, [customOptions]);\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\treturn (\n\t\t<Grid\n\t\t\titem\n\t\t\txs={12}\n\t\t\tcontainer\n\t\t\tjustifyContent=\"space-between\"\n\t\t\talignItems=\"center\"\n\t\t\tstyle={{ height: \"15%\" }}\n\t\t>\n\t\t\t<Grid\n\t\t\t\tmd={6}\n\t\t\t\titem\n\t\t\t\tcontainer\n\t\t\t\tjustifyContent=\"flex-start\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\twrap={\"wrap\"}\n\t\t\t>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\tonClick={() => handleDateNavigator(\"subtract\")}\n\t\t\t\t\t\tclassName={classes.navigatorButton}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronLeft fontSize=\"large\" />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</Grid>\n\n\t\t\t\t<Grid item>\n\t\t\t\t\t<TextField\n\t\t\t\t\t\ttype=\"datetime-local\"\n\t\t\t\t\t\tclassName={classes.datetimePicker}\n\t\t\t\t\t\tlabel=\"Start\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tvalue={moment(state.timeScopeStart).format(\"YYYY-MM-DDTHH:mm:ss\")}\n\t\t\t\t\t\tonChange={(e) => handleDateChange(e.target.value, \"start\")}\n\t\t\t\t\t\tInputLabelProps={{\n\t\t\t\t\t\t\tshrink: true,\n\t\t\t\t\t\t\tstyle: { marginLeft: \"10px\" },\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tInputProps={\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmax: state.timeScopeEnd,\n\t\t\t\t\t\t\t} as any\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item className={classes.select}>\n\t\t\t\t\t<FormControl variant=\"outlined\">\n\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\tvalue={state.scope}\n\t\t\t\t\t\t\tonChange={handleChangeScope}\n\t\t\t\t\t\t\tdisplayEmpty\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MenuItem value=\"10 min\">10 min</MenuItem>\n\t\t\t\t\t\t\t<MenuItem value=\"1 hour\">1 hour</MenuItem>\n\t\t\t\t\t\t\t<MenuItem value=\"4 hours\">4 hours</MenuItem>\n\t\t\t\t\t\t\t<MenuItem value=\"12 hours\">12 hours</MenuItem>\n\t\t\t\t\t\t\t<MenuItem value=\"1 day\">1 day</MenuItem>\n\t\t\t\t\t\t\t<MenuItem value=\"10 days\">10 days</MenuItem>\n\t\t\t\t\t\t\t<MenuItem value=\"custom\">Custom</MenuItem>\n\t\t\t\t\t\t</Select>\n\t\t\t\t\t</FormControl>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tlabel=\"End\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tclassName={classes.datetimePicker}\n\t\t\t\t\t\ttype=\"datetime-local\"\n\t\t\t\t\t\tvalue={moment(state.timeScopeEnd).format(\"YYYY-MM-DDTHH:mm:ss\")}\n\t\t\t\t\t\tonChange={(e) => handleDateChange(e.target.value, \"end\")}\n\t\t\t\t\t\tInputLabelProps={{\n\t\t\t\t\t\t\tshrink: true,\n\t\t\t\t\t\t\tstyle: { marginLeft: \"10px\" },\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tonClick={() => handleDateNavigator(\"add\")}\n\t\t\t\t\t\tclassName={`${classes.navigatorButton}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronRight fontSize=\"large\" />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid item>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tonClick={() => handleDateNavigator(\"subtract\", true)}\n\t\t\t\t\t\tclassName={`${classes.navigatorButton}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SkipNextIcon fontSize=\"large\" />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\n\t\t\t<Grid md={6} item container justifyContent=\"space-between\">\n\t\t\t\t<Grid item container wrap=\"nowrap\" spacing={1}>\n\t\t\t\t\t<Grid item container>\n\t\t\t\t\t\t<CustomOptionsComponent\n\t\t\t\t\t\t\tcustomOptions={customOptions}\n\t\t\t\t\t\t\tsetCustomOptions={setCustomOptions}\n\t\t\t\t\t\t/>\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 { ChartArea } from \"chart.js\";\nimport React, { useEffect, useRef, useState } from \"react\";\n\ninterface DraggableLineControlProps {\n\tchartArea: ChartArea;\n\tinitialLeft: number;\n\totherLineCoord: number;\n\tonUpdate: (newLeft: number) => void;\n\tcolor: string;\n}\n\nconst DraggableLineControl: React.FC<DraggableLineControlProps> = ({\n\tinitialLeft,\n\totherLineCoord,\n\tonUpdate,\n\tcolor,\n\tchartArea,\n}) => {\n\tconst [isDragging, setIsDragging] = useState(false);\n\tconst [left, setLeft] = useState(initialLeft);\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst handleMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\tsetIsDragging(true);\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\t};\n\n\tconst handleMouseMove = (e: MouseEvent) => {\n\t\tif (!isDragging || !ref.current) return;\n\n\t\tconst rightPadding = chartArea.width - chartArea.right;\n\t\tconst leftPadding = chartArea.left;\n\n\t\tlet newLeft = Math.min(\n\t\t\tMath.max(\n\t\t\t\te.clientX - ref.current.offsetParent!.getBoundingClientRect().left,\n\t\t\t\tchartArea.left,\n\t\t\t),\n\t\t\tchartArea.right,\n\t\t);\n\n\t\t// Line limit\n\t\tif (color === \"red\" && newLeft > otherLineCoord - 20) {\n\t\t\tnewLeft = otherLineCoord - 20;\n\t\t} else if (color === \"blue\" && newLeft < otherLineCoord + 20) {\n\t\t\tnewLeft = otherLineCoord + 20;\n\t\t}\n\n\t\tsetLeft(newLeft);\n\t\tonUpdate(newLeft); // Actualiza la posición de la línea en el gráfico\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tsetIsDragging(false);\n\t};\n\n\tuseEffect(() => {\n\t\tconst mouseMoveHandler = (e: MouseEvent) => handleMouseMove(e);\n\t\tconst mouseUpHandler = () => handleMouseUp();\n\n\t\tif (isDragging) {\n\t\t\twindow.addEventListener(\"mousemove\", mouseMoveHandler);\n\t\t\twindow.addEventListener(\"mouseup\", mouseUpHandler);\n\t\t}\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"mousemove\", mouseMoveHandler);\n\t\t\twindow.removeEventListener(\"mouseup\", mouseUpHandler);\n\t\t};\n\t}, [isDragging]);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tstyle={{\n\t\t\t\theight: 20,\n\t\t\t\twidth: 20,\n\t\t\t\tbackground: color,\n\t\t\t\tposition: \"absolute\",\n\t\t\t\ttop: -10,\n\t\t\t\tleft: left - 10,\n\t\t\t}}\n\t\t\tonMouseDown={handleMouseDown}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: chartArea.height,\n\t\t\t\t\twidth: 2,\n\t\t\t\t\tbackground: color,\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\ttop: 20,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0,\n\t\t\t\t\tmargin: \"auto\",\n\t\t\t\t}}\n\t\t\t></div>\n\t\t</div>\n\t);\n};\n\nexport default DraggableLineControl;\n","import { Plugin } from \"chart.js\";\n\nexport const useGetVerticalLinePlugin = (\n\tsetChartArea: (param: any) => void,\n\tsetCoords: any,\n): Plugin => {\n\tconst chartPlugin: Plugin<\"line\"> = {\n\t\tid: \"verticalLinePlugin\",\n\t\tafterUpdate: (chart: any) => {\n\t\t\tif (chart.chartArea) {\n\t\t\t\t// console.log(\"after update\");\n\n\t\t\t\tif (chart.mouseX === null) {\n\t\t\t\t\tchart.mouseX = chart.chartArea.left + chart.chartArea.width / 10;\n\n\t\t\t\t\t// chart.mouseX = chart.chartArea.left + 30.9\n\t\t\t\t}\n\t\t\t\tif (chart.secondLineX === null) {\n\t\t\t\t\tchart.secondLineX =\n\t\t\t\t\t\tchart.chartArea.left + chart.chartArea.width * 0.9;\n\t\t\t\t\t// chart.secondLineX = chart.chartArea.right\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tbeforeInit(chart: any) {\n\t\t\tchart.mouseX = null;\n\t\t\tchart.secondLineX = null;\n\t\t},\n\t\tafterDatasetsDraw(chart: any) {\n\t\t\tconst x1 = chart.mouseX;\n\t\t\tconst x2 = chart.secondLineX;\n\n\t\t\tsetChartArea(chart.chartArea);\n\t\t\tsetCoords({ x1, x2 });\n\t\t},\n\t};\n\n\treturn chartPlugin;\n};\n","import { CursorData } from \"../models/TrendingModels\";\n\nconst getValuesAtCursor = (chart: any, timeAtCursor: any): any[] => {\n\tconst valuesAtCursor: any[] = [];\n\tchart.data.datasets.forEach((dataset: any) => {\n\t\tlet previousDataPoint = null;\n\t\tfor (let i = 0; i < dataset.data.length; i++) {\n\t\t\tif (dataset.data[i].x.getTime() <= timeAtCursor) {\n\t\t\t\tpreviousDataPoint = dataset.data[i];\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (previousDataPoint) {\n\t\t\tvaluesAtCursor.push(previousDataPoint.y);\n\t\t}\n\t});\n\treturn valuesAtCursor;\n};\n\nexport const updateCursorData = (\n\tchart: any,\n\tsetCursorData: (cursorData: CursorData) => void,\n) => {\n\tconst xScale = chart.scales.x;\n\n\t// Coordenadas para la primera y segunda línea\n\tconst timeAtCursor1 = xScale.getValueForPixel(chart.mouseX);\n\tconst timeAtCursor2 = xScale.getValueForPixel(chart.secondLineX);\n\n\t// Los valores en el punto del cursor pueden ser diferentes\n\tconst valuesAtCursor1 = getValuesAtCursor(chart, timeAtCursor1);\n\tconst valuesAtCursor2 = getValuesAtCursor(chart, timeAtCursor2);\n\n\tsetCursorData({\n\t\tx1: timeAtCursor1,\n\t\tx2: timeAtCursor2,\n\t\tvalues: [...valuesAtCursor1, ...valuesAtCursor2],\n\t});\n};\n","import { Plugin } from \"chart.js\";\nimport { formatDateTimeToString } from \"../utils/formatDateTimeToString\";\n\nexport const useXAxisDatePlugin = (): Plugin => {\n\tconst chartPlugin: Plugin<\"line\"> = {\n\t\tid: \"xAxisDatePlugin\",\n\t\tafterBuildTicks(chart) {\n\t\t\tconst oldTicks = chart.scales.x.ticks;\n\n\t\t\tconst newTicks = [];\n\t\t\tnewTicks.push(oldTicks[0]);\n\n\t\t\tfor (let i = 1; i < oldTicks.length; i++) {\n\t\t\t\tconst current = new Date(oldTicks[i].value);\n\t\t\t\tconst previous = new Date(oldTicks[i - 1].value);\n\n\t\t\t\tconst time = formatDateTimeToString(current).formattedTime;\n\t\t\t\tconst date = formatDateTimeToString(current).formattedDate;\n\n\t\t\t\tlet newLabel;\n\t\t\t\tlet newMajor;\n\n\t\t\t\tif (current.getDate() !== previous.getDate()) {\n\t\t\t\t\tnewLabel = [time, date];\n\t\t\t\t\tnewMajor = true;\n\t\t\t\t} else {\n\t\t\t\t\tnewLabel = time;\n\t\t\t\t\tnewMajor = false;\n\t\t\t\t}\n\n\t\t\t\tnewTicks.push({\n\t\t\t\t\tvalue: oldTicks[i].value,\n\t\t\t\t\tmajor: oldTicks[i].major,\n\t\t\t\t\tlabel: newLabel,\n\t\t\t\t});\n\t\t\t}\n\t\t\tchart.scales.x.ticks = newTicks;\n\t\t},\n\t};\n\n\treturn chartPlugin;\n};\n","import { Plugin } from \"chart.js\";\n\nexport const useYAxisPlugin = (): Plugin => {\n\tconst chartPlugin: Plugin<\"line\"> = {\n\t\tid: \"yAxisPlugin\",\n\t};\n\n\treturn chartPlugin;\n};\n","import { isNil } from \"lodash-es\";\nimport { ViewTag } from \"../models/TrendingModels\";\n\nexport const areRangesSimilar = (tag1: ViewTag, tag2: ViewTag) => {\n\tif (\n\t\tisNil(tag1.MaxScale) ||\n\t\tisNil(tag1.MinScale) ||\n\t\tisNil(tag2.MaxScale) ||\n\t\tisNil(tag2.MinScale)\n\t)\n\t\treturn;\n\n\tconst range1 = tag1.MaxScale - tag1.MinScale; // Rango de la primera etiqueta\n\tconst range2 = tag2.MaxScale - tag2.MinScale; // Rango de la segunda etiqueta\n\n\t// Determina los límites para la comparación\n\tconst lowerBound = Math.max(tag1.MinScale, tag2.MinScale);\n\tconst upperBound = Math.min(tag1.MaxScale, tag2.MaxScale);\n\n\t// Calcula el solapamiento entre los dos rangos\n\tconst overlap = Math.max(0, upperBound - lowerBound);\n\n\t// Determina si el solapamiento es significativo comparado con los rangos individuales\n\tconst isSignificantOverlap = overlap / range1 > 0.5 && overlap / range2 > 0.5;\n\n\treturn isSignificantOverlap;\n};\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, ViewTag, ViewTagDataSet } from \"../models/TrendingModels\";\nimport { areRangesSimilar } from \"../utils/areRangeSimilar\";\n\ninterface Props {\n\tseries: ViewTagDataSet[][];\n\tchartOptions: any;\n\tsetChartOptions: any;\n\tsetCursorData: any;\n\tchartData: any;\n\tsetChartData: any;\n}\n\nexport const TrendingChart = ({\n\tseries,\n\tchartOptions,\n\tsetChartOptions,\n\tchartData,\n\tsetCursorData,\n\tsetChartData,\n}: Props) => {\n\tconst {\n\t\tstate,\n\t\tstate: { viewTags },\n\t\tactions,\n\t} = useTrendingContext();\n\n\tconst [lineTabCoords, setLineTabCoords] = useState<LineCoords | null>(null);\n\tconst [chartArea, setChartArea] = useState<ChartArea | null>(null);\n\n\tconst chartRef = useRef<ChartJS>(null);\n\n\tconst forDebounce = useRef({\n\t\tviewTags,\n\t\tseries,\n\t\tsetChartOptions,\n\t\tsetChartData,\n\t});\n\tconst debouncedUpdateChart = useRef(\n\t\tdebounce(() => {\n\t\t\tif (chartRef.current) {\n\t\t\t\tupdateCursorData(chartRef.current, setCursorData);\n\t\t\t\tchartRef.current.update();\n\t\t\t}\n\t\t}, 250),\n\t);\n\tforDebounce.current = {\n\t\tviewTags,\n\t\tseries,\n\t\tsetChartOptions,\n\t\tsetChartData,\n\t};\n\n\tconst debouncedUpdateChartBasedOnData = useRef(\n\t\tdebounce(() => {\n\t\t\tconst { viewTags, series, setChartOptions, setChartData } =\n\t\t\t\tforDebounce.current;\n\n\t\t\tconst axes: ViewTag[] = [];\n\t\t\tif (!series.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tObject.values(viewTags).forEach(({ viewTag: tag }, index: number) => {\n\t\t\t\tconst existingAxis = axes.findIndex((existingTag: ViewTag) =>\n\t\t\t\t\tareRangesSimilar(existingTag, tag),\n\t\t\t\t);\n\t\t\t\tif (existingAxis === -1) {\n\t\t\t\t\taxes.push(tag); // Add new axis if no similar one exists\n\t\t\t\t\tseriesVsTags.current[tag.TagId] = tag.TagId;\n\t\t\t\t} else {\n\t\t\t\t\tseriesVsTags.current[tag.TagId] = axes[existingAxis].TagId;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Configure yAxes based on grouped axes\n\t\t\tconst yAxesConfig = axes.map((axis) => {\n\t\t\t\tconst min = Number(axis.MinScale);\n\t\t\t\tlet max = Number(axis.MaxScale);\n\t\t\t\tif (!min && !max) {\n\t\t\t\t\tmax = 1;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: `y-axis-${axis.TagId}`,\n\t\t\t\t\ttype: \"linear\" as const,\n\t\t\t\t\tdisplay: axis.IsVisible,\n\t\t\t\t\tscaleLabel: {\n\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\tlabelString: axis.TagName,\n\t\t\t\t\t},\n\t\t\t\t\tmin: axis.IsAutoScale ? undefined : min,\n\t\t\t\t\tmax: axis.IsAutoScale ? undefined : max,\n\t\t\t\t\tsuggestedMin: axis.IsAutoScale ? undefined : min,\n\t\t\t\t\tsuggestedMax: axis.IsAutoScale ? undefined : max,\n\t\t\t\t\tstepSize: 10,\n\t\t\t\t\tgrid: {\n\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t},\n\t\t\t\t\tafterUpdate(a: any) {\n\t\t\t\t\t\tconst chart = a.chart;\n\t\t\t\t\t\tconst keys = Object.keys(chart.scales).filter((sc) => sc !== \"x\");\n\t\t\t\t\t\tlet counterOfDefaultsScales = 0;\n\t\t\t\t\t\tif (keys.length > 1) {\n\t\t\t\t\t\t\tfor (const scaleKey in chart.scales) {\n\t\t\t\t\t\t\t\tconst scale = chart.scales[scaleKey];\n\t\t\t\t\t\t\t\tif (scale.max === 1 && scale.min === 0) {\n\t\t\t\t\t\t\t\t\t(chart.scales[scaleKey] as any).display = false;\n\t\t\t\t\t\t\t\t\t(chart.scales[scaleKey] as any).options.display = false;\n\n\t\t\t\t\t\t\t\t\tcounterOfDefaultsScales++;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t(chart.scales[scaleKey] as any).display = true;\n\t\t\t\t\t\t\t\t\t(chart.scales[scaleKey] as any).options.display = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (counterOfDefaultsScales === keys.length) {\n\t\t\t\t\t\t\t\t\t(chart.scales[keys[0]] as any).display = true;\n\t\t\t\t\t\t\t\t\t(chart.scales[keys[0]] as any).options.display = 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}\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tsetChartOptions((prevOptions: any) => {\n\t\t\t\tconst newResp = {\n\t\t\t\t\t...prevOptions,\n\t\t\t\t\tscales: {\n\t\t\t\t\t\tx: {\n\t\t\t\t\t\t\t...prevOptions.scales.x,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...yAxesConfig.reduce(\n\t\t\t\t\t\t\t(acc, cur) => ({ ...acc, [cur.id]: cur }),\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};\n\n\t\t\t\treturn newResp as any;\n\t\t\t});\n\n\t\t\tconst updatedSeries = series.map((serie, index) => {\n\t\t\t\tconst tagsSortedArray = Object.values(viewTags).sort(\n\t\t\t\t\t(a, b) => b.order - a.order,\n\t\t\t\t);\n\t\t\t\tconst tag = tagsSortedArray[index]?.viewTag;\n\n\t\t\t\tconst yAxisTagId = seriesVsTags.current[tag?.TagId];\n\n\t\t\t\treturn {\n\t\t\t\t\tyAxisID: `y-axis-${yAxisTagId}`,\n\t\t\t\t\tdata: serie.map((sample: any) => ({\n\t\t\t\t\t\tx: new Date(sample.timestamp) as any,\n\t\t\t\t\t\ty: sample.value,\n\t\t\t\t\t})),\n\t\t\t\t\ttagId: tag?.TagId,\n\t\t\t\t\tborderColor: tag?.Color,\n\t\t\t\t\thidden: !tag?.IsVisible,\n\t\t\t\t\tpointRadius: serie.length <= 50 ? 3 : 0,\n\t\t\t\t};\n\t\t\t});\n\t\t\tsetChartShouldInitCursors(true);\n\t\t\tsetChartData({\n\t\t\t\tlabels: [],\n\t\t\t\tdatasets: updatedSeries,\n\t\t\t});\n\t\t}, 1000),\n\t);\n\n\tconst [chartShouldInitCursors, setChartShouldInitCursors] = useState(false);\n\n\tconst verticalLinePlugin: Plugin = useGetVerticalLinePlugin(\n\t\tsetChartArea,\n\t\tsetLineTabCoords,\n\t);\n\tconst xAxisDatePlugin: Plugin = useXAxisDatePlugin();\n\tconst yAxisPlugin: Plugin = useYAxisPlugin();\n\n\tconst seriesVsTags = useRef<{ [tagId: number]: number }>({});\n\n\tuseEffect(() => {\n\t\tdebouncedUpdateChartBasedOnData.current();\n\t}, [state.graphShouldUpdate, series]);\n\n\tuseEffect(() => {\n\t\tif (chartShouldInitCursors) {\n\t\t\tif (chartRef.current) {\n\t\t\t\tupdateCursorData(chartRef.current, setCursorData);\n\t\t\t\tchartRef.current.update();\n\t\t\t}\n\t\t}\n\t}, [chartShouldInitCursors, state.graphShouldUpdate]);\n\n\treturn (\n\t\t<Paper style={{ height: \"100%\", position: \"relative\" }}>\n\t\t\t{lineTabCoords && chartArea ? (\n\t\t\t\t<DraggableLineControl\n\t\t\t\t\tcolor={\"red\"}\n\t\t\t\t\tchartArea={chartArea}\n\t\t\t\t\tinitialLeft={lineTabCoords?.x1}\n\t\t\t\t\totherLineCoord={lineTabCoords?.x2}\n\t\t\t\t\tonUpdate={(newLeft) => {\n\t\t\t\t\t\tsetLineTabCoords((prevCoords: any) => {\n\t\t\t\t\t\t\tprevCoords.x1 = newLeft;\n\t\t\t\t\t\t\treturn prevCoords;\n\t\t\t\t\t\t});\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tchartRef.current!.mouseX = newLeft;\n\t\t\t\t\t\tdebouncedUpdateChart.current();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t\t{lineTabCoords && chartArea ? (\n\t\t\t\t<DraggableLineControl\n\t\t\t\t\tcolor={\"blue\"}\n\t\t\t\t\tinitialLeft={lineTabCoords?.x2}\n\t\t\t\t\totherLineCoord={lineTabCoords?.x1}\n\t\t\t\t\tchartArea={chartArea}\n\t\t\t\t\tonUpdate={(newLeft) => {\n\t\t\t\t\t\tsetLineTabCoords((prevCoords: any) => {\n\t\t\t\t\t\t\tprevCoords.x2 = newLeft;\n\t\t\t\t\t\t\treturn prevCoords;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tchartRef.current!.secondLineX = newLeft;\n\n\t\t\t\t\t\tdebouncedUpdateChart.current();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t\t<Line\n\t\t\t\tref={chartRef as any}\n\t\t\t\tdata={chartData}\n\t\t\t\toptions={chartOptions}\n\t\t\t\tplugins={[verticalLinePlugin, xAxisDatePlugin, yAxisPlugin]}\n\t\t\t/>\n\t\t</Paper>\n\t);\n};\n","import { CircularProgress, Grid } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport {\n\tCategoryScale,\n\ttype ChartData,\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, ViewTag, ViewTagDataSet } from \"./models/TrendingModels\";\n\nimport { isNumber } from \"lodash-es\";\nimport { ErrorModal } from \"../../../../components/modals/error-modal\";\nimport { useChartOptions } from \"./sections/chart/hooks/useChartOptions\";\nimport { Header } from \"./sections/header\";\nimport { TrendingChart } from \"./sections/trending-chart\";\n\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\tgetTagsFromAPI: Function;\n}\n\nconst Trending: React.FC<TrendingProps> = ({ title, getTagsFromAPI }) => {\n\tconst {\n\t\tstate,\n\t\tstate: { viewTags, shouldRefetchSeries },\n\t} = useTrendingContext();\n\n\tconst [error, setError] = useState(\"\");\n\tconst [loading, setLoading] = useState(true);\n\n\tconst [series, setSeries] = useState<ViewTagDataSet[][]>([]);\n\tconst [selectedRowTagId, setSelectedRowTagId] = useState<number | null>(null);\n\tconst [viewTagForDelete, setViewTagForDelete] = useState<ViewTag | null>(\n\t\tnull,\n\t);\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\tconst [contextMenuPosition, setContextMenuPosition] = useState({\n\t\tx: 0,\n\t\ty: 0,\n\t});\n\tconst [openContextMenu, setOpenContextMenu] = useState(false);\n\n\tconst handleRightClick = (event: any, tagId: number | null) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation(); // Prevent the click event from propagating to the document\n\n\t\tif (isNumber(tagId)) {\n\t\t\tsetViewTagForDelete(viewTags[tagId].viewTag);\n\t\t} else {\n\t\t\tsetViewTagForDelete(null);\n\t\t}\n\t\tsetSelectedRowTagId(tagId);\n\t\tsetOpenContextMenu(true);\n\t\tsetContextMenuPosition({ x: event.clientX, y: event.clientY });\n\t};\n\n\tuseEffect(() => {\n\t\tif (debounceForFetchingData.current) {\n\t\t\tclearTimeout(debounceForFetchingData.current);\n\t\t}\n\t\tdebounceForFetchingData.current = setTimeout(() => {\n\t\t\tconst fetchData = async () => {\n\t\t\t\ttry {\n\t\t\t\t\tsetLoading(true);\n\t\t\t\t\tconst viewTagsArr = Object.values(viewTags).sort(\n\t\t\t\t\t\t(a, b) => b.order - a.order,\n\t\t\t\t\t);\n\t\t\t\t\tconst tagIds: number[] = viewTagsArr.map((tag) => tag.viewTag.TagId);\n\t\t\t\t\tif (tagIds.length) {\n\t\t\t\t\t\tconst response = await axios.post(\"/series?nodeName=null\", {\n\t\t\t\t\t\t\tstart: state.timeScopeStart.getTime(),\n\t\t\t\t\t\t\tend: state.timeScopeEnd.getTime(),\n\t\t\t\t\t\t\ttagIds: tagIds,\n\t\t\t\t\t\t\tsampleCount: 1000,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetSeries(response.data || []);\n\t\t\t\t\t}\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t} catch (error: any) {\n\t\t\t\t\tsetError(error.message);\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\treturn () => {\n\t\t\tif (debounceForFetchingData.current) {\n\t\t\t\tclearTimeout(debounceForFetchingData.current);\n\t\t\t}\n\t\t};\n\t}, [shouldRefetchSeries]);\n\n\treturn (\n\t\t<>\n\t\t\t<Grid\n\t\t\t\tcontainer\n\t\t\t\tstyle={{ width: \"95svw\", height: \"88svh\", margin: 0 }}\n\t\t\t\tonClick={() => setOpenContextMenu(false)}\n\t\t\t>\n\t\t\t\t<Header setChartOptions={setChartOptions} />\n\t\t\t\t<Grid item xs={12} style={{ height: \"45%\" }}>\n\t\t\t\t\t<TrendingChart\n\t\t\t\t\t\tseries={series}\n\t\t\t\t\t\tchartData={chartData}\n\t\t\t\t\t\tsetChartData={setChartData}\n\t\t\t\t\t\tchartOptions={chartOptions}\n\t\t\t\t\t\tsetChartOptions={setChartOptions}\n\t\t\t\t\t\tsetCursorData={setCursorData}\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<Grid\n\t\t\t\t\titem\n\t\t\t\t\tcontainer\n\t\t\t\t\txs={12}\n\t\t\t\t\tonContextMenu={(e) => handleRightClick(e, null)}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"40%\",\n\t\t\t\t\t\tminWidth: \"100%\",\n\t\t\t\t\t\tpaddingTop: \"3rem\",\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\tposition: loading ? \"relative\" : \"inherit\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{loading && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\tbackground: \"rgba(255, 255, 255, 0.7)\", // fondo semitransparente\n\t\t\t\t\t\t\t\tdisplay: \"flex\", // Centra el CircularProgress\n\t\t\t\t\t\t\t\tjustifyContent: \"center\", // Centra horizontalmente\n\t\t\t\t\t\t\t\talignItems: \"center\", // Centra verticalmente\n\t\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CircularProgress size=\"2rem\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<TableComponent\n\t\t\t\t\t\tchartData={chartData}\n\t\t\t\t\t\tcursorData={cursorData as any}\n\t\t\t\t\t\tgetTagsFromAPI={getTagsFromAPI}\n\t\t\t\t\t\topenContextMenu={openContextMenu}\n\t\t\t\t\t\tsetOpenContextMenu={setOpenContextMenu}\n\t\t\t\t\t\tviewTagForDelete={viewTagForDelete}\n\t\t\t\t\t\tsetViewTagForDelete={setViewTagForDelete}\n\t\t\t\t\t\tselectedRowTagId={selectedRowTagId}\n\t\t\t\t\t\tsetSelectedRowTagId={setSelectedRowTagId}\n\t\t\t\t\t\thandleRightClick={handleRightClick}\n\t\t\t\t\t\tcontextMenuPosition={contextMenuPosition}\n\t\t\t\t\t\tsetContextMenuPosition={setContextMenuPosition}\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t</Grid>\n\t\t\t<ErrorModal error={error} onHide={() => setError(\"\")} title=\"ERROR\" />\n\t\t</>\n\t);\n};\n\nexport default Trending;\n","// @flow\nimport { Box, Grid, Paper } from \"@material-ui/core\";\nimport { isNil } from \"lodash-es\";\nimport React, { useEffect, useState } from \"react\";\nimport { ErrorModal } from \"../../components/modals/error-modal\";\nimport Trending from \"./components/chart/Trending\";\nimport { useTrendingContext } from \"./components/chart/context/TrendingContext\";\nimport {\n\tView,\n\tViewTag,\n\tViewTagsMap,\n} from \"./components/chart/models/TrendingModels\";\nimport {\n\tgetViewTags,\n\tgetViews,\n} from \"./components/chart/repository/TrendingRepository\";\nimport { getRandomColor } from \"./components/chart/utils/tagColors\";\n\ntype Props = {};\nexport const TrendingsPage = (props: Props) => {\n\tconst [error, setError] = useState(\"\");\n\n\tconst {\n\t\tstate: { viewSelected },\n\t\tactions: { setViews, setViewTagsAndRefetch, setViewSelected },\n\t} = useTrendingContext();\n\n\tconst getTagsFromAPI = async (forceReload = false) => {\n\t\t//views\n\t\tconst viewsResp = await getViews(null);\n\t\tif (viewsResp.ok) {\n\t\t\tsetViews(viewsResp.data.tables[0].rows);\n\n\t\t\tlet lastCreated: View;\n\t\t\tif (!viewSelected || forceReload) {\n\t\t\t\tlastCreated = viewsResp.data.tables[0].rows.reduce(\n\t\t\t\t\t(prev: View, current: View) =>\n\t\t\t\t\t\tprev && prev.ViewId > current.ViewId ? prev : current,\n\t\t\t\t\tnull,\n\t\t\t\t);\n\n\t\t\t\t//viewSelected\n\t\t\t\tsetViewSelected(lastCreated);\n\t\t\t} else {\n\t\t\t\tlastCreated = viewSelected;\n\t\t\t}\n\t\t\t//viewTags\n\t\t\tif (lastCreated) {\n\t\t\t\tconst viewTagsResp = await getViewTags(lastCreated.ViewId);\n\t\t\t\tif (viewTagsResp.ok) {\n\t\t\t\t\tconst viewTags = viewTagsResp.data.tables[0].rows.reduce(\n\t\t\t\t\t\t(carr: ViewTagsMap, curr: ViewTag, idx: number) => {\n\t\t\t\t\t\t\tif (isNil(curr.Color)) {\n\t\t\t\t\t\t\t\tcurr.Color = getRandomColor();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcarr[curr.TagId] = {\n\t\t\t\t\t\t\t\tviewTag: curr,\n\t\t\t\t\t\t\t\torder: idx,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn carr;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{},\n\t\t\t\t\t);\n\t\t\t\t\tsetViewTagsAndRefetch(viewTags);\n\t\t\t\t} else {\n\t\t\t\t\tsetError(viewTagsResp.message);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tsetError(viewsResp.message);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tgetTagsFromAPI();\n\t}, []);\n\n\treturn (\n\t\t<>\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\tgetTagsFromAPI={getTagsFromAPI}\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\t<ErrorModal\n\t\t\t\terror={error}\n\t\t\t\tonHide={() => setError(\"\")}\n\t\t\t\tsize=\"xl\"\n\t\t\t\ttitle=\"ERROR\"\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import React, { useEffect, useState } from \"react\";\nimport { axiosInstance } from \"../../context/axiosInstance\";\nimport { TrendingsPage } from \"./TrendingsPage\";\nimport { TrendingProvider } from \"./components/chart/context/TrendingContext\";\n\nconst index = () => {\n\tconst [ihPathLoaded, setIhPathLoaded] = useState<boolean>(false);\n\n\tuseEffect(() => {\n\t\tconst getIhPath = async () => {\n\t\t\tconst resp = await axiosInstance.get(\"/backend/ih-path\");\n\t\t\tlocalStorage.setItem(\"ihPath\", resp.data);\n\t\t\tsetIhPathLoaded(true);\n\t\t};\n\t\tgetIhPath().then(() => {\n\t\t\tconsole.log(\"ih path loaded\");\n\t\t});\n\t}, []);\n\n\tif (!ihPathLoaded) {\n\t\treturn (\n\t\t\t<div className={\"d-flex justify-content-center align-items-center\"}>\n\t\t\t\tLoading...\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TrendingProvider>\n\t\t\t<TrendingsPage />\n\t\t</TrendingProvider>\n\t);\n};\n\nexport default index;\n","import React, { useContext } from \"react\";\nimport { Navigate, Route, Routes } from \"react-router-dom\";\n\nimport { Home } from \"../components/home/home\";\nimport Configuration from \"../configurationMenu\";\nimport { useHasPermission } from \"../context/userContext\";\nimport { RouterContext } from \"../globalContext\";\nimport TrendingsIndex from \"../pages/trendings/index\";\n\nconst MESFMainRouter = () => {\n\tconst CustomRoutes: any = useContext(RouterContext);\n\tconst hasPermissionTo = useHasPermission();\n\tconst canShowSettings = hasPermissionTo(\"ui.navbar.settings\");\n\n\treturn (\n\t\t<>\n\t\t\t<Routes>\n\t\t\t\t<Route path=\"/\" element={<Navigate replace to=\"/home\" />} />\n\n\t\t\t\t{canShowSettings && (\n\t\t\t\t\t<Route path=\"/configuration/*\" element={<Configuration />} />\n\t\t\t\t)}\n\t\t\t\t{/*<Route path=\"/account\" element={<Account />} />*/}\n\t\t\t\t<Route path=\"/account\" element={<Navigate replace to=\"/\" />} />\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 { useLocation, useSearchParams } from \"react-router-dom\";\nimport Header from \"./Header\";\nimport { MESFMainContainer } from \"./MainContainer\";\n\nconst Navigation = ({\n\tshowAreaSelector = false,\n\tshowTrendingsIcon = true,\n\tnavbarTitle = \"MESF\",\n\tbyPassHeaderRoutes = [],\n}: {\n\tshowAreaSelector?: boolean;\n\tshowTrendingsIcon?: boolean;\n\tnavbarTitle?: string;\n\tbyPassHeaderRoutes?: string[];\n}) => {\n\tconst [params, setParams] = useSearchParams();\n\tconst mounted = useRef(true);\n\n\tconst location = useLocation();\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\tconst byPassHeader = byPassHeaderRoutes.some((route) =>\n\t\tlocation.pathname.startsWith(route),\n\t);\n\n\treturn (\n\t\t<div className=\"wrapper\">\n\t\t\t{/*<!-- top navbar-->*/}\n\t\t\t{!byPassHeader && (\n\t\t\t\t<Header\n\t\t\t\t\tshowAreaSelector={showAreaSelector}\n\t\t\t\t\tnavbarTitle={navbarTitle}\n\t\t\t\t\tshowTrendingsIcon={showTrendingsIcon}\n\t\t\t\t/>\n\t\t\t)}\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 { createTheme } from \"@material-ui/core\";\n\nexport const themeMESF = createTheme({\n\tpalette: {\n\t\ttype: \"light\",\n\t\tprimary: {\n\t\t\tmain: \"#3f51b5\",\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: \"#f50057\",\n\t\t},\n\t},\n\ttypography: {\n\t\t// Modify base font size\n\t\tfontSize: 14,\n\n\t\t// Customize specific variants\n\t\th6: {\n\t\t\tfontSize: \"1.1rem\",\n\t\t\tfontWeight: 500,\n\t\t},\n\t\tsubtitle1: {\n\t\t\tfontSize: \"0.875rem\",\n\t\t},\n\t\tbody1: {\n\t\t\tfontSize: \"0.875rem\",\n\t\t},\n\t\tbody2: {\n\t\t\tfontSize: \"0.875rem\",\n\t\t},\n\t},\n\toverrides: {\n\t\tMuiListItemText: {\n\t\t\tprimary: {\n\t\t\t\tfontSize: \"0.875rem\",\n\t\t\t},\n\t\t},\n\t\tMuiListSubheader: {\n\t\t\troot: {\n\t\t\t\tfontSize: \"0.875rem\",\n\t\t\t\tfontWeight: 600,\n\t\t\t},\n\t\t},\n\t\tMuiListItemIcon: {\n\t\t\troot: {\n\t\t\t\tminWidth: \"40px\",\n\t\t\t},\n\t\t},\n\t},\n});\n","import React, { type ReactNode } from \"react\";\nimport { Route, BrowserRouter as Router, Routes } from \"react-router-dom\";\n\nimport { CssBaseline, ThemeProvider } from \"@material-ui/core\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers\";\nimport { AdapterMoment } from \"@mui/x-date-pickers/AdapterMoment\";\nimport moment from \"moment-timezone\";\nimport { AuthProvider, Logout } from \"./account\";\nimport Navigation from \"./components/navigation/Navigation\";\nimport { ConfigurationsType } from \"./configurationMenu\";\nimport { UTLSettingsProvider } from \"./context/UTLSettingContext\";\nimport { AssetProvider } from \"./context/assetContext\";\nimport { UserProvider } from \"./context/userContext\";\nimport { ContextMenuMESFProvider, ShiftNavigatorProvider } from \"./controls\";\nimport { themeMESF } from \"./css/themeMESF\";\nimport {\n\tConfigurationContext,\n\tNavbarContext,\n\tRouterContext,\n} from \"./globalContext\";\nimport { TimeService } from \"./services\";\n\nconst timezone = TimeService.getInstance().getServerTimeZone();\nmoment.tz.setDefault(timezone);\n\nconst base =\n\tdocument.getElementsByTagName(\"base\")[0].getAttribute(\"href\") || \"/\";\n\ninterface Props {\n\tauthentication: any;\n\troutes: ReactNode;\n\tnavbar: ReactNode;\n\tnavbarTitle?: string;\n\tconfigurations: ConfigurationsType;\n\tshowAreaSelector?: boolean;\n\tshowTrendingsIcon?: boolean;\n\tbyPassHeaderRoutes?: string[];\n}\n\nfunction MESFMain({\n\tauthentication,\n\troutes,\n\tnavbar,\n\tnavbarTitle = \"MESF\",\n\tconfigurations,\n\tshowAreaSelector = false,\n\tshowTrendingsIcon = true,\n\tbyPassHeaderRoutes = [],\n}: Props) {\n\treturn (\n\t\t<>\n\t\t\t<CssBaseline />\n\t\t\t<ThemeProvider theme={themeMESF}>\n\t\t\t\t<AuthProvider authConfig={authentication}>\n\t\t\t\t\t<LocalizationProvider\n\t\t\t\t\t\tdateAdapter={AdapterMoment}\n\t\t\t\t\t\tdateLibInstance={moment}\n\t\t\t\t\t>\n\t\t\t\t\t\t<UserProvider>\n\t\t\t\t\t\t\t<AssetProvider>\n\t\t\t\t\t\t\t\t<UTLSettingsProvider>\n\t\t\t\t\t\t\t\t\t<RouterContext.Provider value={routes}>\n\t\t\t\t\t\t\t\t\t\t<NavbarContext.Provider value={navbar}>\n\t\t\t\t\t\t\t\t\t\t\t<ConfigurationContext.Provider value={configurations}>\n\t\t\t\t\t\t\t\t\t\t\t\t<ShiftNavigatorProvider>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ContextMenuMESFProvider>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Router basename={base}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Routes>\n\t\t\t\t\t\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\t\t\t\t\t</Routes>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Navigation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tshowAreaSelector={showAreaSelector}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tshowTrendingsIcon={showTrendingsIcon}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavbarTitle={navbarTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbyPassHeaderRoutes={byPassHeaderRoutes}\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</Router>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ContextMenuMESFProvider>\n\t\t\t\t\t\t\t\t\t\t\t\t</ShiftNavigatorProvider>\n\t\t\t\t\t\t\t\t\t\t\t</ConfigurationContext.Provider>\n\t\t\t\t\t\t\t\t\t\t</NavbarContext.Provider>\n\t\t\t\t\t\t\t\t\t</RouterContext.Provider>\n\t\t\t\t\t\t\t\t</UTLSettingsProvider>\n\t\t\t\t\t\t\t</AssetProvider>\n\t\t\t\t\t\t</UserProvider>\n\t\t\t\t\t</LocalizationProvider>\n\t\t\t\t</AuthProvider>\n\t\t\t</ThemeProvider>\n\t\t</>\n\t);\n}\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\tBox,\n\tButton,\n\tDialog,\n\tDialogActions,\n\tDialogContent,\n\ttype DialogProps,\n\tDialogTitle,\n\tGrid,\n\tIconButton,\n\tList,\n\tListItem,\n\tListItemText,\n\tTextField,\n\ttype Theme,\n\tTypography,\n\tcreateStyles,\n\tmakeStyles,\n} from \"@material-ui/core\";\nimport PersonPinCircleIcon from \"@material-ui/icons/PersonPinCircle\";\nimport React, { useEffect, useState } from \"react\";\nimport { useToken } from \"../../../account/useToken\";\nimport { useAssetContext } from \"../../../context/assetContext\";\nimport { useUserContext } from \"../../../context/userContext\";\nimport { upsertDefaultAreaId } from \"../../../repositorie/MESF-frontend-Repositorie\";\nimport { ErrorModal } from \"../../modals/error-modal\";\nimport { useDefaultAreaId } from \"../hooks/useDefaultAreaId\";\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\tareaLink: {\n\t\t\tpaddingLeft: 0,\n\t\t\tcolor: \"#FFF\",\n\t\t\tcursor: \"pointer\",\n\t\t\tmaxWidth: \"100px\",\n\t\t\tfontSize: \".8rem\",\n\t\t\toverflow: \"hidden\",\n\t\t\ttextOverflow: \"ellipsis\",\n\t\t\twhiteSpace: \"nowrap\",\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t},\n\t\tareaIcon: {\n\t\t\tmarginLeft: \"-5px\",\n\t\t},\n\t\tlistContainer: {\n\t\t\theight: \"45vh\",\n\t\t\tborder: \"1px solid rgba(0, 0, 0, 0.26)\",\n\t\t\tborderRadius: \"2px\",\n\t\t\toverflowY: \"scroll\",\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<Box mx={2}>\n\t\t\t\t<IconButton color=\"inherit\" onClick={changeAreaActive} size=\"small\">\n\t\t\t\t\t<div className={classes.areaLink}>\n\t\t\t\t\t\t<PersonPinCircleIcon className={classes.areaIcon} />\n\t\t\t\t\t\t{defaultAreaName}\n\t\t\t\t\t</div>\n\t\t\t\t</IconButton>\n\t\t\t</Box>\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<Typography\n\t\t\t\t\t\tclassName={classes.title}\n\t\t\t\t\t\tvariant=\"subtitle1\"\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</Typography>\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t<Grid item 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<Typography\n\t\t\t\t\t\t\t\tclassName={classes.title}\n\t\t\t\t\t\t\t\tvariant=\"subtitle1\"\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</Typography>\n\t\t\t\t\t\t\t<Grid item xs={12} style={{ marginTop: 10 }}>\n\t\t\t\t\t\t\t\t<Grid item xs={12} className={classes.listContainer}>\n\t\t\t\t\t\t\t\t\t<List dense 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\t<ListItem\n\t\t\t\t\t\t\t\t\t\t\t\tbutton\n\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\tonClick={() =>\n\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}\n\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>\n\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</ListItem>\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","MuiDialogTitle","MuiDialogContent","MuiDialogActions","Modal","Folder","Typography","Dialog","DialogTitle","DialogContent","DialogActions","useStyles","IconButton","Alert","moment","MuiDatePicker","DatePicker","ContextMenu","format","formatDateFns","get","isNil","MuiAlert","INITIAL_VALUES","getProfiles","useTableData","useSearchAssets","CustomDragPreview","customStyles","ChangePassword","ITEM_HEIGHT","ITEM_PADDING_TOP","MenuProps","Configuration","base","makeStyles","LogLevel","AreaSelector","Header","SendIcon","ShiftsCrews","Users","Profiles","Logs","Jobs","PeopleIcon","StorageIcon","GroupIcon","AssignmentIcon","ChatIcon","TimelineIcon","ViewListIcon","BuildIcon","SettingsIcon","ChevronLeftIcon","MenuIcon","Button","DndProvider","ChartJS","Tooltip","TrendingsIndex","Router"],"mappings":"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"}
|