@argusoft/medplat-core 1.0.30 → 1.0.32
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/dist/{AccessRights-xrday-L1.js → AccessRights-DBjTQA1-.js} +395 -390
- package/dist/AccessRights-DBjTQA1-.js.map +1 -0
- package/dist/{AddFeatures-D1sU8RjY.js → AddFeatures-COj4ZTIM.js} +2 -2
- package/dist/{AddFeatures-D1sU8RjY.js.map → AddFeatures-COj4ZTIM.js.map} +1 -1
- package/dist/AddMenuConfiguration-Creeib5X.js +11223 -0
- package/dist/AddMenuConfiguration-Creeib5X.js.map +1 -0
- package/dist/AddMenuConfiguration.css +1 -1
- package/dist/{BrandsPage-DmRW5bhm-Bk1szrjI.js → BrandsPage-CdcAvaml-ZtVTX6vX.js} +43 -43
- package/dist/{BrandsPage-DmRW5bhm-Bk1szrjI.js.map → BrandsPage-CdcAvaml-ZtVTX6vX.js.map} +1 -1
- package/dist/{CategoriesPage-BsS5IQh3-B03lWRY5.js → CategoriesPage-BprQEYJw-CclreTv1.js} +109 -102
- package/dist/CategoriesPage-BprQEYJw-CclreTv1.js.map +1 -0
- package/dist/{ChangePasswordModalCore-BPsJquTS.js → ChangePasswordModalCore-DZGOkbRY.js} +3 -3
- package/dist/{ChangePasswordModalCore-BPsJquTS.js.map → ChangePasswordModalCore-DZGOkbRY.js.map} +1 -1
- package/dist/ConditionConfig-Bpm6OoV5.js +408 -0
- package/dist/ConditionConfig-Bpm6OoV5.js.map +1 -0
- package/dist/{DashboardPage-C3bKc5na-sBd9Yqbi.js → DashboardPage-CTiGSx71-CsYohJ5e.js} +32 -32
- package/dist/{DashboardPage-C3bKc5na-sBd9Yqbi.js.map → DashboardPage-CTiGSx71-CsYohJ5e.js.map} +1 -1
- package/dist/EntityManagement-BGwJGl9k.js +62 -0
- package/dist/EntityManagement-BGwJGl9k.js.map +1 -0
- package/dist/EventConfig-BY2cgGyx.js +27 -0
- package/dist/{EventConfig-BmLemzX3.js.map → EventConfig-BY2cgGyx.js.map} +1 -1
- package/dist/EventConfigurations-B-z7xHh_.js +544 -0
- package/dist/EventConfigurations-B-z7xHh_.js.map +1 -0
- package/dist/EventConfigurations.css +1 -1
- package/dist/EventsExceptionModal-DafomIv6.js +188 -0
- package/dist/EventsExceptionModal-DafomIv6.js.map +1 -0
- package/dist/EventsUi-Dl_yckSA.js +263 -0
- package/dist/EventsUi-Dl_yckSA.js.map +1 -0
- package/dist/FacilityPicker-BXa2VF7i-Dab_Jwa5.js +112 -0
- package/dist/FacilityPicker-BXa2VF7i-Dab_Jwa5.js.map +1 -0
- package/dist/{FeatureMenu-DYJmDt7q.js → FeatureMenu-Kc73yPHH.js} +9 -5
- package/dist/FeatureMenu-Kc73yPHH.js.map +1 -0
- package/dist/{FhirServerList-DuTwnngN.js → FhirServerList-CrIHMAxz.js} +16 -16
- package/dist/{FhirServerList-DuTwnngN.js.map → FhirServerList-CrIHMAxz.js.map} +1 -1
- package/dist/{FhirServerProfile-CUOwC6Wb.js → FhirServerProfile-D3aYcpwY.js} +8 -8
- package/dist/{FhirServerProfile-CUOwC6Wb.js.map → FhirServerProfile-D3aYcpwY.js.map} +1 -1
- package/dist/{FhirServerWizard-DZI8Olku.js → FhirServerWizard-Db6Hm4bQ.js} +15 -15
- package/dist/{FhirServerWizard-DZI8Olku.js.map → FhirServerWizard-Db6Hm4bQ.js.map} +1 -1
- package/dist/{GrantPermissionModal-BDN66Atn.js → GrantPermissionModal-D7iNZd0M.js} +54 -51
- package/dist/GrantPermissionModal-D7iNZd0M.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-lKsJZMak.js +8060 -0
- package/dist/ImmunizationConfigurationBase-lKsJZMak.js.map +1 -0
- package/dist/InventoryPage-JadYMCzU-CzJQfQ2A.js +1017 -0
- package/dist/InventoryPage-JadYMCzU-CzJQfQ2A.js.map +1 -0
- package/dist/LocationWiseExpectedTargetPage-CjKk1aTF.js +1344 -0
- package/dist/LocationWiseExpectedTargetPage-CjKk1aTF.js.map +1 -0
- package/dist/{ManageDynamicFeature-BU0I45dd.js → ManageDynamicFeature-CuyYfx_P.js} +104 -97
- package/dist/ManageDynamicFeature-CuyYfx_P.js.map +1 -0
- package/dist/ManageEventConfiguration-DqPbn3Oi.js +1216 -0
- package/dist/ManageEventConfiguration-DqPbn3Oi.js.map +1 -0
- package/dist/ManageEventConfiguration.css +1 -1
- package/dist/ManageRole-CyfpySt9.js +981 -0
- package/dist/ManageRole-CyfpySt9.js.map +1 -0
- package/dist/{ManageUser-DCFkUMV9.js → ManageUser-Dm0l833u.js} +286 -286
- package/dist/{ManageUser-DCFkUMV9.js.map → ManageUser-Dm0l833u.js.map} +1 -1
- package/dist/{MemberProfileCard-BdUNgHRB-VywqQdFF.js → MemberProfileCard-01d_jz3w-DYHtbgMX.js} +46 -46
- package/dist/{MemberProfileCard-BdUNgHRB-VywqQdFF.js.map → MemberProfileCard-01d_jz3w-DYHtbgMX.js.map} +1 -1
- package/dist/MobileAnalytics-C9oc2yAo.js +18399 -0
- package/dist/MobileAnalytics-C9oc2yAo.js.map +1 -0
- package/dist/MobileMenuManagement-BmzTPXy7.js +231 -0
- package/dist/MobileMenuManagement-BmzTPXy7.js.map +1 -0
- package/dist/MobileTypeEventConfigModal-DodU3beR.js +752 -0
- package/dist/MobileTypeEventConfigModal-DodU3beR.js.map +1 -0
- package/dist/{NewServerManagement-Cxe0dV0O.js → NewServerManagement-BdayO78D.js} +368 -352
- package/dist/NewServerManagement-BdayO78D.js.map +1 -0
- package/dist/OtherTypeEventConfigModal-D_9S50aI.js +1414 -0
- package/dist/OtherTypeEventConfigModal-D_9S50aI.js.map +1 -0
- package/dist/{PaymentCreatePage-CIVe0P0p-25BQVpOX.js → PaymentCreatePage-D6NZBUC3-DxXf2kvH.js} +58 -58
- package/dist/{PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map → PaymentCreatePage-D6NZBUC3-DxXf2kvH.js.map} +1 -1
- package/dist/{PaymentsPage-BvPe5Q9F-D2gfziwW.js → PaymentsPage-CHieGNrn-BnYCtqHd.js} +37 -37
- package/dist/{PaymentsPage-BvPe5Q9F-D2gfziwW.js.map → PaymentsPage-CHieGNrn-BnYCtqHd.js.map} +1 -1
- package/dist/{PermissionsModal-CCYkcKlC.js → PermissionsModal-Dxbkkrqe.js} +18 -18
- package/dist/PermissionsModal-Dxbkkrqe.js.map +1 -0
- package/dist/{PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js → PickupBatchLinesEditor-QPaqFtUO-CY7BShYh.js} +2 -2
- package/dist/{PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map → PickupBatchLinesEditor-QPaqFtUO-CY7BShYh.js.map} +1 -1
- package/dist/PickupCreatePage-C7_67u_u-OId8-e2a.js +801 -0
- package/dist/PickupCreatePage-C7_67u_u-OId8-e2a.js.map +1 -0
- package/dist/{PickupsPage-Ctpghavs-CUp4uIZq.js → PickupsPage-BWblMlic-CWkgeBw0.js} +132 -132
- package/dist/PickupsPage-BWblMlic-CWkgeBw0.js.map +1 -0
- package/dist/PmGuard-BvUUbU80-BpYNaDzl.js +641 -0
- package/dist/PmGuard-BvUUbU80-BpYNaDzl.js.map +1 -0
- package/dist/ProductEditPage-Dbq4vUAA-BoBmTPPL.js +1523 -0
- package/dist/ProductEditPage-Dbq4vUAA-BoBmTPPL.js.map +1 -0
- package/dist/{ProductsPage-CupVmOD4-D45a_hf-.js → ProductsPage-BI22nPb4-CQBjnc-n.js} +44 -43
- package/dist/ProductsPage-BI22nPb4-CQBjnc-n.js.map +1 -0
- package/dist/PurchaseCreatePage-C0EK9z4w-BQMTsjE7.js +724 -0
- package/dist/PurchaseCreatePage-C0EK9z4w-BQMTsjE7.js.map +1 -0
- package/dist/{PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js → PurchaseRequestDetailPage-DhBuOGHZ-CWZPqzt9.js} +428 -418
- package/dist/PurchaseRequestDetailPage-DhBuOGHZ-CWZPqzt9.js.map +1 -0
- package/dist/{PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js → PurchaseRequestsPage-Bj9HUMxb-B7-AxT8m.js} +65 -65
- package/dist/{PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map → PurchaseRequestsPage-Bj9HUMxb-B7-AxT8m.js.map} +1 -1
- package/dist/{PurchasesPage-It1GHiXl-eH4IsF_U.js → PurchasesPage-Djl1AqD_-DXeYFMrX.js} +55 -55
- package/dist/{PurchasesPage-It1GHiXl-eH4IsF_U.js.map → PurchasesPage-Djl1AqD_-DXeYFMrX.js.map} +1 -1
- package/dist/{RoleManagement-s8iNx2Mu.js → RoleManagement-DVYufwy-.js} +3 -3
- package/dist/{RoleManagement-s8iNx2Mu.js.map → RoleManagement-DVYufwy-.js.map} +1 -1
- package/dist/Roles-BoNGJhtR.js +19 -0
- package/dist/Roles-BoNGJhtR.js.map +1 -0
- package/dist/{SaleCreatePage-C9kFmTvm-B3Y0o4CX.js → SaleCreatePage-DHBLmlBr-BlgjVsq6.js} +39 -39
- package/dist/{SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map → SaleCreatePage-DHBLmlBr-BlgjVsq6.js.map} +1 -1
- package/dist/{SalesPage-D18DCseD-BxktGDRQ.js → SalesPage-eF9Yr42z-BQ9FlXC3.js} +61 -61
- package/dist/{SalesPage-D18DCseD-BxktGDRQ.js.map → SalesPage-eF9Yr42z-BQ9FlXC3.js.map} +1 -1
- package/dist/SettingsPage-Cre-UE3r-9ntnLYsQ.js +741 -0
- package/dist/SettingsPage-Cre-UE3r-9ntnLYsQ.js.map +1 -0
- package/dist/{ShowFlywayQuery-D1y_4A1u.js → ShowFlywayQuery-DIOUdYfG.js} +26 -19
- package/dist/{ShowFlywayQuery-D1y_4A1u.js.map → ShowFlywayQuery-DIOUdYfG.js.map} +1 -1
- package/dist/{StorageUnitsPage-7EqwuMOI-BwUso1Th.js → StorageUnitsPage-CTEVuemZ-B4osG74N.js} +253 -223
- package/dist/StorageUnitsPage-CTEVuemZ-B4osG74N.js.map +1 -0
- package/dist/{SubMenu-eEDhZUvh.js → SubMenu-OO2zhKiu.js} +5 -3
- package/dist/SubMenu-OO2zhKiu.js.map +1 -0
- package/dist/{TableDetails-BtafRxXb.js → TableDetails-Cc40dEUs.js} +272 -267
- package/dist/TableDetails-Cc40dEUs.js.map +1 -0
- package/dist/{TableList-Dpo6dO7S.js → TableList-B5tX4wII.js} +316 -312
- package/dist/TableList-B5tX4wII.js.map +1 -0
- package/dist/{TransactionsPage-DrH53pVS-BkhIGB6C.js → TransactionsPage-Zuu7sjID-B-ACzvd1.js} +195 -180
- package/dist/TransactionsPage-Zuu7sjID-B-ACzvd1.js.map +1 -0
- package/dist/TransferCreatePage-DlT0nCDj-B2SdPgYB.js +635 -0
- package/dist/TransferCreatePage-DlT0nCDj-B2SdPgYB.js.map +1 -0
- package/dist/TransfersPage-DqaSvHda-G2tFa5Jq.js +600 -0
- package/dist/TransfersPage-DqaSvHda-G2tFa5Jq.js.map +1 -0
- package/dist/TypeConfiguration-EaFiOzRE.js +114 -0
- package/dist/TypeConfiguration-EaFiOzRE.js.map +1 -0
- package/dist/UserList-Cf5B-o_1.js +1904 -0
- package/dist/UserList-Cf5B-o_1.js.map +1 -0
- package/dist/Users-MC7txo1V.js +43 -0
- package/dist/{Users-Bpc4Sazd.js.map → Users-MC7txo1V.js.map} +1 -1
- package/dist/VaccineEducation-T_UE57Ef.js +231 -0
- package/dist/VaccineEducation-T_UE57Ef.js.map +1 -0
- package/dist/VaccineEducation.css +1 -0
- package/dist/VaccineEducationConfigurator-CWc20_rv.js +50948 -0
- package/dist/VaccineEducationConfigurator-CWc20_rv.js.map +1 -0
- package/dist/VaccineEducationConfigurator.css +4 -0
- package/dist/VaccineEducationList-Ok7_5EFb.js +334 -0
- package/dist/VaccineEducationList-Ok7_5EFb.js.map +1 -0
- package/dist/VialsPage-LoDaUqVv-DmMXbK8j.js +457 -0
- package/dist/VialsPage-LoDaUqVv-DmMXbK8j.js.map +1 -0
- package/dist/{constants-ClZJY2x1-MkSWn6TZ.js → constants-BTpJFQe_-CYPZIqQF.js} +166 -56
- package/dist/constants-BTpJFQe_-CYPZIqQF.js.map +1 -0
- package/dist/dashboardLayoutUtils--xUnoKPa.js +615 -0
- package/dist/dashboardLayoutUtils--xUnoKPa.js.map +1 -0
- package/dist/index-mfoqII2U.js +524 -0
- package/dist/index-mfoqII2U.js.map +1 -0
- package/dist/{index-D9YNFPn9.js → index-o8Pyt1Bt.js} +445 -439
- package/dist/index-o8Pyt1Bt.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.lib-BySa9-Z-.js +936 -0
- package/dist/index.lib-BySa9-Z-.js.map +1 -0
- package/dist/listValueStore-5d4vNGQM-WclZ5nBG.js +43 -0
- package/dist/listValueStore-5d4vNGQM-WclZ5nBG.js.map +1 -0
- package/package.json +5 -1
- package/dist/AccessRights-xrday-L1.js.map +0 -1
- package/dist/AddMenuConfiguration-e5BVXhmw.js +0 -8547
- package/dist/AddMenuConfiguration-e5BVXhmw.js.map +0 -1
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +0 -1
- package/dist/ConditionConfig-Ddz9halE.js +0 -395
- package/dist/ConditionConfig-Ddz9halE.js.map +0 -1
- package/dist/ConditionConfig.css +0 -1
- package/dist/EntityManagement-CPQL6qBj.js +0 -50
- package/dist/EntityManagement-CPQL6qBj.js.map +0 -1
- package/dist/EventConfig-BmLemzX3.js +0 -26
- package/dist/EventConfigurations-Bzh1qWXU.js +0 -450
- package/dist/EventConfigurations-Bzh1qWXU.js.map +0 -1
- package/dist/EventsExceptionModal-B2SRrnB1.js +0 -200
- package/dist/EventsExceptionModal-B2SRrnB1.js.map +0 -1
- package/dist/EventsSkeleton-BIcPks4T.js +0 -61
- package/dist/EventsSkeleton-BIcPks4T.js.map +0 -1
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js +0 -79
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js.map +0 -1
- package/dist/FeatureMenu-DYJmDt7q.js.map +0 -1
- package/dist/GrantPermissionModal-BDN66Atn.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js +0 -7639
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js.map +0 -1
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js +0 -665
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js.map +0 -1
- package/dist/ManageDynamicFeature-BU0I45dd.js.map +0 -1
- package/dist/ManageEventConfiguration-CoYcpjR9.js +0 -1085
- package/dist/ManageEventConfiguration-CoYcpjR9.js.map +0 -1
- package/dist/ManageRole-CNZBRKGU.js +0 -776
- package/dist/ManageRole-CNZBRKGU.js.map +0 -1
- package/dist/MobileAnalytics-pQoE8cG1.js +0 -16888
- package/dist/MobileAnalytics-pQoE8cG1.js.map +0 -1
- package/dist/MobileMenuManagement-Cf8IZlla.js +0 -108
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-BeveaX0C.js +0 -783
- package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +0 -1
- package/dist/NewServerManagement-Cxe0dV0O.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-CM6VkdmY.js +0 -2046
- package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +0 -1
- package/dist/PermissionsModal-CCYkcKlC.js.map +0 -1
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js +0 -783
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map +0 -1
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +0 -1
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js +0 -599
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js.map +0 -1
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js +0 -1302
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +0 -1
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +0 -1
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js +0 -648
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +0 -1
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +0 -1
- package/dist/Roles-BIyiic67.js +0 -14
- package/dist/Roles-BIyiic67.js.map +0 -1
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js +0 -747
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js.map +0 -1
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +0 -1
- package/dist/SubMenu-eEDhZUvh.js.map +0 -1
- package/dist/TableDetails-BtafRxXb.js.map +0 -1
- package/dist/TableList-Dpo6dO7S.js.map +0 -1
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js.map +0 -1
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js +0 -315
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map +0 -1
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js +0 -476
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +0 -1
- package/dist/TypeConfiguration-3O6ABrK-.js +0 -117
- package/dist/TypeConfiguration-3O6ABrK-.js.map +0 -1
- package/dist/UserList-DgPxsnj2.js +0 -1129
- package/dist/UserList-DgPxsnj2.js.map +0 -1
- package/dist/Users-Bpc4Sazd.js +0 -41
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js +0 -321
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js.map +0 -1
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +0 -1
- package/dist/dashboardLayoutUtils-D1xCAxp3.js +0 -405
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +0 -1
- package/dist/index-D9YNFPn9.js.map +0 -1
- package/dist/index.lib-Dn8PMkeD.js +0 -862
- package/dist/index.lib-Dn8PMkeD.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MobileTypeEventConfigModal-BeveaX0C.js","sources":["../src/views/Events/MobileTypeEventConfigModal.jsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport Grid from \"@mui/material/Grid2\";\nimport * as Yup from \"yup\";\nimport {\n Button,\n IconButton,\n Modal,\n Box,\n FormControl,\n MenuItem,\n Select,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Typography,\n Paper,\n Stack,\n} from \"@mui/material\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport { retrieveAllNotifications } from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport \"./Styles/ManageEventConfiguration.scss\";\n// import { useTracking } from \"@argusoft/medplat-useranalytics/dist/index.es\";\\\n\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { faTrash, faXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n// Define the validation schema using Yup\n\n/**\n * Modal component for configuring mobile type event notifications.\n * @module MobileTypeEventConfigModal\n * @param {Object} props - The props for the component.\n * @param {boolean} props.open - Whether the modal is open or not.\n * @param {Function} props.handleClose - Function to close the modal.\n * @param {Function} props.handleClick - Function to handle submission of the modal form.\n * @param {Object} props.type - Configuration type object passed to the modal.\n *\n * @returns {JSX.Element} The rendered modal component.\n */\nconst MobileTypeEventConfigModal = ({\n open,\n handleClose,\n handleClick,\n type,\n}) => {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const trackEvent = useTrackEvent();\n const [notificationTypes, setNotificationTypes] = useState([]);\n const [mobileNotification, setMobileNotification] = useState(null);\n const [mobileNotificationConfigs, setMobileNotificationConfigs] = useState(\n [],\n );\n const [mobileConfigLength, setmobileConfigLength] = useState(0);\n const { translate } = useTranslateProvider();\n\n /**\n * @function handleDelete\n * Deletes a mobile notification configuration at the specified index.\n *\n * @param {number} index - The index of the configuration to delete.\n */\n const handleDeleteConfig = (index) => {\n if (mobileNotificationConfigs) {\n mobileNotificationConfigs.forEach((data, i) => {\n setValue(`notificationCode${i}`, \"\"); // or set it to a default value\n setValue(`numberOfDaysAddedForOnDate${i}`, 0);\n setValue(`numberOfDaysAddedForExpiryDate${i}`, 0);\n setValue(`numberOfDaysAddedForDueDate${i}`, 0);\n });\n }\n\n setMobileNotificationConfigs((prev) => {\n const newConfigs = prev.filter((_, i) => i !== index);\n\n // Reset form values after deleting\n newConfigs.forEach((data, i) => {\n setValue(`notificationCode${i}`, data.notificationCode); // or set it to a default value\n setValue(\n `numberOfDaysAddedForOnDate${i}`,\n data.numberOfDaysAddedForOnDate,\n );\n setValue(\n `numberOfDaysAddedForExpiryDate${i}`,\n data.numberOfDaysAddedForExpiryDate,\n );\n setValue(\n `numberOfDaysAddedForDueDate${i}`,\n data.numberOfDaysAddedForDueDate,\n );\n });\n\n return newConfigs;\n });\n };\n\n /**\n * Updates the specified field of a mobile notification configuration.\n * @function handleChange\n * @param {number} index - The index of the configuration to update.\n * @param {string} field - The field name to update.\n * @param {*} value - The new value to set for the specified field.\n */\n const handleChange = (index, field, value) => {\n const newConfigs = [...mobileNotificationConfigs];\n newConfigs[index][field] = value;\n setMobileNotificationConfigs(newConfigs);\n };\n\n const validationSchema = Yup.object().shape({\n mobileNotificationType: Yup.string().required(\"Select notification type\"),\n baseDateFieldName: Yup.string().required(\"Enter base date field\"),\n familyFieldName: Yup.string().test(\n \"is-required\",\n \"family name is required\",\n function (value) {\n if (\n mobileNotification?.notificationFor === \"FAMILY\" ||\n mobileNotification?.notificationFor === \"MEMBER\"\n ) {\n return !!value;\n }\n return true;\n },\n ),\n memberFieldName: Yup.string().test(\n \"is-required\",\n \"member name is required\",\n function (value) {\n if (mobileNotification?.notificationFor === \"MEMBER\") {\n return !!value;\n }\n return true;\n },\n ),\n userFieldName: Yup.string().test(\n \"is-required\",\n \"user name is required\",\n function (value) {\n if (mobileNotification?.notificationFor === \"USER\") {\n return !!value;\n }\n return true;\n },\n ),\n });\n\n const {\n control,\n handleSubmit,\n reset,\n setValue,\n setError,\n clearErrors,\n getValues,\n formState: { errors },\n } = useForm({\n defaultValues: {},\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n useEffect(() => {\n if (type && notificationTypes.length > 0) {\n Object.keys(type)?.forEach((key) => {\n if (key === \"index\") {\n setValue(key, type[key]);\n }\n if (key === \"mobileNotificationType\") {\n const notification = notificationTypes.filter(\n (data) => data.id === parseInt(type[key]),\n );\n setMobileNotification(...notification);\n }\n if (key === \"mobileNotificationConfigs\" && type[key]) {\n setMobileNotificationConfigs(type[key] || []);\n setmobileConfigLength(type[key]?.length);\n } else if (type[key]) {\n setValue(key, type[key]);\n }\n });\n }\n }, [type, notificationTypes]);\n\n useEffect(() => {\n loadInitialState();\n }, []);\n\n const close = () => {\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add Mobile Type Configuration\",\n submit: submitRef.current,\n }); // Use the current ref value\n\n handleClose();\n };\n\n // useEffect(() => {\n // if (formRef.current) {\n // let form = formRef.current;\n\n // return () => {\n // };\n // }\n // }, [formRef.current]);\n\n /**\n * @async\n * @function loadInitialState\n * Loads the initial state by retrieving notification types.\n * If an error occurs during retrieval, a toast message is displayed.\n */\n const loadInitialState = async () => {\n try {\n const res = await retrieveAllNotifications(true);\n setNotificationTypes(res?.data);\n } catch {\n showToast({ message: \"Error in retrieving notification\", type: \"error\" });\n }\n };\n\n /**\n * @function addMobileNotification\n * Adds a new mobile notification configuration to the state.\n */\n const addMobileNotification = () => {\n let addconfig = true;\n mobileNotificationConfigs?.forEach((config, index) => {\n if (config.notificationCode === \"\") {\n addconfig = false;\n const fieldPath = `notificationCode${index}`;\n\n setError(fieldPath, {\n type: \"manual\",\n message: \"Enter # of days to add\",\n });\n }\n });\n if (addconfig) {\n setmobileConfigLength((prev) => prev + 1);\n setMobileNotificationConfigs([\n ...mobileNotificationConfigs,\n {\n notificationCode: \"\",\n numberOfDaysAddedForOnDate: 0,\n numberOfDaysAddedForDueDate: 0,\n numberOfDaysAddedForExpiryDate: 0,\n },\n ]);\n }\n };\n\n /**\n * @function onSubmit\n * Handles form submission and processes the input data.\n *\n * @param {Object} data - The form data submitted by the user.\n * @param {Array} mobileNotificationConfigs - An array of mobile notification configurations.\n * @param {Object} type - The selected type configuration.\n *\n * This function performs the following actions:\n * 1. Deletes specific properties from the submitted data object.\n * 2. Adds the mobile notification configurations to the data object.\n * 3. Sets the type property in the data object.\n * 4. Calls handleClick with the processed data.\n * 5. Closes the form and resets the form state.\n */\n\n const onSubmit = (data) => {\n data = JSON.parse(JSON.stringify(data));\n for (let i = 0; i < mobileConfigLength; i++) {\n delete data[`notificationCode${i}`];\n delete data[`numberOfDaysAddedForOnDate${i}`];\n delete data[`numberOfDaysAddedForExpiryDate${i}`];\n delete data[`numberOfDaysAddedForDueDate${i}`];\n }\n\n data.mobileNotificationConfigs = mobileNotificationConfigs;\n data.type = type?.type;\n handleClick(data);\n submitRef.current = true;\n close();\n reset();\n };\n\n return (\n <Modal\n data-testid=\"mobiletypeeventconfigmodal-modal\"\n open={open}\n className=\"flex items-center justify-center\"\n onClose={() => {\n close();\n reset();\n }}\n sx={{\n \"& .MuiBackdrop-root\": {\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n },\n }}\n >\n <Grid\n container\n className=\"w-[90%] md:w-[80%] shadow-md flex flex-col\"\n sx={{\n // 1. Theme-aware background\n backgroundColor: (theme) => theme.palette.background.paper,\n\n // 2. Dynamic Border/Shadow for Dark Mode\n border: (theme) =>\n theme.palette.mode === \"dark\"\n ? `1px solid ${theme.palette.divider}`\n : \"none\",\n\n // 3. GitHub-style shadow (Soft in light, Deep in dark)\n boxShadow: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"0 8px 24px rgba(0,0,0,0.4)\"\n : theme.shadows[2], // Standard MUI shadow for light mode\n\n borderRadius: \"12px\", // Matches your MuiCard configuration\n transition: \"all 0.3s ease-in-out\",\n // Keeps children inside the rounded corners\n }}\n >\n <Grid\n className=\"manageeventconfiguration-modal-header p-2.5 px-5 flex border-b\"\n data-testid=\"mobiletypeeventconfigmodal-header\"\n >\n <Typography variant=\"body1\" className=\"font-medium text-lg text-customBlue\">\n {translate(\"Add\")} {translate(type?.type)}{\" \"}\n {translate(\"Configuration\")}\n </Typography>\n <IconButton\n size=\"small\"\n onClick={() => {\n close();\n reset();\n }}\n data-testid=\"mobiletypeeventconfigmodal-close-button\"\n >\n <FontAwesomeIcon icon={faXmark} />\n </IconButton>\n </Grid>\n <form\n onSubmit={handleSubmit(onSubmit)}\n className=\"w-full\"\n data-testid=\"mobiletypeeventconfigmodal-form\"\n ref={formRef}\n >\n <Grid\n container\n className=\"px-[40px] max-h-[60vh] overflow-y-auto w-full\"\n >\n <Grid\n container\n spacing={2}\n className=\"w-full flex flex-col md:flex-row items-start\"\n >\n <Grid\n item\n className=\"border-b border-gray-300 p-2.5 flex flex-col items-start w-full \"\n size={{ sm: 12 }}\n data-testid=\"mobiletypeeventconfigmodal-implicit-params\"\n >\n <Box className=\"whitespace-normal w-full break-words\">\n <strong>{translate(\"Available Implicit Parameters\")}</strong>:{\" \"}\n {type?.implicitParam}\n </Box>\n </Grid>\n <Grid item className=\"w-[90%] sm:w-1/4\">\n <FormControl\n variant=\"outlined\"\n className=\"w-full\"\n data-testid=\"mobiletypeeventconfigmodal-notification-type\"\n >\n <div>\n {translate(\"Notification\")} {translate(\"Type\")}\n </div>\n <Box className=\"w-full\">\n <Controller\n name=\"mobileNotificationType\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n size=\"small\"\n error={!!errors.mobileNotificationType}\n onChange={(e) => {\n field.onChange(e.target.value);\n const notification = notificationTypes.filter(\n (data) => data.id === e.target.value,\n );\n setMobileNotification(...notification);\n }}\n className=\"w-full\"\n data-testid=\"mobiletypeeventconfigmodal-notification-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"None\")}\n </Typography>\n </MenuItem>\n {notificationTypes?.map((data, index) => (\n <MenuItem key={index + 1} value={data.id}>\n <Typography variant=\"body2\">\n {data.notificationName}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n {errors?.mobileNotificationType && (\n <p\n className=\"error-helper\"\n data-testid=\"mobiletypeeventconfigmodal-notification-error\"\n >\n {errors?.mobileNotificationType?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n <Grid item sm={4} size={{ sm: 4 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"mobiletypeeventconfigmodal-base-date-field\"\n >\n <div>\n {translate(\"Base\")} {translate(\"Date\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </div>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"baseDateFieldName\"\n name=\"baseDateFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-base-date-input\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item sm={4} size={{ sm: 4 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"mobiletypeeventconfigmodal-ref-code-field\"\n >\n <div>\n {translate(\"Ref\")} {translate(\"Code\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n </div>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"refCode\"\n name=\"refCode\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-ref-code-input\"\n />\n </Box>\n </FormControl>\n </Grid>\n {mobileNotification?.notificationFor === \"USER\" && (\n <Grid item size={{ xs: 4 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"mobiletypeeventconfigmodal-user-field\"\n >\n <div>\n {translate(\"User\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </div>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"userFieldName\"\n name=\"userFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-user-input\"\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {mobileNotification?.notificationFor === \"MEMBER\" && (\n <Grid item size={{ sm: 4 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"mobiletypeeventconfigmodal-member-field\"\n >\n <div>\n {translate(\"Member\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </div>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"memberFieldName\"\n name=\"memberFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-member-input\"\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {(mobileNotification?.notificationFor === \"FAMILY\" ||\n mobileNotification?.notificationFor === \"MEMBER\") && (\n <Grid item sm={4} size={{ sm: 4 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"mobiletypeeventconfigmodal-family-field\"\n >\n <div>\n {translate(\"Family\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </div>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"familyFieldName\"\n name=\"familyFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-family-input\"\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n </Grid>\n <Grid container className=\"mt-2.5 w-full\">\n <Grid item size={{ xs: 12 }}>\n <Button\n variant=\"contained\"\n onClick={addMobileNotification}\n data-testid=\"mobiletypeeventconfigmodal-add-configuration\"\n >\n {translate(\"Add\")} {translate(\"Configuration\")}\n </Button>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <TableContainer\n component={Paper}\n className=\"m-2.5 w-full mobile-type-event-config-table-container\"\n data-testid=\"mobiletypeeventconfigmodal-table\"\n >\n <Table\n size=\"small\"\n className=\"mobile-type-event-config-table\"\n aria-label=\"mobile notification configuration table\"\n >\n <TableHead>\n <TableRow>\n <TableCell>{translate(\"Code\")}</TableCell>\n <TableCell>\n {translate(\"Added\")} {translate(\"Days\")}{\" \"}\n {translate(\"For\")} {translate(\"Schedule\")}\n </TableCell>\n <TableCell>\n {translate(\"Added\")} {translate(\"Days\")}{\" \"}\n {translate(\"For\")} {translate(\"Due\")}\n </TableCell>\n <TableCell>\n {translate(\"Added\")} {translate(\"Days\")}{\" \"}\n {translate(\"For\")} {translate(\"Expiry\")}\n </TableCell>\n <TableCell>{translate(\"Actions\")}</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {mobileNotificationConfigs.length > 0 ? (\n mobileNotificationConfigs.map((config, index) => (\n <TableRow key={index + 1}>\n <TableCell>\n <Box>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n >\n <Box className=\" w-full\">\n <Controller\n control={control}\n name={`notificationCode${index}`}\n defaultValue={config.notificationCode}\n render={({ field }) => (\n <TextField\n required\n variant=\"outlined\"\n size=\"small\"\n {...field}\n error={Boolean(\n errors[`notificationCode${index}`],\n )}\n onChange={(e) => {\n setValue(\n `notificationCode${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"notificationCode\",\n e.target.value,\n );\n const fieldPath = `notificationCode${index}`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message:\n \"Enter # of days to add\",\n });\n } else {\n clearErrors(fieldPath);\n }\n }}\n placeholder=\"Enter # of days to add\"\n onBlur={() => {\n if (field.value === \"\") {\n setError(\n `notificationCode${index}`,\n {\n type: \"manual\",\n message:\n \"Enter # of days to add\",\n },\n );\n } else {\n clearErrors(\n `notificationCode${index}`,\n );\n }\n }}\n data-testid={`mobiletypeeventconfigmodal-notification-code-input-${index}`}\n />\n )}\n />\n {errors[`notificationCode${index}`] && (\n <p\n className=\"error-helper-table\"\n data-testid={`mobiletypeeventconfigmodal-notification-code-error-${index}`}\n >\n {\n errors[`notificationCode${index}`]\n ?.message\n }\n </p>\n )}\n </Box>\n </FormControl>\n </Box>\n </TableCell>\n <TableCell>\n <Box>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n >\n <Box className=\" w-full\">\n <Controller\n control={control}\n name={`numberOfDaysAddedForOnDate${index}`}\n defaultValue={\n config.numberOfDaysAddedForOnDate\n }\n render={({ field }) => (\n <TextField\n required\n type=\"number\"\n variant=\"outlined\"\n size=\"small\"\n {...field}\n error={Boolean(\n errors[\n `numberOfDaysAddedForOnDate${index}`\n ],\n )}\n onChange={(e) => {\n setValue(\n `numberOfDaysAddedForOnDate${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"numberOfDaysAddedForOnDate\",\n Number(e.target.value),\n );\n const fieldPath = `numberOfDaysAddedForOnDate${index}`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message:\n \"Enter # of days to add\",\n });\n } else {\n clearErrors(fieldPath);\n }\n }}\n placeholder=\"Enter # of days to add\"\n onBlur={() => {\n if (field.value === \"\") {\n setError(\n `numberOfDaysAddedForOnDate${index}`,\n {\n type: \"manual\",\n message:\n \"Enter # of days to add\",\n },\n );\n } else {\n clearErrors(\n `numberOfDaysAddedForOnDate${index}`,\n );\n }\n }}\n data-testid={`mobiletypeeventconfigmodal-on-date-input-${index}`}\n />\n )}\n />\n {errors[\n `numberOfDaysAddedForOnDate${index}`\n ] && (\n <p\n className=\"error-helper-table\"\n data-testid={`mobiletypeeventconfigmodal-on-date-error-${index}`}\n >\n {\n errors[\n `numberOfDaysAddedForOnDate${index}`\n ]?.message\n }\n </p>\n )}\n </Box>\n </FormControl>\n </Box>\n </TableCell>\n <TableCell>\n <Box>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n >\n <Box className=\" w-full\">\n <Controller\n control={control}\n name={`numberOfDaysAddedForDueDate${index}`}\n defaultValue={\n config.numberOfDaysAddedForDueDate\n }\n render={({ field }) => (\n <TextField\n variant=\"outlined\"\n size=\"small\"\n type=\"number\"\n {...field}\n onChange={(e) => {\n setValue(\n `numberOfDaysAddedForDueDate${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"numberOfDaysAddedForDueDate\",\n Number(e.target.value),\n );\n }}\n data-testid={`mobiletypeeventconfigmodal-due-date-input-${index}`}\n />\n )}\n />\n </Box>\n </FormControl>\n </Box>\n </TableCell>\n <TableCell>\n <Box>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n >\n <Box className=\" w-full\">\n <Controller\n control={control}\n name={`numberOfDaysAddedForExpiryDate${index}`}\n defaultValue={\n config.numberOfDaysAddedForExpiryDate\n }\n render={({ field }) => (\n <TextField\n variant=\"outlined\"\n type=\"number\"\n size=\"small\"\n {...field}\n onChange={(e) => {\n setValue(\n `numberOfDaysAddedForExpiryDate${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"numberOfDaysAddedForExpiryDate\",\n Number(e.target.value),\n );\n }}\n data-testid={`mobiletypeeventconfigmodal-expiry-date-input-${index}`}\n />\n )}\n />\n </Box>\n </FormControl>\n </Box>\n </TableCell>\n <TableCell>\n <IconButton\n color=\"error\"\n onClick={() => handleDeleteConfig(index)}\n data-testid={`mobiletypeeventconfigmodal-delete-button-${index}`}\n >\n <FontAwesomeIcon icon={faTrash} />\n </IconButton>\n </TableCell>\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={5}>\n <Typography\n align=\"center\"\n data-testid=\"mobiletypeeventconfigmodal-no-config\"\n >\n No Mobile Configuration added\n </Typography>\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </TableContainer>\n </Grid>\n </Grid>\n </Grid>\n <Stack\n direction=\"row\"\n className=\"mr-5\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={1}\n mb={1}\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => {\n close();\n reset();\n }}\n data-testid=\"mobiletypeeventconfigmodal-close-button\"\n >\n <Typography variant=\"body2\">{translate(\"Cancel\")}</Typography>\n </Button>\n <Button\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n data-testid=\"mobiletypeeventconfigmodal-submit-button\"\n >\n {translate(\"Submit\")}\n </Button>\n </Stack>\n </form>\n </Grid>\n </Modal>\n );\n};\n\nMobileTypeEventConfigModal.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n handleClick: PropTypes.any,\n type: PropTypes.any,\n};\n\nexport default MobileTypeEventConfigModal;\n"],"names":["MobileTypeEventConfigModal","open","handleClose","handleClick","type","formRef","useRef","submitRef","trackEvent","useTrackEvent","notificationTypes","setNotificationTypes","useState","mobileNotification","setMobileNotification","mobileNotificationConfigs","setMobileNotificationConfigs","mobileConfigLength","setmobileConfigLength","translate","useTranslateProvider","handleDeleteConfig","index","data","i","setValue","prev","newConfigs","_","handleChange","field","value","validationSchema","Yup","control","handleSubmit","reset","setError","clearErrors","getValues","errors","useForm","yupResolver","useEffect","_a","key","notification","loadInitialState","close","res","retrieveAllNotifications","showToast","addMobileNotification","addconfig","config","fieldPath","onSubmit","jsx","Modal","jsxs","Grid","theme","Typography","IconButton","FontAwesomeIcon","faXmark","Box","FormControl","Controller","Select","e","MenuItem","CustomTextField","Button","TableContainer","Paper","Table","TableHead","TableRow","TableCell","TableBody","TextField","_b","faTrash","Stack","PropTypes"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NewServerManagement-Cxe0dV0O.js","sources":["../src/views/Features/AddServerModal.jsx","../src/views/Features/NewServerManagement.jsx"],"sourcesContent":["/**\n * @author Sanya Srivastava <ssrivastava@argusoft.com>\n * @date 2025-04-23 (Wednesday)\n */\n\nimport {\n addServer,\n addServerMappingList,\n updateServer,\n updateServerMappingList,\n} from \"@/common/services/SyncWithServer\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { useDebounceFn } from \"@/hooks/useDebounceFn\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useTheme } from \"@mui/material/styles\";\nimport \"./Styles/ServerManagement.scss\";\nimport {\n Autocomplete,\n Box,\n Button,\n Chip,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n FormControl,\n FormControlLabel,\n FormHelperText,\n Radio,\n RadioGroup,\n TextField,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport * as Yup from \"yup\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faPen, faPlus } from \"@fortawesome/free-solid-svg-icons\";\n\nexport default function AddServerModal({\n openAddServer,\n openAddServerFunc,\n allServerList,\n reloadPageFunc,\n editServer,\n editServerFunc,\n serverData = {},\n}) {\n const { translate } = useTranslateProvider();\n const [successMessage, setSuccessMessage] = useState(\"\");\n const serverTypes = [\"STAGING\", \"PRODUCTION\"];\n const theme = useTheme();\n const getClassName = (base) =>\n theme.palette.mode === \"light\" ? base : `${base}-dark`;\n\n const validationSchema = Yup.object().shape({\n name: Yup.string().required(\"Name is required\"),\n code: Yup.string().required(\"Code is required\"),\n type: Yup.string().required(\"Type is required\"),\n url: Yup.string()\n .required(\"URL is required\")\n .matches(\n /^https?:\\/\\/(localhost|\\d{1,3}(?:\\.\\d{1,3}){3}|[a-zA-Z0-9.-]+)(:\\d+)?(\\/.*)?$/,\n \"Invalid URL\",\n ),\n isActive: Yup.boolean().required(\"This field is required.\"),\n });\n\n const formCtrl = useForm({\n defaultValues: {\n name: \"\",\n code: \"\",\n type: \"\",\n url: \"\",\n isActive: null,\n canPullServer: [],\n canPushServer: [],\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n useEffect(() => {\n if (editServer) {\n formCtrl.reset({\n name: serverData.name,\n code: serverData.code,\n type: serverData.type,\n url: serverData.url,\n isActive: serverData.isActive,\n canPullServer: serverData.canPullServers\n ? serverData.canPullServers\n : [],\n canPushServer: serverData.canPushServers\n ? serverData.canPushServers\n : [],\n });\n }\n }, []);\n\n const handleDialogClose = () => {\n openAddServerFunc(false);\n editServerFunc(false);\n };\n\n const checkAvailability = async (code) => {\n if (allServerList?.find((server) => server.code === code)) {\n formCtrl.setError(\"code\", {\n type: \"manual\",\n message: \"Code already exists\",\n });\n } else {\n setSuccessMessage(`${code} is available`);\n }\n };\n\n const debouncedCheckAvailability = useDebounceFn(checkAvailability, 500);\n\n const onSubmit = async (data) => {\n let serversToAdd = new Map();\n data.canPullServer?.forEach((server) => {\n let obj = {\n canPull: true,\n canPush: false,\n };\n serversToAdd.set(server.code, obj);\n });\n data.canPushServer?.forEach((server) => {\n if (serversToAdd.has(server.code)) {\n serversToAdd.get(server.code).canPush = true;\n } else {\n let obj = {\n canPull: false,\n canPush: true,\n };\n serversToAdd.set(server.code, obj);\n }\n });\n const serverMappingList = [];\n serversToAdd.forEach((value, key) => {\n serverMappingList.push({\n sourceServerCode: data.code,\n destinationServerCode: key,\n canPull: value.canPull,\n canPush: value.canPush,\n });\n serverMappingList.push({\n sourceServerCode: key,\n destinationServerCode: data.code,\n canPull: value.canPush,\n canPush: value.canPull,\n });\n });\n if (!editServer) {\n try {\n const addServerData = {\n name: data.name,\n code: data.code,\n type: data.type,\n url: data.url,\n isActive: data.isActive,\n };\n await addServer(addServerData);\n showToast({\n type: \"success\",\n message: \"Server added successfully\",\n });\n if (serverMappingList.length > 0) {\n try {\n await addServerMappingList(serverMappingList);\n showToast({\n type: \"success\",\n message: \"Server mapping added successfully\",\n });\n } catch (error) {\n showToast({\n type: \"error\",\n message: \"Failed to add server mapping\",\n });\n console.error(\"Error adding server mapping:\", error);\n }\n }\n reloadPageFunc((prev) => !prev);\n openAddServerFunc(false);\n } catch (error) {\n showToast({\n type: \"error\",\n message: \"Failed to add server\",\n });\n console.error(\"Error adding server:\", error);\n }\n } else {\n try {\n if (serversToAdd.size === 0) {\n serverMappingList.push({\n sourceServerCode: data.code,\n destinationServerCode: null,\n canPull: null,\n canPush: null,\n });\n }\n data.uuid = serverData.uuid;\n await updateServer(data);\n showToast({\n type: \"success\",\n message: \"Server updated successfully\",\n });\n if (serverMappingList.length > 0) {\n try {\n await updateServerMappingList(serverMappingList);\n showToast({\n type: \"success\",\n message: \"Server mapping updated successfully\",\n });\n } catch (error) {\n showToast({\n type: \"error\",\n message: \"Failed to update server mapping\",\n });\n console.error(\"Error updating server mapping:\", error);\n }\n }\n reloadPageFunc((prev) => !prev);\n handleDialogClose();\n } catch (error) {\n showToast({\n type: \"error\",\n message: \"Failed to update server\",\n });\n console.error(\"Error updating server:\", error);\n }\n }\n };\n\n // Reusable field row component for consistent layout\n const FieldRow = ({ label, required, children }) => (\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 0.75 }}>\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 600, color: \"text.primary\" }}\n >\n {label}\n {required && (\n <Typography component=\"span\" sx={{ color: \"error.main\", ml: 0.5 }}>\n *\n </Typography>\n )}\n </Typography>\n {children}\n </Box>\n );\n\n FieldRow.propTypes = {\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n children: PropTypes.node.isRequired,\n };\n\n return (\n <Dialog\n open={openAddServer}\n fullWidth={true}\n maxWidth={\"sm\"}\n onClose={handleDialogClose}\n className={getClassName(\"add-server-dialog\")}\n PaperProps={{\n sx: {\n borderRadius: 1.5,\n scrollbarWidth: \"none\",\n msOverflowStyle: \"none\",\n \"&::-webkit-scrollbar\": { display: \"none\" },\n \"& .MuiDialogContent-root\": {\n scrollbarWidth: \"none\",\n msOverflowStyle: \"none\",\n \"&::-webkit-scrollbar\": { display: \"none\" },\n },\n },\n }}\n >\n {/* ── Dialog Header ── */}\n <DialogTitle\n sx={{\n px: 3,\n pt: 2.5,\n pb: 2,\n borderBottom: \"1px solid\",\n borderColor: \"divider\",\n backgroundColor: \"background.paper\",\n }}\n >\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}>\n <Box\n sx={{\n width: 36,\n height: 36,\n borderRadius: 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"primary.main\",\n color: \"primary.contrastText\",\n flexShrink: 0,\n }}\n >\n <FontAwesomeIcon\n icon={editServer ? faPen : faPlus}\n style={{ fontSize: \"0.85rem\" }}\n />\n </Box>\n <Box>\n <Typography variant=\"h6\" sx={{ fontWeight: 700, lineHeight: 1.3 }}>\n {editServer\n ? translate(\"Update Server\")\n : translate(\"Add Server\")}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {editServer\n ? \"Modify server configuration and sync permissions.\"\n : \"Configure a new server connection.\"}\n </Typography>\n </Box>\n </Box>\n </DialogTitle>\n\n <form noValidate onSubmit={formCtrl.handleSubmit(onSubmit)}>\n <DialogContent\n sx={{\n px: 3,\n py: 3,\n scrollbarWidth: \"none\",\n \"&::-webkit-scrollbar\": { display: \"none\" },\n }}\n >\n <Grid container spacing={2.5}>\n {/* ── Server Details Section ── */}\n <Grid size={12}>\n <Typography\n variant=\"subtitle2\"\n sx={{\n fontWeight: 700,\n color: \"text.primary\",\n mb: 0.5,\n textTransform: \"uppercase\",\n fontSize: \"0.7rem\",\n letterSpacing: \"0.05em\",\n }}\n >\n Server Details\n </Typography>\n <Divider />\n </Grid>\n\n {/* Name & Code in a 2-column layout */}\n <Grid size={6}>\n <FieldRow label={translate(\"Name\")} required>\n <CustomTextField\n control={formCtrl.control}\n name=\"name\"\n id=\"name\"\n errors={formCtrl.formState.errors}\n placeholder=\"Enter server name\"\n />\n </FieldRow>\n </Grid>\n\n <Grid size={6}>\n <FieldRow label={translate(\"Code\")} required>\n <CustomTextField\n control={formCtrl.control}\n name=\"code\"\n id=\"code\"\n disabled={editServer}\n errors={formCtrl.formState.errors}\n placeholder=\"Enter server code\"\n successMessage={successMessage}\n onChange={(e) => debouncedCheckAvailability(e.target.value)}\n />\n </FieldRow>\n </Grid>\n\n {/* Type & URL */}\n <Grid size={6}>\n <FieldRow label={translate(\"Type\")} required>\n <Controller\n name=\"type\"\n control={formCtrl.control}\n render={({ field: { onChange, value } }) => {\n return (\n <Autocomplete\n size=\"small\"\n options={serverTypes || []}\n getOptionLabel={(option) => option}\n defaultValue={value}\n onChange={(event, newValue) => {\n onChange(newValue);\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder=\"Select type\"\n variant=\"outlined\"\n error={!!formCtrl.formState.errors?.type}\n />\n )}\n />\n );\n }}\n />\n {formCtrl.formState.errors.type && (\n <FormHelperText error>\n {formCtrl.formState.errors.type?.message}\n </FormHelperText>\n )}\n </FieldRow>\n </Grid>\n\n <Grid size={6}>\n <FieldRow label={translate(\"URL\")} required>\n <CustomTextField\n control={formCtrl.control}\n name=\"url\"\n id=\"url\"\n errors={formCtrl.formState.errors}\n placeholder=\"https://example.com\"\n />\n </FieldRow>\n </Grid>\n\n {/* Active Status */}\n <Grid size={12}>\n <FieldRow label={translate(\"Active\")} required>\n <Controller\n name=\"isActive\"\n control={formCtrl.control}\n rules={{ required: \"This field is required.\" }}\n render={({\n field: { onChange, value },\n fieldState: { error },\n }) => (\n <FormControl component=\"fieldset\" error={!!error}>\n <RadioGroup row value={value} onChange={onChange}>\n <FormControlLabel\n value={true}\n control={<Radio size=\"small\" />}\n label={<Typography variant=\"body2\">Yes</Typography>}\n />\n <FormControlLabel\n value={false}\n control={<Radio size=\"small\" />}\n label={<Typography variant=\"body2\">No</Typography>}\n />\n </RadioGroup>\n {error && (\n <FormHelperText>\n {formCtrl.formState.errors.isActive?.message}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n </FieldRow>\n </Grid>\n\n {/* ── Sync Permissions Section ── */}\n <Grid size={12} sx={{ mt: 0.5 }}>\n <Typography\n variant=\"subtitle2\"\n sx={{\n fontWeight: 700,\n color: \"text.primary\",\n mb: 0.5,\n textTransform: \"uppercase\",\n fontSize: \"0.7rem\",\n letterSpacing: \"0.05em\",\n }}\n >\n Sync Permissions\n </Typography>\n <Divider />\n </Grid>\n\n {/* Can Pull From */}\n <Grid size={12}>\n <FieldRow label={translate(\"Can Pull From\")}>\n <Controller\n name=\"canPullServer\"\n control={formCtrl.control}\n render={({ field: { onChange, value } }) => {\n return (\n <Autocomplete\n size=\"small\"\n multiple\n options={allServerList || []}\n getOptionLabel={(option) => option.name || \"\"}\n getOptionKey={(option) => option.code || \"\"}\n getOptionDisabled={(option) =>\n option.code === formCtrl.getValues(\"code\") ||\n formCtrl\n .getValues(\"canPullServer\")\n .some((server) => server.code === option.code)\n }\n value={value}\n onChange={(event, newValue) => {\n onChange(newValue);\n }}\n renderTags={(tagValue, getTagProps) =>\n tagValue.map((option, index) => (\n <Chip\n {...getTagProps({ index })}\n key={option.code}\n label={option.name}\n size=\"small\"\n color=\"primary\"\n variant=\"outlined\"\n sx={{ borderRadius: 2, fontWeight: 500 }}\n />\n ))\n }\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder={\n value?.length > 0\n ? \"\"\n : \"Select servers to pull from...\"\n }\n variant=\"outlined\"\n />\n )}\n />\n );\n }}\n />\n </FieldRow>\n </Grid>\n\n {/* Can Push To */}\n <Grid size={12}>\n <FieldRow label={translate(\"Can Push To\")}>\n <Controller\n name=\"canPushServer\"\n control={formCtrl.control}\n render={({ field: { onChange, value } }) => {\n return (\n <Autocomplete\n size=\"small\"\n multiple\n options={allServerList || []}\n getOptionLabel={(option) => option.name || \"\"}\n getOptionKey={(option) => option.code || \"\"}\n getOptionDisabled={(option) =>\n option.code === formCtrl.getValues(\"code\") ||\n formCtrl\n .getValues(\"canPushServer\")\n .some((server) => server.code === option.code)\n }\n value={value}\n onChange={(event, newValue) => {\n onChange(newValue);\n }}\n renderTags={(tagValue, getTagProps) =>\n tagValue.map((option, index) => (\n <Chip\n {...getTagProps({ index })}\n key={option.code}\n label={option.name}\n size=\"small\"\n color=\"primary\"\n variant=\"outlined\"\n sx={{ borderRadius: 2, fontWeight: 500 }}\n />\n ))\n }\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder={\n value?.length > 0\n ? \"\"\n : \"Select servers to push to...\"\n }\n variant=\"outlined\"\n />\n )}\n />\n );\n }}\n />\n </FieldRow>\n </Grid>\n </Grid>\n </DialogContent>\n\n {/* ── Dialog Actions ── */}\n <DialogActions\n sx={{\n px: 3,\n py: 2,\n borderTop: \"1px solid\",\n borderColor: \"divider\",\n gap: 1,\n }}\n >\n <Button\n onClick={handleDialogClose}\n size=\"small\"\n variant=\"outlined\"\n sx={{\n borderRadius: 2,\n textTransform: \"none\",\n fontWeight: 600,\n px: 2.5,\n borderColor: \"divider\",\n color: \"text.secondary\",\n \"&:hover\": {\n backgroundColor: \"action.hover\",\n borderColor: \"text.disabled\",\n },\n }}\n >\n {translate(\"Cancel\")}\n </Button>\n <Button\n type=\"submit\"\n size=\"small\"\n variant=\"contained\"\n sx={{\n borderRadius: 2,\n textTransform: \"none\",\n fontWeight: 600,\n px: 2.5,\n boxShadow: \"none\",\n }}\n startIcon={\n <FontAwesomeIcon\n icon={editServer ? faPen : faPlus}\n style={{ fontSize: \"0.75rem\" }}\n />\n }\n >\n {editServer ? \"Update Server\" : \"Add Server\"}\n </Button>\n </DialogActions>\n </form>\n </Dialog>\n );\n}\n\nAddServerModal.propTypes = {\n openAddServer: PropTypes.bool,\n openAddServerFunc: PropTypes.func,\n allServerList: PropTypes.array,\n reloadPageFunc: PropTypes.func,\n editServer: PropTypes.bool,\n editServerFunc: PropTypes.func,\n serverData: PropTypes.object,\n};\n","/**\n * @author Sanya Srivastava <ssrivastava@argusoft.com>\n * @date 2025-04-21 (Monday)\n */\n\nimport {\n getAllServer,\n getAllServerDetails,\n} from \"@/common/services/SyncWithServer\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n faCircleCheck,\n faCircleXmark,\n faPen,\n faPlus,\n faServer,\n faMagnifyingGlass,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { useTheme } from \"@mui/material/styles\";\nimport \"./Styles/ServerManagement.scss\";\nimport {\n Button,\n Chip,\n Divider,\n IconButton,\n InputAdornment,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Tooltip,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport { Box } from \"@mui/system\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport AddServerModal from \"./AddServerModal\";\n\nexport default function NewServerManagement() {\n const [allServerList, setAllServerList] = useState([]);\n const [openAddServer, setOpenAddServer] = useState(false);\n const [editServer, setEditServer] = useState(false);\n const [serverData, setServerData] = useState({});\n const [allServerDetails, setAllServerDetails] = useState([]);\n const [reloadPage, setReloadPage] = useState(false);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const theme = useTheme();\n\n useEffect(() => {\n (async () => {\n await fetchServers();\n await fetchAllServerDetails();\n })();\n }, [reloadPage]);\n\n const getClassName = (className) => {\n return theme.palette.mode === \"light\" ? className : `${className}-dark`;\n };\n\n const fetchServers = async () => {\n try {\n const response = (await getAllServer()).data;\n if (response) {\n setAllServerList(\n response.map((item) => {\n let obj = { code: item.code, name: item.name };\n return obj;\n }),\n );\n }\n } catch (error) {\n console.error(\"Error fetching servers:\", error);\n }\n };\n\n const fetchAllServerDetails = async () => {\n try {\n const response = (await getAllServerDetails()).data;\n if (response) {\n response.forEach((item) => {\n let canPull = item.canPullServers\n ? JSON.parse(item.canPullServers)\n : [];\n let canPush = item.canPushServers\n ? JSON.parse(item.canPushServers)\n : [];\n item.canPullServers = JSON.parse(item.canPullServers);\n item.canPushServers = JSON.parse(item.canPushServers);\n item.pullServersName =\n canPull.length > 0 ? canPull.map((server) => server.name) : [];\n item.pushServersName =\n canPush.length > 0 ? canPush.map((server) => server.name) : [];\n });\n setAllServerDetails(response);\n }\n } catch (error) {\n console.error(\"Error fetching servers:\", error);\n }\n };\n\n const handleServerEdit = (item) => {\n setEditServer(true);\n setServerData(item);\n setOpenAddServer(true);\n };\n\n const filteredServers = useMemo(() => {\n if (!searchQuery.trim()) return allServerDetails;\n const q = searchQuery.toLowerCase();\n return allServerDetails.filter(\n (item) =>\n item.name?.toLowerCase().includes(q) ||\n item.code?.toLowerCase().includes(q) ||\n item.url?.toLowerCase().includes(q),\n );\n }, [allServerDetails, searchQuery]);\n\n const activeCount = allServerDetails.filter((s) => s.isActive).length;\n\n const formatDate = (dateString) => {\n if (!dateString) return \"-\";\n const date = new Date(dateString);\n const day = String(date.getDate()).padStart(2, \"0\");\n const monthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ];\n const month = monthNames[date.getMonth()];\n const year = date.getFullYear();\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n return `${day} ${month} ${year}, ${hours}:${minutes}`;\n };\n\n return (\n <Grid pt={2} sx={{ height: \"calc(100vh)\", zoom: \"0.9\" }}>\n <Box sx={{ p: 3 }} className={getClassName(\"server-management-wrapper\")}>\n {/* ── Main Paper Container (ManageAllForms style) ── */}\n <Paper\n elevation={0}\n sx={{\n p: { xs: 2.5, md: 3 },\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: 1.5,\n backgroundColor: \"background.paper\",\n }}\n >\n {/* ── Header Section ── */}\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 3 }}>\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n flexWrap: \"wrap\",\n gap: 2,\n }}\n >\n <Box sx={{ minWidth: { xs: \"100%\", lg: \"40%\" } }}>\n <Typography\n variant=\"h5\"\n sx={{ fontWeight: 800, color: \"text.primary\", mb: 0.5 }}\n >\n Server Management\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Configure and manage server connections, sync permissions, and\n server details.\n </Typography>\n </Box>\n\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1.5,\n flexWrap: \"wrap\",\n }}\n >\n <Button\n size=\"small\"\n variant=\"contained\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n px: 2,\n boxShadow: \"none\",\n textTransform: \"none\",\n }}\n startIcon={<FontAwesomeIcon icon={faPlus} />}\n onClick={() => {\n setOpenAddServer(true);\n }}\n >\n Add Server\n </Button>\n </Box>\n </Box>\n\n {/* ── Search & Stats Bar ── */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: 2,\n backgroundColor: \"action.hover\",\n p: 1.5,\n borderRadius: 1.5,\n border: \"1px solid\",\n borderColor: \"divider\",\n }}\n >\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}>\n <Chip\n icon={\n <FontAwesomeIcon\n icon={faServer}\n style={{ fontSize: \"0.7rem\" }}\n />\n }\n label={`${allServerDetails.length} Total`}\n size=\"small\"\n variant=\"outlined\"\n sx={{\n fontWeight: 600,\n borderRadius: 2,\n px: 0.5,\n borderColor: \"divider\",\n }}\n />\n <Chip\n icon={\n <FontAwesomeIcon\n icon={faCircleCheck}\n style={{ fontSize: \"0.7rem\" }}\n />\n }\n label={`${activeCount} Active`}\n size=\"small\"\n color=\"success\"\n variant=\"filled\"\n sx={{ fontWeight: 700, borderRadius: 2, px: 0.5 }}\n />\n {allServerDetails.length - activeCount > 0 && (\n <Chip\n label={`${allServerDetails.length - activeCount} Inactive`}\n size=\"small\"\n color=\"default\"\n variant=\"outlined\"\n sx={{\n fontWeight: 600,\n borderRadius: 2,\n px: 0.5,\n borderColor: \"divider\",\n }}\n />\n )}\n </Box>\n\n <TextField\n value={searchQuery}\n size=\"small\"\n placeholder=\"Search servers...\"\n onChange={(e) => setSearchQuery(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <FontAwesomeIcon\n icon={faMagnifyingGlass}\n style={{ fontSize: \"0.85rem\", color: \"#999\" }}\n />\n </InputAdornment>\n ),\n sx: {\n backgroundColor: \"background.paper\",\n borderRadius: 2,\n minWidth: 260,\n },\n }}\n />\n </Box>\n </Box>\n\n <Divider sx={{ my: 3 }} />\n\n {/* ── Server Table ── */}\n <TableContainer\n className={getClassName(\"server-table\")}\n component={Paper}\n elevation={0}\n sx={{\n borderRadius: 1.5,\n border: \"1px solid\",\n borderColor: \"divider\",\n overflowY: \"auto\",\n maxHeight: \"calc(100vh - 340px)\",\n }}\n >\n <Table stickyHeader>\n <TableHead>\n <TableRow>\n {[\n \"Sr. No.\",\n \"Name\",\n \"Code\",\n \"Type\",\n \"URL\",\n \"Status\",\n \"Can Pull From\",\n \"Can Push To\",\n \"Modified On\",\n \"Actions\",\n ].map((header, i) => (\n <TableCell\n key={i}\n align={header === \"Actions\" ? \"center\" : \"left\"}\n sx={{\n fontWeight: 700,\n fontSize: \"0.78rem\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.04em\",\n color: \"text.secondary\",\n backgroundColor: \"background.default\",\n borderBottom: \"2px solid\",\n borderColor: \"divider\",\n py: 1.5,\n }}\n >\n {header}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {filteredServers.map((item, index) => (\n <TableRow\n key={index}\n sx={{\n transition: \"background-color 0.15s ease\",\n \"&:hover\": { backgroundColor: \"action.hover\" },\n \"&:last-child td\": { borderBottom: 0 },\n }}\n >\n <TableCell\n sx={{ color: \"text.secondary\", fontWeight: 500 }}\n >\n {index + 1}\n </TableCell>\n <TableCell sx={{ fontWeight: 600 }}>{item.name}</TableCell>\n <TableCell>\n <Chip\n label={item.code}\n size=\"small\"\n variant=\"outlined\"\n sx={{\n fontFamily: \"monospace\",\n fontSize: \"0.75rem\",\n borderRadius: 1.5,\n borderColor: \"divider\",\n }}\n />\n </TableCell>\n <TableCell>{item.type}</TableCell>\n <TableCell\n sx={{\n maxWidth: 200,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n <Tooltip title={item.url || \"\"} arrow placement=\"top\">\n <span>{item.url}</span>\n </Tooltip>\n </TableCell>\n <TableCell>\n {item.isActive ? (\n <Chip\n icon={\n <FontAwesomeIcon\n icon={faCircleCheck}\n style={{ fontSize: \"0.7rem\" }}\n />\n }\n label=\"Active\"\n size=\"small\"\n color=\"success\"\n variant=\"filled\"\n sx={{ fontWeight: 600, borderRadius: 2 }}\n />\n ) : (\n <Chip\n icon={\n <FontAwesomeIcon\n icon={faCircleXmark}\n style={{ fontSize: \"0.7rem\" }}\n />\n }\n label=\"Inactive\"\n size=\"small\"\n color=\"default\"\n variant=\"outlined\"\n sx={{\n fontWeight: 600,\n borderRadius: 2,\n borderColor: \"divider\",\n }}\n />\n )}\n </TableCell>\n <TableCell>\n {Array.isArray(item.pullServersName) &&\n item.pullServersName.length > 0 ? (\n item.pullServersName.map((server, i) => (\n <Chip\n key={i}\n label={server || \"-\"}\n color=\"primary\"\n size=\"small\"\n variant=\"outlined\"\n sx={{\n mr: 0.5,\n mb: 0.5,\n borderRadius: 2,\n fontWeight: 500,\n }}\n />\n ))\n ) : (\n <Typography variant=\"caption\" color=\"text.disabled\">\n —\n </Typography>\n )}\n </TableCell>\n <TableCell>\n {Array.isArray(item.pushServersName) &&\n item.pushServersName.length > 0 ? (\n item.pushServersName.map((server, i) => (\n <Chip\n key={i}\n label={server || \"-\"}\n color=\"primary\"\n size=\"small\"\n variant=\"outlined\"\n sx={{\n mr: 0.5,\n mb: 0.5,\n borderRadius: 2,\n fontWeight: 500,\n }}\n />\n ))\n ) : (\n <Typography variant=\"caption\" color=\"text.disabled\">\n —\n </Typography>\n )}\n </TableCell>\n <TableCell>\n <Typography\n variant=\"caption\"\n sx={{ color: \"text.secondary\" }}\n >\n {formatDate(item.modifiedOn)}\n </Typography>\n </TableCell>\n <TableCell align=\"center\">\n <Tooltip title=\"Edit server\" arrow placement=\"top\">\n <IconButton\n size=\"small\"\n onClick={() => {\n handleServerEdit(item);\n }}\n sx={{\n color: \"primary.main\",\n \"&:hover\": { backgroundColor: \"primary.50\" },\n }}\n >\n <FontAwesomeIcon\n icon={faPen}\n style={{ fontSize: \"0.8rem\" }}\n />\n </IconButton>\n </Tooltip>\n </TableCell>\n </TableRow>\n ))}\n {filteredServers.length === 0 && (\n <TableRow>\n <TableCell colSpan={10} align=\"center\" sx={{ py: 6 }}>\n <FontAwesomeIcon\n icon={faServer}\n style={{\n fontSize: \"2rem\",\n color: \"#ccc\",\n marginBottom: 8,\n display: \"block\",\n margin: \"0 auto 8px\",\n }}\n />\n <Typography variant=\"body2\" color=\"text.secondary\">\n {searchQuery\n ? \"No servers match your search.\"\n : 'No servers found. Click \"Add Server\" to get started.'}\n </Typography>\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </TableContainer>\n </Paper>\n </Box>\n {openAddServer && (\n <AddServerModal\n openAddServer={openAddServer}\n openAddServerFunc={setOpenAddServer}\n allServerList={allServerList}\n reloadPageFunc={setReloadPage}\n editServer={editServer}\n editServerFunc={setEditServer}\n serverData={serverData}\n />\n )}\n </Grid>\n );\n}\n"],"names":["AddServerModal","openAddServer","openAddServerFunc","allServerList","reloadPageFunc","editServer","editServerFunc","serverData","translate","useTranslateProvider","successMessage","setSuccessMessage","useState","serverTypes","theme","useTheme","getClassName","base","validationSchema","Yup","formCtrl","useForm","yupResolver","useEffect","handleDialogClose","debouncedCheckAvailability","useDebounceFn","code","server","onSubmit","data","serversToAdd","_a","obj","_b","serverMappingList","value","key","updateServer","showToast","updateServerMappingList","error","prev","addServerData","addServer","addServerMappingList","FieldRow","label","required","children","jsxs","Box","Typography","jsx","PropTypes","Dialog","DialogTitle","FontAwesomeIcon","faPen","faPlus","DialogContent","Grid","Divider","CustomTextField","e","Controller","onChange","Autocomplete","option","event","newValue","params","TextField","FormHelperText","FormControl","RadioGroup","FormControlLabel","Radio","tagValue","getTagProps","index","createElement","Chip","DialogActions","Button","NewServerManagement","setAllServerList","setOpenAddServer","setEditServer","setServerData","allServerDetails","setAllServerDetails","reloadPage","setReloadPage","searchQuery","setSearchQuery","fetchServers","fetchAllServerDetails","className","response","getAllServer","item","getAllServerDetails","canPull","canPush","handleServerEdit","filteredServers","useMemo","q","_c","activeCount","s","formatDate","dateString","date","day","month","year","hours","minutes","Paper","faServer","faCircleCheck","InputAdornment","faMagnifyingGlass","TableContainer","Table","TableHead","TableRow","header","i","TableCell","TableBody","Tooltip","faCircleXmark","IconButton"],"mappings":"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"}
|