@argusoft/medplat-core 1.0.30 → 1.0.31

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 (156) hide show
  1. package/dist/{AccessRights-xrday-L1.js → AccessRights-DUgY6ewy.js} +151 -143
  2. package/dist/AccessRights-DUgY6ewy.js.map +1 -0
  3. package/dist/AddMenuConfiguration-c6ZKiN0i.js +8898 -0
  4. package/dist/AddMenuConfiguration-c6ZKiN0i.js.map +1 -0
  5. package/dist/{BrandsPage-DmRW5bhm-Bk1szrjI.js → BrandsPage-DMw2vT0u-BVhvhc6J.js} +14 -14
  6. package/dist/{BrandsPage-DmRW5bhm-Bk1szrjI.js.map → BrandsPage-DMw2vT0u-BVhvhc6J.js.map} +1 -1
  7. package/dist/{CategoriesPage-BsS5IQh3-B03lWRY5.js → CategoriesPage-D3ihx9Gi-CT58g0ry.js} +112 -105
  8. package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js.map +1 -0
  9. package/dist/{ChangePasswordModalCore-BPsJquTS.js → ChangePasswordModalCore-lQ9GamH1.js} +3 -3
  10. package/dist/{ChangePasswordModalCore-BPsJquTS.js.map → ChangePasswordModalCore-lQ9GamH1.js.map} +1 -1
  11. package/dist/ConditionConfig-BQBmBHaM.js +408 -0
  12. package/dist/ConditionConfig-BQBmBHaM.js.map +1 -0
  13. package/dist/{DashboardPage-C3bKc5na-sBd9Yqbi.js → DashboardPage-asr2XDRu-uOOlX9Vq.js} +29 -29
  14. package/dist/{DashboardPage-C3bKc5na-sBd9Yqbi.js.map → DashboardPage-asr2XDRu-uOOlX9Vq.js.map} +1 -1
  15. package/dist/EventConfig-BY2cgGyx.js +27 -0
  16. package/dist/{EventConfig-BmLemzX3.js.map → EventConfig-BY2cgGyx.js.map} +1 -1
  17. package/dist/EventConfigurations-CUPEN5BV.js +544 -0
  18. package/dist/EventConfigurations-CUPEN5BV.js.map +1 -0
  19. package/dist/EventConfigurations.css +1 -1
  20. package/dist/EventsExceptionModal-BX-ArkBE.js +188 -0
  21. package/dist/EventsExceptionModal-BX-ArkBE.js.map +1 -0
  22. package/dist/EventsUi-D6O9S7BK.js +258 -0
  23. package/dist/EventsUi-D6O9S7BK.js.map +1 -0
  24. package/dist/{FacilityPicker-BiZeupmP-CyPHmj6b.js → FacilityPicker-DYl_PDyt-Cbwo2tAY.js} +10 -10
  25. package/dist/{FacilityPicker-BiZeupmP-CyPHmj6b.js.map → FacilityPicker-DYl_PDyt-Cbwo2tAY.js.map} +1 -1
  26. package/dist/{FeatureMenu-DYJmDt7q.js → FeatureMenu-CHsBbw3W.js} +9 -5
  27. package/dist/FeatureMenu-CHsBbw3W.js.map +1 -0
  28. package/dist/{FhirServerList-DuTwnngN.js → FhirServerList-iXBPkRVF.js} +11 -11
  29. package/dist/{FhirServerList-DuTwnngN.js.map → FhirServerList-iXBPkRVF.js.map} +1 -1
  30. package/dist/{GrantPermissionModal-BDN66Atn.js → GrantPermissionModal-D7iNZd0M.js} +54 -51
  31. package/dist/GrantPermissionModal-D7iNZd0M.js.map +1 -0
  32. package/dist/{ImmunizationConfigurationBase-Di1KO3oW.js → ImmunizationConfigurationBase-aUtx0JEe.js} +3440 -3060
  33. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js.map +1 -0
  34. package/dist/{InventoryPage-C_AxSy7A-QLvlL4rE.js → InventoryPage-DOotGZrj-CoPjOJEI.js} +10 -10
  35. package/dist/{InventoryPage-C_AxSy7A-QLvlL4rE.js.map → InventoryPage-DOotGZrj-CoPjOJEI.js.map} +1 -1
  36. package/dist/ManageEventConfiguration-DqW3krT6.js +1216 -0
  37. package/dist/ManageEventConfiguration-DqW3krT6.js.map +1 -0
  38. package/dist/ManageEventConfiguration.css +1 -1
  39. package/dist/{ManageUser-DCFkUMV9.js → ManageUser-DZltBina.js} +134 -134
  40. package/dist/{ManageUser-DCFkUMV9.js.map → ManageUser-DZltBina.js.map} +1 -1
  41. package/dist/{MemberProfileCard-BdUNgHRB-VywqQdFF.js → MemberProfileCard-D5CgkTdJ-D2NgDJl3.js} +25 -25
  42. package/dist/{MemberProfileCard-BdUNgHRB-VywqQdFF.js.map → MemberProfileCard-D5CgkTdJ-D2NgDJl3.js.map} +1 -1
  43. package/dist/MobileAnalytics-BLOionG_.js +17301 -0
  44. package/dist/MobileAnalytics-BLOionG_.js.map +1 -0
  45. package/dist/MobileMenuManagement-68Wijb0X.js +220 -0
  46. package/dist/MobileMenuManagement-68Wijb0X.js.map +1 -0
  47. package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js +752 -0
  48. package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js.map +1 -0
  49. package/dist/OtherTypeEventConfigModal-stNmuSv_.js +1812 -0
  50. package/dist/OtherTypeEventConfigModal-stNmuSv_.js.map +1 -0
  51. package/dist/{PaymentCreatePage-CIVe0P0p-25BQVpOX.js → PaymentCreatePage-DfvSZ-kB-CckogYoe.js} +14 -14
  52. package/dist/{PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map → PaymentCreatePage-DfvSZ-kB-CckogYoe.js.map} +1 -1
  53. package/dist/{PaymentsPage-BvPe5Q9F-D2gfziwW.js → PaymentsPage-DMNjYWAJ-ChO9IXmk.js} +24 -24
  54. package/dist/{PaymentsPage-BvPe5Q9F-D2gfziwW.js.map → PaymentsPage-DMNjYWAJ-ChO9IXmk.js.map} +1 -1
  55. package/dist/{PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js → PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js} +2 -2
  56. package/dist/{PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map → PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js.map} +1 -1
  57. package/dist/{PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js → PickupCreatePage-B4O_-vE5-DoOo9nJO.js} +64 -64
  58. package/dist/{PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map → PickupCreatePage-B4O_-vE5-DoOo9nJO.js.map} +1 -1
  59. package/dist/{PickupsPage-Ctpghavs-CUp4uIZq.js → PickupsPage-D7zyioJB-bHKnARYw.js} +29 -29
  60. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js.map +1 -0
  61. package/dist/{PmGuard-b10TGXEi-G3N0G_Wg.js → PmGuard-BZE-y4In-D_pUm5MP.js} +25 -25
  62. package/dist/{PmGuard-b10TGXEi-G3N0G_Wg.js.map → PmGuard-BZE-y4In-D_pUm5MP.js.map} +1 -1
  63. package/dist/{ProductEditPage-C1thoKHu-URQaZ6st.js → ProductEditPage-BVlVUCtD-BR-tJ5Wb.js} +475 -472
  64. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js.map +1 -0
  65. package/dist/{ProductsPage-CupVmOD4-D45a_hf-.js → ProductsPage-DvNHIeZt-BoOOJJtk.js} +36 -35
  66. package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js.map +1 -0
  67. package/dist/{PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js → PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js} +214 -187
  68. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js.map +1 -0
  69. package/dist/{PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js → PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js} +80 -80
  70. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js.map +1 -0
  71. package/dist/{PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js → PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js} +29 -29
  72. package/dist/{PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map → PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js.map} +1 -1
  73. package/dist/{PurchasesPage-It1GHiXl-eH4IsF_U.js → PurchasesPage-DgL5T6BY-DePUuE9l.js} +31 -31
  74. package/dist/{PurchasesPage-It1GHiXl-eH4IsF_U.js.map → PurchasesPage-DgL5T6BY-DePUuE9l.js.map} +1 -1
  75. package/dist/{SaleCreatePage-C9kFmTvm-B3Y0o4CX.js → SaleCreatePage-CZnIOydv-DKBw-qp7.js} +15 -15
  76. package/dist/{SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map → SaleCreatePage-CZnIOydv-DKBw-qp7.js.map} +1 -1
  77. package/dist/{SalesPage-D18DCseD-BxktGDRQ.js → SalesPage-DPIRrC_O-M8rqnK7z.js} +62 -62
  78. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js.map +1 -0
  79. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js +676 -0
  80. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js.map +1 -0
  81. package/dist/{ShowFlywayQuery-D1y_4A1u.js → ShowFlywayQuery-DIOUdYfG.js} +26 -19
  82. package/dist/{ShowFlywayQuery-D1y_4A1u.js.map → ShowFlywayQuery-DIOUdYfG.js.map} +1 -1
  83. package/dist/{StorageUnitsPage-7EqwuMOI-BwUso1Th.js → StorageUnitsPage-BDRkdCjW-UF64rf7q.js} +195 -188
  84. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js.map +1 -0
  85. package/dist/{SubMenu-eEDhZUvh.js → SubMenu-BdMTYtC1.js} +5 -3
  86. package/dist/SubMenu-BdMTYtC1.js.map +1 -0
  87. package/dist/{TransactionsPage-DrH53pVS-BkhIGB6C.js → TransactionsPage-CqWTMNU8-Df6eGFDW.js} +48 -48
  88. package/dist/{TransactionsPage-DrH53pVS-BkhIGB6C.js.map → TransactionsPage-CqWTMNU8-Df6eGFDW.js.map} +1 -1
  89. package/dist/{TransferCreatePage-CuvoMrYH-DTTfHjz-.js → TransferCreatePage-DF7FZaTJ-CL79V3aR.js} +8 -8
  90. package/dist/{TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map → TransferCreatePage-DF7FZaTJ-CL79V3aR.js.map} +1 -1
  91. package/dist/{TransfersPage-Cf701t8s-BBbN7cBf.js → TransfersPage-CGrRFaBF-cTwBUv0o.js} +69 -69
  92. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js.map +1 -0
  93. package/dist/TypeConfiguration-JbRCN6GR.js +114 -0
  94. package/dist/TypeConfiguration-JbRCN6GR.js.map +1 -0
  95. package/dist/{UserList-DgPxsnj2.js → UserList-L41Xw0Q6.js} +2 -2
  96. package/dist/{UserList-DgPxsnj2.js.map → UserList-L41Xw0Q6.js.map} +1 -1
  97. package/dist/Users-CsJ08Kjm.js +40 -0
  98. package/dist/{Users-Bpc4Sazd.js.map → Users-CsJ08Kjm.js.map} +1 -1
  99. package/dist/{VialsPage-8oAc1yFv-Cl3FUXBJ.js → VialsPage-rvvXjgZG-Oqo1v6kQ.js} +35 -35
  100. package/dist/{VialsPage-8oAc1yFv-Cl3FUXBJ.js.map → VialsPage-rvvXjgZG-Oqo1v6kQ.js.map} +1 -1
  101. package/dist/{constants-ClZJY2x1-MkSWn6TZ.js → constants-DpXnLsAB-D6lN5cjK.js} +58 -47
  102. package/dist/constants-DpXnLsAB-D6lN5cjK.js.map +1 -0
  103. package/dist/{dashboardLayoutUtils-D1xCAxp3.js → dashboardLayoutUtils-CJivzaU1.js} +95 -92
  104. package/dist/dashboardLayoutUtils-CJivzaU1.js.map +1 -0
  105. package/dist/index.css +1 -1
  106. package/dist/index.js +1 -1
  107. package/dist/index.lib-ETRQOzvE.js +894 -0
  108. package/dist/index.lib-ETRQOzvE.js.map +1 -0
  109. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js +36 -0
  110. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js.map +1 -0
  111. package/package.json +1 -1
  112. package/dist/AccessRights-xrday-L1.js.map +0 -1
  113. package/dist/AddMenuConfiguration-e5BVXhmw.js +0 -8547
  114. package/dist/AddMenuConfiguration-e5BVXhmw.js.map +0 -1
  115. package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +0 -1
  116. package/dist/ConditionConfig-Ddz9halE.js +0 -395
  117. package/dist/ConditionConfig-Ddz9halE.js.map +0 -1
  118. package/dist/ConditionConfig.css +0 -1
  119. package/dist/EventConfig-BmLemzX3.js +0 -26
  120. package/dist/EventConfigurations-Bzh1qWXU.js +0 -450
  121. package/dist/EventConfigurations-Bzh1qWXU.js.map +0 -1
  122. package/dist/EventsExceptionModal-B2SRrnB1.js +0 -200
  123. package/dist/EventsExceptionModal-B2SRrnB1.js.map +0 -1
  124. package/dist/EventsSkeleton-BIcPks4T.js +0 -61
  125. package/dist/EventsSkeleton-BIcPks4T.js.map +0 -1
  126. package/dist/FeatureMenu-DYJmDt7q.js.map +0 -1
  127. package/dist/GrantPermissionModal-BDN66Atn.js.map +0 -1
  128. package/dist/ImmunizationConfigurationBase-Di1KO3oW.js.map +0 -1
  129. package/dist/ManageEventConfiguration-CoYcpjR9.js +0 -1085
  130. package/dist/ManageEventConfiguration-CoYcpjR9.js.map +0 -1
  131. package/dist/MobileAnalytics-pQoE8cG1.js +0 -16888
  132. package/dist/MobileAnalytics-pQoE8cG1.js.map +0 -1
  133. package/dist/MobileMenuManagement-Cf8IZlla.js +0 -108
  134. package/dist/MobileMenuManagement-Cf8IZlla.js.map +0 -1
  135. package/dist/MobileTypeEventConfigModal-BeveaX0C.js +0 -783
  136. package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +0 -1
  137. package/dist/OtherTypeEventConfigModal-CM6VkdmY.js +0 -2046
  138. package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +0 -1
  139. package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +0 -1
  140. package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +0 -1
  141. package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +0 -1
  142. package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +0 -1
  143. package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +0 -1
  144. package/dist/SalesPage-D18DCseD-BxktGDRQ.js.map +0 -1
  145. package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js +0 -747
  146. package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js.map +0 -1
  147. package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +0 -1
  148. package/dist/SubMenu-eEDhZUvh.js.map +0 -1
  149. package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +0 -1
  150. package/dist/TypeConfiguration-3O6ABrK-.js +0 -117
  151. package/dist/TypeConfiguration-3O6ABrK-.js.map +0 -1
  152. package/dist/Users-Bpc4Sazd.js +0 -41
  153. package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +0 -1
  154. package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +0 -1
  155. package/dist/index.lib-Dn8PMkeD.js +0 -862
  156. package/dist/index.lib-Dn8PMkeD.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.lib-Dn8PMkeD.js","sources":["../routes/routes.jsx","../../app-shell/src/store/reducers/immunizationSlice.js","../src/views/ImmunizationConfiguration/utils/validationUtils.js","../src/views/ImmunizationConfiguration/service/ImmunizationUtil.js"],"sourcesContent":["import { lazy } from \"react\";\n\nconst VerifyRoute = lazy(\n () => import(\"@/views/feature-components/VerifyRoute.jsx\"),\n);\nconst Roles = lazy(() => import(\"../src/views/Roles/RoleManagement\"));\nconst QueryBuilder = lazy(\n () => import(\"../src/views/QueryBuilder/QueryBuilder\"),\n);\nconst UserList = lazy(() => import(\"../src/views/Users/UserList\"));\nconst ManageUser = lazy(() => import(\"../src/views/Users/ManageUser\"));\nconst QueryManagement = lazy(\n () => import(\"../src/views/QueryManagement/QueryManagement\"),\n);\nconst FeatureMenu = lazy(() => import(\"../src/views/Features/FeatureMenu\"));\nconst ActivityAnalytics = lazy(() => import(\"../src/views/ActivityAnalytics/index\"));\nconst NewServerManagement = lazy(\n () => import(\"../src/views/Features/NewServerManagement\"),\n);\nconst ManageDynamicFeature = lazy(\n () => import(\"../src/views/Features/ManageDynamicFeature\"),\n);\nconst SecurityAuditLogList = lazy(\n () => import(\"../src/views/SecurityAuditLog/SecurityAuditLogList\"),\n);\nconst EventConfigurations = lazy(\n () => import(\"../src/views/Events/EventConfigurations\"),\n);\nconst ManageEventConfiguration = lazy(\n () => import(\"../src/views/Events/ManageEventConfiguration\"),\n);\nconst EntityManagement = lazy(\n () => import('../src/views/Mobile/EntityManagement/EntityManagement.jsx')\n);\nconst MobileAnalytics = lazy(\n () => import('../src/views/Mobile/Analytics/MobileAnalytics.jsx')\n);\nconst MobileMenuManagement = lazy(\n () => import('../src/views/MobileMenuManagement/MobileMenuManagement')\n);\nconst AddMenuConfiguration = lazy(\n () => import('../src/views/MobileMenuManagement/AddMenuConfiguration')\n);\nconst ManageTranslation = lazy(\n () => import(\"../src/views/Translation/ManageTranslation\"),\n);\nconst WidgetList = lazy(\n () => import(\"../src/views/Widgets/WidgetList\")\n);\nconst NotificationList = lazy(\n () => import(\"../src/views/Notifications/NotificationList\"),\n);\nconst ImmunizationConfigurationsList = lazy(\n () => import(\"../src/views/Immunization/ImmunizationConfigurationsList\"),\n);\nconst ManageImmunization = lazy(\n () => import(\"../src/views/Immunization/manageImmunization\"),\n);\nconst ImmunizationConfiguration = lazy(\n () =>\n import(\"../src/views/ImmunizationConfiguration/ImmunizationConfigurationBase.jsx\"),\n);\nconst FhirServerList = lazy(\n () => import(\"../src/views/FhirResource/FhirServerList\"),\n);\nconst FhirServerWizard = lazy(\n () => import(\"../src/views/FhirResource/FhirServerWizard\"),\n);\nconst FhirServerProfile = lazy(\n () => import(\"../src/views/FhirResource/FhirServerProfile\"),\n);\nconst FhirRawResourceList = lazy(\n () => import(\"../src/views/FhirResource/FhirRawResourceList\"),\n);\n\nconst corecustom2Routes = [\n {\n path: \"medplat/manage/role\",\n element: (\n <VerifyRoute\n headerTitle={\"Roles\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/role\"\n component={Roles}\n />\n ),\n },\n {\n path: \"medplat/manage/query\",\n element: (\n <VerifyRoute\n headerTitle={\"Query Master\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/query\"\n component={QueryBuilder}\n />\n ),\n },\n {\n path: \"medplat/manage/users\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"UserList\"}\n url=\"medplat/manage/users\"\n component={UserList}\n />\n ),\n },\n {\n path: \"medplat/manage/user\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"ManageUser\"}\n url=\"medplat/manage/users\"\n component={ManageUser}\n />\n ),\n },\n {\n path: \"medplat/manage/user/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/users\"\n component={ManageUser}\n />\n ),\n },\n {\n path: \"medplat/querymanagement\",\n element: (\n <VerifyRoute\n headerTitle={\"Query Management\"}\n pageTitle={\"General\"}\n url=\"medplat/querymanagement\"\n component={QueryManagement}\n />\n ),\n },\n {\n path: \"medplat/manage/menu\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={FeatureMenu}\n />\n ),\n },\n {\n path: \"medplat/manage/menu/addfeature\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={ManageDynamicFeature}\n />\n ),\n },\n {\n path: \"medplat/manage/menu/addDynamicFeature\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={ManageDynamicFeature}\n />\n ),\n },\n {\n path: \"medplat/notification/all\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification/all\"\n component={EventConfigurations}\n />\n ),\n },\n {\n path: \"medplat/views/config\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification\"\n component={ManageEventConfiguration}\n />\n ),\n },\n {\n path: \"medplat/views/config/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification\"\n component={ManageEventConfiguration}\n />\n ),\n },\n {\n path: \"medplat/admin/newServerManagement\",\n element: (\n <VerifyRoute\n headerTitle={\"Server Management\"}\n url=\"medplat/admin/newServerManagement\"\n component={NewServerManagement}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileEntityManagement',\n element: (\n <VerifyRoute\n pageTitle={'General'}\n url=\"medplat/admin/mobileEntityManagement\"\n component={EntityManagement}\n headerTitle={'Mobile Database Management'}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileAnalytics',\n element: (\n <VerifyRoute\n url=\"medplat/admin/mobileAnalytics\"\n component={MobileAnalytics}\n headerTitle={'Mobile Analytics'}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileMenuManagement',\n element: (\n <VerifyRoute\n url=\"medplat/admin/mobileMenuManagement\"\n component={<MobileMenuManagement />}\n headerTitle={'Mobile Menu Management'}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileMenuManagement/addMenuConfiguration',\n element: <AddMenuConfiguration />,\n },\n {\n path: \"medplat/manage/manageTranslation\",\n element: (\n <VerifyRoute\n headerTitle={\"Manage Translation\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manageTranslation\"\n component={ManageTranslation}\n />\n ),\n },\n {\n path: \"medplat/manage/managewidgets\",\n element: (\n <VerifyRoute\n headerTitle={\"Widgets\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manage-widgets\"\n component={WidgetList}\n />\n ),\n },\n {\n path: \"medplat/manage/notification\",\n element: (\n <VerifyRoute\n headerTitle={\"Notification Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/notification\"\n component={NotificationList}\n />\n ),\n },\n {\n path: \"medplat/manage/immunizationConfiguratorList\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manageTranslation\"\n component={ImmunizationConfigurationsList}\n />\n ),\n },\n {\n path: \"medplat/manage/manageImmunization\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/training/question\"\n component={ManageImmunization}\n />\n ),\n },\n {\n path: \"medplat/manage/manageImmunization/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/training/question\"\n component={ManageImmunization}\n />\n ),\n },\n {\n path: \"medplat/manage/immunizationConfiguration\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunization Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/immunizationConfiguration\"\n component={ImmunizationConfiguration}\n />\n ),\n },\n {\n path: \"medplat/manage/securityAuditLogs\",\n element: (\n <VerifyRoute\n headerTitle={\"Security Audit Logs\"}\n pageTitle={\"Security Audit Logs\"}\n url=\"medplat/manage/securityAuditLogs\"\n component={SecurityAuditLogList}\n />\n ),\n },\n {\n path: \"medplat/manage/activityAnalytics\",\n element: (\n <VerifyRoute\n headerTitle={\"Activity Analytics\"}\n url=\"medplat/manage/activityAnalytics\"\n component={ActivityAnalytics}\n />\n ),\n },\n {\n path: \"medplat/admin/fhirResource\",\n element: (\n <VerifyRoute\n headerTitle={\"FHIR Sync\"}\n pageTitle={\"General\"}\n url=\"medplat/admin/fhirResource\"\n component={FhirServerList}\n />\n ),\n },\n {\n path: \"medplat/admin/fhirResource/new\",\n element: (\n <VerifyRoute\n headerTitle={\"Connect FHIR Server\"}\n pageTitle={\"General\"}\n url=\"medplat/admin/fhirResource\"\n component={FhirServerWizard}\n />\n ),\n },\n {\n path: \"medplat/admin/fhirResource/:serverId\",\n element: (\n <VerifyRoute\n headerTitle={\"FHIR Server\"}\n pageTitle={\"General\"}\n url=\"medplat/admin/fhirResource\"\n component={FhirServerProfile}\n />\n ),\n },\n {\n path: \"medplat/admin/fhirResource/:serverId/staging\",\n element: (\n <VerifyRoute\n headerTitle={\"FHIR Staging Inbox\"}\n pageTitle={\"General\"}\n url=\"medplat/admin/fhirResource\"\n component={FhirRawResourceList}\n />\n ),\n },\n];\n\nexport default corecustom2Routes;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst createInitialState = () => ({\n vaccines: [],\n selectedVaccineIds: [],\n views: [\n {\n id: 'landing',\n name: 'Dashboard',\n },\n {\n id: 'schedule-config',\n name: 'Schedule Config',\n },\n {\n id: 'summary',\n name: 'Configuration Summary',\n },\n ],\n currentViewId: 'summary',\n scheduledVaccines: [],\n baseDateMaster: [],\n recipientMaster: [],\n dbTablesMaster: [],\n filtersMaster: [],\n featureRights: {},\n isConfigLoaded: false,\n validationErrors: {},\n});\n\nconst initialState = createInitialState();\n\nconst upsertByIdOrCode = (items = [], incoming = {}) => {\n const matchIndex = items.findIndex(\n (item) =>\n (incoming.id !== undefined && item?.id === incoming.id) ||\n (incoming.code && item?.code === incoming.code),\n );\n\n if (matchIndex === -1) {\n return [...items, incoming];\n }\n\n return items.map((item, index) =>\n index === matchIndex\n ? {\n ...item,\n ...incoming,\n }\n : item,\n );\n};\n\nconst immunizationSlice = createSlice({\n name: 'immunization',\n initialState,\n reducers: {\n toggleVaccine: (state, action) => {\n const id = action.payload;\n if (!Array.isArray(state.selectedVaccineIds)) state.selectedVaccineIds = [];\n\n const index = state.selectedVaccineIds.indexOf(id);\n if (index > -1) {\n state.selectedVaccineIds.splice(index, 1);\n } else {\n state.selectedVaccineIds.push(id);\n }\n },\n setVaccines: (state, action) => {\n const vaccines = Array.isArray(action.payload) ? action.payload : [];\n state.vaccines = vaccines;\n if (state.selectedVaccineIds.length === 0) {\n state.selectedVaccineIds = vaccines\n .filter((vaccine) => vaccine.isActive)\n .map((vaccine) => vaccine.id);\n }\n },\n setSelectedVaccineIds: (state, action) => {\n state.selectedVaccineIds = action.payload;\n },\n addCustomVaccine: (state, action) => {\n const payload = action.payload || {};\n const {\n name,\n vaccine_name,\n disease,\n target_prevention,\n id,\n baseDateCode,\n base_date_code,\n recipientType,\n recipient_type,\n } = payload;\n const finalName = name || vaccine_name || 'Unnamed Vaccine';\n const finalCategory = disease || target_prevention || 'General';\n\n const vaccines = Array.isArray(state.vaccines) ? state.vaccines : [];\n const validIds = vaccines.map((v) => Number(v?.id)).filter((id) => !Number.isNaN(id));\n const nextId = validIds.length > 0 ? Math.max(...validIds) + 1 : 1;\n\n const finalId = id || nextId;\n const newVaccine = {\n id: finalId,\n name: finalName,\n category: finalCategory,\n doses: 0,\n doseType: 'FIXED',\n scheduleType: 'ROUTINE',\n doseDetails: {},\n regions: [],\n dependencies: [],\n isActive: payload.isActive !== undefined ? payload.isActive : false,\n baseDateCode: baseDateCode || base_date_code || null,\n recipientType: recipientType || recipient_type || '',\n };\n\n if (!Array.isArray(state.vaccines)) state.vaccines = [];\n state.vaccines.push(newVaccine);\n },\n setCurrentView: (state, action) => {\n state.currentViewId = action.payload;\n },\n updateScheduledVaccine: (state, action) => {\n const updatedVaccine = action.payload;\n const index = state.scheduledVaccines.findIndex((v) => v.id === updatedVaccine.id);\n if (index !== -1) {\n state.scheduledVaccines[index] = {\n ...state.scheduledVaccines[index],\n ...updatedVaccine,\n };\n } else {\n state.scheduledVaccines.push(updatedVaccine);\n }\n },\n setBaseDatesMaster: (state, action) => {\n state.baseDateMaster = action.payload;\n },\n setRecipientMaster: (state, action) => {\n state.recipientMaster = action.payload;\n },\n setDbTablesMaster: (state, action) => {\n state.dbTablesMaster = action.payload;\n },\n setFiltersMaster: (state, action) => {\n state.filtersMaster = action.payload;\n },\n upsertBaseDateMasterItem: (state, action) => {\n state.baseDateMaster = upsertByIdOrCode(state.baseDateMaster, action.payload);\n },\n upsertRecipientMasterItem: (state, action) => {\n state.recipientMaster = upsertByIdOrCode(state.recipientMaster, action.payload);\n },\n updateBaseDateMasterStatus: (state, action) => {\n const { code, is_active } = action.payload;\n state.baseDateMaster = state.baseDateMaster.map((item) =>\n item.code === code ? { ...item, is_active } : item,\n );\n },\n upsertFilterMasterItem: (state, action) => {\n state.filtersMaster = upsertByIdOrCode(state.filtersMaster, action.payload);\n },\n updateFilterMasterStatus: (state, action) => {\n const { code, is_active } = action.payload;\n state.filtersMaster = state.filtersMaster.map((item) =>\n item.code === code ? { ...item, is_active } : item,\n );\n },\n setFeatureRights: (state, action) => {\n state.featureRights = action.payload || {};\n },\n setImmunizationConfigLoaded: (state, action) => {\n state.isConfigLoaded = action.payload;\n },\n resetImmunizationState: () => createInitialState(),\n activateSelectedVaccines: (state) => {\n state.vaccines = state.vaccines.map((v) => ({\n ...v,\n isActive: state.selectedVaccineIds.includes(v.id),\n }));\n },\n setVaccineStatus: (state, action) => {\n const { vaccineId, status } = action.payload;\n const vIndex = state.vaccines.findIndex((v) => v.id === vaccineId);\n if (vIndex !== -1) {\n state.vaccines[vIndex].isActive = status;\n }\n\n if (!Array.isArray(state.selectedVaccineIds)) state.selectedVaccineIds = [];\n const sIndex = state.selectedVaccineIds.indexOf(vaccineId);\n if (status && sIndex === -1) {\n state.selectedVaccineIds.push(vaccineId);\n } else if (!status && sIndex !== -1) {\n state.selectedVaccineIds.splice(sIndex, 1);\n }\n },\n setValidationErrors: (state, action) => {\n const { vaccineId, errors } = action.payload;\n state.validationErrors[vaccineId] = errors;\n },\n clearValidationErrors: (state, action) => {\n const vaccineId = action.payload;\n if (vaccineId) {\n delete state.validationErrors[vaccineId];\n } else {\n state.validationErrors = {};\n }\n },\n },\n});\n\nexport const {\n toggleVaccine,\n setVaccines,\n addCustomVaccine,\n setCurrentView,\n updateScheduledVaccine,\n setBaseDatesMaster,\n setRecipientMaster,\n setDbTablesMaster,\n setFiltersMaster,\n upsertBaseDateMasterItem,\n upsertRecipientMasterItem,\n updateBaseDateMasterStatus,\n upsertFilterMasterItem,\n updateFilterMasterStatus,\n setFeatureRights,\n setImmunizationConfigLoaded,\n resetImmunizationState,\n activateSelectedVaccines,\n setSelectedVaccineIds,\n setValidationErrors,\n clearValidationErrors,\n setVaccineStatus,\n} = immunizationSlice.actions;\nexport default immunizationSlice.reducer;\n","export const getDays = (val) => {\n if (!val) return 0;\n if (typeof val === 'string' && val.toLowerCase() === 'birth') return 0;\n return Number.parseInt(val) || 0;\n};\n\nexport const getDaysVal = (val, unit) => {\n if (!val) return 0;\n if (typeof val === 'string' && val.toLowerCase() === 'birth') return 0;\n const num = Number.parseInt(val) || 0;\n if (unit === 'weeks') return num * 7;\n if (unit === 'months') return num * 30;\n if (unit === 'years') return num * 365;\n return num;\n};\n\nexport const isBlankDuration = (val) => val === undefined || val === null || String(val).trim() === '';\n\n// The unit dropdown value that stands in for an open-ended window. It is never\n// persisted — `eligibleTo === null` is the stored fact, and this is derived from it.\nexport const LIFELONG_UNIT = 'lifelong';\n\n// Distinguishes \"eligible for life\" (null) from \"not filled in yet\" (\"\" / undefined),\n// which still has to fail the required check.\nexport const isLifelong = (eligibleTo) => eligibleTo === null;\n\n// Marker used inside the overall-eligibility summary string. Must not contain \"to\",\n// which is what that string is split on for display.\nexport const LIFELONG_ELIGIBILITY = 'LIFELONG';\n\n// `windowInDays` is null for a lifelong dose, meaning there is no ceiling to check against.\nexport const validateOverdueWindow = (dose, perDoseUnits = {}, windowInDays) => {\n const errors = {};\n const hasFrom = !isBlankDuration(dose.overdueFrom);\n const hasTill = !isBlankDuration(dose.overdueTill);\n\n if (!hasFrom) {\n if (hasTill) {\n errors.overdueTill = 'Set Overdue From first';\n }\n return errors;\n }\n\n const fromInDays = getDaysVal(dose.overdueFrom, perDoseUnits.overdueFrom || 'days');\n const tillInDays = getDaysVal(dose.overdueTill, perDoseUnits.overdueTill || 'days');\n\n if (fromInDays <= 0) {\n errors.overdueFrom = 'Must be greater than 0';\n } else if (windowInDays > 0 && fromInDays >= windowInDays) {\n errors.overdueFrom = 'Must be within the eligibility window';\n }\n\n if (!hasTill) {\n errors.overdueTill = 'Overdue Till is required';\n } else if (tillInDays <= fromInDays) {\n errors.overdueTill = 'Must be greater than Overdue From';\n } else if (windowInDays > 0 && tillInDays > windowInDays) {\n errors.overdueTill = 'Must be within the eligibility window';\n }\n\n return errors;\n};\n\nexport const validateDoseDetails = (doseDetails, doseType, doseCount, durationUnits = {}) => {\n if (doseCount === 0) return null;\n const errors = [];\n const details = Array.isArray(doseDetails) ? doseDetails : [doseDetails];\n\n // Global fallback units (used for FIXED, or FLEXIBLE doses missing per-dose units)\n const globalEligibleFromUnit = durationUnits.eligibleFrom || 'days';\n const globalEligibleToUnit = durationUnits.eligibleTo || 'days';\n const globalIntervalUnit = durationUnits.interval || 'days';\n\n // Where the open-ended tail of the series begins, or -1 when nothing is lifelong.\n const firstLifelongIdx = details.findIndex((dose) => isLifelong(dose?.eligibleTo));\n\n details.forEach((dose, idx) => {\n // Use per-dose units if present (FLEXIBLE), otherwise fall back to global (FIXED)\n const perDoseUnits = dose.units || {};\n const eligibleFromUnit = perDoseUnits.eligibleFrom || globalEligibleFromUnit;\n const eligibleToUnit = perDoseUnits.eligibleTo || globalEligibleToUnit;\n const intervalUnit = perDoseUnits.interval || globalIntervalUnit;\n const doseErrors = {};\n const startInDays = getDaysVal(dose.eligibleFrom, eligibleFromUnit);\n const endInDays = getDaysVal(dose.eligibleTo, eligibleToUnit);\n const hasNoEnd = isLifelong(dose.eligibleTo);\n\n if ((dose.eligibleFrom === undefined || dose.eligibleFrom === null || dose.eligibleFrom === '') && idx !== 0) {\n doseErrors.eligibleFrom = 'Eligible From is required';\n }\n\n if (\n !hasNoEnd &&\n (dose.eligibleTo === undefined || dose.eligibleTo === '' || getDaysVal(dose.eligibleTo, eligibleToUnit) === 0)\n ) {\n doseErrors.eligibleTo = 'Eligible To is required';\n }\n\n const isLastFlexibleRow = doseType === 'FLEXIBLE' && idx === details.length - 1;\n\n const isIntervalRequired =\n (doseType === 'FIXED' && doseCount > 1) || (!isLastFlexibleRow && doseType === 'FLEXIBLE');\n\n if (isIntervalRequired) {\n const intervalVal = Number.parseInt(dose.interval) || 0;\n const intervalInDays = getDaysVal(dose.interval, intervalUnit);\n if (\n dose.interval === undefined ||\n dose.interval === null ||\n dose.interval === '' ||\n intervalVal === 0 ||\n dose.interval === '0 days'\n ) {\n doseErrors.interval = 'Interval is required';\n } else if (\n doseType === 'FIXED' &&\n doseCount > 1 &&\n // An open-ended window always has room for every dose.\n !hasNoEnd &&\n (doseCount - 1) * intervalInDays > endInDays - startInDays\n ) {\n doseErrors.interval = `Number of doses not possible in the window. Total interval exceeds available window (${endInDays - startInDays} days).`;\n }\n }\n\n if (!hasNoEnd && endInDays <= startInDays && dose.eligibleFrom && dose.eligibleTo) {\n doseErrors.eligibleTo = 'Must be strictly greater than ELIGIBLE FROM';\n }\n\n // Lifelong runs to the end of the series. A bounded dose sitting behind an open-ended one\n // can be pushed past its own window by an unbounded wait — the series then goes out of\n // scope and every dose after it is missed, so the vaccine can never be completed. The\n // dose table cascades this automatically; this catches configs saved before it existed.\n // Reported last so it wins over the required/ordering messages above, which describe the\n // same field but not the reason it cannot be filled in at all.\n if (doseType === 'FLEXIBLE' && !hasNoEnd && firstLifelongIdx !== -1 && idx > firstLifelongIdx) {\n doseErrors.eligibleTo = 'Doses after a lifelong dose must also be lifelong';\n }\n\n if (doseType === 'FLEXIBLE') {\n // A lifelong dose has no ceiling, so the overdue bounds are only checked against 0.\n Object.assign(doseErrors, validateOverdueWindow(dose, perDoseUnits, hasNoEnd ? null : endInDays - startInDays));\n }\n\n if (idx > 0 && doseType === 'FLEXIBLE') {\n const prevDose = details[idx - 1];\n const prevPerDoseUnits = prevDose.units || {};\n const prevFromUnit = prevPerDoseUnits.eligibleFrom || globalEligibleFromUnit;\n const prevIntervalUnit = prevPerDoseUnits.interval || globalIntervalUnit;\n const prevStartInDays = getDaysVal(prevDose.eligibleFrom, prevFromUnit);\n const prevIntervalDays = getDaysVal(prevDose.interval, prevIntervalUnit);\n if (startInDays < prevStartInDays + prevIntervalDays) {\n doseErrors.eligibleFrom = 'Must be greater than previous ELIGIBLE FROM and INTERVAL';\n }\n\n if (prevDose.isBooster && !dose.isBooster) {\n doseErrors.isBooster = 'A regular dose cannot follow a booster dose';\n }\n }\n\n if (Object.keys(doseErrors).length > 0) {\n errors[idx] = doseErrors;\n }\n });\n\n return errors.length > 0 ? errors : null;\n};\n\nexport const validateDependencies = (dependencies) => {\n const errors = [];\n const seenVaccines = new Set();\n\n dependencies.forEach((dep, idx) => {\n const depErrors = {};\n if (!dep.vaccine) {\n depErrors.vaccine = 'Vaccine selection is required';\n } else {\n if (seenVaccines.has(dep.vaccine)) {\n depErrors.vaccine = 'This vaccine is already added as a dependency';\n }\n seenVaccines.add(dep.vaccine);\n }\n\n const isMinEmpty = dep.minGap === '' || dep.minGap === null || dep.minGap === undefined;\n const isMaxEmpty = dep.maxGap === '' || dep.maxGap === null || dep.maxGap === undefined;\n\n const minGap = getDays(dep.minGap);\n const maxGap = getDays(dep.maxGap);\n\n if (dep.requirement === 'Should be given' || dep.requirement === 'Optional') {\n if (isMinEmpty) {\n depErrors.minGap = 'Gap cannot be empty';\n } else if (minGap <= 0) {\n depErrors.minGap = 'Must be greater than 0';\n }\n\n if (!isMinEmpty && !isMaxEmpty && minGap > 0 && maxGap > 0 && maxGap <= minGap) {\n depErrors.maxGap = 'Max gap must be greater than Min Gap';\n }\n } else {\n // For \"Should not be given\", values can be empty or zero.\n if (!isMinEmpty && minGap < 0) {\n depErrors.minGap = 'Gap cannot be negative';\n }\n if (!isMaxEmpty && maxGap < 0) {\n depErrors.maxGap = 'Gap cannot be negative';\n }\n }\n\n if (Object.keys(depErrors).length > 0) {\n errors[idx] = depErrors;\n }\n });\n\n return errors.some((e) => e && Object.keys(e).length > 0) ? errors : null;\n};\n\nexport const validateCodeSets = (codeSets) => {\n const errors = [];\n const seenTypes = new Set();\n\n (codeSets || []).forEach((cs, idx) => {\n const csErrors = {};\n if (!cs.type) {\n csErrors.type = 'Type is required';\n } else {\n if (seenTypes.has(cs.type)) {\n csErrors.type = 'This type is already added';\n }\n seenTypes.add(cs.type);\n }\n\n if (!cs.value || cs.value.trim() === '') {\n csErrors.value = 'Value is required';\n }\n\n if (Object.keys(csErrors).length > 0) {\n errors[idx] = csErrors;\n }\n });\n\n return errors.some((e) => e && Object.keys(e).length > 0) ? errors : null;\n};\n\nexport const validateVaccineForm = (vaccine) => {\n const errors = {};\n\n if (!vaccine.name || vaccine.name.trim() === '') {\n errors.name = 'Vaccine Name is required';\n }\n\n if (!vaccine.recipientType) {\n errors.recipientType = 'Recipient Type is required';\n }\n\n if (!vaccine.baseDateCode) {\n errors.baseDateCode = 'Base Date is required';\n }\n\n if (!vaccine.doses || vaccine.doses === 0) {\n errors.doses = 'At least one dose is required';\n }\n\n if (vaccine.scheduleType === 'NON_ROUTINE' && vaccine.doseType === 'FLEXIBLE') {\n errors.doseType = 'Non-routine vaccines support the FIXED dose type only';\n }\n\n const doseErrors = validateDoseDetails(vaccine.doseDetails, vaccine.doseType, vaccine.doses, vaccine.durationUnits);\n if (doseErrors) {\n errors.doseDetails = doseErrors;\n }\n\n const depErrors = validateDependencies(vaccine.dependencies || []);\n if (depErrors) {\n errors.dependencies = depErrors;\n }\n\n const codeSetErrors = validateCodeSets(vaccine.codeSets || []);\n if (codeSetErrors) {\n errors.codeSets = codeSetErrors;\n }\n\n return Object.keys(errors).length > 0 ? errors : null;\n};\n","import { execute, executeAll } from \"@/common/services/GlobalApis\";\nimport { api } from \"@/common/interceptors/AxiosInterceptor\";\nimport { LIFELONG_ELIGIBILITY, isLifelong } from \"../utils/validationUtils\";\n\nconst safeParseJson = (value, fallback) => {\n if (value == null) {\n return fallback;\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n try {\n return JSON.parse(value);\n } catch {\n return fallback;\n }\n};\n\nconst toStableId = (...parts) => parts.filter(Boolean).join(\"_\");\n\nconst normaliseEligibilityValue = (value) => {\n // Checked before the null branch below: a lifelong end is a real configured value,\n // not a missing one.\n if (isLifelong(value)) {\n return LIFELONG_ELIGIBILITY;\n }\n\n if (\n value === undefined ||\n value === \"\" ||\n value === \"N.A.\" ||\n value === \"null days\"\n ) {\n return \"N.A.\";\n }\n\n return value;\n};\n\nconst calculateOverallEligibility = (\n doseDetails,\n doseType = \"FLEXIBLE\",\n doses = 1,\n) => {\n if (doses === 0) {\n return \"N.A.\";\n }\n\n if (!doseDetails) {\n return \"N.A.\";\n }\n\n if (doseType === \"FIXED\") {\n const details = Array.isArray(doseDetails) ? doseDetails[0] : doseDetails;\n if (!details) {\n return \"N.A.\";\n }\n\n const eligibleFrom = normaliseEligibilityValue(details.eligibleFrom);\n const eligibleTo = normaliseEligibilityValue(details.eligibleTo);\n\n if (eligibleFrom === \"N.A.\" && eligibleTo === \"N.A.\") {\n return \"N.A.\";\n }\n\n return `${eligibleFrom} to ${eligibleTo}`;\n }\n\n if (!Array.isArray(doseDetails) || doseDetails.length === 0) {\n return \"N.A.\";\n }\n\n const first = normaliseEligibilityValue(doseDetails[0].eligibleFrom);\n const last = normaliseEligibilityValue(\n doseDetails[doseDetails.length - 1].eligibleTo,\n );\n\n if (first === \"N.A.\" && last === \"N.A.\") {\n return \"N.A.\";\n }\n\n return `${first} to ${last}`;\n};\n\nconst DEFAULT_DURATION_UNITS = {\n eligibleFrom: \"days\",\n eligibleTo: \"days\",\n interval: \"days\",\n};\n\n// A vaccine created but never configured has an empty `schedule`. The screen still needs\n// something to edit, so it gets the same shape a freshly migrated row would have.\nconst buildEmptyScheduleEntry = () => ({\n productId: null,\n noOfDoses: 0,\n doseType: \"FIXED\",\n doseEligibleFrom: undefined,\n doseEligibleTo: undefined,\n minGap: 0,\n durationUnits: { ...DEFAULT_DURATION_UNITS },\n dose: [],\n location: [],\n validations: [],\n});\n\n/**\n * Maps one element of the `schedule` column — the configuration for a single product — into\n * the shape the summary screen edits. With product management disabled there is exactly one\n * such entry, carrying productId null.\n */\nconst mapScheduleEntry = (entry, vaccineId, entryIndex) => {\n const doseTypeLower = String(entry.doseType || \"\").toLowerCase();\n const isFixed =\n doseTypeLower === \"fixed\" || doseTypeLower === \"na\" || !entry.doseType;\n\n const durationUnits = safeParseJson(entry.durationUnits, {\n ...DEFAULT_DURATION_UNITS,\n });\n\n // Not toStableId — it drops falsy parts, which would collapse entry 0 onto the bare id.\n const entryKey = `${vaccineId}s${entryIndex}`;\n\n const doseDetails = isFixed\n ? [\n {\n id: toStableId(\"fixed\", entryKey),\n eligibleFrom:\n entry.doseEligibleFrom !== undefined && entry.doseEligibleFrom !== null\n ? `${entry.doseEligibleFrom} ${durationUnits.eligibleFrom || \"days\"}`\n : \"\",\n // NULL is the stored form of a lifelong window — see the FLEXIBLE branch below.\n eligibleTo:\n entry.doseEligibleTo === null\n ? null\n : entry.doseEligibleTo !== undefined\n ? `${entry.doseEligibleTo} ${durationUnits.eligibleTo || \"days\"}`\n : \"\",\n interval: entry.minGap || 0,\n },\n ]\n : safeParseJson(entry.dose, []).map((dose, index) => {\n const perDoseUnits = {\n eligibleFrom:\n dose.eligible_from_unit || durationUnits.eligibleFrom || \"days\",\n eligibleTo:\n dose.eligible_to_unit || durationUnits.eligibleTo || \"days\",\n interval: dose.interval_unit || durationUnits.interval || \"days\",\n overdueFrom: dose.overdue_from_unit || \"days\",\n overdueTill: dose.overdue_till_unit || \"days\",\n };\n return {\n id: dose.id || toStableId(\"dose\", entryKey, index),\n isBooster:\n dose.isBooster === true ||\n dose.is_booster === true ||\n (typeof dose.dose === \"string\" &&\n dose.dose.toUpperCase().startsWith(\"B\")),\n alias: dose.alias || dose.booster_alias || \"\",\n eligibleFrom:\n dose.eligible_from !== undefined\n ? `${dose.eligible_from} ${perDoseUnits.eligibleFrom}`\n : \"\",\n // NULL is the stored form of a lifelong window; it must survive as null rather\n // than becoming the string \"null days\".\n eligibleTo:\n dose.eligible_to === null\n ? null\n : dose.eligible_to !== undefined\n ? `${dose.eligible_to} ${perDoseUnits.eligibleTo}`\n : \"\",\n overdueFrom:\n dose.overdue_from !== undefined && dose.overdue_from !== null\n ? `${dose.overdue_from} ${perDoseUnits.overdueFrom}`\n : \"\",\n overdueTill:\n dose.overdue_till !== undefined && dose.overdue_till !== null\n ? `${dose.overdue_till} ${perDoseUnits.overdueTill}`\n : \"\",\n interval: dose.min_gap || 0,\n units: perDoseUnits,\n };\n });\n\n const regions = safeParseJson(entry.location, [])\n .filter((location) => location && typeof location === \"object\")\n .map((location, index) => ({\n id: toStableId(\"region\", entryKey, index),\n locationId: location.locationId,\n locationIdArr: location.locationIdArr,\n locationList: location.locationList,\n fullPath: location.locationList?.replaceAll(\" => \", \" → \"),\n }));\n\n const dependencies = safeParseJson(entry.validations, []).map(\n (dependency, index) => ({\n id: toStableId(\"dep\", entryKey, index),\n vaccine: dependency.vaccine || \"\",\n requirement: dependency.requirement || \"Should be given\",\n minGap: Number.parseInt(dependency.minGap, 10) || 0,\n maxGap: Number.parseInt(dependency.maxGap, 10) || 0,\n message: dependency.message || \"\",\n }),\n );\n\n const doses = entry.noOfDoses || 0;\n const doseType = entry.doseType && entry.doseType !== \"NA\" ? entry.doseType : \"FIXED\";\n\n return {\n productId: entry.productId ?? null,\n doses,\n doseType,\n doseDetails,\n durationUnits,\n regions,\n dependencies,\n eligibility: calculateOverallEligibility(doseDetails, doseType, doses),\n };\n};\n\nconst mapImmunizationVaccineConfig = (vaccine) => {\n const parsedSchedule = safeParseJson(vaccine.schedule, []);\n const scheduleEntries =\n Array.isArray(parsedSchedule) && parsedSchedule.length > 0\n ? parsedSchedule\n : [buildEmptyScheduleEntry()];\n\n const productSchedules = scheduleEntries.map((entry, index) =>\n mapScheduleEntry(entry || {}, vaccine.id, index),\n );\n\n const parsedFilters = safeParseJson(vaccine.filters, []);\n const filters = Array.isArray(parsedFilters)\n ? parsedFilters\n : parsedFilters?.codes || [];\n\n const parsedCodeSets = safeParseJson(vaccine.code_sets, []);\n const codeSets = Array.isArray(parsedCodeSets) ? parsedCodeSets : [];\n\n // The first entry doubles as the vaccine's headline configuration. With product management\n // off it is the only one, so these top-level fields stay exactly what they always were.\n const [primarySchedule] = productSchedules;\n\n return {\n ...vaccine,\n name: vaccine.vaccine_name || vaccine.name || \"N.A.\",\n category:\n vaccine.target_prevention ||\n vaccine.disease ||\n vaccine.category ||\n \"N.A.\",\n productSchedules,\n doses: primarySchedule.doses,\n doseType: primarySchedule.doseType,\n doseDetails: primarySchedule.doseDetails,\n eligibility: primarySchedule.eligibility,\n isActive: vaccine.is_active !== undefined ? vaccine.is_active : true,\n // True while this vaccine has configuration saved but not yet published. Everything above\n // is already the draft's values — FETCH_IMMUNISATION_MASTER prefers the draft — so this is\n // the only thing telling the screen that what it is showing is not what members see.\n hasUnpublishedChanges: Boolean(vaccine.has_unpublished_changes),\n regions: primarySchedule.regions,\n dependencies: primarySchedule.dependencies,\n filters,\n codeSets,\n durationUnits: primarySchedule.durationUnits,\n baseDateCode: vaccine.base_date_code,\n recipientType: vaccine.recipient_type || \"\",\n scheduleType:\n vaccine.schedule_type === \"NON_ROUTINE\" ? \"NON_ROUTINE\" : \"ROUTINE\",\n };\n};\n\nconst getVaccines = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_MASTER\",\n parameters: {},\n });\n};\n\nconst getBaseDates = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_BASE_DATE\",\n parameters: {},\n });\n};\n\nconst getRecipients = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: {},\n });\n};\n\nconst getImmunizationReferenceData = () => {\n return executeAll([\n {\n code: \"FETCH_IMMUNISATION_BASE_DATE\",\n parameters: {},\n sequence: 1,\n },\n {\n code: \"GET_ALL_IMMUNISATION_FILTERS\",\n parameters: {},\n sequence: 2,\n },\n {\n code: \"FETCH_IMMUNISATION_MASTER\",\n parameters: {},\n sequence: 3,\n },\n {\n code: \"FETCH_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: {},\n sequence: 4,\n },\n ]);\n};\n\nconst addImmunization = (data) => {\n return execute({\n code: \"INSERT_IMMUNIZATION_MASTER\",\n parameters: data,\n });\n};\n\nconst updateImmunization = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_DOSE\",\n ...data,\n });\n};\n\nconst checkImmunizationConfigurationInitiation = (data) => {\n return execute({\n code: \"CHECK_IMMUNIZATION_CONFIGURATION_INITIATION\",\n ...data,\n });\n};\n\nconst updateVaccineStatus = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_STATUS\",\n ...data,\n });\n};\n\nconst updateVaccineStatusFromArray = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_STATUS_FOR_ARRAY\",\n ...data,\n });\n};\n\nconst updateImmunizationConfigurationInitiation = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_CONFIGURATION_INITIATION\",\n ...data,\n });\n};\n\nconst saveBaseDate = (data) => {\n return execute({\n code: \"SAVE_IMMUNISATION_BASE_DATE\",\n parameters: data,\n });\n};\n\nconst saveRecipient = (data) => {\n return execute({\n code: \"SAVE_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: data,\n });\n};\n\nconst updateRecipient = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: data,\n });\n};\n\nconst updateBaseDate = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_BASE_DATE\",\n parameters: data,\n });\n};\n\nconst getAllTablesAndColumns = () => {\n return execute({\n code: \"retrieve_all_tables_and_columns\",\n parameters: {},\n });\n};\n\nconst getFilters = () => {\n return execute({\n code: \"GET_ALL_IMMUNISATION_FILTERS\",\n parameters: {},\n });\n};\n\nconst addFilter = (data) => {\n return execute({\n code: \"ADD_IMMUNISATION_FILTER\",\n parameters: data,\n });\n};\n\nconst updateFilter = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_FILTER\",\n parameters: data,\n });\n};\n\nconst getImmunisationV2List = (data) => {\n return api.post(\"/medplatform/v2/immunisation/list\", data);\n};\n\nconst revalidateImmunisationV2List = (data) => {\n return api.post(\"/medplatform/v2/immunisation/revalidate\", data);\n};\n\n/**\n * Tells the configured reviewers that a vaccine's configuration was saved.\n *\n * Only the vaccine name and the list of change descriptions travel: the recipients come from\n * system configuration and the editor's name from the session, neither of which the browser\n * should be able to choose.\n */\nconst notifyConfigChange = (data) => {\n return api.post(\"/medplatform/v2/immunisation/config-change-notification\", data);\n};\n\nexport const ImmunizationUtil = {\n calculateOverallEligibility,\n mapImmunizationVaccineConfig,\n getVaccines,\n getBaseDates,\n getRecipients,\n getImmunizationReferenceData,\n addImmunization,\n updateImmunization,\n checkImmunizationConfigurationInitiation,\n updateVaccineStatus,\n updateVaccineStatusFromArray,\n updateImmunizationConfigurationInitiation,\n saveBaseDate,\n saveRecipient,\n updateRecipient,\n updateBaseDate,\n getAllTablesAndColumns,\n getFilters,\n addFilter,\n updateFilter,\n getImmunisationV2List,\n revalidateImmunisationV2List,\n notifyConfigChange,\n};\n"],"names":["VerifyRoute","lazy","Roles","QueryBuilder","n","UserList","ManageUser","QueryManagement","FeatureMenu","ActivityAnalytics","NewServerManagement","ManageDynamicFeature","SecurityAuditLogList","EventConfigurations","ManageEventConfiguration","EntityManagement","MobileAnalytics","MobileMenuManagement","AddMenuConfiguration","ManageTranslation","WidgetList","NotificationList","ImmunizationConfigurationsList","ManageImmunization","ImmunizationConfiguration","FhirServerList","FhirServerWizard","FhirServerProfile","FhirRawResourceList","corecustom2Routes","jsx","createInitialState","initialState","upsertByIdOrCode","items","incoming","matchIndex","item","index","immunizationSlice","createSlice","state","action","id","vaccines","vaccine","payload","name","vaccine_name","disease","target_prevention","baseDateCode","base_date_code","recipientType","recipient_type","finalName","finalCategory","validIds","v","nextId","newVaccine","updatedVaccine","code","is_active","vaccineId","status","vIndex","sIndex","errors","toggleVaccine","setVaccines","addCustomVaccine","setCurrentView","updateScheduledVaccine","setBaseDatesMaster","setRecipientMaster","setDbTablesMaster","setFiltersMaster","upsertBaseDateMasterItem","upsertRecipientMasterItem","updateBaseDateMasterStatus","upsertFilterMasterItem","updateFilterMasterStatus","setFeatureRights","setImmunizationConfigLoaded","resetImmunizationState","activateSelectedVaccines","setSelectedVaccineIds","setValidationErrors","clearValidationErrors","setVaccineStatus","immunizationSlice_default","getDays","val","getDaysVal","unit","num","isBlankDuration","LIFELONG_UNIT","isLifelong","eligibleTo","LIFELONG_ELIGIBILITY","validateOverdueWindow","dose","perDoseUnits","windowInDays","hasFrom","hasTill","fromInDays","tillInDays","validateDoseDetails","doseDetails","doseType","doseCount","durationUnits","details","globalEligibleFromUnit","globalEligibleToUnit","globalIntervalUnit","firstLifelongIdx","idx","eligibleFromUnit","eligibleToUnit","intervalUnit","doseErrors","startInDays","endInDays","hasNoEnd","isLastFlexibleRow","intervalVal","intervalInDays","prevDose","prevPerDoseUnits","prevFromUnit","prevIntervalUnit","prevStartInDays","prevIntervalDays","validateDependencies","dependencies","seenVaccines","dep","depErrors","isMinEmpty","isMaxEmpty","minGap","maxGap","e","validateCodeSets","codeSets","seenTypes","cs","csErrors","validateVaccineForm","codeSetErrors","safeParseJson","value","fallback","toStableId","parts","normaliseEligibilityValue","calculateOverallEligibility","doses","eligibleFrom","first","last","DEFAULT_DURATION_UNITS","buildEmptyScheduleEntry","mapScheduleEntry","entry","entryIndex","doseTypeLower","isFixed","entryKey","regions","location","_a","dependency","mapImmunizationVaccineConfig","parsedSchedule","productSchedules","parsedFilters","filters","parsedCodeSets","primarySchedule","getVaccines","execute","getBaseDates","getRecipients","getImmunizationReferenceData","executeAll","addImmunization","data","updateImmunization","checkImmunizationConfigurationInitiation","updateVaccineStatus","updateVaccineStatusFromArray","updateImmunizationConfigurationInitiation","saveBaseDate","saveRecipient","updateRecipient","updateBaseDate","getAllTablesAndColumns","getFilters","addFilter","updateFilter","getImmunisationV2List","api","revalidateImmunisationV2List","notifyConfigChange","ImmunizationUtil"],"mappings":"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"}