@argusoft/medplat-core 1.0.31 → 1.0.33

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 (218) hide show
  1. package/dist/AccessRights-BC43Jhml.js +1093 -0
  2. package/dist/AccessRights-BC43Jhml.js.map +1 -0
  3. package/dist/{AddFeatures-D1sU8RjY.js → AddFeatures-COj4ZTIM.js} +2 -2
  4. package/dist/{AddFeatures-D1sU8RjY.js.map → AddFeatures-COj4ZTIM.js.map} +1 -1
  5. package/dist/AddMenuConfiguration-Creeib5X.js +11223 -0
  6. package/dist/AddMenuConfiguration-Creeib5X.js.map +1 -0
  7. package/dist/AddMenuConfiguration.css +1 -1
  8. package/dist/{BrandsPage-DMw2vT0u-BVhvhc6J.js → BrandsPage-CdcAvaml-CYT80CMH.js} +45 -45
  9. package/dist/{BrandsPage-DMw2vT0u-BVhvhc6J.js.map → BrandsPage-CdcAvaml-CYT80CMH.js.map} +1 -1
  10. package/dist/{CategoriesPage-D3ihx9Gi-CT58g0ry.js → CategoriesPage-BprQEYJw-BRAukJB1.js} +43 -43
  11. package/dist/{CategoriesPage-D3ihx9Gi-CT58g0ry.js.map → CategoriesPage-BprQEYJw-BRAukJB1.js.map} +1 -1
  12. package/dist/ChangePasswordModalCore-rypTxA2O.js +238 -0
  13. package/dist/ChangePasswordModalCore-rypTxA2O.js.map +1 -0
  14. package/dist/{ConditionConfig-BQBmBHaM.js → ConditionConfig-Bpm6OoV5.js} +3 -3
  15. package/dist/{ConditionConfig-BQBmBHaM.js.map → ConditionConfig-Bpm6OoV5.js.map} +1 -1
  16. package/dist/{DashboardPage-asr2XDRu-uOOlX9Vq.js → DashboardPage-CTiGSx71-DX-TzGOH.js} +29 -29
  17. package/dist/{DashboardPage-asr2XDRu-uOOlX9Vq.js.map → DashboardPage-CTiGSx71-DX-TzGOH.js.map} +1 -1
  18. package/dist/EntityManagement-BGwJGl9k.js +62 -0
  19. package/dist/EntityManagement-BGwJGl9k.js.map +1 -0
  20. package/dist/{EventConfigurations-CUPEN5BV.js → EventConfigurations-B-z7xHh_.js} +3 -3
  21. package/dist/{EventConfigurations-CUPEN5BV.js.map → EventConfigurations-B-z7xHh_.js.map} +1 -1
  22. package/dist/{EventsExceptionModal-BX-ArkBE.js → EventsExceptionModal-DafomIv6.js} +2 -2
  23. package/dist/{EventsExceptionModal-BX-ArkBE.js.map → EventsExceptionModal-DafomIv6.js.map} +1 -1
  24. package/dist/{EventsUi-D6O9S7BK.js → EventsUi-Dl_yckSA.js} +37 -32
  25. package/dist/EventsUi-Dl_yckSA.js.map +1 -0
  26. package/dist/FacilityPicker-BXa2VF7i-D0JUIqLv.js +112 -0
  27. package/dist/FacilityPicker-BXa2VF7i-D0JUIqLv.js.map +1 -0
  28. package/dist/FaqList-CeDEuhU_.js +237 -0
  29. package/dist/FaqList-CeDEuhU_.js.map +1 -0
  30. package/dist/FaqSkeletons-hLCEcRr-.js +19 -0
  31. package/dist/FaqSkeletons-hLCEcRr-.js.map +1 -0
  32. package/dist/FaqView-sDzBVyXV.js +617 -0
  33. package/dist/FaqView-sDzBVyXV.js.map +1 -0
  34. package/dist/{FeatureMenu-CHsBbw3W.js → FeatureMenu-CaI-ZhSZ.js} +2 -2
  35. package/dist/{FeatureMenu-CHsBbw3W.js.map → FeatureMenu-CaI-ZhSZ.js.map} +1 -1
  36. package/dist/{FhirServerList-iXBPkRVF.js → FhirServerList-CrIHMAxz.js} +19 -19
  37. package/dist/{FhirServerList-iXBPkRVF.js.map → FhirServerList-CrIHMAxz.js.map} +1 -1
  38. package/dist/{FhirServerProfile-CUOwC6Wb.js → FhirServerProfile-D3aYcpwY.js} +8 -8
  39. package/dist/{FhirServerProfile-CUOwC6Wb.js.map → FhirServerProfile-D3aYcpwY.js.map} +1 -1
  40. package/dist/{FhirServerWizard-DZI8Olku.js → FhirServerWizard-Db6Hm4bQ.js} +15 -15
  41. package/dist/{FhirServerWizard-DZI8Olku.js.map → FhirServerWizard-Db6Hm4bQ.js.map} +1 -1
  42. package/dist/{ImmunizationConfigurationBase-aUtx0JEe.js → ImmunizationConfigurationBase-Clkk0-n6.js} +2638 -2577
  43. package/dist/ImmunizationConfigurationBase-Clkk0-n6.js.map +1 -0
  44. package/dist/InventoryPage-JadYMCzU-CWcCauMI.js +1017 -0
  45. package/dist/InventoryPage-JadYMCzU-CWcCauMI.js.map +1 -0
  46. package/dist/LocationWiseExpectedTargetPage-CjKk1aTF.js +1344 -0
  47. package/dist/LocationWiseExpectedTargetPage-CjKk1aTF.js.map +1 -0
  48. package/dist/{ManageDynamicFeature-BU0I45dd.js → ManageDynamicFeature-CuyYfx_P.js} +104 -97
  49. package/dist/ManageDynamicFeature-CuyYfx_P.js.map +1 -0
  50. package/dist/{ManageEventConfiguration-DqW3krT6.js → ManageEventConfiguration-DqPbn3Oi.js} +5 -5
  51. package/dist/{ManageEventConfiguration-DqW3krT6.js.map → ManageEventConfiguration-DqPbn3Oi.js.map} +1 -1
  52. package/dist/ManageFaq-4cT6bntx.js +1583 -0
  53. package/dist/ManageFaq-4cT6bntx.js.map +1 -0
  54. package/dist/ManageFaq.css +1 -0
  55. package/dist/ManageRole-CyfpySt9.js +981 -0
  56. package/dist/ManageRole-CyfpySt9.js.map +1 -0
  57. package/dist/{ManageUser-DZltBina.js → ManageUser-DchUMAyC.js} +172 -172
  58. package/dist/{ManageUser-DZltBina.js.map → ManageUser-DchUMAyC.js.map} +1 -1
  59. package/dist/{MemberProfileCard-D5CgkTdJ-D2NgDJl3.js → MemberProfileCard-01d_jz3w-CQi_zu6x.js} +37 -37
  60. package/dist/{MemberProfileCard-D5CgkTdJ-D2NgDJl3.js.map → MemberProfileCard-01d_jz3w-CQi_zu6x.js.map} +1 -1
  61. package/dist/MobileAnalytics-C9oc2yAo.js +18399 -0
  62. package/dist/MobileAnalytics-C9oc2yAo.js.map +1 -0
  63. package/dist/MobileMenuManagement-BmzTPXy7.js +231 -0
  64. package/dist/MobileMenuManagement-BmzTPXy7.js.map +1 -0
  65. package/dist/{MobileTypeEventConfigModal-CMcj7Ozp.js → MobileTypeEventConfigModal-DodU3beR.js} +3 -3
  66. package/dist/{MobileTypeEventConfigModal-CMcj7Ozp.js.map → MobileTypeEventConfigModal-DodU3beR.js.map} +1 -1
  67. package/dist/{NewServerManagement-Cxe0dV0O.js → NewServerManagement-BdayO78D.js} +368 -352
  68. package/dist/NewServerManagement-BdayO78D.js.map +1 -0
  69. package/dist/OtherTypeEventConfigModal-D_9S50aI.js +1414 -0
  70. package/dist/OtherTypeEventConfigModal-D_9S50aI.js.map +1 -0
  71. package/dist/{PaymentCreatePage-DfvSZ-kB-CckogYoe.js → PaymentCreatePage-D6NZBUC3-_98S21Sa.js} +56 -56
  72. package/dist/{PaymentCreatePage-DfvSZ-kB-CckogYoe.js.map → PaymentCreatePage-D6NZBUC3-_98S21Sa.js.map} +1 -1
  73. package/dist/{PaymentsPage-DMNjYWAJ-ChO9IXmk.js → PaymentsPage-CHieGNrn-ChCXEyck.js} +38 -38
  74. package/dist/{PaymentsPage-DMNjYWAJ-ChO9IXmk.js.map → PaymentsPage-CHieGNrn-ChCXEyck.js.map} +1 -1
  75. package/dist/{PermissionsModal-CCYkcKlC.js → PermissionsModal-Dxbkkrqe.js} +18 -18
  76. package/dist/PermissionsModal-Dxbkkrqe.js.map +1 -0
  77. package/dist/{PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js → PickupBatchLinesEditor-QPaqFtUO-BEtI5mIU.js} +2 -2
  78. package/dist/{PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js.map → PickupBatchLinesEditor-QPaqFtUO-BEtI5mIU.js.map} +1 -1
  79. package/dist/PickupCreatePage-C7_67u_u-DbDIZ1WC.js +801 -0
  80. package/dist/PickupCreatePage-C7_67u_u-DbDIZ1WC.js.map +1 -0
  81. package/dist/{PickupsPage-D7zyioJB-bHKnARYw.js → PickupsPage-BWblMlic-KehDMebm.js} +122 -122
  82. package/dist/PickupsPage-BWblMlic-KehDMebm.js.map +1 -0
  83. package/dist/PmGuard-BvUUbU80-DJipZoSg.js +641 -0
  84. package/dist/PmGuard-BvUUbU80-DJipZoSg.js.map +1 -0
  85. package/dist/ProductEditPage-Dbq4vUAA-DusAdAvm.js +1523 -0
  86. package/dist/ProductEditPage-Dbq4vUAA-DusAdAvm.js.map +1 -0
  87. package/dist/{ProductsPage-DvNHIeZt-BoOOJJtk.js → ProductsPage-BI22nPb4-D3GnWz34.js} +29 -29
  88. package/dist/{ProductsPage-DvNHIeZt-BoOOJJtk.js.map → ProductsPage-BI22nPb4-D3GnWz34.js.map} +1 -1
  89. package/dist/PurchaseCreatePage-C0EK9z4w-D4PlZsOH.js +724 -0
  90. package/dist/PurchaseCreatePage-C0EK9z4w-D4PlZsOH.js.map +1 -0
  91. package/dist/{PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js → PurchaseRequestDetailPage-DhBuOGHZ-CAmlL4fP.js} +446 -436
  92. package/dist/PurchaseRequestDetailPage-DhBuOGHZ-CAmlL4fP.js.map +1 -0
  93. package/dist/{PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js → PurchaseRequestsPage-Bj9HUMxb-BCAhEEkL.js} +55 -55
  94. package/dist/{PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js.map → PurchaseRequestsPage-Bj9HUMxb-BCAhEEkL.js.map} +1 -1
  95. package/dist/{PurchasesPage-DgL5T6BY-DePUuE9l.js → PurchasesPage-Djl1AqD_-DxBRFRDy.js} +61 -61
  96. package/dist/{PurchasesPage-DgL5T6BY-DePUuE9l.js.map → PurchasesPage-Djl1AqD_-DxBRFRDy.js.map} +1 -1
  97. package/dist/{RoleManagement-s8iNx2Mu.js → RoleManagement-DVYufwy-.js} +3 -3
  98. package/dist/{RoleManagement-s8iNx2Mu.js.map → RoleManagement-DVYufwy-.js.map} +1 -1
  99. package/dist/Roles-BoNGJhtR.js +19 -0
  100. package/dist/Roles-BoNGJhtR.js.map +1 -0
  101. package/dist/{SaleCreatePage-CZnIOydv-DKBw-qp7.js → SaleCreatePage-DHBLmlBr-aEGmvJQq.js} +33 -33
  102. package/dist/{SaleCreatePage-CZnIOydv-DKBw-qp7.js.map → SaleCreatePage-DHBLmlBr-aEGmvJQq.js.map} +1 -1
  103. package/dist/{SalesPage-DPIRrC_O-M8rqnK7z.js → SalesPage-eF9Yr42z-CvOr82vo.js} +34 -34
  104. package/dist/SalesPage-eF9Yr42z-CvOr82vo.js.map +1 -0
  105. package/dist/SettingsPage-Cre-UE3r-CGTVp5Zw.js +741 -0
  106. package/dist/SettingsPage-Cre-UE3r-CGTVp5Zw.js.map +1 -0
  107. package/dist/{StorageUnitsPage-BDRkdCjW-UF64rf7q.js → StorageUnitsPage-CTEVuemZ-C7zkwKMz.js} +213 -190
  108. package/dist/StorageUnitsPage-CTEVuemZ-C7zkwKMz.js.map +1 -0
  109. package/dist/{SubMenu-BdMTYtC1.js → SubMenu-DZIhur09.js} +2 -2
  110. package/dist/{SubMenu-BdMTYtC1.js.map → SubMenu-DZIhur09.js.map} +1 -1
  111. package/dist/{TableDetails-BtafRxXb.js → TableDetails-Cc40dEUs.js} +272 -267
  112. package/dist/TableDetails-Cc40dEUs.js.map +1 -0
  113. package/dist/{TableList-Dpo6dO7S.js → TableList-B5tX4wII.js} +316 -312
  114. package/dist/TableList-B5tX4wII.js.map +1 -0
  115. package/dist/{TransactionsPage-CqWTMNU8-Df6eGFDW.js → TransactionsPage-Zuu7sjID-BDmUK7s1.js} +185 -170
  116. package/dist/TransactionsPage-Zuu7sjID-BDmUK7s1.js.map +1 -0
  117. package/dist/TransferCreatePage-DlT0nCDj-evHPJc99.js +635 -0
  118. package/dist/TransferCreatePage-DlT0nCDj-evHPJc99.js.map +1 -0
  119. package/dist/TransfersPage-DqaSvHda-DAUn5SSr.js +600 -0
  120. package/dist/TransfersPage-DqaSvHda-DAUn5SSr.js.map +1 -0
  121. package/dist/{TypeConfiguration-JbRCN6GR.js → TypeConfiguration-EaFiOzRE.js} +3 -3
  122. package/dist/{TypeConfiguration-JbRCN6GR.js.map → TypeConfiguration-EaFiOzRE.js.map} +1 -1
  123. package/dist/UserList-Cf5B-o_1.js +1904 -0
  124. package/dist/UserList-Cf5B-o_1.js.map +1 -0
  125. package/dist/Users-MC7txo1V.js +43 -0
  126. package/dist/{Users-CsJ08Kjm.js.map → Users-MC7txo1V.js.map} +1 -1
  127. package/dist/VaccineEducation-DWkNNasF.js +231 -0
  128. package/dist/VaccineEducation-DWkNNasF.js.map +1 -0
  129. package/dist/VaccineEducation.css +1 -0
  130. package/dist/VaccineEducationConfigurator-BFCvu5Mw.js +1450 -0
  131. package/dist/VaccineEducationConfigurator-BFCvu5Mw.js.map +1 -0
  132. package/dist/VaccineEducationConfigurator.css +1 -0
  133. package/dist/VaccineEducationList-BxZHahCh.js +334 -0
  134. package/dist/VaccineEducationList-BxZHahCh.js.map +1 -0
  135. package/dist/VialsPage-LoDaUqVv-Dw00Zc06.js +457 -0
  136. package/dist/VialsPage-LoDaUqVv-Dw00Zc06.js.map +1 -0
  137. package/dist/ckeditor5-_x14lrzc.js +49590 -0
  138. package/dist/ckeditor5-_x14lrzc.js.map +1 -0
  139. package/dist/ckeditor5.css +4 -0
  140. package/dist/{constants-DpXnLsAB-D6lN5cjK.js → constants-BTpJFQe_-CYPZIqQF.js} +160 -61
  141. package/dist/constants-BTpJFQe_-CYPZIqQF.js.map +1 -0
  142. package/dist/dashboardLayoutUtils--xUnoKPa.js +615 -0
  143. package/dist/dashboardLayoutUtils--xUnoKPa.js.map +1 -0
  144. package/dist/faqMedia-FDpje7v0.js +234 -0
  145. package/dist/faqMedia-FDpje7v0.js.map +1 -0
  146. package/dist/index-mfoqII2U.js +524 -0
  147. package/dist/index-mfoqII2U.js.map +1 -0
  148. package/dist/{index-D9YNFPn9.js → index-o8Pyt1Bt.js} +445 -439
  149. package/dist/index-o8Pyt1Bt.js.map +1 -0
  150. package/dist/index.css +1 -1
  151. package/dist/index.js +1 -1
  152. package/dist/{index.lib-ETRQOzvE.js → index.lib-QDEODnRT.js} +409 -327
  153. package/dist/index.lib-QDEODnRT.js.map +1 -0
  154. package/dist/listValueStore-5d4vNGQM-DB08drLf.js +43 -0
  155. package/dist/listValueStore-5d4vNGQM-DB08drLf.js.map +1 -0
  156. package/dist/proxy-C4gcRXzG.js +5265 -0
  157. package/dist/proxy-C4gcRXzG.js.map +1 -0
  158. package/package.json +7 -2
  159. package/dist/AccessRights-DUgY6ewy.js +0 -1031
  160. package/dist/AccessRights-DUgY6ewy.js.map +0 -1
  161. package/dist/AddMenuConfiguration-c6ZKiN0i.js +0 -8898
  162. package/dist/AddMenuConfiguration-c6ZKiN0i.js.map +0 -1
  163. package/dist/ChangePasswordModalCore-lQ9GamH1.js +0 -5494
  164. package/dist/ChangePasswordModalCore-lQ9GamH1.js.map +0 -1
  165. package/dist/EntityManagement-CPQL6qBj.js +0 -50
  166. package/dist/EntityManagement-CPQL6qBj.js.map +0 -1
  167. package/dist/EventsUi-D6O9S7BK.js.map +0 -1
  168. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js +0 -79
  169. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js.map +0 -1
  170. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js.map +0 -1
  171. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js +0 -665
  172. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js.map +0 -1
  173. package/dist/ManageDynamicFeature-BU0I45dd.js.map +0 -1
  174. package/dist/ManageRole-CNZBRKGU.js +0 -776
  175. package/dist/ManageRole-CNZBRKGU.js.map +0 -1
  176. package/dist/MobileAnalytics-BLOionG_.js +0 -17301
  177. package/dist/MobileAnalytics-BLOionG_.js.map +0 -1
  178. package/dist/MobileMenuManagement-68Wijb0X.js +0 -220
  179. package/dist/MobileMenuManagement-68Wijb0X.js.map +0 -1
  180. package/dist/NewServerManagement-Cxe0dV0O.js.map +0 -1
  181. package/dist/OtherTypeEventConfigModal-stNmuSv_.js +0 -1812
  182. package/dist/OtherTypeEventConfigModal-stNmuSv_.js.map +0 -1
  183. package/dist/PermissionsModal-CCYkcKlC.js.map +0 -1
  184. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js +0 -783
  185. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js.map +0 -1
  186. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js.map +0 -1
  187. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js +0 -599
  188. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js.map +0 -1
  189. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js +0 -1305
  190. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js.map +0 -1
  191. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js +0 -675
  192. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js.map +0 -1
  193. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js.map +0 -1
  194. package/dist/Roles-BIyiic67.js +0 -14
  195. package/dist/Roles-BIyiic67.js.map +0 -1
  196. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js.map +0 -1
  197. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js +0 -676
  198. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js.map +0 -1
  199. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js.map +0 -1
  200. package/dist/TableDetails-BtafRxXb.js.map +0 -1
  201. package/dist/TableList-Dpo6dO7S.js.map +0 -1
  202. package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js.map +0 -1
  203. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js +0 -315
  204. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js.map +0 -1
  205. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js +0 -476
  206. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js.map +0 -1
  207. package/dist/UserList-L41Xw0Q6.js +0 -1129
  208. package/dist/UserList-L41Xw0Q6.js.map +0 -1
  209. package/dist/Users-CsJ08Kjm.js +0 -40
  210. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js +0 -321
  211. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js.map +0 -1
  212. package/dist/constants-DpXnLsAB-D6lN5cjK.js.map +0 -1
  213. package/dist/dashboardLayoutUtils-CJivzaU1.js +0 -408
  214. package/dist/dashboardLayoutUtils-CJivzaU1.js.map +0 -1
  215. package/dist/index-D9YNFPn9.js.map +0 -1
  216. package/dist/index.lib-ETRQOzvE.js.map +0 -1
  217. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js +0 -36
  218. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js.map +0 -1
