@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManageEventConfiguration-DV3I5POA.js","sources":["../src/views/Events/ManageEventConfiguration.jsx"],"sourcesContent":["import {\n retrieveAllForm,\n retrieveByUUID,\n retrieveManualEvents,\n save,\n update,\n} from \"../../services/EventConfig\";\nimport {\n getReportsList,\n retrieveAllNotifications,\n} from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomTextArea from \"@/views/custom-components/CustomTextArea\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport \"./Styles/ManageEventConfiguration.scss\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport CustomDropdown from \"@/views/custom-components/CustomDropdown\";\nimport {\n Box,\n Button,\n Card,\n CardActions,\n CardContent,\n CardHeader,\n Divider,\n FormControl,\n MenuItem,\n Paper,\n Select,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport React, { lazy, Suspense, useEffect, useRef, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { useNavigate } from \"react-router\";\nimport { useParams } from \"react-router-dom\";\nimport * as Yup from \"yup\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nconst ConditionConfig = lazy(() => import(\"./ConditionConfig\"));\nconst MobileTypeEventConfigModal = lazy(\n () => import(\"./MobileTypeEventConfigModal\")\n);\nconst OtherTypeEventConfigModal = lazy(\n () => import(\"./OtherTypeEventConfigModal\")\n);\nimport { ManageEventConfigurationSkeleton } from \"./Skeletons/EventsSkeleton\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faPen, faPlus, faTrash } from \"@fortawesome/free-solid-svg-icons\";\n\n/**\n * ManageEventConfiguration component handles the creation and editing\n * of event configurations, including various notification types and triggers.\n * @module ManageEventConfiguration\n *\n *\n *\n * @component\n */\nfunction ManageEventConfiguration() {\n const { translate } = useTranslateProvider();\n\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const { id } = useParams();\n const navigate = useNavigate();\n const [forms, setForms] = useState(null);\n const [events, setEvents] = useState(null);\n const [notificationTypeMap, setNotificationTypeMap] = useState({});\n const [notificationConfigDetails, setNotificationConfigDetails] = useState(\n []\n );\n const [selectedConfigIndex, setSelectedConfigIndex] = useState(null);\n const [selectedConfig, setSelectedConfig] = useState(null);\n const [selectedCondition, setSelectedCondition] = useState(null);\n const [selectedIndex, setSelectedIndex] = useState(null);\n const [newCondition, setNewCondition] = useState(null);\n const [conditionEditMode, setConditionEditMode] = useState(null);\n const [selectedTypeConfig, setSelectedTypeConfig] = useState(null);\n const [newType, setNewType] = useState(null);\n const [overlayOpen, setOverlayOpen] = useState(false);\n const [typeEditMode, setTypeEditMode] = useState(false);\n const [toggleOtherOpen, setToggleOtherOpen] = useState(false);\n const [typeConfigurationData, setTypeConfigurationData] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [reportList, setReportList] = useState([]);\n const bodyLineHeight = window.getComputedStyle(document.body).lineHeight;\n /**\n * Toggles the overlay open/closed state.\n *\n * @function handleOverlayState\n */\n const handleOverlayState = () => setOverlayOpen(!overlayOpen);\n\n const validationSchema = Yup.object().shape({\n name: Yup.string().required(\"Enter Name\"),\n eventType: Yup.string().required(\"Select Event Type\"),\n recursionInterval: Yup.number()\n .typeError(\"Recursion Interval must be a number\")\n .when([], {\n is: () => eventType === \"RECURSION\",\n then: (schema) =>\n schema\n .required(\"Recursion Interval is required\")\n .moreThan(0, \"Recursion Interval must be greater than or equal to 1\")\n .lessThan(1441, \"Recursion Interval must be less than or equal to 1440\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n trigerWhen: Yup.string().test(\n \"is-required\",\n \"trigerWhen is required\",\n function (value) {\n if (eventType === \"TIMMER_BASED\") {\n return !!value;\n }\n return true;\n }\n ),\n day: Yup.string().test(\"is-required\", \"day is required\", function (value) {\n if (\n eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" || trigerWhen === \"MONTHLY\")\n ) {\n return !!value;\n }\n return true;\n }),\n hour: Yup.string().test(\n \"is-required\",\n \"hour is required\",\n function (value) {\n if (\n eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"DAILY\")\n ) {\n return !!value;\n }\n return true;\n }\n ),\n minute: Yup.string().notRequired(),\n // notificationConfigDetails: Yup.array().of(\n // Yup.object().shape({\n // query: Yup.string().required('Query is required'), // Ensure query is present\n // // condition: Yup.string().required('Condition is required'), // Ensure condition is present\n // // action: Yup.string().required('Action is required'), // Ensure action is present\n // })\n // ),\n });\n const {\n control,\n handleSubmit,\n setValue,\n setError,\n clearErrors,\n getValues,\n watch,\n formState: { errors },\n } = useForm({\n defaultValues: {\n name: \"\",\n description: \"\",\n eventType: \"\",\n recursionInterval: 0,\n minute: 0\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n const eventType = watch(\"eventType\");\n let trigerWhen = watch(\"trigerWhen\");\n\n /**\n * Handles form submission.\n *\n * @async\n * @function submit\n * @param {Object} data - The form data to submit.\n */\n\n useEffect(() => {\n let form = formRef.current;\n\n return () => {\n trackEvent(\"conversion_event\", {\n form,\n form_name: \"Manage Event Configuration\",\n submit: submitRef.current,\n }); // Use the current ref value\n };\n }, []);\n const submit = async (data) => {\n try {\n if (notificationConfigDetails.length > 0) {\n data.minute = Number(data.minute || 0);\n data.notificationConfigDetails = notificationConfigDetails;\n\n const isTimerBased = eventType === \"TIMMER_BASED\";\n const isFormSubmitted = eventType === \"FORM_SUBMITTED\";\n const isManual = eventType === \"MANUAL\";\n const isRecursion = eventType === \"RECURSION\";\n if (!isTimerBased) {\n delete data.trigerWhen;\n delete data.day;\n delete data.hour;\n delete data.minute;\n }\n if (!isFormSubmitted) {\n delete data.formTypeId;\n }\n if (!isFormSubmitted && !isManual) {\n delete data.eventTypeDetailCode;\n delete data.eventTypeDetailId;\n }\n if (isRecursion) {\n delete data.formTypeId;\n data.trigerWhen = \"RECURSION\";\n } else {\n delete data.recursionInterval;\n }\n\n const needsDay = [\"AFTER\", \"MONTHLY\", \"WEEKLY\"];\n const needsHour = [\"AFTER\", \"MONTHLY\", \"DAILY\", \"WEEKLY\"];\n if (!needsDay.includes(trigerWhen)) {\n delete data.day;\n }\n if (!needsHour.includes(trigerWhen)) {\n delete data.day;\n delete data.hour;\n }\n if (trigerWhen === \"IMMEDIATELY\") {\n delete data.day;\n delete data.hour;\n delete data.minute;\n }\n const cleanedNotificationConfigDetails = notificationConfigDetails.map(config => ({\n ...config,\n conditions: config.conditions?.map(condition => ({\n ...condition,\n notificaitonConfigsType: condition.notificaitonConfigsType ? condition.notificaitonConfigsType.map(typeConfig => ({\n ...typeConfig,\n queryCode: typeConfig.queryCode === \"\" ? null : typeConfig.queryCode\n })) : condition.notificaitonConfigsType\n }))\n }));\n data.notificationConfigDetails = cleanedNotificationConfigDetails;\n if (id) {\n await update(data);\n } else {\n await save(data);\n }\n\n trackEvent(\"button_click\", {\n button_name: \"manageeventconfiguration-save-button\",\n button_type: \"submit\",\n button_id: \"manageeventconfiguration-save-button\",\n });\n\n showToast({\n message: id\n ? \"Event Configuration Updated successfully\"\n : \"submit successfully\",\n type: \"success\",\n });\n submitRef.current = true;\n navigate(\"/ui/medplat/notification/all\");\n } else {\n showToast({\n message: \"Please add atleast query / condition for the configuration\",\n type: \"warn\",\n });\n }\n } catch {\n showToast({ message: \"submit problem\", type: \"error\" });\n setIsLoading((cur) => !cur);\n }\n };\n\n useEffect(() => {\n loadInitialData();\n }, []);\n\n /**\n * Loads initial data for forms, events, and notification types when the component mounts.\n *\n * @async\n * @function loadInitialData\n */\n const loadInitialData = async () => {\n try {\n setIsLoading((cur) => !cur);\n const res = await retrieveAllForm({ is_active: true });\n setForms(res?.data);\n const manualevent = await retrieveManualEvents();\n\n setEvents(manualevent?.data);\n const notificationtype = await retrieveAllNotifications(true);\n let notificationtypeObject = {};\n notificationtype?.data?.forEach((type) => {\n notificationtypeObject[type?.id] = type?.notificationName;\n });\n setNotificationTypeMap(notificationtypeObject);\n\n const { data: reportList } = await getReportsList(); // doubt for import\n setReportList(reportList || []);\n\n if (id) {\n const responseByid = await retrieveByUUID(id);\n responseByid?.data?.notificationConfigDetails?.forEach((config) => {\n setImplicitParam(config);\n });\n let data = responseByid?.data;\n Object.keys(data)?.forEach((key) => {\n if (data[key] !== undefined && data[key] !== null) {\n setValue(key, data[key]);\n }\n });\n setNotificationConfigDetails(data?.notificationConfigDetails || []);\n }\n setIsLoading((cur) => !cur);\n } catch (error) {\n showToast({\n message: \"Error in loading manage events\",\n type: `Error:${error?.message}`,\n });\n setIsLoading((cur) => !cur);\n }\n };\n\n /**\n * Sets implicit parameters for a given notification configuration.\n *\n * @function setImplicitParam\n * @param {Object} config - The notification configuration object.\n */\n const setImplicitParam = (config) => {\n config.implicitParam = [\"#resourceId#\"];\n\n const fromPattern = /\\bFROM\\b/gi;\n const selectPattern = /\\bSELECT\\b/gi;\n\n if (config?.query) {\n const fromCount = (config.query.match(fromPattern) || []).length;\n const selectCount = (config.query.match(selectPattern) || []).length;\n let namedParameters;\n\n if (selectCount > 0) {\n if (fromCount > 1 && fromCount === selectCount) {\n namedParameters = config.query\n .substring(6, config.query.search(/\\bfrom\\b(?!(.|\\n)*(from))/i))\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/g);\n } else if (fromCount !== selectCount) {\n namedParameters = config.query\n .substring(6)\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n } else if (fromCount === 1 && fromCount === selectCount) {\n namedParameters = config.query\n .substring(6, config.query.toLowerCase().indexOf(\"from\"))\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n } else {\n namedParameters = config.query\n .substring(6)\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n }\n\n const finalParameters = namedParameters?.filter(\n (parameter) => parameter.trim().length > 0\n );\n finalParameters?.forEach((parameter) => {\n let tempParameter = parameter.trim();\n if (tempParameter.toLowerCase().indexOf(\"as\") === 0) {\n tempParameter = parameter;\n }\n if (tempParameter.endsWith(\";\")) {\n tempParameter = tempParameter.slice(0, -1);\n }\n if (tempParameter !== \"*\") {\n const aliasIndex = tempParameter.toLowerCase().lastIndexOf(\" as \");\n if (aliasIndex >= 0) {\n const parameterWithAlias = tempParameter\n .substring(aliasIndex + 4)\n .trim();\n config.implicitParam.push(\"#\" + parameterWithAlias + \"#\");\n } else {\n config.implicitParam.push(\"#\" + tempParameter + \"#\");\n }\n }\n });\n }\n }\n };\n\n /**\n * Handles the deletion of a row in the notification configurations.\n *\n * @function handleDeleteRow\n * @param {number} index - The index of the configuration to delete.\n */\n const handleDeleteRow = (index) => {\n const newRows = notificationConfigDetails?.filter(\n (_, rowIndex) => rowIndex !== index\n );\n setNotificationConfigDetails(newRows);\n };\n\n /**\n * Deletes a specific condition from a configuration.\n *\n * @function deleteCondition\n * @param {number} configIndex - The index of the configuration containing the condition.\n * @param {number} index - The index of the condition to delete.\n */\n\n const deleteCondition = (configIndex, index) => {\n const notificationConfigDetail = [...notificationConfigDetails];\n\n const filteredConditions = notificationConfigDetail[\n configIndex\n ].conditions.filter((_, idx) => idx !== index);\n notificationConfigDetail[configIndex].conditions = filteredConditions;\n setNotificationConfigDetails(notificationConfigDetail);\n };\n /**\n * Opens the condition modal for adding or editing a condition.\n *\n * @async\n * @function openConditionModal\n * @param {Object} config - The configuration object containing the conditions.\n * @param {number} configIndex - The index of the configuration.\n * @param {Object} condition - The condition to be edited (if any).\n * @param {number} index - The index of the condition to be edited.\n */\n const openConditionModal = async (config, configIndex, condition, index) => {\n setSelectedConfig(config);\n setSelectedConfigIndex(configIndex);\n if (condition) {\n setSelectedCondition(condition);\n setConditionEditMode(true);\n setNewCondition(JSON.parse(JSON.stringify(condition)));\n\n setTypeConfigurationData(condition?.notificaitonConfigsType || []);\n setSelectedIndex(index);\n } else {\n setSelectedCondition({});\n setNewCondition({});\n setTypeConfigurationData([]);\n setConditionEditMode(false);\n }\n setNewType({});\n handleOverlayState();\n };\n\n /**\n * Handles changes to the query text in the notification configuration.\n *\n * @function handleTextChange\n * @param {number} index - The index of the configuration being updated.\n * @param {string} value - The new query value.\n */\n const handleTextChange = (index, value) => {\n const newConfig = [...notificationConfigDetails];\n newConfig[index].query = value; // Update the query in the configuration\n setNotificationConfigDetails(newConfig);\n };\n\n /**\n * Adds a new notification configuration to the list.\n *\n * @async\n * @function addConfiguration\n */\n const addConfiguration = async () => {\n let configuration = [...notificationConfigDetails];\n let addconfiguration = true;\n notificationConfigDetails.forEach((notification, index) => {\n if (notification.query === \"\") {\n addconfiguration = false;\n const fieldPath = `notificationConfigDetails.${index}.query`;\n\n setError(fieldPath, { type: \"manual\", message: \"Query Required\" });\n }\n });\n if (addconfiguration) {\n configuration.push({ query: \"\", conditions: [], queryParam: null });\n setNotificationConfigDetails(configuration);\n }\n };\n\n /**\n * Adds or edits a type configuration associated with a condition.\n *\n * @async\n * @function addTypeConfig\n * @param {Object} config - The type configuration configuration.push({ query: '', conditions: [], queryParam: null });\n setNotificationConfigDetails(configuration); to add or edit.\n * @param {number} index - The index of the configuration being edited (if applicable).\n */\n const addTypeConfig = async (config, index) => {\n if (config) {\n config.index = index;\n setSelectedTypeConfig(config);\n setNewType({\n ...JSON.parse(JSON.stringify(config)),\n implicitParam: selectedConfig.implicitParam,\n });\n setTypeEditMode(true);\n } else {\n setNewType({ ...newType, implicitParam: selectedConfig.implicitParam });\n setTypeEditMode(false);\n }\n openAddConfigurationModal();\n };\n\n /**\n * Opens the modal for adding or editing a type configuration.\n *\n * @function openAddConfigurationModal\n */\n const openAddConfigurationModal = () => {\n setToggleOtherOpen((cur) => !cur);\n };\n\n /**\n * Handles the addition of a new type configuration.\n *\n * @function handleOtherTypeConfiguration\n * @param {Object} data - The type configuration data to add.\n */\n const handleOtherTypeConfiguration = (data) => {\n if (typeEditMode) {\n const updatedData = typeConfigurationData.map((item, index) => {\n if (index === data.index) {\n return { ...item, ...data };\n }\n return item;\n });\n setTypeConfigurationData(updatedData);\n } else {\n setTypeConfigurationData([...typeConfigurationData, data]);\n }\n addTypeConfiguration(data);\n };\n\n /**\n * Deletes a specific type configuration from the list.\n *\n * @function handleTypeConfigurationDelete\n * @param {number} index - The index of the type configuration to delete.\n */\n const handleTypeConfigurationDelete = (index) => {\n setTypeConfigurationData((prevData) =>\n prevData.filter((_, i) => i !== index)\n );\n };\n\n /**\n * Initiates the editing of a type configuration by setting it as the selected type configuration.\n *\n * @function handleTypeConfigurationEdit\n * @param {number} index - The index of the type configuration to edit.\n */\n const handleTypeConfigurationEdit = (index) => {\n addTypeConfig(typeConfigurationData[index], index);\n };\n\n /**\n * Adds a type configuration to the new condition being created or edited.\n *\n * @function addTypeConfiguration\n * @param {Object} data - The type configuration data to add.\n */\n const addTypeConfiguration = (data) => {\n let condition = { ...newCondition };\n if (!newCondition.notificaitonConfigsType) {\n condition.notificaitonConfigsType = [];\n }\n if (typeEditMode) {\n condition.notificaitonConfigsType[selectedTypeConfig.index] = data;\n } else {\n condition.notificaitonConfigsType.push(data);\n }\n\n setNewCondition(condition);\n setNewType({});\n };\n\n const trackEvent = useTrackEvent();\n\n /**\n * Updates the new condition data based on the provided input.\n * If in edit mode, it updates an existing condition; otherwise, it adds a new one.\n *\n * @function setNewConditionData\n * @param {Object} data - The data to set for the new condition.\n * @param {boolean} conditionEditMode - A flag indicating if the condition is being edited.\n */\n const setNewConditionData = (data) => {\n if (conditionEditMode) {\n const notificationConfigDetail = [...notificationConfigDetails];\n setNewCondition({ ...newCondition, ...data });\n let conditions = { ...newCondition, ...data };\n notificationConfigDetail[selectedConfigIndex].conditions[selectedIndex] =\n conditions;\n setNotificationConfigDetails(notificationConfigDetail);\n setTypeConfigurationData([]);\n } else {\n const notificationConfigDetail = [...notificationConfigDetails];\n setNewCondition({ ...newCondition, ...data });\n let conditions = { ...newCondition, ...data };\n notificationConfigDetail[selectedConfigIndex].conditions.push(conditions);\n setNotificationConfigDetails(notificationConfigDetail);\n setTypeConfigurationData([]);\n }\n };\n\n /**\n * Updates the new type data based on the provided input.\n *\n * @function setNewTypeData\n * @param {Object} data - The data to set for the new type.\n */\n const setNewTypeData = (data) => {\n setNewType({ ...newType, ...data });\n };\n\n return (\n <>\n <ManageEventConfigurationSkeleton isLoading={isLoading}>\n <Card\n className=\"manage-eventConfiguration-type-body\"\n component=\"form\"\n ref={formRef}\n onSubmit={handleSubmit(submit)}\n data-testid=\"manageeventconfiguration-form\"\n >\n <CardHeader\n className=\"p-2.5 px-5 flex border-b text-customBlue\"\n subheader={translate(\n `${id ? \"UPDATE\" : \"ADD\"} EVENT CONFIGURATION`,\n )}\n slotProps={{\n subheader: { className: \"font-medium text-lg text-customBlue\" },\n }}\n data-testid=\"manageeventconfiguration-cardheader-subheader\"\n />\n <CardContent data-testid=\"manageeventconfiguration-cardcontent\">\n <Grid container spacing={2}>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-name-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Name\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <CustomTextField\n control={control}\n id=\"name\"\n name=\"name\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-name-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-description-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Description\")}\n </Typography>\n <Box className=\"w-full\">\n <CustomTextArea\n control={control}\n id=\"description\"\n name=\"description\"\n errors={errors}\n label=\"\"\n minRows={2}\n data-testid=\"manageeventconfiguration-description-textarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-eventtype-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Event Type\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"eventType\"\n control={control}\n defaultValue=\"\"\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n labelId=\"event-type-label\"\n id=\"reportgroup\"\n {...field}\n error={errors.eventType}\n size=\"small\"\n data-testid=\"manageeventconfiguration-eventtype-select\"\n >\n <MenuItem value=\"FORM_SUBMITTED\">\n <Typography variant=\"body2\">\n {translate(\"Form Submitted\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"TIMMER_BASED\">\n <Typography variant=\"body2\">\n {translate(\"Timer Based\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MANUAL\">\n <Typography variant=\"body2\">\n {translate(\"Manual\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"RECURSION\">\n <Typography variant=\"body2\">\n {translate(\"Recursion\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.eventType && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"custom-error-message\"\n >\n {errors?.eventType?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n {eventType === \"FORM_SUBMITTED\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-formtype-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Form Type\")}\n </Typography>\n <Box className=\"w-full\">\n <Controller\n className=\"w-full\"\n name=\"formTypeId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\"w-full\"\n labelId=\"event-type-label\"\n displayEmpty\n size=\"small\"\n onChange={(e) => {\n const selectedId = e.target.value;\n field.onChange(selectedId);\n const selectedData = forms.find(\n (data) => data.id === selectedId,\n );\n setValue(\n \"eventTypeDetailCode\",\n selectedData?.code,\n );\n setValue(\n \"eventTypeDetailId\",\n selectedData?.detaiId || null,\n );\n }}\n data-testid=\"manageeventconfiguration-formtype-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n {forms?.map((data) => (\n <MenuItem key={data.id} value={data.id}>\n <Typography variant=\"body2\">\n {translate(data.name)}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-triggerwhen-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Trigger When\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"trigerWhen\"\n control={control}\n defaultValue=\"\"\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n {...field}\n value={field.value}\n error={errors.trigerWhen}\n size=\"small\"\n data-testid=\"manageeventconfiguration-triggerwhen-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"IMMEDIATELY\">\n <Typography variant=\"body2\">\n {translate(\"Immediately\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"AFTER\">\n <Typography variant=\"body2\">\n {translate(\"After\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MONTHLY\">\n <Typography variant=\"body2\">\n {translate(\"Monthly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"WEEKLY\">\n <Typography variant=\"body2\">\n {translate(\"Weekly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"DAILY\">\n <Typography variant=\"body2\">\n {translate(\"Daily\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"HOURLY\">\n <Typography variant=\"body2\">\n {translate(\"Hourly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MINUTE\">\n <Typography variant=\"body2\">\n {translate(\"Minutely\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.trigerWhen && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"custom-error-message\"\n >\n {errors?.trigerWhen?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"WEEKLY\") && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-day-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"day\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n id=\"day\"\n name=\"day\"\n errors={errors}\n type=\"number\"\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-day-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"DAILY\" ||\n trigerWhen === \"WEEKLY\") && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-hour-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Hour\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n id=\"hour\"\n name=\"hour\"\n type=\"number\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-hour-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n trigerWhen &&\n trigerWhen !== \"IMMEDIATELY\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-minute-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Minute\")}\n </Typography>\n <CustomTextField\n control={control}\n id=\"minute\"\n name=\"minute\"\n errors={errors}\n type=\"number\"\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-minute-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"RECURSION\" && (\n <Grid item size={{ xs: 12, sm: 6 }}>\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Recursion Interval (in Minutes)\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <CustomTextField\n type=\"number\"\n control={control}\n id=\"recursionInterval\"\n name=\"recursionInterval\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-recursionInterval-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {(eventType === \"TIMMER_BASED\" || eventType === \"RECURSION\") && (\n <Grid item size={{ xs: 12, sm: 6 }}>\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Reports\")}\n </Typography>\n <Box className=\"w-full\">\n <CustomDropdown\n id=\"reportUUID\"\n name=\"reportUUID\"\n displayName=\"name\"\n optionValue=\"uuid\"\n multiple\n control={control}\n options={reportList}\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"MANUAL\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-event-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Event\")}\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"eventTypeDetailCode\"\n control={control}\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n {...field}\n value={field.value}\n error={errors.eventTypeDetailCode}\n size=\"small\"\n data-testid=\"manageeventconfiguration-eventtype-detail-select\"\n >\n <MenuItem value=\"\">{translate(\"None\")}</MenuItem>\n {events &&\n Object.entries(events).map(([key, data]) => (\n <MenuItem key={key} value={key}>\n {data}\n </MenuItem>\n ))}\n </Select>\n )}\n />\n {errors?.eventTypeDetailCode && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"manageeventconfiguration-eventtype-detail-error\"\n >\n {errors?.eventTypeDetailCode?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n )}\n </Grid>\n <Divider className=\"m-[20px_3px]\" />\n <Grid\n container\n spacing={5}\n justifyContent=\"space-between\"\n alignItems=\"center\"\n data-testid=\"manageeventconfiguration-add-configuration\"\n >\n <Grid item>\n <Typography variant=\"body2\">\n {translate(\"Add Configuration\")}\n </Typography>\n </Grid>\n <Grid item>\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={addConfiguration}\n data-testid=\"manageeventconfiguration-add-button\"\n >\n {translate(\"Add\")}\n </Button>\n </Grid>\n </Grid>\n <Grid container className=\"w-full mt-5\">\n <Grid item className=\"w-full\">\n <TableContainer\n component={Paper}\n className=\"w-full\"\n data-testid=\"manageeventconfiguration-table-container\"\n >\n <Table sx={{ minWidth: 800 }}>\n <TableHead>\n <TableRow\n sx={{\n backgroundColor: (theme) =>\n theme.palette.mode === \"dark\"\n ? theme.palette.custom.tableHeader\n : \"var(--color-gray4)\",\n }}\n >\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-query\"\n >\n {translate(\"Query\")}\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-condition\"\n >\n {translate(\"Condition\")}\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-action\"\n >\n {translate(\"Actions\")}\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {notificationConfigDetails?.map((row, index) => (\n <TableRow\n key={index + 1}\n sx={{\n backgroundColor: (theme) => {\n const isDark = theme.palette.mode === \"dark\";\n if (index % 2 === 0) {\n // Even rows: White in light mode, deep background in dark mode\n return isDark\n ? theme.palette.background.paper\n : \"#fff\";\n } else {\n // Odd rows: Light gray in light mode, slightly lighter gray/blue in dark mode\n return isDark ? \"#1C2128\" : \"var(--color-gray4)\";\n }\n },\n // Adding a hover state that works in both modes\n \"&:hover\": {\n backgroundColor: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"#21262D\"\n : \"var(--color-gray4)\",\n },\n }}\n data-testid={`manageeventconfiguration-table-row-${index}`}\n >\n <TableCell\n className=\"border border-gray-300 align-top\"\n style={{ lineHeight: bodyLineHeight }}\n data-testid={`manageeventconfiguration-table-row-${index}-query`}\n >\n <div className=\"flex flex-col items-start min-w-[300px]\">\n <FormControl\n variant=\"outlined\"\n className=\"w-full\"\n >\n <Box className=\"w-full\">\n <CustomTextArea\n required\n control={control}\n id={`notificationConfigDetails.${index}.query`}\n name={`notificationConfigDetails.${index}.query`}\n errors={errors}\n value={row.query}\n onChange={(e) => {\n setValue(\n `notificationConfigDetails.${index}.query`,\n e.target.value,\n );\n handleTextChange(index, e.target.value);\n const fieldPath = `notificationConfigDetails.${index}.query`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message: \"Query Required\",\n });\n } else {\n clearErrors(fieldPath);\n }\n }}\n onBlur={() => {\n const fieldPath = `notificationConfigDetails.${index}.query`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message: \"Query Required\",\n });\n } else {\n clearErrors(fieldPath);\n }\n setImplicitParam(row);\n }}\n label=\"\"\n minRows={5}\n maxRows={20}\n data-testid={`manageeventconfiguration-table-row-${index}-query-textarea`}\n />\n </Box>\n </FormControl>\n <td\n style={{\n whiteSpace: \"normal\",\n width: \"100%\",\n overflowWrap: \"break-word\",\n }}\n >\n <b>{row?.implicitParam}</b>\n </td>\n </div>\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition`}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n width: \"100%\",\n }}\n >\n {row?.conditions?.length > 0 ? (\n row?.conditions.map(\n (condition, conditionIndex) => (\n <div\n key={conditionIndex + 1}\n style={{ width: \"100%\" }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n }}\n data-testid={\n \"manageeventconfiguration-condition-rows\"\n }\n >\n <Typography\n className=\"mr-1\"\n variant=\"body2\"\n >\n {condition?.condition ||\n \"No condition specified\"}\n </Typography>\n <FontAwesomeIcon\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[#11B666] transition-all\"\n icon={faPen}\n onClick={() =>\n openConditionModal(\n row,\n index,\n condition,\n conditionIndex,\n )\n }\n data-testid={`manageeventconfiguration-table-row-${index}-condition-edit-${conditionIndex}`}\n />\n <FontAwesomeIcon\n icon={faTrash}\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[var(--color-error)] transition-all\"\n onClick={() =>\n deleteCondition(\n index,\n conditionIndex,\n )\n }\n data-testid={`manageeventconfiguration-table-row-${index}-condition-delete-${conditionIndex}`}\n />\n {conditionIndex ===\n row?.conditions.length - 1 && (\n <FontAwesomeIcon\n icon={faPlus}\n onClick={() =>\n openConditionModal(row, index)\n }\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[var(--color-primary)] transition-all\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition-add`}\n />\n )}\n </div>\n {conditionIndex <\n row?.conditions.length - 1 && (\n <Divider className=\"w-full m-[10px_0px]\" />\n )}\n </div>\n ),\n )\n ) : (\n <div\n className=\"flex flex-row items-center justify-between w-full mt-2 sm:mt-0 text-[14px]\"\n >\n <span className=\"mr-3 flex-1\">{translate(\"No Condition Added\")}</span>\n <div className=\"flex items-center gap-3\">\n <FontAwesomeIcon\n icon={faPlus}\n onClick={() =>\n openConditionModal(row, index)\n }\n className=\"bg-gray-200 text-gray-600 rounded-full p-2 w-[16px] h-[16px] cursor-pointer hover:bg-gray-300 hover:text-[var(--color-primary)] transition-all\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition-add-empty`}\n />\n </div>\n </div>\n )}\n </div>\n </TableCell>\n\n <TableCell\n className=\"border border-gray-300 align-top\"\n data-testid={`manageeventconfiguration-table-row-${index}-action`}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n }}\n >\n <Button\n onClick={() => {\n handleDeleteRow(index);\n const fieldPath = `notificationConfigDetails.${index}.query`;\n clearErrors(fieldPath);\n }}\n size=\"small\"\n aria-label=\"delete\"\n data-testid={`manageeventconfiguration-table-row-${index}-action-delete`}\n >\n <FontAwesomeIcon\n icon={faTrash}\n className=\"text-[19px] text-[var(--color-error)]\"\n />\n </Button>\n </div>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n </Grid>\n </Grid>\n </CardContent>\n <Divider className=\"m-[8px_0px]\" />\n <CardActions\n className=\"flex flex-col sm:flex-row justify-end gap-2\"\n data-testid=\"manageeventconfiguration-cardactions\"\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n type=\"button\"\n size=\"small\"\n className=\"w-full sm:w-auto\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"manageeventconfiguration-back-button\",\n button_type: \"cancel\",\n button_id: \"manageeventconfiguration-back-button\",\n });\n navigate(\"/ui/medplat/notification/all\");\n }}\n data-testid=\"manageeventconfiguration-back-button\"\n >\n {translate(\"Cancel\")}\n </Button>\n <Button\n size=\"small\"\n variant=\"contained\"\n type=\"submit\"\n color=\"primary\"\n className=\"w-full sm:w-auto m-0\"\n data-testid=\"manageeventconfiguration-save-button\"\n >\n {translate(`${id ? \"Update\" : \"Save\"}`)}\n </Button>\n </CardActions>\n </Card>\n </ManageEventConfigurationSkeleton>\n <Suspense>\n <ConditionConfig\n selectedConfig={selectedConfig}\n notificationtypeMap={notificationTypeMap}\n selectedCondition={selectedCondition}\n newCondition={newCondition}\n handleTypeConfigurationDelete={handleTypeConfigurationDelete}\n handleTypeConfigurationEdit={handleTypeConfigurationEdit}\n addTypeConfig={addTypeConfig}\n setNewConditionData={setNewConditionData}\n typeConfigurationData={typeConfigurationData}\n setNewTypeData={setNewTypeData}\n overlayOpen={overlayOpen}\n handleOverlayState={handleOverlayState}\n data-testid=\"manageeventconfiguration-conditionconfig\"\n />\n </Suspense>\n <Suspense>\n {newType?.type === \"MOBILE\" ? (\n <MobileTypeEventConfigModal\n type={newType}\n open={toggleOtherOpen}\n notificationtypeMap={notificationTypeMap}\n handleClick={handleOtherTypeConfiguration}\n handleClose={() => {\n setToggleOtherOpen((cur) => !cur);\n setNewType({});\n }}\n data-testid=\"manageeventconfiguration-mobiletypeeventconfigmodal\"\n />\n ) : (\n <OtherTypeEventConfigModal\n type={newType}\n open={toggleOtherOpen}\n handleClick={handleOtherTypeConfiguration}\n handleClose={() => {\n setToggleOtherOpen((cur) => !cur);\n setNewType({});\n }}\n data-testid=\"manageeventconfiguration-othertypeeventconfigmodal\"\n />\n )}\n </Suspense>\n </>\n );\n}\n\nexport default ManageEventConfiguration;\n"],"names":["ConditionConfig","lazy","MobileTypeEventConfigModal","OtherTypeEventConfigModal","ManageEventConfiguration","translate","useTranslateProvider","formRef","useRef","submitRef","id","useParams","navigate","useNavigate","forms","setForms","useState","events","setEvents","notificationTypeMap","setNotificationTypeMap","notificationConfigDetails","setNotificationConfigDetails","selectedConfigIndex","setSelectedConfigIndex","selectedConfig","setSelectedConfig","selectedCondition","setSelectedCondition","selectedIndex","setSelectedIndex","newCondition","setNewCondition","conditionEditMode","setConditionEditMode","selectedTypeConfig","setSelectedTypeConfig","newType","setNewType","overlayOpen","setOverlayOpen","typeEditMode","setTypeEditMode","toggleOtherOpen","setToggleOtherOpen","typeConfigurationData","setTypeConfigurationData","isLoading","setIsLoading","reportList","setReportList","bodyLineHeight","handleOverlayState","validationSchema","Yup","eventType","schema","value","trigerWhen","control","handleSubmit","setValue","setError","clearErrors","getValues","watch","errors","useForm","yupResolver","useEffect","form","trackEvent","submit","data","isTimerBased","isFormSubmitted","isManual","isRecursion","needsDay","needsHour","cleanedNotificationConfigDetails","config","_a","condition","typeConfig","update","save","showToast","cur","loadInitialData","res","retrieveAllForm","manualevent","retrieveManualEvents","notificationtype","retrieveAllNotifications","notificationtypeObject","type","getReportsList","responseByid","retrieveByUUID","_c","_b","setImplicitParam","_d","key","error","fromPattern","selectPattern","fromCount","selectCount","namedParameters","finalParameters","parameter","tempParameter","aliasIndex","parameterWithAlias","handleDeleteRow","index","newRows","_","rowIndex","deleteCondition","configIndex","notificationConfigDetail","filteredConditions","idx","openConditionModal","handleTextChange","newConfig","addConfiguration","configuration","addconfiguration","notification","fieldPath","addTypeConfig","openAddConfigurationModal","handleOtherTypeConfiguration","updatedData","item","addTypeConfiguration","handleTypeConfigurationDelete","prevData","i","handleTypeConfigurationEdit","useTrackEvent","setNewConditionData","conditions","setNewTypeData","jsxs","Fragment","jsx","ManageEventConfigurationSkeleton","Card","CardHeader","CardContent","Grid","FormControl","Typography","Box","CustomTextField","CustomTextArea","Controller","field","Select","MenuItem","e","selectedId","selectedData","CustomDropdown","Divider","Button","TableContainer","Paper","Table","TableHead","TableRow","theme","TableCell","TableBody","row","isDark","conditionIndex","FontAwesomeIcon","faPen","faTrash","faPlus","CardActions","Suspense"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManageRole-CGYfglpo.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 ].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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"}