@argusoft/medplat-core 1.0.28 → 1.0.30
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 +1023 -0
- package/dist/AccessRights-xrday-L1.js.map +1 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
- package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-D1sU8RjY.js} +2 -2
- package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
- package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
- package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js +8547 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js.map +1 -0
- package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
- package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
- package/dist/AppModal-CCtrQ5Tr.js +394 -0
- package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js +387 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js.map +1 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js +391 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +1 -0
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-BPsJquTS.js} +1606 -1611
- package/dist/ChangePasswordModalCore-BPsJquTS.js.map +1 -0
- package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-Ddz9halE.js} +2 -2
- package/dist/ConditionConfig-Ddz9halE.js.map +1 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js +435 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js.map +1 -0
- package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
- package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
- package/dist/EventConfig-BmLemzX3.js +26 -0
- package/dist/EventConfig-BmLemzX3.js.map +1 -0
- package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-Bzh1qWXU.js} +31 -30
- package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-Bzh1qWXU.js.map} +1 -1
- package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-B2SRrnB1.js} +2 -2
- package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-B2SRrnB1.js.map} +1 -1
- package/dist/EventsSkeleton-BIcPks4T.js +61 -0
- package/dist/EventsSkeleton-BIcPks4T.js.map +1 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js +79 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js.map +1 -0
- package/dist/FeatureMenu-DYJmDt7q.js +521 -0
- package/dist/FeatureMenu-DYJmDt7q.js.map +1 -0
- package/dist/Features-Dne21RWu.js +14 -0
- package/dist/Features-Dne21RWu.js.map +1 -0
- package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-DuTwnngN.js} +19 -19
- package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-DuTwnngN.js.map} +1 -1
- package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
- package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
- package/dist/FlywayQuery-CQygj51V.js +179 -0
- package/dist/FlywayQuery-CQygj51V.js.map +1 -0
- package/dist/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
- package/dist/{ManageNotification-CaBAOhji.js.map → Google-DQxMfbaL.js.map} +1 -1
- package/dist/GrantPermissionModal-BDN66Atn.js +236 -0
- package/dist/GrantPermissionModal-BDN66Atn.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js +7639 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js +665 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js.map +1 -0
- package/dist/LanguagesModal-B3NTebYT.js +352 -0
- package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
- package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-CoYcpjR9.js} +465 -397
- package/dist/ManageEventConfiguration-CoYcpjR9.js.map +1 -0
- package/dist/ManageNotification-C5MhV77Q.js +934 -0
- package/dist/ManageNotification-C5MhV77Q.js.map +1 -0
- package/dist/{ManageRole-CGYfglpo.js → ManageRole-CNZBRKGU.js} +32 -30
- package/dist/ManageRole-CNZBRKGU.js.map +1 -0
- package/dist/ManageTranslation-vRiptUAP.js +833 -0
- package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
- package/dist/ManageTranslation.css +1 -1
- package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DCFkUMV9.js} +1722 -1586
- package/dist/ManageUser-DCFkUMV9.js.map +1 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js +272 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js.map +1 -0
- package/dist/MobileAnalytics-pQoE8cG1.js +16888 -0
- package/dist/MobileAnalytics-pQoE8cG1.js.map +1 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
- package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-BeveaX0C.js} +2 -2
- package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +1 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
- package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-DEyRZEuM.js} +109 -110
- package/dist/NotificationList-DEyRZEuM.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CM6VkdmY.js} +570 -478
- package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +1 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js +482 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map +1 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js +157 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js.map +1 -0
- package/dist/PermissionsModal-CCYkcKlC.js +151 -0
- package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js +119 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map +1 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js +783 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map +1 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js +818 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +1 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js +599 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js.map +1 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js +1302 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +1 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js +252 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +1 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js +648 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +1 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js +1577 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +1 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js +279 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map +1 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js +293 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js.map +1 -0
- package/dist/QueryBuilder-CXaBe6sr.js +478 -0
- package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
- package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-s8iNx2Mu.js} +131 -142
- package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
- package/dist/Roles-BIyiic67.js +14 -0
- package/dist/Roles-BIyiic67.js.map +1 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js +544 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map +1 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js +315 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js.map +1 -0
- package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
- package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js +747 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js.map +1 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
- package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-D1y_4A1u.js} +161 -121
- package/dist/ShowFlywayQuery-D1y_4A1u.js.map +1 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js +721 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +1 -0
- package/dist/SubMenu-eEDhZUvh.js +317 -0
- package/dist/SubMenu-eEDhZUvh.js.map +1 -0
- package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
- package/dist/TableDetails-BtafRxXb.js.map +1 -0
- package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
- package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js +746 -0
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js.map +1 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js +315 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map +1 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js +476 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +1 -0
- package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-3O6ABrK-.js} +2 -2
- package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-3O6ABrK-.js.map} +1 -1
- package/dist/{UserList-Bc8gYxRL.js → UserList-DgPxsnj2.js} +253 -236
- package/dist/{UserList-Bc8gYxRL.js.map → UserList-DgPxsnj2.js.map} +1 -1
- package/dist/Users-Bpc4Sazd.js +41 -0
- package/dist/Users-Bpc4Sazd.js.map +1 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js +321 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js.map +1 -0
- package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
- package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js +434 -0
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +1 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +4 -752
- package/dist/index.js.map +1 -1
- package/dist/index.lib-Dn8PMkeD.js +862 -0
- package/dist/index.lib-Dn8PMkeD.js.map +1 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
- package/package.json +5 -4
- package/dist/AccessRights-CHu27ZOw.js +0 -1262
- package/dist/AccessRights-CHu27ZOw.js.map +0 -1
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
- package/dist/AddLabelModal-DFllBVcd.js +0 -734
- package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
- package/dist/AddMenuConfiguration-BSQLl88V.js +0 -6570
- package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
- package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
- package/dist/AppModal-CtG2GjD_.js +0 -428
- package/dist/AppModal-CtG2GjD_.js.map +0 -1
- package/dist/ChangePasswordModalCore-CDxkeIIM.js.map +0 -1
- package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
- package/dist/EventsSkeleton-8iiETGcf.js +0 -76
- package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
- package/dist/FeatureMenu-jl7-Tk6y.js +0 -265
- package/dist/FeatureMenu-jl7-Tk6y.js.map +0 -1
- package/dist/Features-CObdzJp_.js +0 -13
- package/dist/Features-CObdzJp_.js.map +0 -1
- package/dist/FlywayQuery-Cx2sly6g.js +0 -169
- package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
- package/dist/LanguagesModal-D6VfaGrl.js +0 -394
- package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
- package/dist/ManageDynamicFeature-BhONvfC_.js +0 -4189
- package/dist/ManageDynamicFeature-BhONvfC_.js.map +0 -1
- package/dist/ManageEventConfiguration-DV3I5POA.js.map +0 -1
- package/dist/ManageRole-CGYfglpo.js.map +0 -1
- package/dist/ManageTranslation-B4C9-lWD.js +0 -625
- package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
- package/dist/ManageUser-AY1EUDLI.js.map +0 -1
- package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
- package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
- package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
- package/dist/QueryBuilder-z7eqfd7D.js +0 -383
- package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
- package/dist/RoleManagement-BPl2cE27.js.map +0 -1
- package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
- package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
- package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
- package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
- package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
- package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
- package/dist/SubMenu-DYxAPH2Z.js +0 -191
- package/dist/SubMenu-DYxAPH2Z.js.map +0 -1
- package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
- package/dist/Users-CsJ08Kjm.js +0 -40
- package/dist/Users-CsJ08Kjm.js.map +0 -1
- package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
- package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManageNotification-C5MhV77Q.js","sources":["../src/views/Notifications/ManageNotification.jsx"],"sourcesContent":["import { yupResolver } from \"@hookform/resolvers/yup\";\nimport {\n Button,\n Drawer,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n Popover,\n RadioGroup,\n FormControl,\n FormControlLabel,\n Radio,\n} from \"@mui/material\";\nimport { Grid, Stack } from \"@mui/system\";\nimport PropTypes from \"prop-types\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport CustomDropdown from \"@/views/custom-components/CustomDropdown\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomTextArea from \"@/views/custom-components/CustomTextArea\";\nimport CustomCheckBox from \"@/views/custom-components/CustomCheckBox\";\nimport { SketchPicker } from \"react-color\";\nimport { createNotification, updateNotification } from \"../../services/Notifications\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomAutocomplete from \"@/views/custom-components/CustomAutoComplete\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport { ManageNotificationSkeleton } from \"./Skeletons/NotificationsSkeletons\";\nimport { executeQuery } from '@/common/services/GlobalApis';\n\n/**\n * ManageNotification is a React component that manages notifications, allowing users to view and interact with them.\n * @module ManageNotification\n * @param {Object} props - The props for the component.\n * @param {boolean} props.open - Boolean flag to determine if the notification panel is open.\n * @param {Object} props.data - Data related to the notifications to be displayed.\n * @param {Function} props.handleClose - Function to handle the closing of the notification panel.\n * @param {Object} props.roleData - Role data (e.g., user permissions) used to customize the notification display.\n * @param {Function} props.setNotifications - Function to update or set the notifications in the state.\n * @returns {JSX.Element} A rendered component that manages notifications.\n */\nexport default function ManageNotification({\n open,\n data,\n handleClose,\n roleData,\n setNotifications,\n}) {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopover = Boolean(anchorEl);\n const id = open ? \"color-picker-popover\" : undefined;\n const [isLoading, setIsLoading] = useState(false);\n const [activeForms, setActiveForms] = useState([]);\n\n const fetchForms =async()=>{\n try{\n setIsLoading(true); \n const res = await executeQuery({\n code: 'medplat_form_get_all_form_details',\n parameters: {},\n });\n const formList = res?.data?.result;\n setActiveForms(formList?.filter((f) => f.is_web_feature === true));\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n }\n\n const validationSchema = yup.object().shape({\n notificationName: yup.string().required(\"Enter Notification Name\"),\n code: yup.string().required(\"Enter code\"),\n notificationFor: yup.string().required(\"Select Notification For\"),\n notificationType: yup.string().required(\"Enter Notification Type\"),\n dataFor: yup\n .string()\n .when(\"notificationType\", (notificationType, schema) => {\n return String(notificationType) === \"WEB\"\n ? schema.required(\"Select Data For\")\n : schema.notRequired();\n }),\n actionBase: yup\n .string()\n .when(\"notificationType\", (notificationType, schema) => {\n return String(notificationType) === \"WEB\"\n ? schema.required(\"Select a Value\")\n : schema.notRequired();\n }),\n dataQuery: yup\n .string()\n .when(\"notificationType\", (notificationType, schema) => {\n return String(notificationType) === \"WEB\"\n ? schema.required(\"Enter Data Query\")\n : schema.notRequired();\n }),\n fetchUptoLevel: yup\n .string()\n .when(\n [\"notificationType\", \"isLocationFilterRequired\"],\n ([notificationType, isLocationFilterRequired], schema) => {\n return notificationType === \"WEB\" && isLocationFilterRequired\n ? schema.required(\"Enter fetch up to level\")\n : schema.notRequired();\n },\n ),\n requiredUptoLevel: yup\n .string()\n .when(\n [\"notificationType\", \"isLocationFilterRequired\"],\n ([notificationType, isLocationFilterRequired], schema) => {\n return notificationType === \"WEB\" && isLocationFilterRequired\n ? schema.required(\"Enter required up to level\")\n : schema.notRequired();\n },\n ),\n roleId: yup\n .string()\n .when(\"notificationType\", (notificationType, schema) => {\n return String(notificationType) === \"MO\"\n ? schema.required(\"Enter Role\")\n : schema.notRequired();\n }),\n\n url: yup.string().when(\"actionBase\", (actionBase, schema) => {\n return String(actionBase) === \"URL\"\n ? schema.required(\"Enter URL\")\n : schema.notRequired();\n }),\n modalName: yup.string().when(\"actionBase\", (actionBase, schema) => {\n return String(actionBase) === \"MODAL\"\n ? schema.required(\"Enter Modal Name\")\n : schema.notRequired();\n }),\n actionQuery:\n data?.notificationType === \"WEB\" &&\n yup.string().when(\"actionBase\", (actionBase, schema) => {\n return String(actionBase) === \"ACTION\"\n ? schema.required(\"Enter Option Query\")\n : schema.notRequired();\n }),\n formCode: yup.string().when(\"actionBase\", (actionBase, schema) => {\n return String(actionBase) === \"FORM_CONFIGURATOR\"\n ? schema.required(\"Select Form Configurator\")\n : schema.notRequired();\n }),\n escalationLevels: yup.array().of(\n yup.object().shape({\n name: yup.string().required(\"Enter Name\"),\n }),\n ),\n });\n\n const {\n handleSubmit,\n getValues,\n control,\n formState: { errors },\n setValue,\n reset,\n watch,\n clearErrors,\n } = useForm({\n defaultValues: {\n notificationType: \"MO\",\n isLocationFilterRequired: false,\n modalBasedAction: false,\n fetchUptoLevel: null,\n requiredUptoLevel: null,\n urlBasedAction: false,\n formBasedAction: false,\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n const watchedFields = watch();\n\n useEffect(() => {\n if(watchedFields.actionBase === \"FORM_CONFIGURATOR\"){\n fetchForms();\n }\n }, [watchedFields.actionBase]);\n \n const { translate } = useTranslateProvider();\n const optionsType = [\n { value: \"WEB\", label: \"Web\" },\n { value: \"MO\", label: \"Mobile\" },\n ];\n\n const optionsActionFor = [\n { value: \"USER\", label: \"User\" },\n { value: \"MEMBER\", label: \"Member\" },\n ];\n\n const paramOptions = [\n { value: \"#taskTypeId#\", label: \"#taskTypeId#\" },\n { value: \"#limit#\", label: \"#limit#\" },\n { value: \"#offset#\", label: \"#offset#\" },\n { value: \"#userId#\", label: \"#userId#\" },\n { value: \"#memberId#\", label: \"#memberId#\" },\n { value: \"#loggedInUserId#\", label: \"#loggedInUserId#\" },\n ...(watchedFields.isLocationFilterRequired ? [{ value: \"#locationId#\", label: \"#locationId#\" }] : []),\n ];\n\n /**\n * Handles the closing of the modal by resetting the form and triggering the modal close action.\n *\n * @function handleCloseModal\n * @returns {void} No return value.\n */\n const handleCloseModal = () => {\n reset();\n handleClose();\n };\n\n /**\n * Handles the change in notification type by updating the form's notificationType field.\n * @function handleNotificationType\n * @param {Object} e - The event object from the change event.\n * @param {string} e.target.value - The value of the selected notification type.\n * @returns {void} No return value.\n */\n const handleNotificationType = (e) => {\n setValue(\"notificationType\", e.target.value);\n };\n\n /**\n * Handles the change in action selection by updating the form's field based on the provided type.\n * @function handleActionFor\n * @param {Object} e - The event object from the change event.\n * @param {string} type - The field name to update in the form.\n * @param {string} e.target.value - The value of the selected action.\n * @returns {void} No return value.\n */\n const handleActionFor = (e, type) => {\n setValue(type, e.target.value);\n };\n\n /**\n * Adds roles to a form field and optionally removes a role from escalation levels if a role is removed.\n * @function addRole\n * @param {Array<Object>} values - The array of role objects to be added or updated. Each object should contain an `id` property.\n * @param {string} name - The name of the form field where the role IDs will be stored.\n * @param {Object} [removedOption] - The role object that has been removed, if any. Should contain an `id` property.\n *\n * @returns {void}\n */\n const addRole = (values, name, removedOption) => {\n const ids = values?.map((value) => value?.id);\n setValue(name, ids);\n\n if (removedOption) {\n const escalationLevels = getValues(\"escalationLevels\");\n const updatedEscalationLevels = escalationLevels.map((item) => {\n return {\n ...item,\n roles: item.roles?.filter((id) => id !== removedOption?.id),\n };\n });\n setValue(\"escalationLevels\", updatedEscalationLevels);\n }\n };\n\n /**\n * Adds a performer role to the escalation level at the specified index, if not already present.\n * @function addPerformer\n * @param {Object} val - The performer object containing the role details.\n * @param {string} val.id - The unique identifier of the performer role to add.\n * @param {number} index - The index of the escalation level where the role should be added.\n * @returns {void} No return value.\n */\n const addPerformer = (values, index) => {\n const ids = values?.map((value) => value.id);\n setValue(`escalationLevels[${index}].roles`, ids);\n };\n\n /**\n * Adds a new escalation level field to the form if the last field is valid (has a name and roles).\n * If no fields exist, it initializes the first escalation level.\n *\n * @function handleAddField\n * @returns {void} No return value.\n */\n const handleAddField = () => {\n const fields = getValues(\"escalationLevels\");\n if (fields.length === 0) {\n const newField = {\n counter: fields.length + 1,\n name: \"\",\n roles: [],\n };\n setValue(\"escalationLevels\", [...fields, newField]);\n } else if (\n fields[fields.length - 1].name &&\n fields[fields.length - 1].roles.length\n ) {\n const newField = {\n counter: fields.length + 1,\n name: \"\",\n roles: [],\n };\n setValue(\"escalationLevels\", [...fields, newField]);\n }\n };\n\n /**\n * Deletes an escalation level field from the form by removing the field with the specified counter value.\n *\n * @function handleDeleteField\n * @param {number} counter - The unique identifier (counter) of the escalation level field to be deleted.\n * @returns {void} No return value.\n */\n const handleDeleteField = (identifier) => {\n const fields = getValues(\"escalationLevels\");\n const newFields = fields.filter((field) =>\n field.id ? field.id !== identifier : field.counter !== identifier,\n );\n setValue(\"escalationLevels\", newFields);\n };\n\n /**\n * Handles the change event for the radio buttons related to action types.\n * @function handleRadioChange\n * @param {Object} e - The event object generated by the radio button change.\n * @param {Object} e.target - The target element of the event (radio button).\n * @param {string} e.target.value - The selected value (URL, MODAL, or ACTION).\n * @returns {void} No return value.\n */\n const handleRadioChange = (e) => {\n const { value } = e.target;\n clearErrors(\"actionBase\");\n setValue(\"actionBase\", value);\n if (value === \"URL\") {\n setValue(\"urlBasedAction\", true);\n setValue(\"modalBasedAction\", false);\n setValue(\"actionBased\", false);\n setValue(\"formBasedAction\", false);\n } else if (value === \"MODAL\") {\n setValue(\"urlBasedAction\", false);\n setValue(\"modalBasedAction\", true);\n setValue(\"actionBased\", false);\n setValue(\"formBasedAction\", false);\n } else if (value === \"ACTION\") {\n setValue(\"urlBasedAction\", false);\n setValue(\"modalBasedAction\", false);\n setValue(\"actionBased\", true);\n setValue(\"formBasedAction\", false);\n } else {\n setValue(\"urlBasedAction\", false);\n setValue(\"modalBasedAction\", false);\n setValue(\"actionBased\", false);\n setValue(\"formBasedAction\", true);\n }\n };\n\n const trackEvent = useTrackEvent();\n\n /**\n * Handles the form submission for adding or updating a notification.\n * @function onSubmit\n * @param {Object} values - The form values to be submitted.\n * @param {string} values.notificationType - The type of the notification (e.g., 'MO').\n * @param {boolean} values.isLocationFilterRequired - Indicates if location-based filtering is required.\n * @param {boolean} values.modalBasedAction - Indicates if the action is based on a modal.\n * @param {number} values.fetchUptoLevel - The level to fetch up to.\n * @param {number} values.requiredUptoLevel - The level required for the notification.\n * @param {boolean} values.urlBasedAction - Indicates if the action is based on a URL.\n * @param {boolean} values.formBasedAction - Indicates if the action will open a Form.\n * @returns {Promise<void>} A promise that resolves when the notification is successfully added or updated.\n */\n const onSubmit = async (values) => { \n try {\n delete values.actionBased;\n if (values.actionBase === \"FORM_CONFIGURATOR\") {\n values.formBasedAction = true;\n values.urlBasedAction = false;\n values.modalBasedAction = false;\n values.url = values.formCode; \n values.otherData.form_page_params = values.formParams;\n values.otherData = JSON.stringify(values.otherData, null, 2);\n delete values.modalName;\n delete values.formParams;\n } else { \n delete values.otherData;\n values.formBasedAction = false;\n delete values.formCode;\n delete values.formParams;\n }\n if (values.notificationType === \"MO\" && !data) {\n values.isLocationFilterRequired = false;\n values.modalBasedAction = false;\n values.fetchUptoLevel = null;\n values.requiredUptoLevel = null;\n values.urlBasedAction = false;\n }\n if (data) {\n await updateNotification(values);\n } else {\n await createNotification(values);\n }\n trackEvent(\"button_click\", {\n button_name: \"managenotification-submit-button\",\n button_type: \"submit\",\n button_id: \"managenotification-submit-button\",\n });\n showToast({\n type: \"success\",\n message: `Notification ${data ? \"updated\" : \"added\"} successfully`,\n });\n submitRef.current = true;\n handleCloseModal();\n await setNotifications();\n } catch (error) {\n showToast({ type: \"error\", message: `Error in Submission!` });\n console.error(\"error\", error);\n }\n };\n\n /**\n * Loads the initial data for the form when the modal is opened.\n * If `data` is provided, it populates the form with the values.\n * If `data.notificationType` is 'WEB', it sets the appropriate `actionBase` value.\n * If `data` is not provided, it sets a default escalation level.\n *\n * @function useEffect\n * Runs when the modal is opened, as indicated by the `open` dependency.\n *\n * @returns {void} No return value.\n */\n useEffect(() => {\n const loadInitialData = async () => {\n try {\n setIsLoading((cur) => !cur);\n reset();\n if (data) {\n Object.keys(data).map((key) => setValue(key, data[key]));\n\n const parsedOtherData = JSON.parse(data.otherData ?? \"{}\");\n setValue(\"otherData\", parsedOtherData);\n\n if (data.formBasedAction) {\n setValue(\"formCode\", data.url);\n if (parsedOtherData && parsedOtherData.form_page_params) {\n setValue(\"formParams\", parsedOtherData.form_page_params);\n }\n }\n data.formBasedAction || data.formCode || data.actionBase === \"FORM_CONFIGURATOR\"\n ? setValue(\"actionBase\", \"FORM_CONFIGURATOR\")\n : data.modalBasedAction\n ? setValue(\"actionBase\", \"MODAL\")\n : data.urlBasedAction\n ? setValue(\"actionBase\", \"URL\")\n : setValue(\"actionBase\", \"ACTION\");\n } else\n setValue(\"escalationLevels\", [\n { counter: 1, name: \"Default\", roles: [] },\n ]);\n setIsLoading((cur) => !cur);\n } catch (error) {\n showToast({\n type: \"error\",\n message: `error ${error}`,\n });\n setIsLoading((cur) => !cur);\n }\n };\n loadInitialData();\n }, [open]);\n\n useEffect(() => {\n if (formRef.current) {\n let form = formRef.current;\n return () => {\n trackEvent(\"conversion_event\", {\n form,\n form_name: \"Add Notification\",\n submit: submitRef.current,\n }); // Use the current ref value\n };\n }\n }, [formRef.current]);\n\n return (\n <Drawer\n open={open}\n anchor=\"right\"\n onClose={handleClose}\n className=\"z-[1300]\"\n slotProps={{\n paper: {\n sx: {\n width: { xs: \"calc(100vw - 16px)\", sm: 480, md: 650 },\n maxWidth: \"100vw\",\n overflowX: \"hidden\",\n },\n },\n }}\n data-testid=\"managenotification-drawer\"\n >\n <ManageNotificationSkeleton isLoading={isLoading}>\n <Grid\n container\n className=\"flex flex-col w-full md:w-[650px] max-w-full min-w-0\"\n ref={formRef}\n >\n <Grid className=\"p-2.5 px-5 flex border-b w-full\">\n <Typography\n className=\"font-medium text-lg text-customBlue\"\n data-testid=\"managenotification-typography-title\"\n >\n {!data\n ? `${translate(\"ADD NOTIFICATION\")}`\n : `${translate(\"Update Notification\")} `}\n </Typography>\n </Grid>\n <Grid className=\"flex flex-col p-4 w-full min-w-0\" container>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Type\")} <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomDropdown\n control={control}\n name={\"notificationType\"}\n id=\"notificationType\"\n options={optionsType}\n displayName={\"label\"}\n optionValue={\"value\"}\n errors={errors}\n onChange={handleNotificationType}\n dataTestId=\"managenotification-dropdown-notification-type\"\n />\n </Grid>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Name\")} <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n name={\"notificationName\"}\n placeholder={\"Enter Name\"}\n id={\"notificationName\"}\n errors={errors}\n dataTestId=\"managenotification-textfield-notification-name\"\n />\n </Grid>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Code\")} <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n placeholder={\"Enter Code\"}\n name={\"code\"}\n id={\"code\"}\n errors={errors}\n dataTestId=\"managenotification-textfield-code\"\n />\n </Grid>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Action For\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomDropdown\n control={control}\n name={\"notificationFor\"}\n id={\"notificationFor\"}\n options={optionsActionFor}\n displayName={\"label\"}\n optionValue={\"value\"}\n errors={errors}\n onChange={(e) => handleActionFor(e, \"notificationFor\")}\n dataTestId=\"managenotification-dropdown-notification-for\"\n />\n </Grid>\n {watchedFields.notificationType === \"WEB\" && (\n <Grid\n container\n spacing={1}\n display={\"flex\"}\n flexDirection={\"column\"}\n >\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Data For\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomDropdown\n control={control}\n name={\"dataFor\"}\n id={\"dataFor\"}\n options={optionsActionFor}\n displayName={\"label\"}\n optionValue={\"value\"}\n errors={errors}\n onChange={(e) => handleActionFor(e, \"dataFor\")}\n dataTestId=\"managenotification-dropdown-data-for\"\n />\n </Grid>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Action By\")}\n </Typography>\n <CustomAutocomplete\n options={roleData}\n control={control}\n name={\"roles\"}\n placeholder=\"Select Role\"\n onChange={(e, val, removedOption) =>\n addRole(val, \"roles\", removedOption)\n }\n value={watchedFields?.roles?.map((role) =>\n roleData.find((item) => item.id === role),\n )}\n errors={errors}\n getOptionLabel={(option) => option?.name}\n dataTestId=\"managenotification-select-action-by\"\n />\n </Grid>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Order No.\")}\n </Typography>\n <CustomTextField\n control={control}\n name=\"orderNo\"\n id=\"orderNo\"\n errors={errors}\n placeholder=\"Enter Order No\"\n inputProps={{ inputMode: \"numeric\", pattern: \"[0-9]*\" }}\n type=\"number\"\n onInput={(e) => {\n e.target.value = e.target.value.replace(/\\D/g, \"\");\n }}\n dataTestId=\"managenotification-textfield-order-no\"\n />\n </Grid>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Color Code\")}\n </Typography>\n <Grid\n onClick={(e) => setAnchorEl(e.currentTarget)}\n className=\"w-full h-[20px] border border-gray-300 cursor-pointer\"\n style={{\n backgroundColor: watchedFields.colorCode || \"#000\",\n }}\n />\n\n <Popover\n id={id}\n open={openPopover}\n anchorEl={anchorEl}\n onClose={() => setAnchorEl(null)}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"left\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"left\",\n }}\n >\n <Grid className=\"p-2\">\n <SketchPicker\n color={watchedFields.colorCode || \"#000\"}\n onChangeComplete={(newColor) =>\n setValue(\"colorCode\", newColor.hex)\n }\n data-testid=\"managenotification-sketch-picker\"\n />\n </Grid>\n </Popover>\n </Grid>\n <Grid>\n <CustomCheckBox\n name=\"isLocationFilterRequired\"\n label=\"Do you want location based filter?\"\n labelSizeInRem={\".9rem\"}\n control={control}\n dataTestId=\"managenotification-checkbox-location-filter\"\n />\n </Grid>\n {watchedFields.isLocationFilterRequired && (\n <>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Fetch Up to Level\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n placeholder=\"Fetch Upto Level\"\n name={\"fetchUptoLevel\"}\n id={\"fetchUptoLevel\"}\n errors={errors}\n dataTestId=\"managenotification-textfield-fetch-upto-level\"\n />\n </Grid>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Required Upto Level\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n name={\"requiredUptoLevel\"}\n placeholder=\"Required Upto Level\"\n id={\"requiredUptoLevel\"}\n errors={errors}\n dataTestId=\"managenotification-textfield--upto-level\"\n />\n </Grid>\n <Grid>\n <CustomCheckBox\n name=\"isFetchAccordingAOI\"\n label=\"fetch according to user aoi\"\n labelSizeInRem={\".9rem\"}\n control={control}\n dataTestId=\"managenotification-checkbox-fetch-according-aoi\"\n />\n </Grid>\n </>\n )}\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Data Query\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextArea\n control={control}\n id=\"dataQuery\"\n name=\"dataQuery\"\n errors={errors}\n label=\"\"\n minRows={5}\n dataTestId=\"managenotification-textarea-data-query\"\n />\n <Typography variant=\"caption\" className=\"font-bold\">\n #taskTypeId# #limit# #offset# #userId# #memberId#\n #loggedInUserId#\n {watchedFields.isLocationFilterRequired && \"#locationId#\"}\n </Typography>\n </Grid>\n <Grid container display={\"flex\"} size={{ xs: 12 }}>\n <FormControl className=\"flex flex-row\" component=\"fieldset\">\n <Typography variant=\"body2\" mt={1.4} mr={2}>\n {translate(\"Type of Action\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <RadioGroup\n row\n aria-label=\"radio-group\"\n value={watchedFields.actionBase}\n name=\"actionBase\"\n onChange={handleRadioChange}\n data-testid=\"managenotification-radiogroup-actionbase\"\n >\n <FormControlLabel\n value=\"URL\"\n control={<Radio />}\n label={translate(\"URL Based\")}\n sx={{\n \"& .MuiFormControlLabel-label\": {\n fontSize: \"13px\",\n },\n }}\n data-testid=\"managenotification-formcontrollabel-url\"\n />\n <FormControlLabel\n value=\"MODAL\"\n control={<Radio />}\n label={translate(\"Modal Based\")}\n sx={{\n \"& .MuiFormControlLabel-label\": {\n fontSize: \"13px\",\n },\n }}\n data-testid=\"managenotification-formcontrollabel-modal\"\n />\n <FormControlLabel\n value=\"ACTION\"\n control={<Radio />}\n label={translate(\"Action based\")}\n sx={{\n \"& .MuiFormControlLabel-label\": {\n fontSize: \"13px\",\n },\n }}\n data-testid=\"managenotification-formcontrollabel-action\"\n />\n <FormControlLabel\n value=\"FORM_CONFIGURATOR\"\n control={<Radio />}\n label={translate(\"Form Configurator\")}\n sx={{\n \"& .MuiFormControlLabel-label\": {\n fontSize: \"13px\",\n },\n }}\n data-testid=\"managenotification-formcontrollabel-form-configurator\"\n />\n </RadioGroup>\n <Typography data-testid=\"managenotification-typography-actionbase-error\">\n {errors?.actionBase && (\n <p className=\"error-helper-text\">\n {errors?.actionBase?.message}\n </p>\n )}{\" \"}\n </Typography>\n </FormControl>\n </Grid>\n {watchedFields.actionBase === \"URL\" && (\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"URL\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n placeholder={\"Enter Url\"}\n control={control}\n name={\"url\"}\n id={\"url\"}\n errors={errors}\n dataTestId=\"managenotification-customtextfield-url\"\n />\n </Grid>\n )}\n {watchedFields.actionBase === \"MODAL\" && (\n <Grid>\n <Typography\n variant=\"body2\"\n data-testid=\"managenotification-typography-modal-label\"\n >\n {translate(\"Modal Name\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n placeholder={\"Enter Modal Name\"}\n control={control}\n name={\"modalName\"}\n id={\"modalName\"}\n errors={errors}\n dataTestId=\"managenotification-customtextfield-modal\"\n />\n </Grid>\n )}\n {watchedFields.actionBase === \"ACTION\" && (\n <Grid>\n <Typography\n variant=\"body2\"\n className=\"mb-1\"\n data-testid=\"managenotification-typography-action-label\"\n >\n {translate(\"Action Query\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextArea\n control={control}\n id=\"actionQuery\"\n name=\"actionQuery\"\n errors={errors}\n label=\"\"\n minRows={5}\n data-testid=\"managenotification-customtextarea-actionquery\"\n />\n </Grid>\n )}\n {watchedFields.actionBase === \"FORM_CONFIGURATOR\" && (\n <>\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Form Configurator\")}{\" \"}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomDropdown\n control={control}\n name={\"formCode\"}\n id={\"formCode\"}\n options={activeForms}\n displayName={\"form_name\"}\n optionValue={\"form_code\"}\n errors={errors}\n onChange={(e) => {\n setValue(\"formCode\", e.target.value);\n const form = activeForms.find(f => f.form_code === e.target.value);\n if (form && form.page_params) {\n setValue(\"formParams\", form.page_params.split(',').reduce((acc, param) => ({...acc, [param]: ''}), {}));\n } else {\n setValue(\"formParams\", {});\n }\n }}\n dataTestId=\"managenotification-dropdown-form-configurator\"\n />\n </Grid>\n {watchedFields.formParams && Object.keys(watchedFields.formParams).map((paramName) => (\n <Grid key={paramName}>\n <Typography variant=\"body2\" className=\"mb-1\">\n {paramName}\n </Typography>\n <CustomDropdown\n control={control}\n name={`formParams.${paramName}`}\n id={`formParams_${paramName}`}\n options={paramOptions}\n displayName={\"label\"}\n optionValue={\"value\"}\n errors={errors}\n dataTestId={`managenotification-dropdown-${paramName}`}\n />\n </Grid>\n ))}\n </>\n )}\n\n <Grid className=\"w-full min-w-0\">\n <Button\n onClick={handleAddField}\n variant=\"contained\"\n size=\"small\"\n className=\"mb-2 mt-2\"\n data-testid=\"managenotification-button-add-escalation\"\n >\n {`${translate(\"Add\")} ${translate(\"Escalation Level\")}`}\n </Button>\n <TableContainer\n sx={{\n border: \"1px solid #d1d5db\",\n display: \"block\",\n maxHeight: 260,\n maxWidth: \"100%\",\n overflowX: \"scroll\",\n overflowY: \"auto\",\n scrollbarGutter: \"stable\",\n width: {\n xs: \"calc(100vw - 48px)\",\n sm: 448,\n md: 618,\n },\n \"&::-webkit-scrollbar\": {\n height: 8,\n width: 8,\n },\n }}\n data-testid=\"managenotification-escalation-table-container\"\n >\n <Table\n stickyHeader\n sx={{\n minWidth: 900,\n tableLayout: \"fixed\",\n width: 900,\n }}\n className=\"border border-gray-300\"\n >\n <TableHead>\n <TableRow>\n <TableCell\n className=\"border border-gray-300 p-2\"\n sx={{ minWidth: 280, width: 280 }}\n >\n <Typography\n variant=\"body2\"\n className=\"font-bold\"\n data-testid=\"managenotification-typography-name\"\n >\n {translate(\"Name\")}\n </Typography>\n </TableCell>\n <TableCell\n className=\"border border-gray-300 p-2\"\n sx={{ minWidth: 430, width: 430 }}\n >\n <Typography\n variant=\"body2\"\n className=\"font-bold\"\n data-testid=\"managenotification-typography-performer\"\n >\n {translate(\"Performer\")}\n </Typography>\n </TableCell>\n <TableCell\n className=\"p-2\"\n sx={{ minWidth: 130, width: 130 }}\n >\n <Typography\n variant=\"body2\"\n className=\"font-bold\"\n data-testid=\"managenotification-typography-action\"\n >\n {translate(\"Actions\")}\n </Typography>\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {getValues(\"escalationLevels\")?.map((field, index) => (\n <TableRow\n key={field.counter ? field.counter : field.id}\n >\n <TableCell\n className=\"border border-gray-300 p-2\"\n sx={{ minWidth: 280, width: 280 }}\n >\n <CustomTextField\n control={control}\n errors={errors}\n name={`escalationLevels[${index}].name`}\n dataTestId={`managenotification-customtextfield-name-${field.counter}`}\n />\n </TableCell>\n <TableCell\n className=\"border border-gray-300 p-2\"\n sx={{ minWidth: 430, width: 430 }}\n >\n <CustomAutocomplete\n options={\n watchedFields.roles\n ? watchedFields.roles?.map((role) =>\n roleData.find((item) => {\n return item.id === role;\n }),\n )\n : []\n }\n name={`escalationLevels[${index}].roles`}\n control={control}\n onChange={(e, val) => addPerformer(val, index)}\n value={watchedFields.escalationLevels[\n index\n ].roles?.map((role) =>\n roleData.find((item) => item.id === role),\n )}\n errors={errors}\n getOptionLabel={(option) => option?.name}\n dataTestId={`managenotification-customautocomplete-performer-${field.counter}`}\n />\n </TableCell>\n <TableCell sx={{ minWidth: 130, width: 130 }}>\n {index > 0 && (\n <FontAwesomeIcon\n icon={faTrash}\n onClick={() =>\n handleDeleteField(\n field.id ? field.id : field.counter,\n )\n }\n className=\"text-[14px] text-[var(--color-error)]\"\n data-testid={`managenotification-delete-action-${field.counter}`}\n />\n )}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n </Grid>\n </Grid>\n )}\n\n {watchedFields.notificationType === \"MO\" && (\n <Grid>\n <Typography variant=\"body2\">\n {translate(\"Role\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomDropdown\n control={control}\n options={roleData}\n name={\"roleId\"}\n id=\"roleId\"\n displayName={\"name\"}\n value={watch(\"roleId\") || \"\"}\n optionValue={\"id\"}\n errors={errors}\n dataTestId=\"managenotification-dropdown-role\"\n />\n </Grid>\n )}\n </Grid>\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={2}\n mb={1.5}\n p={2}\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"managenotification-close-button\",\n button_type: \"cancel\",\n button_id: \"managenotification-close-button\",\n });\n handleCloseModal();\n }}\n data-testid=\"managenotification-close-button\"\n >\n <Typography variant=\"caption\">{translate(\"Close\")}</Typography>\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={handleSubmit(onSubmit)}\n type=\"submit\"\n data-testid=\"managenotification-submit-button\"\n >\n {!data ? `${translate(\"Add\")}` : `${translate(\"Update\")}`}\n </Button>\n </Stack>\n </Grid>\n </ManageNotificationSkeleton>\n </Drawer>\n );\n}\nManageNotification.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.func,\n data: PropTypes.any,\n roleData: PropTypes.any,\n setNotifications: PropTypes.any,\n};\n"],"names":["ManageNotification","open","data","handleClose","roleData","setNotifications","formRef","useRef","submitRef","anchorEl","setAnchorEl","useState","openPopover","id","isLoading","setIsLoading","activeForms","setActiveForms","fetchForms","res","executeQuery","formList","_a","f","error","validationSchema","yup","notificationType","schema","isLocationFilterRequired","actionBase","handleSubmit","getValues","control","errors","setValue","reset","watch","clearErrors","useForm","yupResolver","watchedFields","useEffect","translate","useTranslateProvider","optionsType","optionsActionFor","paramOptions","handleCloseModal","handleNotificationType","handleActionFor","type","addRole","values","name","removedOption","ids","value","updatedEscalationLevels","item","addPerformer","index","handleAddField","fields","newField","handleDeleteField","identifier","newFields","field","handleRadioChange","trackEvent","useTrackEvent","onSubmit","updateNotification","createNotification","showToast","cur","key","parsedOtherData","form","jsx","Drawer","ManageNotificationSkeleton","jsxs","Grid","Typography","CustomDropdown","CustomTextField","CustomAutocomplete","val","role","option","Popover","SketchPicker","newColor","CustomCheckBox","Fragment","CustomTextArea","FormControl","RadioGroup","FormControlLabel","Radio","_b","acc","param","paramName","Button","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","_c","e","FontAwesomeIcon","faTrash","Stack","PropTypes"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsxs as l, jsx as a, Fragment as
|
|
1
|
+
import { jsxs as l, jsx as a, Fragment as A } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as X, useState as J, useEffect as he } from "react";
|
|
3
3
|
import { Modal as ge, Box as H, IconButton as fe, FormControl as y, FormGroup as pe, Button as Q } from "@mui/material";
|
|
4
4
|
import ye from "@/hooks/useTrackEvent";
|
|
5
|
-
import {
|
|
5
|
+
import { a as be, b as ve, c as we } from "./Roles-BIyiic67.js";
|
|
6
6
|
import { getRoleList as Ne, getLocationTypes as Te, execute as O } from "@/common/services/GlobalApis";
|
|
7
7
|
import { showToast as j } from "@/common/toaster/toaster";
|
|
8
8
|
import { useForm as Ie } from "react-hook-form";
|
|
@@ -21,9 +21,9 @@ import qe from "@/common/services/util/GeneralUtil";
|
|
|
21
21
|
import f from "@/common/config/implementationConfig";
|
|
22
22
|
import v from "prop-types";
|
|
23
23
|
import z from "@/views/custom-components/CustomToggleSwitch";
|
|
24
|
-
import { useSelector as
|
|
25
|
-
import { getUseSkeleton as
|
|
26
|
-
const ee = ({ children: N, isLoading: p }) => !Fe
|
|
24
|
+
import { useSelector as Ce } from "react-redux";
|
|
25
|
+
import { getUseSkeleton as Fe } from "@/store/reducers/SkeletonReducer";
|
|
26
|
+
const ee = ({ children: N, isLoading: p }) => !Ce(Fe) || !p ? N : /* @__PURE__ */ l("div", { className: "pt-6 h-[88vh]", children: [
|
|
27
27
|
/* @__PURE__ */ l("div", { className: "px-8 pt-2 pb-4 flex items-center justify-between", children: [
|
|
28
28
|
/* @__PURE__ */ a("div", { className: "bg-gray-300 animate-pulse rounded-md w-32 h-8" }),
|
|
29
29
|
/* @__PURE__ */ a("div", { className: "bg-gray-300 animate-pulse rounded-full w-10 h-10" })
|
|
@@ -80,14 +80,14 @@ ee.propTypes = {
|
|
|
80
80
|
};
|
|
81
81
|
const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
82
82
|
{ label: "Authenticator App", value: "AUTHENTICATOR_APP" }
|
|
83
|
-
],
|
|
83
|
+
], Se = ({
|
|
84
84
|
selectedId: N,
|
|
85
85
|
isUpdate: p,
|
|
86
86
|
open: q,
|
|
87
87
|
setOpen: u,
|
|
88
88
|
isRoleListModified: ae
|
|
89
89
|
}) => {
|
|
90
|
-
const G = X(null), V = X(!1),
|
|
90
|
+
const G = X(null), V = X(!1), S = ye(), [w, U] = J({}), [te, D] = J(!1), le = b.object().shape({
|
|
91
91
|
name: b.string().required("Enter Role Name"),
|
|
92
92
|
locationTypes: b.array().when("isLocationRequired", {
|
|
93
93
|
is: !0,
|
|
@@ -153,7 +153,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
153
153
|
resolver: xe(le),
|
|
154
154
|
mode: "onChange",
|
|
155
155
|
shouldUnregister: !1
|
|
156
|
-
}), ne = T("isBankDetailsRequired"), ie = T("isTwoFactorEnabled"), Y = T("roleType"), de = Y === "WEB" || Y === "BOTH", _ = T("locationTypes"), { translate: E } = Re(), ce = T("isLocationRequired"), me = T("isHealthInfraMandatory"),
|
|
156
|
+
}), ne = T("isBankDetailsRequired"), ie = T("isTwoFactorEnabled"), Y = T("roleType"), de = Y === "WEB" || Y === "BOTH", _ = T("locationTypes"), { translate: E } = Re(), ce = T("isLocationRequired"), me = T("isHealthInfraMandatory"), P = [
|
|
157
157
|
{ label: "Email", value: "isEmailMandatory" },
|
|
158
158
|
{ label: "Aadhar Number", value: "isAadharNumMandatory" },
|
|
159
159
|
{ label: "Contact Number", value: "isContactNumMandatory" },
|
|
@@ -162,16 +162,18 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
162
162
|
{ label: "Health Infrastructure", value: "isHealthInfraMandatory" },
|
|
163
163
|
{ label: "GeoLocation", value: "isGeolocationMandatory" },
|
|
164
164
|
{ label: "Smag Trained", value: "isSmagTrainedMandatory" },
|
|
165
|
-
{ label: "Nodal", value: "isNodalMandatory" }
|
|
165
|
+
{ label: "Nodal", value: "isNodalMandatory" },
|
|
166
|
+
{ label: "PFMS Code", value: "isPfmsCodeMandatory" },
|
|
167
|
+
{ label: "SNA Beneficiary ID", value: "isSnaBeneficiaryIdMandatory" }
|
|
166
168
|
].filter((e) => {
|
|
167
169
|
var t;
|
|
168
170
|
return ((t = f.role.mandatoryFieldsToExclude) == null ? void 0 : t.length) > 0 ? !f.role.mandatoryFieldsToExclude.includes(e.value) : !0;
|
|
169
|
-
}),
|
|
170
|
-
u(0), se(),
|
|
171
|
+
}), C = () => {
|
|
172
|
+
u(0), se(), S("conversion_event", {
|
|
171
173
|
form: G.current,
|
|
172
174
|
form_name: "Manage Role",
|
|
173
175
|
submit: V.current
|
|
174
|
-
}),
|
|
176
|
+
}), S("button_click", {
|
|
175
177
|
button_name: "add role close button",
|
|
176
178
|
button_type: "cancel",
|
|
177
179
|
button_id: "managerole-close-button"
|
|
@@ -181,7 +183,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
181
183
|
}, ue = async (e) => {
|
|
182
184
|
var t, i;
|
|
183
185
|
try {
|
|
184
|
-
|
|
186
|
+
S("button_click", {
|
|
185
187
|
button_name: p ? "update role button" : "add role button",
|
|
186
188
|
button_type: "submit",
|
|
187
189
|
button_id: "managerole-add-button"
|
|
@@ -192,7 +194,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
192
194
|
), e.categoryIds = e.categoryIds.map((o) => o == null ? void 0 : o.id), e.locationTypes = e.isLocationRequired === !0 ? e.locationTypes : [], delete e.isLocationRequired, e.manageByRoleIds = e.roleIds, p ? await ve(e) : await we(e), j({
|
|
193
195
|
type: "success",
|
|
194
196
|
message: `Role ${p ? "Updated" : "Added"} Successfully`
|
|
195
|
-
}), V.current = !0,
|
|
197
|
+
}), V.current = !0, C(), ae();
|
|
196
198
|
} catch (o) {
|
|
197
199
|
j({
|
|
198
200
|
type: "error",
|
|
@@ -203,10 +205,10 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
203
205
|
return he(() => {
|
|
204
206
|
(async () => {
|
|
205
207
|
try {
|
|
206
|
-
|
|
208
|
+
D((i) => !i);
|
|
207
209
|
const t = qe.getEnv();
|
|
208
210
|
if (q !== 0) {
|
|
209
|
-
const [i, o,
|
|
211
|
+
const [i, o, F, k, L] = await Promise.all([
|
|
210
212
|
Ne(),
|
|
211
213
|
Te(),
|
|
212
214
|
O({
|
|
@@ -234,7 +236,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
234
236
|
...g,
|
|
235
237
|
roles: i.data,
|
|
236
238
|
locationData: o.data,
|
|
237
|
-
manageTeam: (R =
|
|
239
|
+
manageTeam: (R = F == null ? void 0 : F.data) == null ? void 0 : R.result,
|
|
238
240
|
category: (M = k == null ? void 0 : k.data) == null ? void 0 : M.result,
|
|
239
241
|
healthInfraType: (B = L == null ? void 0 : L.data) == null ? void 0 : B.result
|
|
240
242
|
};
|
|
@@ -252,7 +254,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
252
254
|
R ? R.map(
|
|
253
255
|
(r) => {
|
|
254
256
|
var m;
|
|
255
|
-
return (m =
|
|
257
|
+
return (m = F.data.result) == null ? void 0 : m.find((s) => (s == null ? void 0 : s.id) === r);
|
|
256
258
|
}
|
|
257
259
|
) : []
|
|
258
260
|
), h(
|
|
@@ -288,19 +290,19 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
288
290
|
), g.locationTypes.length > 0 ? h("isLocationRequired", !0) : h("isLocationRequired", !1);
|
|
289
291
|
}
|
|
290
292
|
}
|
|
291
|
-
|
|
293
|
+
D((i) => !i);
|
|
292
294
|
} catch (t) {
|
|
293
295
|
j({
|
|
294
296
|
message: `Error in manage role :${t == null ? void 0 : t.message}`,
|
|
295
297
|
type: "error"
|
|
296
|
-
}),
|
|
298
|
+
}), D((i) => !i);
|
|
297
299
|
}
|
|
298
300
|
})();
|
|
299
301
|
}, [N, q]), /* @__PURE__ */ a(
|
|
300
302
|
ge,
|
|
301
303
|
{
|
|
302
304
|
open: q !== 0,
|
|
303
|
-
onClose:
|
|
305
|
+
onClose: C,
|
|
304
306
|
"data-testid": "managerole-modal",
|
|
305
307
|
children: /* @__PURE__ */ a("div", { className: "mt-10 fixed inset-0 z-[100] flex items-center justify-center p-4 animate-in fade-in duration-200", children: /* @__PURE__ */ a(
|
|
306
308
|
H,
|
|
@@ -322,7 +324,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
322
324
|
fe,
|
|
323
325
|
{
|
|
324
326
|
size: "small",
|
|
325
|
-
onClick:
|
|
327
|
+
onClick: C,
|
|
326
328
|
className: "w-10 h-10 rounded-full bg-slate-100 flex items-center justify-center text-slate-400 hover:bg-slate-200 hover:text-slate-600 transition-all",
|
|
327
329
|
"data-testid": "managerole-close-icon",
|
|
328
330
|
children: /* @__PURE__ */ a(Me, { icon: Be, size: "lg" })
|
|
@@ -431,7 +433,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
431
433
|
}
|
|
432
434
|
) }),
|
|
433
435
|
/* @__PURE__ */ l("div", { className: "space-y-4", children: [
|
|
434
|
-
(ce === !0 || re) && /* @__PURE__ */ a(
|
|
436
|
+
(ce === !0 || re) && /* @__PURE__ */ a(A, { children: /* @__PURE__ */ a("div", { className: "space-y-1.5", children: /* @__PURE__ */ a(
|
|
435
437
|
d,
|
|
436
438
|
{
|
|
437
439
|
label: "Location",
|
|
@@ -565,7 +567,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
565
567
|
)
|
|
566
568
|
}
|
|
567
569
|
) }) }),
|
|
568
|
-
f.role.showCategoryIds && /* @__PURE__ */ a(
|
|
570
|
+
f.role.showCategoryIds && /* @__PURE__ */ a(A, { children: /* @__PURE__ */ a("div", { className: "space-y-4", children: /* @__PURE__ */ a("div", { className: "space-y-1.5", children: /* @__PURE__ */ a(
|
|
569
571
|
d,
|
|
570
572
|
{
|
|
571
573
|
label: "Category",
|
|
@@ -617,7 +619,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
617
619
|
)
|
|
618
620
|
}
|
|
619
621
|
),
|
|
620
|
-
!p && /* @__PURE__ */ a(
|
|
622
|
+
!p && /* @__PURE__ */ a(A, { children: /* @__PURE__ */ a(y, { variant: "outlined ", className: "w-[40%]", children: /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
|
|
621
623
|
/* @__PURE__ */ a("label", { className: "text-sm font-medium text-gray-700", children: "Self Manage" }),
|
|
622
624
|
/* @__PURE__ */ a(
|
|
623
625
|
$,
|
|
@@ -693,7 +695,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
693
695
|
label: "Mandatory Fields",
|
|
694
696
|
tooltip: "These fields are Mandatory when creating users of this role type",
|
|
695
697
|
children: /* @__PURE__ */ l(pe, { row: !0, children: [
|
|
696
|
-
|
|
698
|
+
P == null ? void 0 : P.map((e) => /* @__PURE__ */ a(
|
|
697
699
|
$,
|
|
698
700
|
{
|
|
699
701
|
control: n,
|
|
@@ -731,7 +733,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
731
733
|
variant: "contained",
|
|
732
734
|
color: "secondary",
|
|
733
735
|
size: "small",
|
|
734
|
-
onClick:
|
|
736
|
+
onClick: C,
|
|
735
737
|
"data-testid": "managerole-close-button",
|
|
736
738
|
children: E("Close")
|
|
737
739
|
}
|
|
@@ -759,7 +761,7 @@ const ke = [{ name: "WEB" }, { name: "MOBILE" }, { name: "BOTH" }], Le = [
|
|
|
759
761
|
}
|
|
760
762
|
);
|
|
761
763
|
};
|
|
762
|
-
|
|
764
|
+
Se.propTypes = {
|
|
763
765
|
isUpdate: v.bool,
|
|
764
766
|
role: v.object,
|
|
765
767
|
onClose: v.func,
|
|
@@ -769,6 +771,6 @@ De.propTypes = {
|
|
|
769
771
|
isRoleListModified: v.bool
|
|
770
772
|
};
|
|
771
773
|
export {
|
|
772
|
-
|
|
774
|
+
Se as default
|
|
773
775
|
};
|
|
774
|
-
//# sourceMappingURL=ManageRole-
|
|
776
|
+
//# sourceMappingURL=ManageRole-CNZBRKGU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManageRole-CNZBRKGU.js","sources":["../src/views/Roles/Skeletons/ManageRoleSkeleton.jsx","../src/views/Roles/ManageRole.jsx"],"sourcesContent":["import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nconst ManageRoleSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n\n return (\n <div className=\"pt-6 h-[88vh]\">\n {/* Header Skeleton */}\n <div className=\"px-8 pt-2 pb-4 flex items-center justify-between\">\n <div className=\"bg-gray-300 animate-pulse rounded-md w-32 h-8\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-full w-10 h-10\"></div>\n </div>\n\n {/* Form Content Skeleton */}\n <div className=\"px-8 pb-8 space-y-6 overflow-y-auto max-h-[80vh]\">\n {/* Top Grid: Role Name, Max Position, Max Health Infra */}\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n {[1, 2, 3].map((i) => (\n <div key={i} className=\"space-y-1.5\">\n <div className=\"h-4 bg-gray-300 rounded w-1/3 mb-2 animate-pulse\"></div>\n <div className=\"h-10 bg-gray-300 rounded animate-pulse w-full\"></div>\n </div>\n ))}\n </div>\n\n {/* Location Required Toggle */}\n <div className=\"flex items-center gap-6 w-full\">\n <div className=\"w-full\">\n <div className=\"h-4 bg-gray-300 rounded w-1/4 mb-2 animate-pulse\"></div>\n <div className=\"h-8 bg-gray-300 rounded-full w-16 animate-pulse\"></div>\n </div>\n </div>\n\n {/* Location Select (Conditional placeholder) & Manage Role */}\n <div className=\"space-y-4\">\n {[1, 2].map((i) => (\n <div key={i} className=\"space-y-1.5\">\n <div className=\"h-4 bg-gray-300 rounded w-1/4 mb-2 animate-pulse\"></div>\n <div className=\"h-10 bg-gray-300 rounded animate-pulse w-full\"></div>\n </div>\n ))}\n\n {/* Middle Grid: Role Type & Manage Team */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {[1, 2].map((i) => (\n <div key={i} className=\"space-y-1.5\">\n <div className=\"h-4 bg-gray-300 rounded w-1/3 mb-2 animate-pulse\"></div>\n <div className=\"h-10 bg-gray-300 rounded animate-pulse w-full\"></div>\n </div>\n ))}\n </div>\n\n {/* Health Infra & Category */}\n {[1, 2].map((i) => (\n <div key={i} className=\"space-y-1.5\">\n <div className=\"h-4 bg-gray-300 rounded w-1/3 mb-2 animate-pulse\"></div>\n <div className=\"h-10 bg-gray-300 rounded animate-pulse w-full\"></div>\n </div>\n ))}\n </div>\n\n {/* Bottom Section: Bank Details & Self Manage */}\n <div className=\"flex items-center gap-6\">\n {/* Bank Details (Toggle style) */}\n <div className=\"w-[60%]\">\n <div className=\"h-4 bg-gray-300 rounded w-1/3 mb-2 animate-pulse\"></div>\n <div className=\"h-8 bg-gray-300 rounded-full w-16 animate-pulse\"></div>\n </div>\n {/* Self Manage (Checkbox style) */}\n <div className=\"w-[40%] flex items-center gap-2\">\n <div className=\"h-5 w-5 bg-gray-300 rounded animate-pulse\"></div>\n <div className=\"h-4 bg-gray-300 rounded w-1/3 animate-pulse\"></div>\n </div>\n </div>\n\n {/* Mandatory Fields Checkboxes */}\n <div className=\"space-y-2\">\n <div className=\"h-4 bg-gray-300 rounded w-1/4 mb-2 animate-pulse\"></div>\n <div className=\"flex flex-wrap gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <div key={i} className=\"flex items-center gap-2\">\n <div className=\"h-5 w-5 bg-gray-300 rounded animate-pulse\"></div>\n <div className=\"h-4 w-16 bg-gray-300 rounded animate-pulse\"></div>\n </div>\n ))}\n </div>\n </div>\n </div>\n\n {/* Footer Buttons */}\n <div className=\"flex items-center justify-end gap-3 pt-6 px-8 pb-4 border-t border-slate-100\">\n <div className=\"h-9 w-20 bg-gray-300 rounded animate-pulse\"></div>\n <div className=\"h-9 w-24 bg-gray-300 rounded animate-pulse\"></div>\n </div>\n </div>\n );\n};\n\nexport default ManageRoleSkeleton;\n\nManageRoleSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n","import { useState, useEffect, useRef } from \"react\";\nimport {\n Box,\n Modal,\n Button,\n FormControl,\n FormGroup,\n IconButton,\n // Tooltip,\n // Typography,\n} from \"@mui/material\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { postRole, putRole, getRoleById } from \"../../services/Roles\";\nimport {\n getLocationTypes,\n execute,\n getRoleList,\n} from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport \"@/assets/scss/scrollBar.scss\";\n\nimport { FormItem } from \"@/views/custom-components/FormItem.jsx\";\nimport * as Yup from \"yup\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport CustomDropdown from \"@/views/custom-components/CustomDropdown\";\nimport CustomCheckBox from \"@/views/custom-components/CustomCheckBox\";\n// import CustomRadioGroup from \"@/views/custom-components/CustomRadioComponent\";\nimport CustomAutocomplete from \"@/views/custom-components/CustomAutoComplete\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\nimport implementationConfig from \"@/common/config/implementationConfig\";\nimport PropTypes from \"prop-types\";\nimport CustomToggleSwitch from \"@/views/custom-components/CustomToggleSwitch\";\nimport ManageRoleSkeleton from \"./Skeletons/ManageRoleSkeleton.jsx\";\n\nconst roleTypes = [{ name: \"WEB\" }, { name: \"MOBILE\" }, { name: \"BOTH\" }];\n\n// Two-factor authentication method. Any TOTP authenticator app works (Google, Microsoft, Authy, ...).\nconst twoFactorTypes = [\n { label: \"Authenticator App\", value: \"AUTHENTICATOR_APP\" },\n];\n\n/**\n * ManageRole Component\n * @module ManageRole\n * @param {Object} props - The component props.\n * @param {function} props.setData - A function to update the role data in the parent component.\n * @param {string} props.selectedId - The ID of the currently selected role, used for updates.\n * @param {boolean} props.isUpdate - A flag indicating whether the component is in update mode (true) or create mode (false).\n * @returns {JSX.Element} - The rendered component for managing roles.\n */\n\nconst ManageRole = ({\n selectedId,\n isUpdate,\n open,\n setOpen,\n isRoleListModified,\n}) => {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const trackEvent = useTrackEvent();\n const [formData, setFormData] = useState({});\n const [isLoading, setIsLoading] = useState(false);\n const validationSchema = Yup.object().shape({\n name: Yup.string().required(\"Enter Role Name\"),\n locationTypes: Yup.array().when(\"isLocationRequired\", {\n is: true,\n then: (schema) =>\n schema.min(1, \"Select Location Type\").required(\"Select Location Type\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n roleType: implementationConfig.role.showRoleType\n ? Yup.string().required(\"Select Role Type\")\n : Yup.string().notRequired(),\n isBankDetailsRequired:\n implementationConfig.role.showBankDetailsRequired\n ? Yup.boolean().nullable().defined(\"Please Select a Value\")\n : Yup.boolean().notRequired(),\n healthInfrastructureIds: Yup.array().when(\"isHealthInfraMandatory\", {\n is: true,\n then: (schema) =>\n schema\n .min(1, \"Select Health Infrastructure Type\")\n .required(\"Select Health Infrastructure Type\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n twoFactorType: Yup.string().when(\"isTwoFactorEnabled\", {\n is: true,\n then: (schema) => schema.required(\"Select Authentication Method\"),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n });\n\n const {\n control,\n handleSubmit,\n formState: { errors, isSubmitting },\n setValue,\n // getValues,\n watch,\n reset,\n } = useForm({\n defaultValues: {\n name: \"\",\n locationTypes: [],\n maxPosition: \"\",\n maxHealthInfra: \"\",\n roleType: \"\",\n isLastNameMandatory: false,\n isAadharNumMandatory: false,\n isEmailMandatory: false,\n isContactNumMandatory: false,\n isConvoxIdMandatory: false,\n isHealthInfraMandatory: false,\n isGeolocationMandatory: false,\n roleIds: [],\n canManageRoleIds: [],\n manageByTeamTypeIds: [],\n canSelfManage: false,\n healthInfrastructureIds: [],\n categoryIds: [],\n isBankDetailsRequired: false,\n isBankDetailsMandatory: false,\n isTwoFactorEnabled: false,\n twoFactorType: \"\",\n id: \"\",\n code: \"\",\n description: \"\",\n createdBy: \"\",\n state: \"\",\n createdOn: \"\",\n assignedFeatureList: \"\",\n assignedFeatures: \"\",\n isSmagTrainedMandatory: \"\",\n isLocationRequired: true,\n isNodalMandatory: false,\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n shouldUnregister: false,\n });\n\n const bankDetails = watch(\"isBankDetailsRequired\");\n const isTwoFactorEnabled = watch(\"isTwoFactorEnabled\");\n const roleType = watch(\"roleType\");\n // 2FA (Google Authenticator) only applies to web logins, so it is offered for WEB and BOTH role types.\n const showTwoFactorSetting = roleType === \"WEB\" || roleType === \"BOTH\";\n const locTypes = watch(\"locationTypes\");\n const { translate } = useTranslateProvider();\n const locationDetailsWatcher = watch(\"isLocationRequired\");\n const isHealthInfraMandatory = watch(\"isHealthInfraMandatory\");\n\n const mandatoryFields = [\n { label: \"Email\", value: \"isEmailMandatory\" },\n { label: \"Aadhar Number\", value: \"isAadharNumMandatory\" },\n { label: \"Contact Number\", value: \"isContactNumMandatory\" },\n { label: \"Convox Id\", value: \"isConvoxIdMandatory\" },\n { label: \"Last Name\", value: \"isLastNameMandatory\" },\n { label: \"Health Infrastructure\", value: \"isHealthInfraMandatory\" },\n { label: \"GeoLocation\", value: \"isGeolocationMandatory\" },\n { label: \"Smag Trained\", value: \"isSmagTrainedMandatory\" },\n { label: \"Nodal\", value: \"isNodalMandatory\" },\n { label: \"PFMS Code\", value: \"isPfmsCodeMandatory\" },\n { label: \"SNA Beneficiary ID\", value: \"isSnaBeneficiaryIdMandatory\" },\n ].filter((field) => {\n if (implementationConfig.role.mandatoryFieldsToExclude?.length > 0) {\n return !implementationConfig.role.mandatoryFieldsToExclude.includes(field.value);\n }\n return true;\n });\n /**\n * Closes the form modal and optionally resets the form.\n * @method handleClose\n * @returns {void}\n */\n\n const handleClose = () => {\n setOpen(0);\n reset();\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Manage Role\",\n submit: submitRef.current,\n });\n trackEvent(\"button_click\", {\n button_name: \"add role close button\",\n button_type: \"cancel\",\n button_id: \"managerole-close-button\",\n });\n };\n\n /**\n * Adds a new field value to the current list of values for a given field.\n * @method handleAddFields\n * @param {Object} value - The new value to be added to the field.\n * @param {string} name - The name of the field to which the new value should be added.\n * @returns {void}\n */\n\n const handleAddFields = (e, value, name) => {\n setValue(name, value);\n };\n\n /**\n * Handles the submission of role data by sending a POST request to create or update a role.\n *\n * @async\n * @function onSubmit\n * @param {Object} params - The role data to be submitted.\n * @param {string} [params.id] - The unique identifier of the role (to be deleted if not an update).\n * @param {string} [params.state] - The state of the role (to be deleted if not an update).\n * @param {string} [params.createdOn] - The creation timestamp of the role (to be deleted if not an update).\n * @param {string} [params.createdBy] - The creator of the role (to be deleted if not an update).\n * @param {string} [params.code] - The code associated with the role (to be deleted if not an update).\n * @param {string} [params.description] - The description of the role (to be deleted if not an update).\n * @param {boolean} [params.assignedFeatures] - Whether features are assigned (to be deleted if not an update).\n * @param {boolean} [params.isSmagTrainedMandatory] - Whether SMAG training is mandatory (to be deleted if not an update).\n * @param {boolean} [params.isBankDetailsRequired] - Whether bank details are required (to be deleted if not an update).\n * @param {boolean} [params.isBankDetailsMandatory] - Whether bank details are mandatory (to be deleted if not an update).\n * @param {Array<Object>} params.roleIds - List of role IDs.\n * @param {Array<Object>} params.manageByTeamTypeIds - List of team type IDs for management.\n * @param {Array<Object>} params.healthInfrastructureIds - List of health infrastructure IDs.\n * @param {Array<Object>} params.categoryIds - List of category IDs.\n *\n * @throws {Error} Throws an error if the role cannot be added.\n *\n * @returns {Promise<void>} - A Promise that resolves when the role has been successfully submitted.\n */\n\n const onSubmit = async (params) => {\n try {\n trackEvent(\"button_click\", {\n button_name: isUpdate ? \"update role button\" : \"add role button\",\n button_type: \"submit\",\n button_id: \"managerole-add-button\",\n });\n\n delete params.bankDetailsRequired;\n delete params.bankDetailsMandatory;\n\n // 2FA only applies to web (WEB/BOTH); a MOBILE-only role must never carry 2FA settings.\n if (params.roleType !== \"WEB\" && params.roleType !== \"BOTH\") {\n params.isTwoFactorEnabled = false;\n }\n // When 2FA is turned off, don't send a stale type selection.\n if (!params.isTwoFactorEnabled) {\n params.twoFactorType = null;\n } else if (!params.twoFactorType) {\n // Only one 2FA method exists (authenticator app); default it when 2FA is enabled.\n params.twoFactorType = \"AUTHENTICATOR_APP\";\n }\n\n if (!isUpdate) {\n delete params.id;\n delete params.state;\n delete params.createdOn;\n delete params.createdBy;\n delete params.code;\n delete params.description;\n delete params.assignedFeatures;\n\n // delete params.isSmagTrainedMandatory;\n delete params.assignedFeatureList;\n }\n params.roleIds = params.roleIds.map((item) => item?.id);\n params.canManageRoleIds = params.canManageRoleIds.map((item) => item?.id);\n params.manageByTeamTypeIds = params.manageByTeamTypeIds.map(\n (item) => item?.id,\n );\n params.healthInfrastructureIds = params.healthInfrastructureIds.map(\n (item) => item?.id,\n );\n // params.maxHealthInfra = parseInt(params.maxHealthInfra) || null;\n // params.maxPosition = parseInt(params.maxPosition) || null;\n params.categoryIds = params.categoryIds.map((item) => item?.id);\n params.locationTypes =\n params.isLocationRequired === true ? params.locationTypes : [];\n delete params.isLocationRequired;\n params.manageByRoleIds = params.roleIds;\n isUpdate ? await putRole(params) : await postRole(params);\n showToast({\n type: \"success\",\n message: `Role ${isUpdate ? \"Updated\" : \"Added\"} Successfully`,\n });\n submitRef.current = true;\n handleClose();\n isRoleListModified();\n } catch (error) {\n showToast({\n type: \"error\",\n message: `Role Cannot be added: ${error?.response?.data?.message}`,\n });\n }\n };\n\n /**\n * Fetches and updates form data based on the selected role ID and initializes additional data needed for the form.\n *\n * This effect runs when the `selectedId` dependency changes. It retrieves role data by ID, updates the form fields\n * with the fetched role data, and sets additional data such as roles, location types, manage team types,\n * categories, and health infrastructure types.\n *\n * @async\n * @function useEffect\n */\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n setIsLoading((cur) => !cur);\n\n const env = GeneralUtil.getEnv();\n\n if (open !== 0) {\n const [roles, locationData, manageTeam, category, healthInfraType] =\n await Promise.all([\n getRoleList(),\n getLocationTypes(),\n execute({\n code: \"team_all_types_for_roles\",\n parameters: {},\n }),\n execute({\n code: \"retrieve_field_values_for_form_field\",\n parameters: {\n form: \"WEB\",\n fieldKey: \"role_catg\",\n },\n }),\n execute({\n code: \"retrieve_field_values_for_form_field\",\n parameters: {\n form: \"WEB\",\n fieldKey: \"infra_type\",\n },\n }),\n ]);\n\n setFormData((cur) => {\n return {\n ...cur,\n roles: roles.data,\n locationData: locationData.data,\n manageTeam: manageTeam?.data?.result,\n category: category?.data?.result,\n healthInfraType: healthInfraType?.data?.result,\n };\n });\n\n if (selectedId) {\n const { data: roleData } = await getRoleById(selectedId);\n setFormData((cur) => {\n return { ...cur, roleData, env };\n });\n Object.keys(roleData).map((key) => setValue(key, roleData[key]));\n setValue(\"isBankDetailsRequired\", roleData.isBankDetailsRequired);\n setValue(\"isBankDetailsMandatory\", roleData.isBankDetailsMandatory);\n const {\n manageByTeamTypeIds,\n healthInfrastructureIds,\n roleIds,\n categoryIds,\n } = roleData;\n setValue(\n \"manageByTeamTypeIds\",\n manageByTeamTypeIds\n ? manageByTeamTypeIds.map((item) =>\n manageTeam.data.result?.find((cur) => cur?.id === item),\n )\n : [],\n );\n setValue(\n \"healthInfrastructureIds\",\n healthInfrastructureIds\n ? healthInfrastructureIds\n .map((item) =>\n healthInfraType.data.result?.find(\n (cur) => cur?.id === item,\n ),\n )\n .filter((item) => item !== undefined)\n : [],\n );\n setValue(\n \"categoryIds\",\n categoryIds\n ? categoryIds.map((item) =>\n category.data.result?.find((cur) => cur?.id === item),\n )\n : [],\n );\n setValue(\n \"roleIds\",\n roleIds\n ? roleIds\n .map((item) => roles.data?.find((cur) => cur?.id === item))\n .filter((role) => role !== undefined)\n : [],\n );\n setValue(\n \"canManageRoleIds\",\n roleData.canManageRoleIds\n ? roleData.canManageRoleIds\n .map((item) => roles.data?.find((cur) => cur?.id === item))\n .filter((role) => role !== undefined)\n : [],\n );\n if (roleData.locationTypes.length > 0) {\n setValue(\"isLocationRequired\", true);\n } else {\n setValue(\"isLocationRequired\", false);\n }\n }\n }\n\n setIsLoading((cur) => !cur);\n } catch (error) {\n showToast({\n message: `Error in manage role :${error?.message}`,\n type: \"error\",\n });\n setIsLoading((cur) => !cur);\n }\n };\n fetchData();\n }, [selectedId, open]);\n\n return (\n <Modal\n open={open !== 0}\n onClose={handleClose}\n data-testid=\"managerole-modal\"\n >\n <div className=\"mt-10 fixed inset-0 z-[100] flex items-center justify-center p-4 animate-in fade-in duration-200\">\n <Box\n className=\"w-full max-w-2xl rounded-[2.5rem] shadow-2xl shadow-blue-900/10 overflow-hidden flex flex-col animate-in zoom-in-95 duration-300\"\n sx={{ bgcolor: (theme) => theme.palette.custom.customBackground }}\n >\n <ManageRoleSkeleton isLoading={isLoading}>\n <div className=\"px-8 pt-8 pb-4 flex items-center justify-between\">\n <div>\n <Box\n component=\"h2\"\n className=\"text-2xl font-bold text-customBlue\"\n sx={{ color: \"text.primary\" }}\n >\n {!isUpdate ? \"Add New Role\" : \"Update Role\"}\n </Box>\n </div>\n <IconButton\n size=\"small\"\n onClick={handleClose}\n className=\"w-10 h-10 rounded-full bg-slate-100 flex items-center justify-center text-slate-400 hover:bg-slate-200 hover:text-slate-600 transition-all\"\n data-testid=\"managerole-close-icon\"\n >\n <FontAwesomeIcon icon={faXmark} size=\"lg\" />\n </IconButton>\n </div>\n <form\n onSubmit={handleSubmit(onSubmit)}\n ref={formRef}\n className=\"px-8 pb-8 space-y-6 overflow-y-auto max-h-[80vh]\"\n >\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n <FormControl variant=\"outlined\">\n <div className=\"space-y-1.5\">\n <FormItem label=\"Role Name\">\n <CustomTextField\n placeholder={\"Role Name\"}\n name=\"name\"\n id=\"name\"\n errors={errors}\n control={control}\n dataTestId=\"managerole-role-name-field\"\n />\n </FormItem>\n </div>\n </FormControl>\n <FormControl variant=\"outlined\">\n <div className=\"space-y-1.5\">\n <FormItem\n label=\"Max Position\"\n tooltip=\"This is the maximum no of users that can be created at one location of this role type\"\n >\n <CustomTextField\n name=\"maxPosition\"\n id=\"maxPosition\"\n errors={errors}\n control={control}\n rules={{\n maxLength: 3,\n pattern: /^\\d{1,3}$/,\n }}\n inputProps={{\n maxLength: 3,\n inputMode: \"numeric\",\n pattern: \"[0-9]*\",\n onInput: (e) => {\n e.target.value = e.target.value.replace(/\\D/g, \"\");\n },\n }}\n dataTestId=\"managerole-max-position-field\"\n />\n </FormItem>\n </div>\n </FormControl>\n {implementationConfig.role.showMaxHealthData && (\n <FormControl variant=\"outlined\">\n <div className=\"space-y-1.5\">\n <FormItem label=\"Max Health Infrastructure\">\n <CustomTextField\n name=\"maxHealthInfra\"\n id=\"maxHealthInfra\"\n control={control}\n errors={errors}\n rules={{\n maxLength: 3,\n pattern: /^\\d{1,3}$/,\n }}\n inputProps={{\n maxLength: 3,\n inputMode: \"numeric\",\n pattern: \"[0-9]*\",\n onInput: (e) => {\n e.target.value = e.target.value.replace(\n /\\D/g,\n \"\",\n );\n },\n }}\n dataTestId=\"managerole-max-health-infra-field\"\n />\n </FormItem>\n </div>\n </FormControl>\n )}\n </div>\n <div className=\"flex items-center gap-6 w-full\">\n <FormControl\n variant=\"outlined\"\n className=\"flex flex-row items-center w-full \"\n >\n <FormItem\n label=\"Location Required\"\n required={true}\n direction={\"row\"}\n >\n <CustomToggleSwitch\n control={control}\n name=\"isLocationRequired\"\n options={[\n { label: \"Yes\", value: true },\n { label: \"No\", value: false },\n ]}\n errors={errors}\n />\n {/* <CustomRadioGroup\n name=\"isLocationRequired\"\n errors={errors}\n control={control}\n options={[\n { label: \"Yes\", value: true },\n { label: \"No\", value: false },\n ]}\n direction=\"row\"\n dataTestId=\"managerole-location-details-radio\"\n className={\"m-0\"}\n /> */}\n </FormItem>\n </FormControl>\n </div>\n <div className=\"space-y-4\">\n {(locationDetailsWatcher === true || isSubmitting) && (\n <>\n <div className=\"space-y-1.5\">\n <FormItem\n label=\"Location\"\n required={true}\n tooltip=\"The OU level where users of this role perform their job function\"\n >\n <CustomAutocomplete\n id=\"locationTypes\"\n control={control}\n name=\"locationTypes\"\n options={formData.locationData}\n value={locTypes?.map((locationType) =>\n formData.locationData?.find(\n (location) =>\n location.type === locationType?.type,\n ),\n )}\n errors={errors}\n getOptionLabel={(option) => option?.name}\n dataTestId=\"managerole-location-type-select\"\n checkEquality=\"type\"\n onChange={(e, val) =>\n handleAddFields(e, val, \"locationTypes\")\n }\n />\n </FormItem>\n </div>\n </>\n )}\n <div className=\"space-y-1.5\">\n <FormItem\n label=\"Can Manage Role\"\n tooltip=\"Please select the roles that shall be managed by this role\"\n >\n <CustomAutocomplete\n name=\"roleIds\"\n id=\"roleIds\"\n errors={errors}\n control={control}\n dataTestId=\"managerole-manage-role-select\"\n options={formData.roles}\n onChange={(e, val) => handleAddFields(e, val, \"roleIds\")}\n getOptionLabel={(options) => options?.name}\n />\n </FormItem>\n </div>\n {implementationConfig.role.showManagedFrom && (\n <div className=\"space-y-1.5\">\n <FormItem\n label=\"Managed From\"\n tooltip=\"Please select the roles that can manage this role\"\n >\n <CustomAutocomplete\n name=\"canManageRoleIds\"\n id=\"canManageRoleIds\"\n errors={errors}\n control={control}\n dataTestId=\"managerole-managed-by-role-select\"\n options={formData.roles}\n onChange={(e, val) =>\n handleAddFields(e, val, \"canManageRoleIds\")\n }\n getOptionLabel={(options) => options?.name}\n />\n </FormItem>\n </div>\n )}\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {implementationConfig.role.showRoleType && (\n <div className=\"space-y-1.5\">\n <FormItem\n label=\"Role Type\"\n tooltip=\"Please select Role Type\"\n required={true}\n >\n <CustomDropdown\n control={control}\n id=\"roleType\"\n name=\"roleType\"\n options={roleTypes}\n displayName=\"name\"\n optionValue=\"name\"\n errors={errors}\n dataTestId=\"managerole-role-type-dropdown\"\n />\n </FormItem>\n </div>\n )}\n {implementationConfig.role.showCanManageTeam && (\n <div className=\"space-y-1.5\">\n <FormItem\n label=\"Can Manage Team\"\n tooltip=\"Please select the teams that shall be managed by this role\"\n >\n <CustomAutocomplete\n control={control}\n name=\"manageByTeamTypeIds\"\n id=\"manageByTeamTypeIds\"\n errors={errors}\n options={formData.manageTeam}\n dataTestId=\"managerole-manage-team-select\"\n onChange={(e, val) =>\n handleAddFields(e, val, \"manageByTeamTypeIds\")\n }\n getOptionLabel={(options) => options?.type}\n />\n </FormItem>\n </div>\n )}\n </div>\n <div className=\"space-y-4\">\n <div className=\"space-y-1.5\">\n <FormItem\n label=\"Select Health Infrastructure type\"\n tooltip=\"Please select the institute to be associated with the role\"\n required={isHealthInfraMandatory}\n >\n <CustomAutocomplete\n options={formData.healthInfraType}\n errors={errors}\n name=\"healthInfrastructureIds\"\n id=\"healthInfrastructureIds\"\n dataTestId=\"managerole-health-infrastructure-select\"\n control={control}\n onChange={(e, val) =>\n handleAddFields(e, val, \"healthInfrastructureIds\")\n }\n getOptionLabel={(option) => option?.value}\n />\n </FormItem>\n </div>\n </div>\n {implementationConfig.role.showCategoryIds && (\n <>\n <div className=\"space-y-4\">\n <div className=\"space-y-1.5\">\n <FormItem\n label=\"Category\"\n tooltip=\"Please select the category to be associated with the role\"\n >\n <CustomAutocomplete\n id=\"categoryIds\"\n name=\"categoryIds\"\n errors={errors}\n options={formData.category}\n dataTestId=\"managerole-role-category-select\"\n control={control}\n onChange={(e, val) =>\n handleAddFields(e, val, \"categoryIds\")\n }\n getOptionLabel={(option) => option?.value}\n />\n </FormItem>\n </div>\n </div>\n </>\n )}\n </div>\n <div className=\"flex items-center gap-6\">\n {implementationConfig.role.showBankDetailsRequired && (\n <FormControl\n variant=\"outlined\"\n className=\"flex flex-row items-center w-[60%] \"\n >\n <FormItem\n label=\"Bank Details Required\"\n tooltip=\"Select if bank details are required for this role\"\n required={true}\n labelWidth=\"50%\"\n childrenWidth=\"50%\"\n direction=\"row\"\n >\n <CustomToggleSwitch\n control={control}\n name=\"isBankDetailsRequired\"\n options={[\n { label: \"Yes\", value: true },\n { label: \"No\", value: false },\n ]}\n errors={errors}\n />\n </FormItem>\n </FormControl>\n )}\n {!isUpdate && (\n <>\n <FormControl variant=\"outlined \" className=\"w-[40%]\">\n <div className=\"flex items-center gap-2\">\n <label className=\"text-sm font-medium text-gray-700\">\n Self Manage\n </label>\n <CustomCheckBox\n name=\"canSelfManage\"\n control={control}\n isFullWidth={false}\n data-testid=\"managerole-self-manage-checkbox\"\n />\n </div>\n </FormControl>\n </>\n )}\n </div>\n {showTwoFactorSetting && (\n <div className=\"flex items-center gap-6 w-full\">\n <FormControl\n variant=\"outlined\"\n className=\"flex flex-row items-center w-[50%]\"\n >\n <FormItem\n label=\"Two-Factor Authentication\"\n tooltip=\"Require users of this role to use a two-factor authentication app\"\n labelWidth=\"60%\"\n childrenWidth=\"40%\"\n direction=\"row\"\n >\n <CustomToggleSwitch\n control={control}\n name=\"isTwoFactorEnabled\"\n options={[\n { label: \"Yes\", value: true },\n { label: \"No\", value: false },\n ]}\n errors={errors}\n />\n </FormItem>\n </FormControl>\n {isTwoFactorEnabled === true && (\n <FormControl variant=\"outlined\" className=\"w-[50%]\">\n <FormItem\n label=\"Authentication Method\"\n tooltip=\"Select which authentication method users of this role will use\"\n required={true}\n >\n <CustomDropdown\n control={control}\n id=\"twoFactorType\"\n name=\"twoFactorType\"\n options={twoFactorTypes}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n dataTestId=\"managerole-two-factor-type-dropdown\"\n />\n </FormItem>\n </FormControl>\n )}\n </div>\n )}\n <div className=\"flex items-center gap-6\">\n <FormControl\n variant=\"outlined\"\n className=\"flex flex-col items-start justify-between\"\n >\n <FormItem\n label=\"Mandatory Fields\"\n tooltip=\"These fields are Mandatory when creating users of this role type\"\n >\n <FormGroup row>\n {mandatoryFields?.map((field) => (\n <CustomCheckBox\n key={field.value}\n control={control}\n name={field.value}\n label={field.label}\n isFullWidth={false}\n data-testid={`managerole-mandatory-field-${field.value}`}\n />\n ))}\n {bankDetails === true && (\n <CustomCheckBox\n name=\"isBankDetailsMandatory\"\n control={control}\n label=\"Bank Details\"\n isFullWidth={false}\n data-testid=\"managerole-bank-details-mandatory-checkbox\"\n />\n )}\n </FormGroup>\n </FormItem>\n </FormControl>\n </div>\n <Box\n className=\"flex items-center justify-end gap-3 pt-6 border-t\"\n sx={{ borderColor: \"divider\" }}\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={handleClose}\n data-testid=\"managerole-close-button\"\n >\n {translate(\"Close\")}\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n data-testid=\"managerole-submit-button\"\n >\n {!isUpdate\n ? `${translate(\"Add Role\")}`\n : `${translate(\"Update Role\")}`}\n </Button>\n </Box>\n </form>\n </ManageRoleSkeleton>\n </Box>\n </div>\n </Modal>\n );\n};\n\nexport default ManageRole;\n\nManageRole.propTypes = {\n isUpdate: PropTypes.bool,\n role: PropTypes.object,\n onClose: PropTypes.func,\n open: PropTypes.bool,\n setOpen: PropTypes.func,\n selectedId: PropTypes.string,\n isRoleListModified: PropTypes.bool,\n};\n"],"names":["ManageRoleSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","i","PropTypes","roleTypes","twoFactorTypes","ManageRole","selectedId","isUpdate","open","setOpen","isRoleListModified","formRef","useRef","submitRef","trackEvent","useTrackEvent","formData","setFormData","useState","setIsLoading","validationSchema","Yup","schema","implementationConfig","control","handleSubmit","errors","isSubmitting","setValue","watch","reset","useForm","yupResolver","bankDetails","isTwoFactorEnabled","roleType","showTwoFactorSetting","locTypes","translate","useTranslateProvider","locationDetailsWatcher","isHealthInfraMandatory","mandatoryFields","field","_a","handleClose","handleAddFields","value","name","onSubmit","params","item","putRole","postRole","showToast","error","_b","useEffect","cur","env","GeneralUtil","roles","locationData","manageTeam","category","healthInfraType","getRoleList","getLocationTypes","execute","_c","roleData","getRoleById","key","manageByTeamTypeIds","healthInfrastructureIds","roleIds","categoryIds","role","Modal","Box","theme","IconButton","FontAwesomeIcon","faXmark","FormControl","FormItem","CustomTextField","CustomToggleSwitch","Fragment","CustomAutocomplete","locationType","location","option","val","options","CustomDropdown","CustomCheckBox","FormGroup","Button"],"mappings":"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"}
|