@@ -17,13 +17,13 @@ import * as M from "yup";
17
17
  import { useTranslateProvider as At } from "@/common/languageTranslator/TranslationContext";
18
18
  import _t from "@/hooks/useTrackEvent";
19
19
  import { useDebounceFn as kt } from "@/hooks/useDebounceFn";
20
- import { E as Wt, T as $t, d as Lt, e as se, F as C, f as G, b as Pt, I as Ft, l as Yt, A as Ut, i as Bt } from "./EventsUi-D6O9S7BK.js";
20
+ import { E as Wt, T as $t, d as Lt, e as se, F as C, f as G, b as Pt, I as Ft, l as Yt, A as Ut, i as Bt } from "./EventsUi-Dl_yckSA.js";
21
21
  import D from "@/common/fontAwesomeIcons/FontAwesomeIcons";
22
22
  import jt from "@/views/custom-components/CustomConfirmationModal";
23
- import './ManageEventConfiguration.css';const Ht = le(() => import("./ConditionConfig-BQBmBHaM.js")), Qt = le(
24
- () => import("./MobileTypeEventConfigModal-CMcj7Ozp.js")
23
+ import './ManageEventConfiguration.css';const Ht = le(() => import("./ConditionConfig-Bpm6OoV5.js")), Qt = le(
24
+ () => import("./MobileTypeEventConfigModal-DodU3beR.js")
25
25
  ), Vt = le(
26
- () => import("./OtherTypeEventConfigModal-stNmuSv_.js")
26
+ () => import("./OtherTypeEventConfigModal-D_9S50aI.js")
27
27
  );
28
28
  function vn() {
29
29
  var qe, Ne;
@@ -1213,4 +1213,4 @@ function vn() {
1213
1213
  export {
1214
1214
  vn as default
1215
1215
  };
1216
- //# sourceMappingURL=ManageEventConfiguration-DqW3krT6.js.map
1216
+ //# sourceMappingURL=ManageEventConfiguration-DqPbn3Oi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManageEventConfiguration-DqW3krT6.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 PostgresEditor from \"@/views/custom-components/PostgresEditor\";\nimport {\n Box,\n Button,\n Chip,\n Collapse,\n Divider,\n IconButton,\n Paper,\n Tooltip,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport React, { lazy, Suspense, useEffect, useMemo, useRef, useState } from \"react\";\nimport { 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\";\nimport { useDebounceFn } from \"@/hooks/useDebounceFn\";\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 FontAwesomeIcons from \"@/common/fontAwesomeIcons/FontAwesomeIcons\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport {\n ACTION_TYPES,\n EmptyState,\n EVENT_TYPES,\n FieldHelp,\n FieldLabel,\n iconOf,\n ImplicitParams,\n labelOf,\n SectionHeading,\n TRIGGER_WHEN,\n} from \"./components/EventsUi\";\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 [queryErrors, setQueryErrors] = useState({});\n // Collapsed-by-index. Reset whenever the list changes, so a delete can never\n // leave the collapsed flags pointing at a different configuration.\n const [collapsedConfigs, setCollapsedConfigs] = useState({});\n const [configPendingDelete, setConfigPendingDelete] = useState(null);\n\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 });\n const {\n control,\n handleSubmit,\n setValue,\n watch,\n formState: { errors, isSubmitting },\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 const missingQuery = notificationConfigDetails.some(\n (config) => !config.query,\n );\n if (missingQuery) {\n const nextErrors = {};\n notificationConfigDetails.forEach((config, index) => {\n if (!config.query) nextErrors[index] = \"Query Required\";\n });\n setQueryErrors(nextErrors);\n showToast({\n message: \"Every configuration needs a query before you can save.\",\n type: \"warn\",\n });\n return;\n }\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 updated successfully\"\n : \"Event created successfully\",\n type: \"success\",\n });\n submitRef.current = true;\n navigate(\"/ui/medplat/notification/all\");\n } else {\n showToast({\n message: \"Add at least one configuration before saving.\",\n type: \"warn\",\n });\n }\n } catch {\n showToast({\n message: \"Could not save this event. Please try again.\",\n type: \"error\",\n });\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: \"Could not load this event. Please try again.\",\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 // clauses that end the select list when they appear outside any bracket\n const clauseKeywords = [\n \"from\",\n \"where\",\n \"group\",\n \"having\",\n \"order\",\n \"limit\",\n \"offset\",\n \"union\",\n \"intersect\",\n \"except\",\n \"window\",\n \"fetch\",\n \"into\",\n \"returning\",\n ];\n\n if (config?.query) {\n // drop -- and /* */ comments, keeping string literals untouched\n let sql = \"\";\n let quote = null;\n for (let i = 0; i < config.query.length; i++) {\n const character = config.query[i];\n const nextCharacter = config.query[i + 1];\n if (quote) {\n sql += character;\n if (character === quote) {\n quote = null;\n }\n } else if (character === \"'\" || character === '\"') {\n quote = character;\n sql += character;\n } else if (character === \"-\" && nextCharacter === \"-\") {\n while (i < config.query.length && config.query[i] !== \"\\n\") {\n i++;\n }\n sql += \"\\n\";\n } else if (character === \"/\" && nextCharacter === \"*\") {\n i += 2;\n while (\n i < config.query.length &&\n !(config.query[i] === \"*\" && config.query[i + 1] === \"/\")\n ) {\n i++;\n }\n i++;\n sql += \" \";\n } else {\n sql += character;\n }\n }\n\n // locate the select list of the outermost select, i.e. the first SELECT\n // that sits outside every bracket, so CTE bodies and sub queries are skipped\n let depth = 0;\n quote = null;\n let selectStart = -1;\n let selectEnd = -1;\n const commas = [];\n for (let i = 0; i < sql.length; i++) {\n const character = sql[i];\n if (quote) {\n if (character === quote) {\n quote = null;\n }\n } else if (character === \"'\" || character === '\"') {\n quote = character;\n } else if (character === \"(\") {\n depth++;\n } else if (character === \")\") {\n depth--;\n } else if (depth === 0) {\n if (character === \";\" && selectStart >= 0) {\n selectEnd = i;\n break;\n } else if (character === \",\" && selectStart >= 0) {\n commas.push(i);\n } else if (\n /[a-z_]/i.test(character) &&\n !/[\\w.]/.test(sql[i - 1] || \"\")\n ) {\n const word = (sql.slice(i).match(/^[a-z_]+/i) || [\"\"])[0];\n if (selectStart < 0) {\n if (word.toLowerCase() === \"select\") {\n selectStart = i + word.length;\n }\n i += word.length - 1;\n } else if (clauseKeywords.includes(word.toLowerCase())) {\n selectEnd = i;\n break;\n } else {\n i += word.length - 1;\n }\n }\n }\n }\n\n // nothing to list when the statement has no outermost select, such as a\n // plain update or a CTE whose main statement is an update or a delete\n if (selectStart >= 0) {\n if (selectEnd < 0) {\n selectEnd = sql.length;\n }\n\n // split the select list on its own commas, ignoring the ones in brackets\n const namedParameters = [];\n let itemStart = selectStart;\n commas\n .filter((comma) => comma < selectEnd)\n .forEach((comma) => {\n namedParameters.push(sql.substring(itemStart, comma));\n itemStart = comma + 1;\n });\n namedParameters.push(sql.substring(itemStart, selectEnd));\n\n namedParameters.forEach((parameter) => {\n const tempParameter = parameter\n .replace(/^\\s*(distinct\\s+on\\s*\\([\\s\\S]*?\\)|distinct|all)\\s+/i, \"\")\n .trim();\n if (\n tempParameter &&\n tempParameter !== \"*\" &&\n !tempParameter.endsWith(\".*\")\n ) {\n // the last \" as \" that is outside brackets and string literals\n let aliasDepth = 0;\n let aliasQuote = null;\n let aliasIndex = -1;\n for (let i = 0; i < tempParameter.length; i++) {\n const character = tempParameter[i];\n if (aliasQuote) {\n if (character === aliasQuote) {\n aliasQuote = null;\n }\n } else if (character === \"'\" || character === '\"') {\n aliasQuote = character;\n } else if (character === \"(\") {\n aliasDepth++;\n } else if (character === \")\") {\n aliasDepth--;\n } else if (\n aliasDepth === 0 &&\n /\\s/.test(character) &&\n /^as\\s/i.test(tempParameter.substring(i + 1))\n ) {\n aliasIndex = i + 1;\n }\n }\n // a column without an alias is kept as it is written, such as cs.id\n const parameterWithAlias =\n aliasIndex >= 0\n ? tempParameter.substring(aliasIndex + 3).trim()\n : tempParameter.replace(/\\s+/g, \" \").trim();\n const parameterName = parameterWithAlias.replace(/^\"|\"$/g, \"\");\n // expressions without an alias have no result column name to offer\n if (/^[a-z_][\\w$]*(\\.[a-z_][\\w$]*)*$/i.test(parameterName)) {\n config.implicitParam.push(\"#\" + parameterName + \"#\");\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 setQueryErrors({});\n setCollapsedConfigs({});\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 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 setQueryErrors((current) => {\n const next = { ...current };\n if (value) delete next[index];\n else next[index] = \"Query Required\";\n return next;\n });\n };\n\n // Re-parsing the SQL for its result columns on every keystroke is wasteful,\n // and the placeholder list is only useful once the user pauses.\n const refreshImplicitParams = useDebounceFn((index) => {\n setNotificationConfigDetails((current) => {\n const next = [...current];\n if (next[index]) setImplicitParam(next[index]);\n return next;\n });\n }, 400);\n\n /**\n * Adds a new notification configuration to the list.\n *\n * @async\n * @function addConfiguration\n */\n const addConfiguration = async () => {\n const missing = {};\n notificationConfigDetails.forEach((notification, index) => {\n if (!notification.query) {\n missing[index] = \"Query Required\";\n }\n });\n if (Object.keys(missing).length > 0) {\n setQueryErrors(missing);\n return;\n }\n setNotificationConfigDetails([\n ...notificationConfigDetails,\n { query: \"\", conditions: [], queryParam: null },\n ]);\n setCollapsedConfigs({});\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 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 */\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 const eventTypeOptions = useMemo(\n () =>\n EVENT_TYPES.map((type) => ({\n value: type.value,\n label: translate(type.label),\n })),\n [translate],\n );\n\n const triggerWhenOptions = useMemo(\n () =>\n TRIGGER_WHEN.map((trigger) => ({\n value: trigger.value,\n label: translate(trigger.label),\n })),\n [translate],\n );\n\n const formOptions = useMemo(\n () => (forms || []).map((form) => ({ value: form.id, label: form.name })),\n [forms],\n );\n\n const manualEventOptions = useMemo(\n () =>\n Object.entries(events || {}).map(([value, label]) => ({ value, label })),\n [events],\n );\n\n const showDay =\n eventType === \"TIMMER_BASED\" &&\n [\"AFTER\", \"MONTHLY\", \"WEEKLY\"].includes(trigerWhen);\n const showHour =\n eventType === \"TIMMER_BASED\" &&\n [\"AFTER\", \"MONTHLY\", \"DAILY\", \"WEEKLY\"].includes(trigerWhen);\n const showMinute =\n eventType === \"TIMMER_BASED\" && trigerWhen && trigerWhen !== \"IMMEDIATELY\";\n\n return (\n <>\n <Box\n component=\"form\"\n ref={formRef}\n onSubmit={handleSubmit(submit)}\n data-testid=\"manageeventconfiguration-form\"\n sx={{ display: \"block\", pb: 2 }}\n >\n <ManageEventConfigurationSkeleton isLoading={isLoading}>\n <Paper\n elevation={0}\n sx={{\n p: { xs: 2.5, md: 3 },\n mt: 2,\n mb: 3,\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.cardRadius}px`,\n backgroundColor: \"background.paper\",\n }}\n >\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 3 }}>\n {/* ── Header ── */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n flexWrap: \"wrap\",\n gap: 2,\n }}\n data-testid=\"manageeventconfiguration-cardheader-subheader\"\n >\n <Box sx={{ minWidth: { xs: \"100%\", lg: \"50%\" } }}>\n <Typography\n variant=\"h5\"\n component=\"h1\"\n sx={{ fontWeight: 800, color: \"text.primary\", mb: 0.5 }}\n >\n {id ? translate(\"Update event\") : translate(\"New event\")}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n \"Name the event, choose what triggers it, then add the queries and conditions that decide what happens.\",\n )}\n </Typography>\n </Box>\n </Box>\n\n {/* ── Section: details ── */}\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <SectionHeading>{translate(\"Event details\")}</SectionHeading>\n <Grid container spacing={2} alignItems=\"flex-start\">\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-name-field\"\n >\n <FieldLabel required>{translate(\"Name\")}</FieldLabel>\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 </Grid>\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-description-field\"\n >\n <FieldLabel>{translate(\"Description\")}</FieldLabel>\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 <FieldHelp>\n {translate(\"What this event is for, in one line\")}\n </FieldHelp>\n </Grid>\n </Grid>\n </Box>\n\n <Divider />\n\n {/* ── Section: trigger ── */}\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <SectionHeading\n hint={translate(\"What makes this event run\")}\n >\n {translate(\"Trigger\")}\n </SectionHeading>\n <Grid container spacing={2} alignItems=\"flex-start\">\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-eventtype-field\"\n >\n <FieldLabel required>{translate(\"Event Type\")}</FieldLabel>\n <CustomDropdown\n control={control}\n name=\"eventType\"\n options={eventTypeOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n dataTestId=\"manageeventconfiguration-eventtype-select\"\n />\n </Grid>\n\n {eventType === \"FORM_SUBMITTED\" && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-formtype-field\"\n >\n <FieldLabel>{translate(\"Form Type\")}</FieldLabel>\n <CustomDropdown\n control={control}\n name=\"formTypeId\"\n options={formOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n isSortedOptions\n onChange={(event) => {\n const selectedData = forms?.find(\n (data) => data.id === event?.target?.value,\n );\n setValue(\"eventTypeDetailCode\", selectedData?.code);\n setValue(\n \"eventTypeDetailId\",\n selectedData?.detaiId || null,\n );\n }}\n dataTestId=\"manageeventconfiguration-formtype-select\"\n />\n </Grid>\n )}\n\n {eventType === \"TIMMER_BASED\" && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-triggerwhen-field\"\n >\n <FieldLabel required>\n {translate(\"Trigger When\")}\n </FieldLabel>\n <CustomDropdown\n control={control}\n name=\"trigerWhen\"\n options={triggerWhenOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n dataTestId=\"manageeventconfiguration-triggerwhen-select\"\n />\n </Grid>\n )}\n\n {showDay && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-day-field\"\n >\n <FieldLabel required>{translate(\"Day\")}</FieldLabel>\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 </Grid>\n )}\n\n {showHour && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-hour-field\"\n >\n <FieldLabel required>{translate(\"Hour\")}</FieldLabel>\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 </Grid>\n )}\n\n {showMinute && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-minute-field\"\n >\n <FieldLabel>{translate(\"Minute\")}</FieldLabel>\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 </Grid>\n )}\n\n {eventType === \"RECURSION\" && (\n <Grid size={{ xs: 12, md: 6 }}>\n <FieldLabel required>\n {translate(\"Recursion Interval (in Minutes)\")}\n </FieldLabel>\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 <FieldHelp>\n {translate(\"Between 1 and 1440 minutes\")}\n </FieldHelp>\n </Grid>\n )}\n\n {(eventType === \"TIMMER_BASED\" ||\n eventType === \"RECURSION\") && (\n <Grid size={{ xs: 12, md: 6 }}>\n <FieldLabel>{translate(\"Reports\")}</FieldLabel>\n <CustomDropdown\n id=\"reportUUID\"\n name=\"reportUUID\"\n displayName=\"name\"\n optionValue=\"uuid\"\n multiple\n control={control}\n options={reportList}\n errors={errors}\n />\n <FieldHelp>\n {translate(\"Reports refreshed after each run\")}\n </FieldHelp>\n </Grid>\n )}\n\n {eventType === \"MANUAL\" && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-event-field\"\n >\n <FieldLabel>{translate(\"Event\")}</FieldLabel>\n <CustomDropdown\n control={control}\n name=\"eventTypeDetailCode\"\n options={manualEventOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n dataTestId=\"manageeventconfiguration-eventtype-detail-select\"\n />\n </Grid>\n )}\n </Grid>\n </Box>\n\n <Divider />\n\n {/* ── Section: configurations ── */}\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n flexWrap: \"wrap\",\n gap: 2,\n }}\n >\n <SectionHeading\n hint={translate(\n \"Each configuration runs a query, then acts on the rows it returns.\",\n )}\n >\n {translate(\"Configurations\")}\n </SectionHeading>\n <Button\n size=\"small\"\n variant=\"outlined\"\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" />}\n onClick={addConfiguration}\n data-testid=\"manageeventconfiguration-add-button\"\n >\n {translate(\"Add configuration\")}\n </Button>\n </Box>\n\n <Box\n sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}\n data-testid=\"manageeventconfiguration-table-container\"\n >\n {notificationConfigDetails?.length === 0 && (\n <EmptyState\n icon=\"faDatabase\"\n title={translate(\"No configurations yet\")}\n body={translate(\n \"Add a configuration to write the query this event runs and the actions it triggers.\",\n )}\n action={\n <Button\n size=\"small\"\n variant=\"contained\"\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" />}\n onClick={addConfiguration}\n >\n {translate(\"Add configuration\")}\n </Button>\n }\n dataTestId=\"manageeventconfiguration-no-configurations\"\n />\n )}\n\n {notificationConfigDetails?.map((row, index) => (\n <Paper\n key={index + 1}\n elevation={0}\n variant=\"outlined\"\n sx={{\n p: 2,\n borderRadius: (t) => `${t.shape.cardRadius}px`,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n }}\n data-testid={`manageeventconfiguration-table-row-${index}`}\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: 2,\n flexWrap: \"wrap\",\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1,\n flexWrap: \"wrap\",\n }}\n >\n <Tooltip\n title={\n collapsedConfigs[index]\n ? translate(\"Expand\")\n : translate(\"Collapse\")\n }\n >\n <IconButton\n size=\"small\"\n onClick={() =>\n setCollapsedConfigs((current) => ({\n ...current,\n [index]: !current[index],\n }))\n }\n aria-expanded={!collapsedConfigs[index]}\n aria-label={\n collapsedConfigs[index]\n ? translate(\"Expand\")\n : translate(\"Collapse\")\n }\n data-testid={`manageeventconfiguration-table-row-${index}-collapse`}\n >\n <FontAwesomeIcons\n iconName={\n collapsedConfigs[index]\n ? \"faChevronRight\"\n : \"faChevronDown\"\n }\n size=\"sm\"\n />\n </IconButton>\n </Tooltip>\n <Typography\n variant=\"subtitle2\"\n sx={{ fontWeight: 700 }}\n >\n {translate(\"Configuration\")} {index + 1}\n </Typography>\n {/* Summary so a collapsed card still says what it does */}\n {!row?.query && (\n <Chip\n size=\"small\"\n color=\"warning\"\n variant=\"outlined\"\n label={translate(\"Query missing\")}\n />\n )}\n <Typography variant=\"caption\" color=\"text.secondary\">\n {row?.conditions?.length || 0}{\" \"}\n {translate(\"conditions\")}\n {\" · \"}\n {(row?.conditions || []).reduce(\n (total, condition) =>\n total +\n (condition?.notificaitonConfigsType?.length ||\n 0),\n 0,\n )}{\" \"}\n {translate(\"actions\")}\n </Typography>\n </Box>\n <Box\n data-testid={`manageeventconfiguration-table-row-${index}-action`}\n >\n <Tooltip title={translate(\"Delete configuration\")}>\n <IconButton\n size=\"small\"\n color=\"error\"\n onClick={() => setConfigPendingDelete(index)}\n aria-label={translate(\"Delete configuration\")}\n data-testid={`manageeventconfiguration-table-row-${index}-action-delete`}\n >\n <FontAwesomeIcons iconName=\"faTrash\" />\n </IconButton>\n </Tooltip>\n </Box>\n </Box>\n\n <Collapse\n in={!collapsedConfigs[index]}\n // The SQL editor is expensive; keep it mounted so an\n // in-progress query survives a collapse.\n unmountOnExit={false}\n >\n <Grid container spacing={2} alignItems=\"stretch\">\n {/* Query */}\n <Grid\n size={{ xs: 12, lg: 6.5 }}\n sx={{ display: \"flex\", flexDirection: \"column\", gap: 1 }}\n data-testid={`manageeventconfiguration-table-row-${index}-query`}\n >\n <FieldLabel required>\n <span data-testid=\"manageeventconfiguration-table-header-query\">\n {translate(\"Query\")}\n </span>\n </FieldLabel>\n <Box\n sx={{\n overflow: \"hidden\",\n borderRadius: (t) => `${t.shape.borderRadius}px`,\n border: \"1px solid\",\n borderColor: queryErrors[index]\n ? \"error.main\"\n : \"divider\",\n }}\n data-testid={`manageeventconfiguration-table-row-${index}-query-textarea`}\n >\n <PostgresEditor\n height=\"30vh\"\n autoFocus={false}\n defaultValue={row.query || \"\"}\n onChange={(value) => {\n handleTextChange(index, value);\n refreshImplicitParams(index);\n }}\n />\n </Box>\n {queryErrors[index] && (\n <Typography\n variant=\"caption\"\n color=\"error\"\n data-testid=\"custom-error-message\"\n >\n {translate(queryErrors[index])}\n </Typography>\n )}\n <FieldHelp>\n {translate(\n \"Every column this query selects becomes a placeholder the conditions can use.\",\n )}\n </FieldHelp>\n <ImplicitParams\n params={row?.implicitParam}\n translate={translate}\n />\n </Grid>\n\n {/* Conditions */}\n <Grid\n size={{ xs: 12, lg: 5.5 }}\n sx={{ display: \"flex\", flexDirection: \"column\", gap: 1 }}\n data-testid={`manageeventconfiguration-table-row-${index}-condition`}\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: 2,\n }}\n >\n <FieldLabel>\n <span data-testid=\"manageeventconfiguration-table-header-condition\">\n {translate(\"Condition\")}\n </span>\n </FieldLabel>\n <Button\n size=\"small\"\n variant=\"text\"\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" size=\"sm\" />}\n onClick={() => openConditionModal(row, index)}\n data-testid={\n row?.conditions?.length > 0\n ? `manageeventconfiguration-table-row-${index}-condition-add`\n : `manageeventconfiguration-table-row-${index}-condition-add-empty`\n }\n >\n {translate(\"Add condition\")}\n </Button>\n </Box>\n\n {row?.conditions?.length > 0 ? (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n flex: \"1 1 auto\",\n maxHeight: \"30vh\",\n overflowY: \"auto\",\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.borderRadius}px`,\n }}\n >\n {row.conditions.map((condition, conditionIndex) => (\n <Box\n key={conditionIndex + 1}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 1,\n px: 1.5,\n py: 1,\n borderTop: conditionIndex === 0 ? \"none\" : \"1px solid\",\n borderColor: \"divider\",\n }}\n data-testid=\"manageeventconfiguration-condition-rows\"\n >\n <Box sx={{ minWidth: 0 }}>\n <Typography\n variant=\"body2\"\n sx={{\n fontFamily: condition?.condition\n ? \"monospace\"\n : \"inherit\",\n wordBreak: \"break-word\",\n }}\n >\n {condition?.condition ||\n translate(\"Always runs\")}\n </Typography>\n {condition?.notificaitonConfigsType?.length >\n 0 ? (\n <Box\n sx={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 0.5,\n mt: 0.5,\n }}\n >\n {condition.notificaitonConfigsType.map(\n (action, actionIndex) => (\n <Chip\n key={actionIndex + 1}\n size=\"small\"\n variant=\"outlined\"\n icon={\n <FontAwesomeIcons\n iconName={iconOf(action?.type)}\n size=\"sm\"\n />\n }\n label={translate(\n labelOf(ACTION_TYPES, action?.type),\n )}\n />\n ),\n )}\n </Box>\n ) : (\n <Typography\n variant=\"caption\"\n color=\"warning.main\"\n >\n {translate(\"No actions\")}\n </Typography>\n )}\n </Box>\n <Box sx={{ display: \"flex\", gap: 0.5, flexShrink: 0 }}>\n <Tooltip title={translate(\"Edit condition\")}>\n <IconButton\n size=\"small\"\n aria-label={translate(\"Edit condition\")}\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 <FontAwesomeIcons iconName=\"faPen\" size=\"sm\" />\n </IconButton>\n </Tooltip>\n <Tooltip title={translate(\"Delete condition\")}>\n <IconButton\n size=\"small\"\n color=\"error\"\n aria-label={translate(\"Delete condition\")}\n onClick={() =>\n deleteCondition(index, conditionIndex)\n }\n data-testid={`manageeventconfiguration-table-row-${index}-condition-delete-${conditionIndex}`}\n >\n <FontAwesomeIcons iconName=\"faTrash\" size=\"sm\" />\n </IconButton>\n </Tooltip>\n </Box>\n </Box>\n ))}\n </Box>\n ) : (\n <Box\n sx={{\n flex: \"1 1 auto\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n px: 2,\n py: 3,\n border: \"1px dashed\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.borderRadius}px`,\n }}\n >\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n \"No conditions yet. Without one, this configuration does nothing.\",\n )}\n </Typography>\n </Box>\n )}\n </Grid>\n </Grid>\n </Collapse>\n </Paper>\n ))}\n </Box>\n </Box>\n </Box>\n </Paper>\n\n {/* ── Sticky action bar ── */}\n <Paper\n elevation={0}\n sx={{\n position: \"sticky\",\n bottom: 0,\n zIndex: 2,\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: 1.5,\n p: 2,\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.cardRadius}px`,\n backgroundColor: \"background.paper\",\n }}\n data-testid=\"manageeventconfiguration-cardactions\"\n >\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n type=\"button\"\n size=\"small\"\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 disabled={isSubmitting}\n data-testid=\"manageeventconfiguration-save-button\"\n >\n {translate(`${id ? \"Update\" : \"Save\"}`)}\n </Button>\n </Paper>\n </ManageEventConfigurationSkeleton>\n </Box>\n\n <CustomConfirmationModal\n open={configPendingDelete !== null}\n handleClose={() => setConfigPendingDelete(null)}\n handleClick={() => {\n handleDeleteRow(configPendingDelete);\n setConfigPendingDelete(null);\n }}\n title={translate(\"Delete this configuration?\")}\n description={`${translate(\"Configuration\")} ${\n (configPendingDelete ?? 0) + 1\n }, its query and ${\n notificationConfigDetails?.[configPendingDelete]?.conditions?.length ||\n 0\n } ${translate(\n \"conditions will be removed. This cannot be undone.\",\n )}`}\n dataTestId=\"manageeventconfiguration-delete-configuration-confirmation\"\n />\n\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","queryErrors","setQueryErrors","collapsedConfigs","setCollapsedConfigs","configPendingDelete","setConfigPendingDelete","handleOverlayState","validationSchema","Yup","eventType","schema","value","trigerWhen","control","handleSubmit","setValue","watch","errors","isSubmitting","useForm","yupResolver","useEffect","form","trackEvent","submit","data","config","nextErrors","index","showToast","isTimerBased","isFormSubmitted","isManual","isRecursion","needsDay","needsHour","cleanedNotificationConfigDetails","_a","condition","typeConfig","update","save","cur","loadInitialData","res","retrieveAllForm","manualevent","retrieveManualEvents","notificationtype","retrieveAllNotifications","notificationtypeObject","type","getReportsList","responseByid","retrieveByUUID","_c","_b","setImplicitParam","_d","key","error","clauseKeywords","sql","quote","i","character","nextCharacter","depth","selectStart","selectEnd","commas","word","namedParameters","itemStart","comma","parameter","tempParameter","aliasDepth","aliasQuote","aliasIndex","parameterName","handleDeleteRow","newRows","_","rowIndex","deleteCondition","configIndex","notificationConfigDetail","filteredConditions","idx","openConditionModal","handleTextChange","newConfig","current","next","refreshImplicitParams","useDebounceFn","addConfiguration","missing","notification","addTypeConfig","openAddConfigurationModal","handleOtherTypeConfiguration","updatedData","item","addTypeConfiguration","handleTypeConfigurationDelete","prevData","handleTypeConfigurationEdit","useTrackEvent","setNewConditionData","conditions","setNewTypeData","eventTypeOptions","useMemo","EVENT_TYPES","triggerWhenOptions","TRIGGER_WHEN","trigger","formOptions","manualEventOptions","label","showDay","showHour","showMinute","jsxs","Fragment","jsx","Box","ManageEventConfigurationSkeleton","Paper","t","Typography","SectionHeading","Grid","FieldLabel","CustomTextField","CustomTextArea","FieldHelp","Divider","CustomDropdown","event","selectedData","Button","FontAwesomeIcons","EmptyState","row","Tooltip","IconButton","Chip","total","Collapse","PostgresEditor","ImplicitParams","conditionIndex","action","actionIndex","iconOf","labelOf","ACTION_TYPES","CustomConfirmationModal","Suspense"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsCA,MAAMA,KAAkBC,GAAK,MAAM,OAAO,+BAAmB,CAAC,GACxDC,KAA6BD;AAAA,EACjC,MAAM,OAAO,0CAA8B;AAC7C,GACME,KAA4BF;AAAA,EAChC,MAAM,OAAO,yCAA6B;AAC5C;AA0BA,SAASG,KAA2B;;AAClC,QAAM,EAAE,WAAAC,EAAA,IAAcC,GAAA,GAEhBC,KAAUC,GAAO,IAAI,GACrBC,KAAYD,GAAO,EAAK,GACxB,EAAE,IAAAE,EAAA,IAAOC,GAAA,GACTC,KAAWC,GAAA,GACX,CAACC,GAAOC,EAAQ,IAAIC,EAAS,IAAI,GACjC,CAACC,IAAQC,EAAS,IAAIF,EAAS,IAAI,GACnC,CAACG,IAAqBC,EAAsB,IAAIJ,EAAS,CAAA,CAAE,GAC3D,CAACK,GAA2BC,CAA4B,IAAIN;AAAA,IAChE,CAAA;AAAA,EAAC,GAEG,CAACO,IAAqBC,EAAsB,IAAIR,EAAS,IAAI,GAC7D,CAACS,GAAgBC,EAAiB,IAAIV,EAAS,IAAI,GACnD,CAACW,IAAmBC,EAAoB,IAAIZ,EAAS,IAAI,GACzD,CAACa,IAAeC,EAAgB,IAAId,EAAS,IAAI,GACjD,CAACe,GAAcC,CAAe,IAAIhB,EAAS,IAAI,GAC/C,CAACiB,IAAmBC,EAAoB,IAAIlB,EAAS,IAAI,GACzD,CAACmB,IAAoBC,EAAqB,IAAIpB,EAAS,IAAI,GAC3D,CAACqB,GAASC,CAAU,IAAItB,EAAS,IAAI,GACrC,CAACuB,IAAaC,EAAc,IAAIxB,EAAS,EAAK,GAC9C,CAACyB,IAAcC,EAAe,IAAI1B,EAAS,EAAK,GAChD,CAAC2B,IAAiBC,CAAkB,IAAI5B,EAAS,EAAK,GACtD,CAAC6B,GAAuBC,CAAwB,IAAI9B,EAAS,CAAA,CAAE,GAC/D,CAAC+B,IAAWC,CAAY,IAAIhC,EAAS,EAAK,GAC1C,CAACiC,IAAYC,EAAa,IAAIlC,EAAS,CAAA,CAAE,GACzC,CAACmC,IAAaC,CAAc,IAAIpC,EAAS,CAAA,CAAE,GAG3C,CAACqC,GAAkBC,EAAmB,IAAItC,EAAS,CAAA,CAAE,GACrD,CAACuC,GAAqBC,EAAsB,IAAIxC,EAAS,IAAI,GAO7DyC,KAAqB,MAAMjB,GAAe,CAACD,EAAW,GAEtDmB,KAAmBC,EAAI,OAAA,EAAS,MAAM;AAAA,IAC1C,MAAMA,EAAI,SAAS,SAAS,YAAY;AAAA,IACxC,WAAWA,EAAI,SAAS,SAAS,mBAAmB;AAAA,IACpD,mBAAmBA,EAAI,OAAA,EACpB,UAAU,qCAAqC,EAC/C,KAAK,IAAI;AAAA,MACR,IAAI,MAAMC,MAAc;AAAA,MACxB,MAAM,CAACC,MACLA,EACG,SAAS,gCAAgC,EACzC,SAAS,GAAG,uDAAuD,EACnE,SAAS,MAAM,uDAAuD;AAAA,MAC3E,WAAW,CAACA,MAAWA,EAAO,YAAA;AAAA,IAAY,CAC3C;AAAA,IACH,YAAYF,EAAI,OAAA,EAAS;AAAA,MACvB;AAAA,MACA;AAAA,MACA,SAAUG,GAAO;AACf,eAAIF,MAAc,iBACT,CAAC,CAACE,IAEJ;AAAA,MACT;AAAA,IAAA;AAAA,IAEF,KAAKH,EAAI,OAAA,EAAS,KAAK,eAAe,mBAAmB,SAAUG,GAAO;AACxE,aACEF,MAAc,mBACbG,MAAe,WAAWA,MAAe,aAEnC,CAAC,CAACD,IAEJ;AAAA,IACT,CAAC;AAAA,IACD,MAAMH,EAAI,OAAA,EAAS;AAAA,MACjB;AAAA,MACA;AAAA,MACA,SAAUG,GAAO;AACf,eACEF,MAAc,mBACbG,MAAe,WACdA,MAAe,aACfA,MAAe,WAEV,CAAC,CAACD,IAEJ;AAAA,MACT;AAAA,IAAA;AAAA,IAEF,QAAQH,EAAI,OAAA,EAAS,YAAA;AAAA,EAAY,CAClC,GACK;AAAA,IACJ,SAAAK;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,GAAQ,cAAAC,GAAA;AAAA,EAAa,IAChCC,GAAQ;AAAA,IACV,eAAe;AAAA,MACb,MAAM;AAAA,MACN,aAAa;AAAA,MACb,WAAW;AAAA,MACX,mBAAmB;AAAA,MACnB,QAAQ;AAAA,IAAA;AAAA,IAEV,UAAUC,GAAYb,EAAgB;AAAA,IACtC,MAAM;AAAA,EAAA,CACP,GAEKE,IAAYO,GAAM,WAAW;AACnC,MAAIJ,IAAaI,GAAM,YAAY;AAUnC,EAAAK,GAAU,MAAM;AACd,QAAIC,IAAOlE,GAAQ;AAEnB,WAAO,MAAM;AACX,MAAAmE,GAAW,oBAAoB;AAAA,QAC7B,MAAAD;AAAA,QACA,WAAW;AAAA,QACX,QAAQhE,GAAU;AAAA,MAAA,CACnB;AAAA,IACH;AAAA,EACF,GAAG,CAAA,CAAE;AACL,QAAMkE,KAAS,OAAOC,MAAS;AAC7B,QAAI;AACF,UAAIvD,EAA0B,SAAS,GAAG;AAIxC,YAHqBA,EAA0B;AAAA,UAC7C,CAACwD,MAAW,CAACA,EAAO;AAAA,QAAA,GAEJ;AAChB,gBAAMC,IAAa,CAAA;AACnB,UAAAzD,EAA0B,QAAQ,CAACwD,GAAQE,MAAU;AACnD,YAAKF,EAAO,UAAOC,EAAWC,CAAK,IAAI;AAAA,UACzC,CAAC,GACD3B,EAAe0B,CAAU,GACzBE,EAAU;AAAA,YACR,SAAS;AAAA,YACT,MAAM;AAAA,UAAA,CACP;AACD;AAAA,QACF;AACA,QAAAJ,EAAK,SAAS,OAAOA,EAAK,UAAU,CAAC,GACrCA,EAAK,4BAA4BvD;AAEjC,cAAM4D,IAAerB,MAAc,gBAC7BsB,IAAkBtB,MAAc,kBAChCuB,IAAWvB,MAAc,UACzBwB,IAAcxB,MAAc;AAClC,QAAKqB,MACH,OAAOL,EAAK,YACZ,OAAOA,EAAK,KACZ,OAAOA,EAAK,MACZ,OAAOA,EAAK,SAETM,KACH,OAAON,EAAK,YAEV,CAACM,KAAmB,CAACC,MACvB,OAAOP,EAAK,qBACZ,OAAOA,EAAK,oBAEVQ,KACF,OAAOR,EAAK,YACZA,EAAK,aAAa,eAElB,OAAOA,EAAK;AAGd,cAAMS,IAAW,CAAC,SAAS,WAAW,QAAQ,GACxCC,IAAY,CAAC,SAAS,WAAW,SAAS,QAAQ;AACxD,QAAKD,EAAS,SAAStB,CAAU,KAC/B,OAAOa,EAAK,KAETU,EAAU,SAASvB,CAAU,MAChC,OAAOa,EAAK,KACZ,OAAOA,EAAK,OAEVb,MAAe,kBACjB,OAAOa,EAAK,KACZ,OAAOA,EAAK,MACZ,OAAOA,EAAK;AAEd,cAAMW,IAAmClE,EAA0B,IAAI,CAAAwD,MAAA;;AAAW;AAAA,YAChF,GAAGA;AAAA,YACH,aAAYW,IAAAX,EAAO,eAAP,gBAAAW,EAAmB,IAAI,CAAAC,OAAc;AAAA,cAC/C,GAAGA;AAAA,cACH,yBAAyBA,EAAU,0BAA0BA,EAAU,wBAAwB,IAAI,CAAAC,OAAe;AAAA,gBAChH,GAAGA;AAAA,gBACH,WAAWA,EAAW,cAAc,KAAK,OAAOA,EAAW;AAAA,cAAA,EAC3D,IAAID,EAAU;AAAA,YAAA;AAAA,UAChB;AAAA,SACF;AACF,QAAAb,EAAK,4BAA4BW,GAC7B7E,IACF,MAAMiF,GAAOf,CAAI,IAEjB,MAAMgB,GAAKhB,CAAI,GAGjBF,GAAW,gBAAgB;AAAA,UACzB,aAAa;AAAA,UACb,aAAa;AAAA,UACb,WAAW;AAAA,QAAA,CACZ,GAEDM,EAAU;AAAA,UACR,SAAStE,IACL,+BACA;AAAA,UACJ,MAAM;AAAA,QAAA,CACP,GACDD,GAAU,UAAU,IACpBG,GAAS,8BAA8B;AAAA,MACzC;AACE,QAAAoE,EAAU;AAAA,UACR,SAAS;AAAA,UACT,MAAM;AAAA,QAAA,CACP;AAAA,IAEL,QAAQ;AACN,MAAAA,EAAU;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MAAA,CACP,GACDhC,EAAa,CAAC6C,MAAQ,CAACA,CAAG;AAAA,IAC5B;AAAA,EACF;AAEA,EAAArB,GAAU,MAAM;AACd,IAAAsB,GAAA;AAAA,EACF,GAAG,CAAA,CAAE;AAQL,QAAMA,KAAkB,YAAY;;AAClC,QAAI;AACF,MAAA9C,EAAa,CAAC6C,MAAQ,CAACA,CAAG;AAC1B,YAAME,IAAM,MAAMC,GAAgB,EAAE,WAAW,IAAM;AACrD,MAAAjF,GAASgF,KAAA,gBAAAA,EAAK,IAAI;AAClB,YAAME,IAAc,MAAMC,GAAA;AAE1B,MAAAhF,GAAU+E,KAAA,gBAAAA,EAAa,IAAI;AAC3B,YAAME,IAAmB,MAAMC,GAAyB,EAAI;AAC5D,UAAIC,IAAyB,CAAA;AAC7B,OAAAb,IAAAW,KAAA,gBAAAA,EAAkB,SAAlB,QAAAX,EAAwB,QAAQ,CAACc,MAAS;AACxC,QAAAD,EAAuBC,KAAA,gBAAAA,EAAM,EAAE,IAAIA,KAAA,gBAAAA,EAAM;AAAA,MAC3C,IACAlF,GAAuBiF,CAAsB;AAE7C,YAAM,EAAE,MAAMpD,EAAAA,IAAe,MAAMsD,GAAA;AAGnC,UAFArD,GAAcD,KAAc,EAAE,GAE1BvC,GAAI;AACN,cAAM8F,IAAe,MAAMC,GAAe/F,CAAE;AAC5C,SAAAgG,KAAAC,IAAAH,KAAA,gBAAAA,EAAc,SAAd,gBAAAG,EAAoB,8BAApB,QAAAD,EAA+C,QAAQ,CAAC7B,MAAW;AACjE,UAAA+B,GAAiB/B,CAAM;AAAA,QACzB;AACA,YAAID,IAAO4B,KAAA,gBAAAA,EAAc;AACzB,SAAAK,IAAA,OAAO,KAAKjC,CAAI,MAAhB,QAAAiC,EAAmB,QAAQ,CAACC,MAAQ;AAClC,UAAIlC,EAAKkC,CAAG,MAAM,UAAalC,EAAKkC,CAAG,MAAM,QAC3C5C,GAAS4C,GAAKlC,EAAKkC,CAAG,CAAC;AAAA,QAE3B,IACAxF,GAA6BsD,KAAA,gBAAAA,EAAM,8BAA6B,EAAE;AAAA,MACpE;AACA,MAAA5B,EAAa,CAAC6C,MAAQ,CAACA,CAAG;AAAA,IAC5B,SAASkB,GAAO;AACd,MAAA/B,EAAU;AAAA,QACR,SAAS;AAAA,QACT,MAAM,SAAS+B,KAAA,gBAAAA,EAAO,OAAO;AAAA,MAAA,CAC9B,GACD/D,EAAa,CAAC6C,MAAQ,CAACA,CAAG;AAAA,IAC5B;AAAA,EACF,GAQMe,KAAmB,CAAC/B,MAAW;AACnC,IAAAA,EAAO,gBAAgB,CAAC,cAAc;AAGtC,UAAMmC,IAAiB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,QAAInC,KAAA,QAAAA,EAAQ,OAAO;AAEjB,UAAIoC,IAAM,IACNC,IAAQ;AACZ,eAASC,IAAI,GAAGA,IAAItC,EAAO,MAAM,QAAQsC,KAAK;AAC5C,cAAMC,IAAYvC,EAAO,MAAMsC,CAAC,GAC1BE,IAAgBxC,EAAO,MAAMsC,IAAI,CAAC;AACxC,YAAID;AACF,UAAAD,KAAOG,GACHA,MAAcF,MAChBA,IAAQ;AAAA,iBAEDE,MAAc,OAAOA,MAAc;AAC5C,UAAAF,IAAQE,GACRH,KAAOG;AAAA,iBACEA,MAAc,OAAOC,MAAkB,KAAK;AACrD,iBAAOF,IAAItC,EAAO,MAAM,UAAUA,EAAO,MAAMsC,CAAC,MAAM;AAAA;AACpD,YAAAA;AAEF,UAAAF,KAAO;AAAA;AAAA,QACT,WAAWG,MAAc,OAAOC,MAAkB,KAAK;AAErD,eADAF,KAAK,GAEHA,IAAItC,EAAO,MAAM,UACjB,EAAEA,EAAO,MAAMsC,CAAC,MAAM,OAAOtC,EAAO,MAAMsC,IAAI,CAAC,MAAM;AAErD,YAAAA;AAEF,UAAAA,KACAF,KAAO;AAAA,QACT;AACE,UAAAA,KAAOG;AAAA,MAEX;AAIA,UAAIE,IAAQ;AACZ,MAAAJ,IAAQ;AACR,UAAIK,IAAc,IACdC,IAAY;AAChB,YAAMC,IAAS,CAAA;AACf,eAASN,IAAI,GAAGA,IAAIF,EAAI,QAAQE,KAAK;AACnC,cAAMC,IAAYH,EAAIE,CAAC;AACvB,YAAID;AACF,UAAIE,MAAcF,MAChBA,IAAQ;AAAA,iBAEDE,MAAc,OAAOA,MAAc;AAC5C,UAAAF,IAAQE;AAAA,iBACCA,MAAc;AACvB,UAAAE;AAAA,iBACSF,MAAc;AACvB,UAAAE;AAAA,iBACSA,MAAU;AACnB,cAAIF,MAAc,OAAOG,KAAe,GAAG;AACzC,YAAAC,IAAYL;AACZ;AAAA,UACF,WAAWC,MAAc,OAAOG,KAAe;AAC7C,YAAAE,EAAO,KAAKN,CAAC;AAAA,mBAEb,UAAU,KAAKC,CAAS,KACxB,CAAC,QAAQ,KAAKH,EAAIE,IAAI,CAAC,KAAK,EAAE,GAC9B;AACA,kBAAMO,KAAQT,EAAI,MAAME,CAAC,EAAE,MAAM,WAAW,KAAK,CAAC,EAAE,GAAG,CAAC;AACxD,gBAAII,IAAc;AAChB,cAAIG,EAAK,YAAA,MAAkB,aACzBH,IAAcJ,IAAIO,EAAK,SAEzBP,KAAKO,EAAK,SAAS;AAAA,qBACVV,EAAe,SAASU,EAAK,YAAA,CAAa,GAAG;AACtD,cAAAF,IAAYL;AACZ;AAAA,YACF;AACE,cAAAA,KAAKO,EAAK,SAAS;AAAA,UAEvB;AAAA;AAAA,MAEJ;AAIA,UAAIH,KAAe,GAAG;AACpB,QAAIC,IAAY,MACdA,IAAYP,EAAI;AAIlB,cAAMU,IAAkB,CAAA;AACxB,YAAIC,IAAYL;AAChB,QAAAE,EACG,OAAO,CAACI,MAAUA,IAAQL,CAAS,EACnC,QAAQ,CAACK,MAAU;AAClB,UAAAF,EAAgB,KAAKV,EAAI,UAAUW,GAAWC,CAAK,CAAC,GACpDD,IAAYC,IAAQ;AAAA,QACtB,CAAC,GACHF,EAAgB,KAAKV,EAAI,UAAUW,GAAWJ,CAAS,CAAC,GAExDG,EAAgB,QAAQ,CAACG,MAAc;AACrC,gBAAMC,IAAgBD,EACnB,QAAQ,uDAAuD,EAAE,EACjE,KAAA;AACH,cACEC,KACAA,MAAkB,OAClB,CAACA,EAAc,SAAS,IAAI,GAC5B;AAEA,gBAAIC,IAAa,GACbC,IAAa,MACbC,KAAa;AACjB,qBAASf,IAAI,GAAGA,IAAIY,EAAc,QAAQZ,KAAK;AAC7C,oBAAMC,IAAYW,EAAcZ,CAAC;AACjC,cAAIc,IACEb,MAAca,MAChBA,IAAa,QAENb,MAAc,OAAOA,MAAc,MAC5Ca,IAAab,IACJA,MAAc,MACvBY,MACSZ,MAAc,MACvBY,MAEAA,MAAe,KACf,KAAK,KAAKZ,CAAS,KACnB,SAAS,KAAKW,EAAc,UAAUZ,IAAI,CAAC,CAAC,MAE5Ce,KAAaf,IAAI;AAAA,YAErB;AAMA,kBAAMgB,MAHJD,MAAc,IACVH,EAAc,UAAUG,KAAa,CAAC,EAAE,KAAA,IACxCH,EAAc,QAAQ,QAAQ,GAAG,EAAE,KAAA,GACA,QAAQ,UAAU,EAAE;AAE7D,YAAI,mCAAmC,KAAKI,EAAa,KACvDtD,EAAO,cAAc,KAAK,MAAMsD,KAAgB,GAAG;AAAA,UAEvD;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAQMC,KAAkB,CAACrD,MAAU;AACjC,UAAMsD,IAAUhH,KAAA,gBAAAA,EAA2B;AAAA,MACzC,CAACiH,GAAGC,MAAaA,MAAaxD;AAAA;AAEhC,IAAAzD,EAA6B+G,CAAO,GACpCjF,EAAe,CAAA,CAAE,GACjBE,GAAoB,CAAA,CAAE;AAAA,EACxB,GAUMkF,KAAkB,CAACC,GAAa1D,MAAU;AAC9C,UAAM2D,IAA2B,CAAC,GAAGrH,CAAyB,GAExDsH,IAAqBD,EACzBD,CACF,EAAE,WAAW,OAAO,CAACH,GAAGM,MAAQA,MAAQ7D,CAAK;AAC7C,IAAA2D,EAAyBD,CAAW,EAAE,aAAaE,GACnDrH,EAA6BoH,CAAwB;AAAA,EACvD,GAWMG,KAAqB,OAAOhE,GAAQ4D,GAAahD,GAAWV,MAAU;AAC1E,IAAArD,GAAkBmD,CAAM,GACxBrD,GAAuBiH,CAAW,GAC9BhD,KACF7D,GAAqB6D,CAAS,GAC9BvD,GAAqB,EAAI,GACzBF,EAAgB,KAAK,MAAM,KAAK,UAAUyD,CAAS,CAAC,CAAC,GACrD3C,GAAyB2C,KAAA,gBAAAA,EAAW,4BAA2B,EAAE,GACjE3D,GAAiBiD,CAAK,MAEtBnD,GAAqB,CAAA,CAAE,GACvBI,EAAgB,CAAA,CAAE,GAClBc,EAAyB,CAAA,CAAE,GAC3BZ,GAAqB,EAAK,IAE5BI,EAAW,CAAA,CAAE,GACbmB,GAAA;AAAA,EACF,GASMqF,KAAmB,CAAC/D,GAAOjB,MAAU;AACzC,UAAMiF,IAAY,CAAC,GAAG1H,CAAyB;AAC/C,IAAA0H,EAAUhE,CAAK,EAAE,QAAQjB,GACzBxC,EAA6ByH,CAAS,GACtC3F,EAAe,CAAC4F,MAAY;AAC1B,YAAMC,IAAO,EAAE,GAAGD,EAAA;AAClB,aAAIlF,IAAO,OAAOmF,EAAKlE,CAAK,IACvBkE,EAAKlE,CAAK,IAAI,kBACZkE;AAAA,IACT,CAAC;AAAA,EACH,GAIMC,KAAwBC,GAAc,CAACpE,MAAU;AACrD,IAAAzD,EAA6B,CAAC0H,MAAY;AACxC,YAAMC,IAAO,CAAC,GAAGD,CAAO;AACxB,aAAIC,EAAKlE,CAAK,KAAG6B,GAAiBqC,EAAKlE,CAAK,CAAC,GACtCkE;AAAA,IACT,CAAC;AAAA,EACH,GAAG,GAAG,GAQAG,KAAmB,YAAY;AACnC,UAAMC,IAAU,CAAA;AAMhB,QALAhI,EAA0B,QAAQ,CAACiI,GAAcvE,MAAU;AACzD,MAAKuE,EAAa,UAChBD,EAAQtE,CAAK,IAAI;AAAA,IAErB,CAAC,GACG,OAAO,KAAKsE,CAAO,EAAE,SAAS,GAAG;AACnC,MAAAjG,EAAeiG,CAAO;AACtB;AAAA,IACF;AACA,IAAA/H,EAA6B;AAAA,MAC3B,GAAGD;AAAA,MACH,EAAE,OAAO,IAAI,YAAY,CAAA,GAAI,YAAY,KAAA;AAAA,IAAK,CAC/C,GACDiC,GAAoB,CAAA,CAAE;AAAA,EACxB,GAUMiG,KAAgB,OAAO1E,GAAQE,MAAU;AAC7C,IAAIF,KACFA,EAAO,QAAQE,GACf3C,GAAsByC,CAAM,GAC5BvC,EAAW;AAAA,MACT,GAAG,KAAK,MAAM,KAAK,UAAUuC,CAAM,CAAC;AAAA,MACpC,eAAepD,EAAe;AAAA,IAAA,CAC/B,GACDiB,GAAgB,EAAI,MAEpBJ,EAAW,EAAE,GAAGD,GAAS,eAAeZ,EAAe,eAAe,GACtEiB,GAAgB,EAAK,IAEvB8G,GAAA;AAAA,EACF,GAOMA,KAA4B,MAAM;AACtC,IAAA5G,EAAmB,CAACiD,MAAQ,CAACA,CAAG;AAAA,EAClC,GAQM4D,KAA+B,CAAC7E,MAAS;AAC7C,QAAInC,IAAc;AAChB,YAAMiH,IAAc7G,EAAsB,IAAI,CAAC8G,GAAM5E,MAC/CA,MAAUH,EAAK,QACV,EAAE,GAAG+E,GAAM,GAAG/E,EAAA,IAEhB+E,CACR;AACD,MAAA7G,EAAyB4G,CAAW;AAAA,IACtC;AACE,MAAA5G,EAAyB,CAAC,GAAGD,GAAuB+B,CAAI,CAAC;AAE3D,IAAAgF,GAAqBhF,CAAI;AAAA,EAC3B,GAQMiF,KAAgC,CAAC9E,MAAU;AAC/C,IAAAjC;AAAA,MAAyB,CAACgH,MACxBA,EAAS,OAAO,CAACxB,GAAGnB,MAAMA,MAAMpC,CAAK;AAAA,IAAA;AAAA,EAEzC,GAQMgF,KAA8B,CAAChF,MAAU;AAC7C,IAAAwE,GAAc1G,EAAsBkC,CAAK,GAAGA,CAAK;AAAA,EACnD,GAQM6E,KAAuB,CAAChF,MAAS;AACrC,QAAIa,IAAY,EAAE,GAAG1D,EAAA;AACrB,IAAKA,EAAa,4BAChB0D,EAAU,0BAA0B,CAAA,IAElChD,KACFgD,EAAU,wBAAwBtD,GAAmB,KAAK,IAAIyC,IAE9Da,EAAU,wBAAwB,KAAKb,CAAI,GAG7C5C,EAAgByD,CAAS,GACzBnD,EAAW,CAAA,CAAE;AAAA,EACf,GAEMoC,KAAasF,GAAA,GASbC,KAAsB,CAACrF,MAAS;AACpC,QAAI3C,IAAmB;AACrB,YAAMyG,IAA2B,CAAC,GAAGrH,CAAyB;AAC9D,MAAAW,EAAgB,EAAE,GAAGD,GAAc,GAAG6C,GAAM;AAC5C,UAAIsF,IAAa,EAAE,GAAGnI,GAAc,GAAG6C,EAAA;AACvC,MAAA8D,EAAyBnH,EAAmB,EAAE,WAAWM,EAAa,IACpEqI,GACF5I,EAA6BoH,CAAwB,GACrD5F,EAAyB,CAAA,CAAE;AAAA,IAC7B,OAAO;AACL,YAAM4F,IAA2B,CAAC,GAAGrH,CAAyB;AAC9D,MAAAW,EAAgB,EAAE,GAAGD,GAAc,GAAG6C,GAAM;AAC5C,UAAIsF,IAAa,EAAE,GAAGnI,GAAc,GAAG6C,EAAA;AACvC,MAAA8D,EAAyBnH,EAAmB,EAAE,WAAW,KAAK2I,CAAU,GACxE5I,EAA6BoH,CAAwB,GACrD5F,EAAyB,CAAA,CAAE;AAAA,IAC7B;AAAA,EACF,GAQMqH,KAAiB,CAACvF,MAAS;AAC/B,IAAAtC,EAAW,EAAE,GAAGD,GAAS,GAAGuC,GAAM;AAAA,EACpC,GAEMwF,KAAmBC;AAAA,IACvB,MACEC,GAAY,IAAI,CAAChE,OAAU;AAAA,MACzB,OAAOA,EAAK;AAAA,MACZ,OAAOjG,EAAUiG,EAAK,KAAK;AAAA,IAAA,EAC3B;AAAA,IACJ,CAACjG,CAAS;AAAA,EAAA,GAGNkK,KAAqBF;AAAA,IACzB,MACEG,GAAa,IAAI,CAACC,OAAa;AAAA,MAC7B,OAAOA,EAAQ;AAAA,MACf,OAAOpK,EAAUoK,EAAQ,KAAK;AAAA,IAAA,EAC9B;AAAA,IACJ,CAACpK,CAAS;AAAA,EAAA,GAGNqK,KAAcL;AAAA,IAClB,OAAOvJ,KAAS,CAAA,GAAI,IAAI,CAAC2D,OAAU,EAAE,OAAOA,EAAK,IAAI,OAAOA,EAAK,OAAO;AAAA,IACxE,CAAC3D,CAAK;AAAA,EAAA,GAGF6J,KAAqBN;AAAA,IACzB,MACE,OAAO,QAAQpJ,MAAU,CAAA,CAAE,EAAE,IAAI,CAAC,CAAC6C,GAAO8G,CAAK,OAAO,EAAE,OAAA9G,GAAO,OAAA8G,IAAQ;AAAA,IACzE,CAAC3J,EAAM;AAAA,EAAA,GAGH4J,KACJjH,MAAc,kBACd,CAAC,SAAS,WAAW,QAAQ,EAAE,SAASG,CAAU,GAC9C+G,KACJlH,MAAc,kBACd,CAAC,SAAS,WAAW,SAAS,QAAQ,EAAE,SAASG,CAAU,GACvDgH,KACJnH,MAAc,kBAAkBG,KAAcA,MAAe;AAE/D,SACE,gBAAAiH,EAAAC,IAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,KAAK5K;AAAA,QACL,UAAU0D,GAAaU,EAAM;AAAA,QAC7B,eAAY;AAAA,QACZ,IAAI,EAAE,SAAS,SAAS,IAAI,EAAA;AAAA,QAE5B,UAAA,gBAAAqG,EAACI,MAAiC,WAAArI,IAChC,UAAA;AAAA,UAAA,gBAAAmI;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,cACX,IAAI;AAAA,gBACF,GAAG,EAAE,IAAI,KAAK,IAAI,EAAA;AAAA,gBAClB,IAAI;AAAA,gBACJ,IAAI;AAAA,gBACJ,QAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,cAAc,CAACC,MAAM,GAAGA,EAAE,MAAM,UAAU;AAAA,gBAC1C,iBAAiB;AAAA,cAAA;AAAA,cAGnB,UAAA,gBAAAN,EAACG,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA,GAExD,UAAA;AAAA,gBAAA,gBAAAD;AAAA,kBAACC;AAAA,kBAAA;AAAA,oBACC,IAAI;AAAA,sBACF,SAAS;AAAA,sBACT,gBAAgB;AAAA,sBAChB,YAAY;AAAA,sBACZ,UAAU;AAAA,sBACV,KAAK;AAAA,oBAAA;AAAA,oBAEP,eAAY;AAAA,oBAEZ,UAAA,gBAAAH,EAACG,GAAA,EAAI,IAAI,EAAE,UAAU,EAAE,IAAI,QAAQ,IAAI,MAAA,EAAM,GAC3C,UAAA;AAAA,sBAAA,gBAAAD;AAAA,wBAACK;AAAA,wBAAA;AAAA,0BACC,SAAQ;AAAA,0BACR,WAAU;AAAA,0BACV,IAAI,EAAE,YAAY,KAAK,OAAO,gBAAgB,IAAI,IAAA;AAAA,0BAEjD,UAAKlL,EAALK,IAAe,iBAA4B,WAAd;AAAA,wBAAyB;AAAA,sBAAA;AAAA,sBAEzD,gBAAAwK,EAACK,GAAA,EAAW,SAAQ,SAAQ,OAAM,kBAC/B,UAAAlL;AAAA,wBACC;AAAA,sBAAA,EACF,CACF;AAAA,oBAAA,EAAA,CACF;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAIF,gBAAA2K,EAACG,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA,GACxD,UAAA;AAAA,kBAAA,gBAAAD,EAACM,IAAA,EAAgB,UAAAnL,EAAU,eAAe,EAAA,CAAE;AAAA,oCAC3CoL,GAAA,EAAK,WAAS,IAAC,SAAS,GAAG,YAAW,cACrC,UAAA;AAAA,oBAAA,gBAAAT;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAW,UAAQ,IAAE,UAAArL,EAAU,MAAM,GAAE;AAAA,0BACxC,gBAAA6K;AAAA,4BAACS;AAAA,4BAAA;AAAA,8BACC,SAAA3H;AAAA,8BACA,IAAG;AAAA,8BACH,MAAK;AAAA,8BACL,QAAAI;AAAA,8BACA,OAAM;AAAA,8BACN,MAAK;AAAA,8BACL,YAAW;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACb;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAEF,gBAAA4G;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAY,UAAArL,EAAU,aAAa,EAAA,CAAE;AAAA,0BACtC,gBAAA6K;AAAA,4BAACU;AAAA,4BAAA;AAAA,8BACC,SAAA5H;AAAA,8BACA,IAAG;AAAA,8BACH,MAAK;AAAA,8BACL,QAAAI;AAAA,8BACA,OAAM;AAAA,8BACN,SAAS;AAAA,8BACT,eAAY;AAAA,4BAAA;AAAA,0BAAA;AAAA,0BAEd,gBAAA8G,EAACW,GAAA,EACE,UAAAxL,EAAU,qCAAqC,EAAA,CAClD;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACF,EAAA,CACF;AAAA,gBAAA,GACF;AAAA,kCAECyL,IAAA,EAAQ;AAAA,gBAGT,gBAAAd,EAACG,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA,GACxD,UAAA;AAAA,kBAAA,gBAAAD;AAAA,oBAACM;AAAA,oBAAA;AAAA,sBACC,MAAMnL,EAAU,2BAA2B;AAAA,sBAE1C,YAAU,SAAS;AAAA,oBAAA;AAAA,kBAAA;AAAA,oCAErBoL,GAAA,EAAK,WAAS,IAAC,SAAS,GAAG,YAAW,cACrC,UAAA;AAAA,oBAAA,gBAAAT;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAW,UAAQ,IAAE,UAAArL,EAAU,YAAY,GAAE;AAAA,0BAC9C,gBAAA6K;AAAA,4BAACa;AAAA,4BAAA;AAAA,8BACC,SAAA/H;AAAA,8BACA,MAAK;AAAA,8BACL,SAASoG;AAAA,8BACT,aAAY;AAAA,8BACZ,aAAY;AAAA,8BACZ,QAAAhG;AAAA,8BACA,YAAW;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACb;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAGDR,MAAc,oBACb,gBAAAoH;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAY,UAAArL,EAAU,WAAW,EAAA,CAAE;AAAA,0BACpC,gBAAA6K;AAAA,4BAACa;AAAA,4BAAA;AAAA,8BACC,SAAA/H;AAAA,8BACA,MAAK;AAAA,8BACL,SAAS0G;AAAA,8BACT,aAAY;AAAA,8BACZ,aAAY;AAAA,8BACZ,QAAAtG;AAAA,8BACA,iBAAe;AAAA,8BACf,UAAU,CAAC4H,MAAU;AACnB,sCAAMC,IAAenL,KAAA,gBAAAA,EAAO;AAAA,kCAC1B,CAAC8D,MAAA;;AAAS,2CAAAA,EAAK,SAAOY,IAAAwG,KAAA,gBAAAA,EAAO,WAAP,gBAAAxG,EAAe;AAAA;AAAA;AAEvC,gCAAAtB,GAAS,uBAAuB+H,KAAA,gBAAAA,EAAc,IAAI,GAClD/H;AAAA,kCACE;AAAA,mCACA+H,KAAA,gBAAAA,EAAc,YAAW;AAAA,gCAAA;AAAA,8BAE7B;AAAA,8BACA,YAAW;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACb;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAIHrI,MAAc,kBACb,gBAAAoH;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAW,UAAQ,IACjB,UAAArL,EAAU,cAAc,GAC3B;AAAA,0BACA,gBAAA6K;AAAA,4BAACa;AAAA,4BAAA;AAAA,8BACC,SAAA/H;AAAA,8BACA,MAAK;AAAA,8BACL,SAASuG;AAAA,8BACT,aAAY;AAAA,8BACZ,aAAY;AAAA,8BACZ,QAAAnG;AAAA,8BACA,YAAW;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACb;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAIHyG,MACC,gBAAAG;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAW,UAAQ,IAAE,UAAArL,EAAU,KAAK,GAAE;AAAA,0BACvC,gBAAA6K;AAAA,4BAACS;AAAA,4BAAA;AAAA,8BACC,SAAA3H;AAAA,8BACA,IAAG;AAAA,8BACH,MAAK;AAAA,8BACL,QAAAI;AAAA,8BACA,MAAK;AAAA,8BACL,OAAM;AAAA,8BACN,MAAK;AAAA,8BACL,YAAW;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACb;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAIH0G,MACC,gBAAAE;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAW,UAAQ,IAAE,UAAArL,EAAU,MAAM,GAAE;AAAA,0BACxC,gBAAA6K;AAAA,4BAACS;AAAA,4BAAA;AAAA,8BACC,SAAA3H;AAAA,8BACA,IAAG;AAAA,8BACH,MAAK;AAAA,8BACL,MAAK;AAAA,8BACL,QAAAI;AAAA,8BACA,OAAM;AAAA,8BACN,MAAK;AAAA,8BACL,YAAW;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACb;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAIH2G,MACC,gBAAAC;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAY,UAAArL,EAAU,QAAQ,EAAA,CAAE;AAAA,0BACjC,gBAAA6K;AAAA,4BAACS;AAAA,4BAAA;AAAA,8BACC,SAAA3H;AAAA,8BACA,IAAG;AAAA,8BACH,MAAK;AAAA,8BACL,QAAAI;AAAA,8BACA,MAAK;AAAA,8BACL,OAAM;AAAA,8BACN,MAAK;AAAA,8BACL,YAAW;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACb;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAIHR,MAAc,eACb,gBAAAoH,EAACS,GAAA,EAAK,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA,GACxB,UAAA;AAAA,sBAAA,gBAAAP,EAACQ,GAAA,EAAW,UAAQ,IACjB,UAAArL,EAAU,iCAAiC,GAC9C;AAAA,sBACA,gBAAA6K;AAAA,wBAACS;AAAA,wBAAA;AAAA,0BACC,MAAK;AAAA,0BACL,SAAA3H;AAAA,0BACA,IAAG;AAAA,0BACH,MAAK;AAAA,0BACL,QAAAI;AAAA,0BACA,OAAM;AAAA,0BACN,MAAK;AAAA,0BACL,YAAW;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAEb,gBAAA8G,EAACW,GAAA,EACE,UAAAxL,EAAU,4BAA4B,EAAA,CACzC;AAAA,oBAAA,GACF;AAAA,qBAGAuD,MAAc,kBACdA,MAAc,gBACd,gBAAAoH,EAACS,GAAA,EAAK,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA,GACxB,UAAA;AAAA,sBAAA,gBAAAP,EAACQ,GAAA,EAAY,UAAArL,EAAU,SAAS,EAAA,CAAE;AAAA,sBAClC,gBAAA6K;AAAA,wBAACa;AAAA,wBAAA;AAAA,0BACC,IAAG;AAAA,0BACH,MAAK;AAAA,0BACL,aAAY;AAAA,0BACZ,aAAY;AAAA,0BACZ,UAAQ;AAAA,0BACR,SAAA/H;AAAA,0BACA,SAASf;AAAA,0BACT,QAAAmB;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAEF,gBAAA8G,EAACW,GAAA,EACE,UAAAxL,EAAU,kCAAkC,EAAA,CAC/C;AAAA,oBAAA,GACF;AAAA,oBAGDuD,MAAc,YACb,gBAAAoH;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,wBACpB,eAAY;AAAA,wBAEZ,UAAA;AAAA,0BAAA,gBAAAP,EAACQ,GAAA,EAAY,UAAArL,EAAU,OAAO,EAAA,CAAE;AAAA,0BAChC,gBAAA6K;AAAA,4BAACa;AAAA,4BAAA;AAAA,8BACC,SAAA/H;AAAA,8BACA,MAAK;AAAA,8BACL,SAAS2G;AAAA,8BACT,aAAY;AAAA,8BACZ,aAAY;AAAA,8BACZ,QAAAvG;AAAA,8BACA,YAAW;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACb;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACF,EAAA,CAEJ;AAAA,gBAAA,GACF;AAAA,kCAEC0H,IAAA,EAAQ;AAAA,gBAGT,gBAAAd,EAACG,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA,GACxD,UAAA;AAAA,kBAAA,gBAAAH;AAAA,oBAACG;AAAA,oBAAA;AAAA,sBACC,IAAI;AAAA,wBACF,SAAS;AAAA,wBACT,gBAAgB;AAAA,wBAChB,YAAY;AAAA,wBACZ,UAAU;AAAA,wBACV,KAAK;AAAA,sBAAA;AAAA,sBAGP,UAAA;AAAA,wBAAA,gBAAAD;AAAA,0BAACM;AAAA,0BAAA;AAAA,4BACC,MAAMnL;AAAA,8BACJ;AAAA,4BAAA;AAAA,4BAGD,YAAU,gBAAgB;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAE7B,gBAAA6K;AAAA,0BAACgB;AAAA,0BAAA;AAAA,4BACC,MAAK;AAAA,4BACL,SAAQ;AAAA,4BACR,WAAW,gBAAAhB,EAACiB,GAAA,EAAiB,UAAS,SAAA,CAAS;AAAA,4BAC/C,SAAS/C;AAAA,4BACT,eAAY;AAAA,4BAEX,YAAU,mBAAmB;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAChC;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAGF,gBAAA4B;AAAA,oBAACG;AAAA,oBAAA;AAAA,sBACC,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA;AAAA,sBACrD,eAAY;AAAA,sBAEX,UAAA;AAAA,yBAAA9J,KAAA,gBAAAA,EAA2B,YAAW,KACrC,gBAAA6J;AAAA,0BAACkB;AAAA,0BAAA;AAAA,4BACC,MAAK;AAAA,4BACL,OAAO/L,EAAU,uBAAuB;AAAA,4BACxC,MAAMA;AAAA,8BACJ;AAAA,4BAAA;AAAA,4BAEF,QACE,gBAAA6K;AAAA,8BAACgB;AAAA,8BAAA;AAAA,gCACC,MAAK;AAAA,gCACL,SAAQ;AAAA,gCACR,WAAW,gBAAAhB,EAACiB,GAAA,EAAiB,UAAS,SAAA,CAAS;AAAA,gCAC/C,SAAS/C;AAAA,gCAER,YAAU,mBAAmB;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAGlC,YAAW;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAId/H,KAAA,gBAAAA,EAA2B,IAAI,CAACgL,GAAKtH,MAAA;;AACpC,iDAAAiG;AAAA,4BAACK;AAAA,4BAAA;AAAA,8BAEC,WAAW;AAAA,8BACX,SAAQ;AAAA,8BACR,IAAI;AAAA,gCACF,GAAG;AAAA,gCACH,cAAc,CAACC,MAAM,GAAGA,EAAE,MAAM,UAAU;AAAA,gCAC1C,SAAS;AAAA,gCACT,eAAe;AAAA,gCACf,KAAK;AAAA,8BAAA;AAAA,8BAEP,eAAa,sCAAsCvG,CAAK;AAAA,8BAExD,UAAA;AAAA,gCAAA,gBAAAiG;AAAA,kCAACG;AAAA,kCAAA;AAAA,oCACC,IAAI;AAAA,sCACF,SAAS;AAAA,sCACT,gBAAgB;AAAA,sCAChB,YAAY;AAAA,sCACZ,KAAK;AAAA,sCACL,UAAU;AAAA,oCAAA;AAAA,oCAGZ,UAAA;AAAA,sCAAA,gBAAAH;AAAA,wCAACG;AAAA,wCAAA;AAAA,0CACC,IAAI;AAAA,4CACF,SAAS;AAAA,4CACT,YAAY;AAAA,4CACZ,KAAK;AAAA,4CACL,UAAU;AAAA,0CAAA;AAAA,0CAGZ,UAAA;AAAA,4CAAA,gBAAAD;AAAA,8CAACoB;AAAA,8CAAA;AAAA,gDACC,OACEjJ,EAAiB0B,CAAK,IAClB1E,EAAU,QAAQ,IAClBA,EAAU,UAAU;AAAA,gDAG1B,UAAA,gBAAA6K;AAAA,kDAACqB;AAAA,kDAAA;AAAA,oDACC,MAAK;AAAA,oDACL,SAAS,MACPjJ,GAAoB,CAAC0F,OAAa;AAAA,sDAChC,GAAGA;AAAA,sDACH,CAACjE,CAAK,GAAG,CAACiE,EAAQjE,CAAK;AAAA,oDAAA,EACvB;AAAA,oDAEJ,iBAAe,CAAC1B,EAAiB0B,CAAK;AAAA,oDACtC,cACE1B,EAAiB0B,CAAK,IAClB1E,EAAU,QAAQ,IAClBA,EAAU,UAAU;AAAA,oDAE1B,eAAa,sCAAsC0E,CAAK;AAAA,oDAExD,UAAA,gBAAAmG;AAAA,sDAACiB;AAAA,sDAAA;AAAA,wDACC,UACE9I,EAAiB0B,CAAK,IAClB,mBACA;AAAA,wDAEN,MAAK;AAAA,sDAAA;AAAA,oDAAA;AAAA,kDACP;AAAA,gDAAA;AAAA,8CACF;AAAA,4CAAA;AAAA,4CAEF,gBAAAiG;AAAA,8CAACO;AAAA,8CAAA;AAAA,gDACC,SAAQ;AAAA,gDACR,IAAI,EAAE,YAAY,IAAA;AAAA,gDAEjB,UAAA;AAAA,kDAAAlL,EAAU,eAAe;AAAA,kDAAE;AAAA,kDAAE0E,IAAQ;AAAA,gDAAA;AAAA,8CAAA;AAAA,4CAAA;AAAA,4CAGvC,EAACsH,KAAA,QAAAA,EAAK,UACL,gBAAAnB;AAAA,8CAACsB;AAAA,8CAAA;AAAA,gDACC,MAAK;AAAA,gDACL,OAAM;AAAA,gDACN,SAAQ;AAAA,gDACR,OAAOnM,EAAU,eAAe;AAAA,8CAAA;AAAA,4CAAA;AAAA,4CAGpC,gBAAA2K,EAACO,GAAA,EAAW,SAAQ,WAAU,OAAM,kBACjC,UAAA;AAAA,gDAAA/F,IAAA6G,KAAA,gBAAAA,EAAK,eAAL,gBAAA7G,EAAiB,WAAU;AAAA,8CAAG;AAAA,8CAC9BnF,EAAU,YAAY;AAAA,8CACtB;AAAA,gDACCgM,KAAA,gBAAAA,EAAK,eAAc,CAAA,GAAI;AAAA,gDACvB,CAACI,GAAOhH;;AACN,yDAAAgH,OACCjH,IAAAC,KAAA,gBAAAA,EAAW,4BAAX,gBAAAD,EAAoC,WACnC;AAAA;AAAA,gDACJ;AAAA,8CAAA;AAAA,8CACC;AAAA,8CACFnF,EAAU,SAAS;AAAA,4CAAA,EAAA,CACtB;AAAA,0CAAA;AAAA,wCAAA;AAAA,sCAAA;AAAA,sCAEF,gBAAA6K;AAAA,wCAACC;AAAA,wCAAA;AAAA,0CACC,eAAa,sCAAsCpG,CAAK;AAAA,0CAExD,UAAA,gBAAAmG,EAACoB,GAAA,EAAQ,OAAOjM,EAAU,sBAAsB,GAC9C,UAAA,gBAAA6K;AAAA,4CAACqB;AAAA,4CAAA;AAAA,8CACC,MAAK;AAAA,8CACL,OAAM;AAAA,8CACN,SAAS,MAAM/I,GAAuBuB,CAAK;AAAA,8CAC3C,cAAY1E,EAAU,sBAAsB;AAAA,8CAC5C,eAAa,sCAAsC0E,CAAK;AAAA,8CAExD,UAAA,gBAAAmG,EAACiB,GAAA,EAAiB,UAAS,UAAA,CAAU;AAAA,4CAAA;AAAA,0CAAA,EACvC,CACF;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCACF;AAAA,kCAAA;AAAA,gCAAA;AAAA,gCAGF,gBAAAjB;AAAA,kCAACwB;AAAA,kCAAA;AAAA,oCACC,IAAI,CAACrJ,EAAiB0B,CAAK;AAAA,oCAG3B,eAAe;AAAA,oCAEjB,4BAAC0G,GAAA,EAAK,WAAS,IAAC,SAAS,GAAG,YAAW,WAEvC,UAAA;AAAA,sCAAA,gBAAAT;AAAA,wCAACS;AAAA,wCAAA;AAAA,0CACC,MAAM,EAAE,IAAI,IAAI,IAAI,IAAA;AAAA,0CACpB,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA;AAAA,0CACrD,eAAa,sCAAsC1G,CAAK;AAAA,0CAExD,UAAA;AAAA,4CAAA,gBAAAmG,EAACQ,GAAA,EAAW,UAAQ,IAClB,UAAA,gBAAAR,EAAC,QAAA,EAAK,eAAY,+CACf,UAAA7K,EAAU,OAAO,EAAA,CACpB,GACF;AAAA,4CACA,gBAAA6K;AAAA,8CAACC;AAAA,8CAAA;AAAA,gDACC,IAAI;AAAA,kDACF,UAAU;AAAA,kDACV,cAAc,CAACG,MAAM,GAAGA,EAAE,MAAM,YAAY;AAAA,kDAC5C,QAAQ;AAAA,kDACR,aAAanI,GAAY4B,CAAK,IAC1B,eACA;AAAA,gDAAA;AAAA,gDAEN,eAAa,sCAAsCA,CAAK;AAAA,gDAExD,UAAA,gBAAAmG;AAAA,kDAACyB;AAAA,kDAAA;AAAA,oDACC,QAAO;AAAA,oDACP,WAAW;AAAA,oDACX,cAAcN,EAAI,SAAS;AAAA,oDAC3B,UAAU,CAACvI,MAAU;AACnB,sDAAAgF,GAAiB/D,GAAOjB,CAAK,GAC7BoF,GAAsBnE,CAAK;AAAA,oDAC7B;AAAA,kDAAA;AAAA,gDAAA;AAAA,8CACF;AAAA,4CAAA;AAAA,4CAED5B,GAAY4B,CAAK,KAChB,gBAAAmG;AAAA,8CAACK;AAAA,8CAAA;AAAA,gDACC,SAAQ;AAAA,gDACR,OAAM;AAAA,gDACN,eAAY;AAAA,gDAEX,UAAAlL,EAAU8C,GAAY4B,CAAK,CAAC;AAAA,8CAAA;AAAA,4CAAA;AAAA,8DAGhC8G,GAAA,EACE,UAAAxL;AAAA,8CACC;AAAA,4CAAA,GAEJ;AAAA,4CACA,gBAAA6K;AAAA,8CAAC0B;AAAA,8CAAA;AAAA,gDACC,QAAQP,KAAA,gBAAAA,EAAK;AAAA,gDACb,WAAAhM;AAAA,8CAAA;AAAA,4CAAA;AAAA,0CACF;AAAA,wCAAA;AAAA,sCAAA;AAAA,sCAIF,gBAAA2K;AAAA,wCAACS;AAAA,wCAAA;AAAA,0CACC,MAAM,EAAE,IAAI,IAAI,IAAI,IAAA;AAAA,0CACpB,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA;AAAA,0CACrD,eAAa,sCAAsC1G,CAAK;AAAA,0CAExD,UAAA;AAAA,4CAAA,gBAAAiG;AAAA,8CAACG;AAAA,8CAAA;AAAA,gDACC,IAAI;AAAA,kDACF,SAAS;AAAA,kDACT,gBAAgB;AAAA,kDAChB,YAAY;AAAA,kDACZ,KAAK;AAAA,gDAAA;AAAA,gDAGP,UAAA;AAAA,kDAAA,gBAAAD,EAACQ,GAAA,EACC,4BAAC,QAAA,EAAK,eAAY,mDACf,UAAArL,EAAU,WAAW,GACxB,EAAA,CACF;AAAA,kDACA,gBAAA6K;AAAA,oDAACgB;AAAA,oDAAA;AAAA,sDACC,MAAK;AAAA,sDACL,SAAQ;AAAA,sDACR,WAAW,gBAAAhB,EAACiB,GAAA,EAAiB,UAAS,UAAS,MAAK,MAAK;AAAA,sDACzD,SAAS,MAAMtD,GAAmBwD,GAAKtH,CAAK;AAAA,sDAC5C,iBACE4B,IAAA0F,KAAA,gBAAAA,EAAK,eAAL,gBAAA1F,EAAiB,UAAS,IACtB,sCAAsC5B,CAAK,mBAC3C,sCAAsCA,CAAK;AAAA,sDAGhD,YAAU,eAAe;AAAA,oDAAA;AAAA,kDAAA;AAAA,gDAC5B;AAAA,8CAAA;AAAA,4CAAA;AAAA,8CAGD2B,IAAA2F,KAAA,gBAAAA,EAAK,eAAL,gBAAA3F,EAAiB,UAAS,IACzB,gBAAAwE;AAAA,8CAACC;AAAA,8CAAA;AAAA,gDACC,IAAI;AAAA,kDACF,SAAS;AAAA,kDACT,eAAe;AAAA,kDACf,MAAM;AAAA,kDACN,WAAW;AAAA,kDACX,WAAW;AAAA,kDACX,QAAQ;AAAA,kDACR,aAAa;AAAA,kDACb,cAAc,CAACG,MAAM,GAAGA,EAAE,MAAM,YAAY;AAAA,gDAAA;AAAA,gDAG7C,UAAAe,EAAI,WAAW,IAAI,CAAC5G,GAAWoH;;AAC9B,yEAAA7B;AAAA,oDAACG;AAAA,oDAAA;AAAA,sDAEC,IAAI;AAAA,wDACF,SAAS;AAAA,wDACT,YAAY;AAAA,wDACZ,gBAAgB;AAAA,wDAChB,KAAK;AAAA,wDACL,IAAI;AAAA,wDACJ,IAAI;AAAA,wDACJ,WAAW0B,MAAmB,IAAI,SAAS;AAAA,wDAC3C,aAAa;AAAA,sDAAA;AAAA,sDAEf,eAAY;AAAA,sDAEZ,UAAA;AAAA,wDAAA,gBAAA7B,EAACG,GAAA,EAAI,IAAI,EAAE,UAAU,KACnB,UAAA;AAAA,0DAAA,gBAAAD;AAAA,4DAACK;AAAA,4DAAA;AAAA,8DACC,SAAQ;AAAA,8DACR,IAAI;AAAA,gEACF,YAAY9F,KAAA,QAAAA,EAAW,YACnB,cACA;AAAA,gEACJ,WAAW;AAAA,8DAAA;AAAA,8DAGZ,WAAAA,KAAA,gBAAAA,EAAW,cACVpF,EAAU,aAAa;AAAA,4DAAA;AAAA,0DAAA;AAAA,4DAE1BmF,IAAAC,KAAA,gBAAAA,EAAW,4BAAX,gBAAAD,EAAoC,UACrC,IACE,gBAAA0F;AAAA,4DAACC;AAAA,4DAAA;AAAA,8DACC,IAAI;AAAA,gEACF,SAAS;AAAA,gEACT,UAAU;AAAA,gEACV,KAAK;AAAA,gEACL,IAAI;AAAA,8DAAA;AAAA,8DAGL,YAAU,wBAAwB;AAAA,gEACjC,CAAC2B,GAAQC,MACP,gBAAA7B;AAAA,kEAACsB;AAAA,kEAAA;AAAA,oEAEC,MAAK;AAAA,oEACL,SAAQ;AAAA,oEACR,MACE,gBAAAtB;AAAA,sEAACiB;AAAA,sEAAA;AAAA,wEACC,UAAUa,GAAOF,KAAA,gBAAAA,EAAQ,IAAI;AAAA,wEAC7B,MAAK;AAAA,sEAAA;AAAA,oEAAA;AAAA,oEAGT,OAAOzM;AAAA,sEACL4M,GAAQC,IAAcJ,KAAA,gBAAAA,EAAQ,IAAI;AAAA,oEAAA;AAAA,kEACpC;AAAA,kEAXKC,IAAc;AAAA,gEAAA;AAAA,8DAYrB;AAAA,4DAEJ;AAAA,0DAAA,IAGF,gBAAA7B;AAAA,4DAACK;AAAA,4DAAA;AAAA,8DACC,SAAQ;AAAA,8DACR,OAAM;AAAA,8DAEL,YAAU,YAAY;AAAA,4DAAA;AAAA,0DAAA;AAAA,wDACzB,GAEJ;AAAA,wDACA,gBAAAP,EAACG,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,KAAK,KAAK,YAAY,EAAA,GAChD,UAAA;AAAA,0DAAA,gBAAAD,EAACoB,GAAA,EAAQ,OAAOjM,EAAU,gBAAgB,GACxC,UAAA,gBAAA6K;AAAA,4DAACqB;AAAA,4DAAA;AAAA,8DACC,MAAK;AAAA,8DACL,cAAYlM,EAAU,gBAAgB;AAAA,8DACtC,SAAS,MACPwI;AAAA,gEACEwD;AAAA,gEACAtH;AAAA,gEACAU;AAAA,gEACAoH;AAAA,8DAAA;AAAA,8DAGJ,eAAa,sCAAsC9H,CAAK,mBAAmB8H,CAAc;AAAA,8DAEzF,UAAA,gBAAA3B,EAACiB,GAAA,EAAiB,UAAS,SAAQ,MAAK,KAAA,CAAK;AAAA,4DAAA;AAAA,0DAAA,GAEjD;AAAA,0DACA,gBAAAjB,EAACoB,GAAA,EAAQ,OAAOjM,EAAU,kBAAkB,GAC1C,UAAA,gBAAA6K;AAAA,4DAACqB;AAAA,4DAAA;AAAA,8DACC,MAAK;AAAA,8DACL,OAAM;AAAA,8DACN,cAAYlM,EAAU,kBAAkB;AAAA,8DACxC,SAAS,MACPmI,GAAgBzD,GAAO8H,CAAc;AAAA,8DAEvC,eAAa,sCAAsC9H,CAAK,qBAAqB8H,CAAc;AAAA,8DAE3F,UAAA,gBAAA3B,EAACiB,GAAA,EAAiB,UAAS,WAAU,MAAK,KAAA,CAAK;AAAA,4DAAA;AAAA,0DAAA,EACjD,CACF;AAAA,wDAAA,EAAA,CACF;AAAA,sDAAA;AAAA,oDAAA;AAAA,oDA/FKU,IAAiB;AAAA,kDAAA;AAAA,iDAiGzB;AAAA,8CAAA;AAAA,4CAAA,IAGH,gBAAA3B;AAAA,8CAACC;AAAA,8CAAA;AAAA,gDACC,IAAI;AAAA,kDACF,MAAM;AAAA,kDACN,SAAS;AAAA,kDACT,YAAY;AAAA,kDACZ,gBAAgB;AAAA,kDAChB,WAAW;AAAA,kDACX,IAAI;AAAA,kDACJ,IAAI;AAAA,kDACJ,QAAQ;AAAA,kDACR,aAAa;AAAA,kDACb,cAAc,CAACG,MAAM,GAAGA,EAAE,MAAM,YAAY;AAAA,gDAAA;AAAA,gDAG9C,UAAA,gBAAAJ,EAACK,GAAA,EAAW,SAAQ,SAAQ,OAAM,kBAC/B,UAAAlL;AAAA,kDACC;AAAA,gDAAA,EACF,CACF;AAAA,8CAAA;AAAA,4CAAA;AAAA,0CACF;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCAEJ,EAAA,CACA;AAAA,kCAAA;AAAA,gCAAA;AAAA,8BACA;AAAA,4BAAA;AAAA,4BAnVK0E,IAAQ;AAAA,0BAAA;AAAA;AAAA,sBAqVhB;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACH,EAAA,CACF;AAAA,cAAA,EAAA,CACF;AAAA,YAAA;AAAA,UAAA;AAAA,UAIF,gBAAAiG;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,cACX,IAAI;AAAA,gBACF,UAAU;AAAA,gBACV,QAAQ;AAAA,gBACR,QAAQ;AAAA,gBACR,SAAS;AAAA,gBACT,gBAAgB;AAAA,gBAChB,KAAK;AAAA,gBACL,GAAG;AAAA,gBACH,QAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,cAAc,CAACC,MAAM,GAAGA,EAAE,MAAM,UAAU;AAAA,gBAC1C,iBAAiB;AAAA,cAAA;AAAA,cAEnB,eAAY;AAAA,cAEZ,UAAA;AAAA,gBAAA,gBAAAJ;AAAA,kBAACgB;AAAA,kBAAA;AAAA,oBACC,SAAQ;AAAA,oBACR,OAAM;AAAA,oBACN,MAAK;AAAA,oBACL,MAAK;AAAA,oBACL,SAAS,MAAM;AACb,sBAAAxH,GAAW,gBAAgB;AAAA,wBACzB,aAAa;AAAA,wBACb,aAAa;AAAA,wBACb,WAAW;AAAA,sBAAA,CACZ,GACD9D,GAAS,8BAA8B;AAAA,oBACzC;AAAA,oBACA,eAAY;AAAA,oBAEX,YAAU,QAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAErB,gBAAAsK;AAAA,kBAACgB;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,SAAQ;AAAA,oBACR,MAAK;AAAA,oBACL,OAAM;AAAA,oBACN,UAAU7H;AAAA,oBACV,eAAY;AAAA,oBAEX,UAAAhE,EAAU,GAAGK,IAAK,WAAW,MAAM,EAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACxC;AAAA,YAAA;AAAA,UAAA;AAAA,QACF,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAGF,gBAAAwK;AAAA,MAACiC;AAAA,MAAA;AAAA,QACC,MAAM5J,MAAwB;AAAA,QAC9B,aAAa,MAAMC,GAAuB,IAAI;AAAA,QAC9C,aAAa,MAAM;AACjB,UAAA4E,GAAgB7E,CAAmB,GACnCC,GAAuB,IAAI;AAAA,QAC7B;AAAA,QACA,OAAOnD,EAAU,4BAA4B;AAAA,QAC7C,aAAa,GAAGA,EAAU,eAAe,CAAC,KACvCkD,KAAuB,KAAK,CAC/B,qBACEoD,MAAAnB,KAAAnE,KAAA,gBAAAA,EAA4BkC,OAA5B,gBAAAiC,GAAkD,eAAlD,gBAAAmB,GAA8D,WAC9D,CACF,IAAItG;AAAA,UACF;AAAA,QAAA,CACD;AAAA,QACD,YAAW;AAAA,MAAA;AAAA,IAAA;AAAA,sBAGZ+M,IAAA,EACC,UAAA,gBAAAlC;AAAA,MAAClL;AAAA,MAAA;AAAA,QACC,gBAAAyB;AAAA,QACA,qBAAqBN;AAAA,QACrB,mBAAAQ;AAAA,QACA,cAAAI;AAAA,QACA,+BAAA8H;AAAA,QACA,6BAAAE;AAAA,QACA,eAAAR;AAAA,QACA,qBAAAU;AAAA,QACA,uBAAApH;AAAA,QACA,gBAAAsH;AAAA,QACA,aAAA5H;AAAA,QACA,oBAAAkB;AAAA,QACA,eAAY;AAAA,MAAA;AAAA,IAAA,GAEhB;AAAA,IACA,gBAAAyH,EAACkC,IAAA,EACE,WAAA/K,KAAA,gBAAAA,EAAS,UAAS,WACjB,gBAAA6I;AAAA,MAAChL;AAAA,MAAA;AAAA,QACC,MAAMmC;AAAA,QACN,MAAMM;AAAA,QACN,qBAAqBxB;AAAA,QACrB,aAAasI;AAAA,QACb,aAAa,MAAM;AACjB,UAAA7G,EAAmB,CAACiD,MAAQ,CAACA,CAAG,GAChCvD,EAAW,CAAA,CAAE;AAAA,QACf;AAAA,QACA,eAAY;AAAA,MAAA;AAAA,IAAA,IAGd,gBAAA4I;AAAA,MAAC/K;AAAA,MAAA;AAAA,QACC,MAAMkC;AAAA,QACN,MAAMM;AAAA,QACN,aAAa8G;AAAA,QACb,aAAa,MAAM;AACjB,UAAA7G,EAAmB,CAACiD,MAAQ,CAACA,CAAG,GAChCvD,EAAW,CAAA,CAAE;AAAA,QACf;AAAA,QACA,eAAY;AAAA,MAAA;AAAA,IAAA,EACd,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"ManageEventConfiguration-DqPbn3Oi.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 PostgresEditor from \"@/views/custom-components/PostgresEditor\";\nimport {\n Box,\n Button,\n Chip,\n Collapse,\n Divider,\n IconButton,\n Paper,\n Tooltip,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport React, { lazy, Suspense, useEffect, useMemo, useRef, useState } from \"react\";\nimport { 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\";\nimport { useDebounceFn } from \"@/hooks/useDebounceFn\";\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 FontAwesomeIcons from \"@/common/fontAwesomeIcons/FontAwesomeIcons\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport {\n ACTION_TYPES,\n EmptyState,\n EVENT_TYPES,\n FieldHelp,\n FieldLabel,\n iconOf,\n ImplicitParams,\n labelOf,\n SectionHeading,\n TRIGGER_WHEN,\n} from \"./components/EventsUi\";\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 [queryErrors, setQueryErrors] = useState({});\n // Collapsed-by-index. Reset whenever the list changes, so a delete can never\n // leave the collapsed flags pointing at a different configuration.\n const [collapsedConfigs, setCollapsedConfigs] = useState({});\n const [configPendingDelete, setConfigPendingDelete] = useState(null);\n\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 });\n const {\n control,\n handleSubmit,\n setValue,\n watch,\n formState: { errors, isSubmitting },\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 const missingQuery = notificationConfigDetails.some(\n (config) => !config.query,\n );\n if (missingQuery) {\n const nextErrors = {};\n notificationConfigDetails.forEach((config, index) => {\n if (!config.query) nextErrors[index] = \"Query Required\";\n });\n setQueryErrors(nextErrors);\n showToast({\n message: \"Every configuration needs a query before you can save.\",\n type: \"warn\",\n });\n return;\n }\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 updated successfully\"\n : \"Event created successfully\",\n type: \"success\",\n });\n submitRef.current = true;\n navigate(\"/ui/medplat/notification/all\");\n } else {\n showToast({\n message: \"Add at least one configuration before saving.\",\n type: \"warn\",\n });\n }\n } catch {\n showToast({\n message: \"Could not save this event. Please try again.\",\n type: \"error\",\n });\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: \"Could not load this event. Please try again.\",\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 // clauses that end the select list when they appear outside any bracket\n const clauseKeywords = [\n \"from\",\n \"where\",\n \"group\",\n \"having\",\n \"order\",\n \"limit\",\n \"offset\",\n \"union\",\n \"intersect\",\n \"except\",\n \"window\",\n \"fetch\",\n \"into\",\n \"returning\",\n ];\n\n if (config?.query) {\n // drop -- and /* */ comments, keeping string literals untouched\n let sql = \"\";\n let quote = null;\n for (let i = 0; i < config.query.length; i++) {\n const character = config.query[i];\n const nextCharacter = config.query[i + 1];\n if (quote) {\n sql += character;\n if (character === quote) {\n quote = null;\n }\n } else if (character === \"'\" || character === '\"') {\n quote = character;\n sql += character;\n } else if (character === \"-\" && nextCharacter === \"-\") {\n while (i < config.query.length && config.query[i] !== \"\\n\") {\n i++;\n }\n sql += \"\\n\";\n } else if (character === \"/\" && nextCharacter === \"*\") {\n i += 2;\n while (\n i < config.query.length &&\n !(config.query[i] === \"*\" && config.query[i + 1] === \"/\")\n ) {\n i++;\n }\n i++;\n sql += \" \";\n } else {\n sql += character;\n }\n }\n\n // locate the select list of the outermost select, i.e. the first SELECT\n // that sits outside every bracket, so CTE bodies and sub queries are skipped\n let depth = 0;\n quote = null;\n let selectStart = -1;\n let selectEnd = -1;\n const commas = [];\n for (let i = 0; i < sql.length; i++) {\n const character = sql[i];\n if (quote) {\n if (character === quote) {\n quote = null;\n }\n } else if (character === \"'\" || character === '\"') {\n quote = character;\n } else if (character === \"(\") {\n depth++;\n } else if (character === \")\") {\n depth--;\n } else if (depth === 0) {\n if (character === \";\" && selectStart >= 0) {\n selectEnd = i;\n break;\n } else if (character === \",\" && selectStart >= 0) {\n commas.push(i);\n } else if (\n /[a-z_]/i.test(character) &&\n !/[\\w.]/.test(sql[i - 1] || \"\")\n ) {\n const word = (sql.slice(i).match(/^[a-z_]+/i) || [\"\"])[0];\n if (selectStart < 0) {\n if (word.toLowerCase() === \"select\") {\n selectStart = i + word.length;\n }\n i += word.length - 1;\n } else if (clauseKeywords.includes(word.toLowerCase())) {\n selectEnd = i;\n break;\n } else {\n i += word.length - 1;\n }\n }\n }\n }\n\n // nothing to list when the statement has no outermost select, such as a\n // plain update or a CTE whose main statement is an update or a delete\n if (selectStart >= 0) {\n if (selectEnd < 0) {\n selectEnd = sql.length;\n }\n\n // split the select list on its own commas, ignoring the ones in brackets\n const namedParameters = [];\n let itemStart = selectStart;\n commas\n .filter((comma) => comma < selectEnd)\n .forEach((comma) => {\n namedParameters.push(sql.substring(itemStart, comma));\n itemStart = comma + 1;\n });\n namedParameters.push(sql.substring(itemStart, selectEnd));\n\n namedParameters.forEach((parameter) => {\n const tempParameter = parameter\n .replace(/^\\s*(distinct\\s+on\\s*\\([\\s\\S]*?\\)|distinct|all)\\s+/i, \"\")\n .trim();\n if (\n tempParameter &&\n tempParameter !== \"*\" &&\n !tempParameter.endsWith(\".*\")\n ) {\n // the last \" as \" that is outside brackets and string literals\n let aliasDepth = 0;\n let aliasQuote = null;\n let aliasIndex = -1;\n for (let i = 0; i < tempParameter.length; i++) {\n const character = tempParameter[i];\n if (aliasQuote) {\n if (character === aliasQuote) {\n aliasQuote = null;\n }\n } else if (character === \"'\" || character === '\"') {\n aliasQuote = character;\n } else if (character === \"(\") {\n aliasDepth++;\n } else if (character === \")\") {\n aliasDepth--;\n } else if (\n aliasDepth === 0 &&\n /\\s/.test(character) &&\n /^as\\s/i.test(tempParameter.substring(i + 1))\n ) {\n aliasIndex = i + 1;\n }\n }\n // a column without an alias is kept as it is written, such as cs.id\n const parameterWithAlias =\n aliasIndex >= 0\n ? tempParameter.substring(aliasIndex + 3).trim()\n : tempParameter.replace(/\\s+/g, \" \").trim();\n const parameterName = parameterWithAlias.replace(/^\"|\"$/g, \"\");\n // expressions without an alias have no result column name to offer\n if (/^[a-z_][\\w$]*(\\.[a-z_][\\w$]*)*$/i.test(parameterName)) {\n config.implicitParam.push(\"#\" + parameterName + \"#\");\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 setQueryErrors({});\n setCollapsedConfigs({});\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 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 setQueryErrors((current) => {\n const next = { ...current };\n if (value) delete next[index];\n else next[index] = \"Query Required\";\n return next;\n });\n };\n\n // Re-parsing the SQL for its result columns on every keystroke is wasteful,\n // and the placeholder list is only useful once the user pauses.\n const refreshImplicitParams = useDebounceFn((index) => {\n setNotificationConfigDetails((current) => {\n const next = [...current];\n if (next[index]) setImplicitParam(next[index]);\n return next;\n });\n }, 400);\n\n /**\n * Adds a new notification configuration to the list.\n *\n * @async\n * @function addConfiguration\n */\n const addConfiguration = async () => {\n const missing = {};\n notificationConfigDetails.forEach((notification, index) => {\n if (!notification.query) {\n missing[index] = \"Query Required\";\n }\n });\n if (Object.keys(missing).length > 0) {\n setQueryErrors(missing);\n return;\n }\n setNotificationConfigDetails([\n ...notificationConfigDetails,\n { query: \"\", conditions: [], queryParam: null },\n ]);\n setCollapsedConfigs({});\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 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 */\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 const eventTypeOptions = useMemo(\n () =>\n EVENT_TYPES.map((type) => ({\n value: type.value,\n label: translate(type.label),\n })),\n [translate],\n );\n\n const triggerWhenOptions = useMemo(\n () =>\n TRIGGER_WHEN.map((trigger) => ({\n value: trigger.value,\n label: translate(trigger.label),\n })),\n [translate],\n );\n\n const formOptions = useMemo(\n () => (forms || []).map((form) => ({ value: form.id, label: form.name })),\n [forms],\n );\n\n const manualEventOptions = useMemo(\n () =>\n Object.entries(events || {}).map(([value, label]) => ({ value, label })),\n [events],\n );\n\n const showDay =\n eventType === \"TIMMER_BASED\" &&\n [\"AFTER\", \"MONTHLY\", \"WEEKLY\"].includes(trigerWhen);\n const showHour =\n eventType === \"TIMMER_BASED\" &&\n [\"AFTER\", \"MONTHLY\", \"DAILY\", \"WEEKLY\"].includes(trigerWhen);\n const showMinute =\n eventType === \"TIMMER_BASED\" && trigerWhen && trigerWhen !== \"IMMEDIATELY\";\n\n return (\n <>\n <Box\n component=\"form\"\n ref={formRef}\n onSubmit={handleSubmit(submit)}\n data-testid=\"manageeventconfiguration-form\"\n sx={{ display: \"block\", pb: 2 }}\n >\n <ManageEventConfigurationSkeleton isLoading={isLoading}>\n <Paper\n elevation={0}\n sx={{\n p: { xs: 2.5, md: 3 },\n mt: 2,\n mb: 3,\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.cardRadius}px`,\n backgroundColor: \"background.paper\",\n }}\n >\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 3 }}>\n {/* ── Header ── */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n flexWrap: \"wrap\",\n gap: 2,\n }}\n data-testid=\"manageeventconfiguration-cardheader-subheader\"\n >\n <Box sx={{ minWidth: { xs: \"100%\", lg: \"50%\" } }}>\n <Typography\n variant=\"h5\"\n component=\"h1\"\n sx={{ fontWeight: 800, color: \"text.primary\", mb: 0.5 }}\n >\n {id ? translate(\"Update event\") : translate(\"New event\")}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n \"Name the event, choose what triggers it, then add the queries and conditions that decide what happens.\",\n )}\n </Typography>\n </Box>\n </Box>\n\n {/* ── Section: details ── */}\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <SectionHeading>{translate(\"Event details\")}</SectionHeading>\n <Grid container spacing={2} alignItems=\"flex-start\">\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-name-field\"\n >\n <FieldLabel required>{translate(\"Name\")}</FieldLabel>\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 </Grid>\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-description-field\"\n >\n <FieldLabel>{translate(\"Description\")}</FieldLabel>\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 <FieldHelp>\n {translate(\"What this event is for, in one line\")}\n </FieldHelp>\n </Grid>\n </Grid>\n </Box>\n\n <Divider />\n\n {/* ── Section: trigger ── */}\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <SectionHeading\n hint={translate(\"What makes this event run\")}\n >\n {translate(\"Trigger\")}\n </SectionHeading>\n <Grid container spacing={2} alignItems=\"flex-start\">\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-eventtype-field\"\n >\n <FieldLabel required>{translate(\"Event Type\")}</FieldLabel>\n <CustomDropdown\n control={control}\n name=\"eventType\"\n options={eventTypeOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n dataTestId=\"manageeventconfiguration-eventtype-select\"\n />\n </Grid>\n\n {eventType === \"FORM_SUBMITTED\" && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-formtype-field\"\n >\n <FieldLabel>{translate(\"Form Type\")}</FieldLabel>\n <CustomDropdown\n control={control}\n name=\"formTypeId\"\n options={formOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n isSortedOptions\n onChange={(event) => {\n const selectedData = forms?.find(\n (data) => data.id === event?.target?.value,\n );\n setValue(\"eventTypeDetailCode\", selectedData?.code);\n setValue(\n \"eventTypeDetailId\",\n selectedData?.detaiId || null,\n );\n }}\n dataTestId=\"manageeventconfiguration-formtype-select\"\n />\n </Grid>\n )}\n\n {eventType === \"TIMMER_BASED\" && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-triggerwhen-field\"\n >\n <FieldLabel required>\n {translate(\"Trigger When\")}\n </FieldLabel>\n <CustomDropdown\n control={control}\n name=\"trigerWhen\"\n options={triggerWhenOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n dataTestId=\"manageeventconfiguration-triggerwhen-select\"\n />\n </Grid>\n )}\n\n {showDay && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-day-field\"\n >\n <FieldLabel required>{translate(\"Day\")}</FieldLabel>\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 </Grid>\n )}\n\n {showHour && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-hour-field\"\n >\n <FieldLabel required>{translate(\"Hour\")}</FieldLabel>\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 </Grid>\n )}\n\n {showMinute && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-minute-field\"\n >\n <FieldLabel>{translate(\"Minute\")}</FieldLabel>\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 </Grid>\n )}\n\n {eventType === \"RECURSION\" && (\n <Grid size={{ xs: 12, md: 6 }}>\n <FieldLabel required>\n {translate(\"Recursion Interval (in Minutes)\")}\n </FieldLabel>\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 <FieldHelp>\n {translate(\"Between 1 and 1440 minutes\")}\n </FieldHelp>\n </Grid>\n )}\n\n {(eventType === \"TIMMER_BASED\" ||\n eventType === \"RECURSION\") && (\n <Grid size={{ xs: 12, md: 6 }}>\n <FieldLabel>{translate(\"Reports\")}</FieldLabel>\n <CustomDropdown\n id=\"reportUUID\"\n name=\"reportUUID\"\n displayName=\"name\"\n optionValue=\"uuid\"\n multiple\n control={control}\n options={reportList}\n errors={errors}\n />\n <FieldHelp>\n {translate(\"Reports refreshed after each run\")}\n </FieldHelp>\n </Grid>\n )}\n\n {eventType === \"MANUAL\" && (\n <Grid\n size={{ xs: 12, md: 6 }}\n data-testid=\"manageeventconfiguration-event-field\"\n >\n <FieldLabel>{translate(\"Event\")}</FieldLabel>\n <CustomDropdown\n control={control}\n name=\"eventTypeDetailCode\"\n options={manualEventOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n dataTestId=\"manageeventconfiguration-eventtype-detail-select\"\n />\n </Grid>\n )}\n </Grid>\n </Box>\n\n <Divider />\n\n {/* ── Section: configurations ── */}\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n flexWrap: \"wrap\",\n gap: 2,\n }}\n >\n <SectionHeading\n hint={translate(\n \"Each configuration runs a query, then acts on the rows it returns.\",\n )}\n >\n {translate(\"Configurations\")}\n </SectionHeading>\n <Button\n size=\"small\"\n variant=\"outlined\"\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" />}\n onClick={addConfiguration}\n data-testid=\"manageeventconfiguration-add-button\"\n >\n {translate(\"Add configuration\")}\n </Button>\n </Box>\n\n <Box\n sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}\n data-testid=\"manageeventconfiguration-table-container\"\n >\n {notificationConfigDetails?.length === 0 && (\n <EmptyState\n icon=\"faDatabase\"\n title={translate(\"No configurations yet\")}\n body={translate(\n \"Add a configuration to write the query this event runs and the actions it triggers.\",\n )}\n action={\n <Button\n size=\"small\"\n variant=\"contained\"\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" />}\n onClick={addConfiguration}\n >\n {translate(\"Add configuration\")}\n </Button>\n }\n dataTestId=\"manageeventconfiguration-no-configurations\"\n />\n )}\n\n {notificationConfigDetails?.map((row, index) => (\n <Paper\n key={index + 1}\n elevation={0}\n variant=\"outlined\"\n sx={{\n p: 2,\n borderRadius: (t) => `${t.shape.cardRadius}px`,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n }}\n data-testid={`manageeventconfiguration-table-row-${index}`}\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: 2,\n flexWrap: \"wrap\",\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1,\n flexWrap: \"wrap\",\n }}\n >\n <Tooltip\n title={\n collapsedConfigs[index]\n ? translate(\"Expand\")\n : translate(\"Collapse\")\n }\n >\n <IconButton\n size=\"small\"\n onClick={() =>\n setCollapsedConfigs((current) => ({\n ...current,\n [index]: !current[index],\n }))\n }\n aria-expanded={!collapsedConfigs[index]}\n aria-label={\n collapsedConfigs[index]\n ? translate(\"Expand\")\n : translate(\"Collapse\")\n }\n data-testid={`manageeventconfiguration-table-row-${index}-collapse`}\n >\n <FontAwesomeIcons\n iconName={\n collapsedConfigs[index]\n ? \"faChevronRight\"\n : \"faChevronDown\"\n }\n size=\"sm\"\n />\n </IconButton>\n </Tooltip>\n <Typography\n variant=\"subtitle2\"\n sx={{ fontWeight: 700 }}\n >\n {translate(\"Configuration\")} {index + 1}\n </Typography>\n {/* Summary so a collapsed card still says what it does */}\n {!row?.query && (\n <Chip\n size=\"small\"\n color=\"warning\"\n variant=\"outlined\"\n label={translate(\"Query missing\")}\n />\n )}\n <Typography variant=\"caption\" color=\"text.secondary\">\n {row?.conditions?.length || 0}{\" \"}\n {translate(\"conditions\")}\n {\" · \"}\n {(row?.conditions || []).reduce(\n (total, condition) =>\n total +\n (condition?.notificaitonConfigsType?.length ||\n 0),\n 0,\n )}{\" \"}\n {translate(\"actions\")}\n </Typography>\n </Box>\n <Box\n data-testid={`manageeventconfiguration-table-row-${index}-action`}\n >\n <Tooltip title={translate(\"Delete configuration\")}>\n <IconButton\n size=\"small\"\n color=\"error\"\n onClick={() => setConfigPendingDelete(index)}\n aria-label={translate(\"Delete configuration\")}\n data-testid={`manageeventconfiguration-table-row-${index}-action-delete`}\n >\n <FontAwesomeIcons iconName=\"faTrash\" />\n </IconButton>\n </Tooltip>\n </Box>\n </Box>\n\n <Collapse\n in={!collapsedConfigs[index]}\n // The SQL editor is expensive; keep it mounted so an\n // in-progress query survives a collapse.\n unmountOnExit={false}\n >\n <Grid container spacing={2} alignItems=\"stretch\">\n {/* Query */}\n <Grid\n size={{ xs: 12, lg: 6.5 }}\n sx={{ display: \"flex\", flexDirection: \"column\", gap: 1 }}\n data-testid={`manageeventconfiguration-table-row-${index}-query`}\n >\n <FieldLabel required>\n <span data-testid=\"manageeventconfiguration-table-header-query\">\n {translate(\"Query\")}\n </span>\n </FieldLabel>\n <Box\n sx={{\n overflow: \"hidden\",\n borderRadius: (t) => `${t.shape.borderRadius}px`,\n border: \"1px solid\",\n borderColor: queryErrors[index]\n ? \"error.main\"\n : \"divider\",\n }}\n data-testid={`manageeventconfiguration-table-row-${index}-query-textarea`}\n >\n <PostgresEditor\n height=\"30vh\"\n autoFocus={false}\n defaultValue={row.query || \"\"}\n onChange={(value) => {\n handleTextChange(index, value);\n refreshImplicitParams(index);\n }}\n />\n </Box>\n {queryErrors[index] && (\n <Typography\n variant=\"caption\"\n color=\"error\"\n data-testid=\"custom-error-message\"\n >\n {translate(queryErrors[index])}\n </Typography>\n )}\n <FieldHelp>\n {translate(\n \"Every column this query selects becomes a placeholder the conditions can use.\",\n )}\n </FieldHelp>\n <ImplicitParams\n params={row?.implicitParam}\n translate={translate}\n />\n </Grid>\n\n {/* Conditions */}\n <Grid\n size={{ xs: 12, lg: 5.5 }}\n sx={{ display: \"flex\", flexDirection: \"column\", gap: 1 }}\n data-testid={`manageeventconfiguration-table-row-${index}-condition`}\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: 2,\n }}\n >\n <FieldLabel>\n <span data-testid=\"manageeventconfiguration-table-header-condition\">\n {translate(\"Condition\")}\n </span>\n </FieldLabel>\n <Button\n size=\"small\"\n variant=\"text\"\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" size=\"sm\" />}\n onClick={() => openConditionModal(row, index)}\n data-testid={\n row?.conditions?.length > 0\n ? `manageeventconfiguration-table-row-${index}-condition-add`\n : `manageeventconfiguration-table-row-${index}-condition-add-empty`\n }\n >\n {translate(\"Add condition\")}\n </Button>\n </Box>\n\n {row?.conditions?.length > 0 ? (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n flex: \"1 1 auto\",\n maxHeight: \"30vh\",\n overflowY: \"auto\",\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.borderRadius}px`,\n }}\n >\n {row.conditions.map((condition, conditionIndex) => (\n <Box\n key={conditionIndex + 1}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 1,\n px: 1.5,\n py: 1,\n borderTop: conditionIndex === 0 ? \"none\" : \"1px solid\",\n borderColor: \"divider\",\n }}\n data-testid=\"manageeventconfiguration-condition-rows\"\n >\n <Box sx={{ minWidth: 0 }}>\n <Typography\n variant=\"body2\"\n sx={{\n fontFamily: condition?.condition\n ? \"monospace\"\n : \"inherit\",\n wordBreak: \"break-word\",\n }}\n >\n {condition?.condition ||\n translate(\"Always runs\")}\n </Typography>\n {condition?.notificaitonConfigsType?.length >\n 0 ? (\n <Box\n sx={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 0.5,\n mt: 0.5,\n }}\n >\n {condition.notificaitonConfigsType.map(\n (action, actionIndex) => (\n <Chip\n key={actionIndex + 1}\n size=\"small\"\n variant=\"outlined\"\n icon={\n <FontAwesomeIcons\n iconName={iconOf(action?.type)}\n size=\"sm\"\n />\n }\n label={translate(\n labelOf(ACTION_TYPES, action?.type),\n )}\n />\n ),\n )}\n </Box>\n ) : (\n <Typography\n variant=\"caption\"\n color=\"warning.main\"\n >\n {translate(\"No actions\")}\n </Typography>\n )}\n </Box>\n <Box sx={{ display: \"flex\", gap: 0.5, flexShrink: 0 }}>\n <Tooltip title={translate(\"Edit condition\")}>\n <IconButton\n size=\"small\"\n aria-label={translate(\"Edit condition\")}\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 <FontAwesomeIcons iconName=\"faPen\" size=\"sm\" />\n </IconButton>\n </Tooltip>\n <Tooltip title={translate(\"Delete condition\")}>\n <IconButton\n size=\"small\"\n color=\"error\"\n aria-label={translate(\"Delete condition\")}\n onClick={() =>\n deleteCondition(index, conditionIndex)\n }\n data-testid={`manageeventconfiguration-table-row-${index}-condition-delete-${conditionIndex}`}\n >\n <FontAwesomeIcons iconName=\"faTrash\" size=\"sm\" />\n </IconButton>\n </Tooltip>\n </Box>\n </Box>\n ))}\n </Box>\n ) : (\n <Box\n sx={{\n flex: \"1 1 auto\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n px: 2,\n py: 3,\n border: \"1px dashed\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.borderRadius}px`,\n }}\n >\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n \"No conditions yet. Without one, this configuration does nothing.\",\n )}\n </Typography>\n </Box>\n )}\n </Grid>\n </Grid>\n </Collapse>\n </Paper>\n ))}\n </Box>\n </Box>\n </Box>\n </Paper>\n\n {/* ── Sticky action bar ── */}\n <Paper\n elevation={0}\n sx={{\n position: \"sticky\",\n bottom: 0,\n zIndex: 2,\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: 1.5,\n p: 2,\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.cardRadius}px`,\n backgroundColor: \"background.paper\",\n }}\n data-testid=\"manageeventconfiguration-cardactions\"\n >\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n type=\"button\"\n size=\"small\"\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 disabled={isSubmitting}\n data-testid=\"manageeventconfiguration-save-button\"\n >\n {translate(`${id ? \"Update\" : \"Save\"}`)}\n </Button>\n </Paper>\n </ManageEventConfigurationSkeleton>\n </Box>\n\n <CustomConfirmationModal\n open={configPendingDelete !== null}\n handleClose={() => setConfigPendingDelete(null)}\n handleClick={() => {\n handleDeleteRow(configPendingDelete);\n setConfigPendingDelete(null);\n }}\n title={translate(\"Delete this configuration?\")}\n description={`${translate(\"Configuration\")} ${\n (configPendingDelete ?? 0) + 1\n }, its query and ${\n notificationConfigDetails?.[configPendingDelete]?.conditions?.length ||\n 0\n } ${translate(\n \"conditions will be removed. This cannot be undone.\",\n )}`}\n dataTestId=\"manageeventconfiguration-delete-configuration-confirmation\"\n />\n\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","queryErrors","setQueryErrors","collapsedConfigs","setCollapsedConfigs","configPendingDelete","setConfigPendingDelete","handleOverlayState","validationSchema","Yup","eventType","schema","value","trigerWhen","control","handleSubmit","setValue","watch","errors","isSubmitting","useForm","yupResolver","useEffect","form","trackEvent","submit","data","config","nextErrors","index","showToast","isTimerBased","isFormSubmitted","isManual","isRecursion","needsDay","needsHour","cleanedNotificationConfigDetails","_a","condition","typeConfig","update","save","cur","loadInitialData","res","retrieveAllForm","manualevent","retrieveManualEvents","notificationtype","retrieveAllNotifications","notificationtypeObject","type","getReportsList","responseByid","retrieveByUUID","_c","_b","setImplicitParam","_d","key","error","clauseKeywords","sql","quote","i","character","nextCharacter","depth","selectStart","selectEnd","commas","word","namedParameters","itemStart","comma","parameter","tempParameter","aliasDepth","aliasQuote","aliasIndex","parameterName","handleDeleteRow","newRows","_","rowIndex","deleteCondition","configIndex","notificationConfigDetail","filteredConditions","idx","openConditionModal","handleTextChange","newConfig","current","next","refreshImplicitParams","useDebounceFn","addConfiguration","missing","notification","addTypeConfig","openAddConfigurationModal","handleOtherTypeConfiguration","updatedData","item","addTypeConfiguration","handleTypeConfigurationDelete","prevData","handleTypeConfigurationEdit","useTrackEvent","setNewConditionData","conditions","setNewTypeData","eventTypeOptions","useMemo","EVENT_TYPES","triggerWhenOptions","TRIGGER_WHEN","trigger","formOptions","manualEventOptions","label","showDay","showHour","showMinute","jsxs","Fragment","jsx","Box","ManageEventConfigurationSkeleton","Paper","t","Typography","SectionHeading","Grid","FieldLabel","CustomTextField","CustomTextArea","FieldHelp","Divider","CustomDropdown","event","selectedData","Button","FontAwesomeIcons","EmptyState","row","Tooltip","IconButton","Chip","total","Collapse","PostgresEditor","ImplicitParams","conditionIndex","action","actionIndex","iconOf","labelOf","ACTION_TYPES","CustomConfirmationModal","Suspense"],"mappings":"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"}