@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.
Files changed (229) hide show
  1. package/dist/AccessRights-xrday-L1.js +1023 -0
  2. package/dist/AccessRights-xrday-L1.js.map +1 -0
  3. package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
  4. package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
  5. package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-D1sU8RjY.js} +2 -2
  6. package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
  7. package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
  8. package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
  9. package/dist/AddMenuConfiguration-e5BVXhmw.js +8547 -0
  10. package/dist/AddMenuConfiguration-e5BVXhmw.js.map +1 -0
  11. package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
  12. package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
  13. package/dist/AppModal-CCtrQ5Tr.js +394 -0
  14. package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
  15. package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js +387 -0
  16. package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js.map +1 -0
  17. package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js +391 -0
  18. package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +1 -0
  19. package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-BPsJquTS.js} +1606 -1611
  20. package/dist/ChangePasswordModalCore-BPsJquTS.js.map +1 -0
  21. package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-Ddz9halE.js} +2 -2
  22. package/dist/ConditionConfig-Ddz9halE.js.map +1 -0
  23. package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js +435 -0
  24. package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js.map +1 -0
  25. package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
  26. package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
  27. package/dist/EventConfig-BmLemzX3.js +26 -0
  28. package/dist/EventConfig-BmLemzX3.js.map +1 -0
  29. package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-Bzh1qWXU.js} +31 -30
  30. package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-Bzh1qWXU.js.map} +1 -1
  31. package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-B2SRrnB1.js} +2 -2
  32. package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-B2SRrnB1.js.map} +1 -1
  33. package/dist/EventsSkeleton-BIcPks4T.js +61 -0
  34. package/dist/EventsSkeleton-BIcPks4T.js.map +1 -0
  35. package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js +79 -0
  36. package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js.map +1 -0
  37. package/dist/FeatureMenu-DYJmDt7q.js +521 -0
  38. package/dist/FeatureMenu-DYJmDt7q.js.map +1 -0
  39. package/dist/Features-Dne21RWu.js +14 -0
  40. package/dist/Features-Dne21RWu.js.map +1 -0
  41. package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-DuTwnngN.js} +19 -19
  42. package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-DuTwnngN.js.map} +1 -1
  43. package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
  44. package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
  45. package/dist/FlywayQuery-CQygj51V.js +179 -0
  46. package/dist/FlywayQuery-CQygj51V.js.map +1 -0
  47. package/dist/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
  48. package/dist/{ManageNotification-CaBAOhji.js.map → Google-DQxMfbaL.js.map} +1 -1
  49. package/dist/GrantPermissionModal-BDN66Atn.js +236 -0
  50. package/dist/GrantPermissionModal-BDN66Atn.js.map +1 -0
  51. package/dist/ImmunizationConfigurationBase-Di1KO3oW.js +7639 -0
  52. package/dist/ImmunizationConfigurationBase-Di1KO3oW.js.map +1 -0
  53. package/dist/ImmunizationConfigurationBase.css +1 -1
  54. package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
  55. package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
  56. package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js +665 -0
  57. package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js.map +1 -0
  58. package/dist/LanguagesModal-B3NTebYT.js +352 -0
  59. package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
  60. package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
  61. package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
  62. package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-CoYcpjR9.js} +465 -397
  63. package/dist/ManageEventConfiguration-CoYcpjR9.js.map +1 -0
  64. package/dist/ManageNotification-C5MhV77Q.js +934 -0
  65. package/dist/ManageNotification-C5MhV77Q.js.map +1 -0
  66. package/dist/{ManageRole-CGYfglpo.js → ManageRole-CNZBRKGU.js} +32 -30
  67. package/dist/ManageRole-CNZBRKGU.js.map +1 -0
  68. package/dist/ManageTranslation-vRiptUAP.js +833 -0
  69. package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
  70. package/dist/ManageTranslation.css +1 -1
  71. package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DCFkUMV9.js} +1722 -1586
  72. package/dist/ManageUser-DCFkUMV9.js.map +1 -0
  73. package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js +272 -0
  74. package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js.map +1 -0
  75. package/dist/MobileAnalytics-pQoE8cG1.js +16888 -0
  76. package/dist/MobileAnalytics-pQoE8cG1.js.map +1 -0
  77. package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
  78. package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
  79. package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-BeveaX0C.js} +2 -2
  80. package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +1 -0
  81. package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
  82. package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
  83. package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-DEyRZEuM.js} +109 -110
  84. package/dist/NotificationList-DEyRZEuM.js.map +1 -0
  85. package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CM6VkdmY.js} +570 -478
  86. package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +1 -0
  87. package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js +482 -0
  88. package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map +1 -0
  89. package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js +157 -0
  90. package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js.map +1 -0
  91. package/dist/PermissionsModal-CCYkcKlC.js +151 -0
  92. package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
  93. package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js +119 -0
  94. package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map +1 -0
  95. package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js +783 -0
  96. package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map +1 -0
  97. package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js +818 -0
  98. package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +1 -0
  99. package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js +599 -0
  100. package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js.map +1 -0
  101. package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js +1302 -0
  102. package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +1 -0
  103. package/dist/ProductsPage-CupVmOD4-D45a_hf-.js +252 -0
  104. package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +1 -0
  105. package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js +648 -0
  106. package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +1 -0
  107. package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js +1577 -0
  108. package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +1 -0
  109. package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js +279 -0
  110. package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map +1 -0
  111. package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js +293 -0
  112. package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js.map +1 -0
  113. package/dist/QueryBuilder-CXaBe6sr.js +478 -0
  114. package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
  115. package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-s8iNx2Mu.js} +131 -142
  116. package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
  117. package/dist/Roles-BIyiic67.js +14 -0
  118. package/dist/Roles-BIyiic67.js.map +1 -0
  119. package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js +544 -0
  120. package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map +1 -0
  121. package/dist/SalesPage-D18DCseD-BxktGDRQ.js +315 -0
  122. package/dist/SalesPage-D18DCseD-BxktGDRQ.js.map +1 -0
  123. package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
  124. package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
  125. package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js +747 -0
  126. package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js.map +1 -0
  127. package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
  128. package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
  129. package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-D1y_4A1u.js} +161 -121
  130. package/dist/ShowFlywayQuery-D1y_4A1u.js.map +1 -0
  131. package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
  132. package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
  133. package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js +721 -0
  134. package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +1 -0
  135. package/dist/SubMenu-eEDhZUvh.js +317 -0
  136. package/dist/SubMenu-eEDhZUvh.js.map +1 -0
  137. package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
  138. package/dist/TableDetails-BtafRxXb.js.map +1 -0
  139. package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
  140. package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
  141. package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js +746 -0
  142. package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js.map +1 -0
  143. package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js +315 -0
  144. package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map +1 -0
  145. package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js +476 -0
  146. package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +1 -0
  147. package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-3O6ABrK-.js} +2 -2
  148. package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-3O6ABrK-.js.map} +1 -1
  149. package/dist/{UserList-Bc8gYxRL.js → UserList-DgPxsnj2.js} +253 -236
  150. package/dist/{UserList-Bc8gYxRL.js.map → UserList-DgPxsnj2.js.map} +1 -1
  151. package/dist/Users-Bpc4Sazd.js +41 -0
  152. package/dist/Users-Bpc4Sazd.js.map +1 -0
  153. package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js +321 -0
  154. package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js.map +1 -0
  155. package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
  156. package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
  157. package/dist/constants-ClZJY2x1-MkSWn6TZ.js +434 -0
  158. package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +1 -0
  159. package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
  160. package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
  161. package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
  162. package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
  163. package/dist/index.css +1 -1
  164. package/dist/index.js +4 -752
  165. package/dist/index.js.map +1 -1
  166. package/dist/index.lib-Dn8PMkeD.js +862 -0
  167. package/dist/index.lib-Dn8PMkeD.js.map +1 -0
  168. package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
  169. package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
  170. package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
  171. package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
  172. package/package.json +5 -4
  173. package/dist/AccessRights-CHu27ZOw.js +0 -1262
  174. package/dist/AccessRights-CHu27ZOw.js.map +0 -1
  175. package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
  176. package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
  177. package/dist/AddLabelModal-DFllBVcd.js +0 -734
  178. package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
  179. package/dist/AddMenuConfiguration-BSQLl88V.js +0 -6570
  180. package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
  181. package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
  182. package/dist/AppModal-CtG2GjD_.js +0 -428
  183. package/dist/AppModal-CtG2GjD_.js.map +0 -1
  184. package/dist/ChangePasswordModalCore-CDxkeIIM.js.map +0 -1
  185. package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
  186. package/dist/EventsSkeleton-8iiETGcf.js +0 -76
  187. package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
  188. package/dist/FeatureMenu-jl7-Tk6y.js +0 -265
  189. package/dist/FeatureMenu-jl7-Tk6y.js.map +0 -1
  190. package/dist/Features-CObdzJp_.js +0 -13
  191. package/dist/Features-CObdzJp_.js.map +0 -1
  192. package/dist/FlywayQuery-Cx2sly6g.js +0 -169
  193. package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
  194. package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
  195. package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
  196. package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
  197. package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
  198. package/dist/LanguagesModal-D6VfaGrl.js +0 -394
  199. package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
  200. package/dist/ManageDynamicFeature-BhONvfC_.js +0 -4189
  201. package/dist/ManageDynamicFeature-BhONvfC_.js.map +0 -1
  202. package/dist/ManageEventConfiguration-DV3I5POA.js.map +0 -1
  203. package/dist/ManageRole-CGYfglpo.js.map +0 -1
  204. package/dist/ManageTranslation-B4C9-lWD.js +0 -625
  205. package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
  206. package/dist/ManageUser-AY1EUDLI.js.map +0 -1
  207. package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
  208. package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
  209. package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
  210. package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
  211. package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
  212. package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
  213. package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
  214. package/dist/QueryBuilder-z7eqfd7D.js +0 -383
  215. package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
  216. package/dist/RoleManagement-BPl2cE27.js.map +0 -1
  217. package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
  218. package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
  219. package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
  220. package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
  221. package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
  222. package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
  223. package/dist/SubMenu-DYxAPH2Z.js +0 -191
  224. package/dist/SubMenu-DYxAPH2Z.js.map +0 -1
  225. package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
  226. package/dist/Users-CsJ08Kjm.js +0 -40
  227. package/dist/Users-CsJ08Kjm.js.map +0 -1
  228. package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
  229. 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 P } from "react/jsx-runtime";
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 { g as be, a as ve, b as we } from "./RoleManagement-BPl2cE27.js";
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 Fe } from "react-redux";
25
- import { getUseSkeleton as Ce } from "@/store/reducers/SkeletonReducer";
26
- const ee = ({ children: N, isLoading: p }) => !Fe(Ce) || !p ? N : /* @__PURE__ */ l("div", { className: "pt-6 h-[88vh]", children: [
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
- ], De = ({
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), D = ye(), [w, U] = J({}), [te, S] = J(!1), le = b.object().shape({
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"), A = [
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
- }), F = () => {
170
- u(0), se(), D("conversion_event", {
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
- }), D("button_click", {
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
- D("button_click", {
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, F(), ae();
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
- S((i) => !i);
208
+ D((i) => !i);
207
209
  const t = qe.getEnv();
208
210
  if (q !== 0) {
209
- const [i, o, C, k, L] = await Promise.all([
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 = C == null ? void 0 : C.data) == null ? void 0 : R.result,
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 = C.data.result) == null ? void 0 : m.find((s) => (s == null ? void 0 : s.id) === r);
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
- S((i) => !i);
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
- }), S((i) => !i);
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: F,
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: F,
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(P, { children: /* @__PURE__ */ a("div", { className: "space-y-1.5", children: /* @__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(P, { children: /* @__PURE__ */ a("div", { className: "space-y-4", children: /* @__PURE__ */ a("div", { className: "space-y-1.5", children: /* @__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(P, { children: /* @__PURE__ */ a(y, { variant: "outlined ", className: "w-[40%]", children: /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
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
- A == null ? void 0 : A.map((e) => /* @__PURE__ */ a(
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: F,
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
- De.propTypes = {
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
- De as default
774
+ Se as default
773
775
  };
774
- //# sourceMappingURL=ManageRole-CGYfglpo.js.map
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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"}