@argusoft/medplat-core 1.0.29 → 1.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/dist/AccessRights-DUgY6ewy.js +1031 -0
  2. package/dist/AccessRights-DUgY6ewy.js.map +1 -0
  3. package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
  4. package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
  5. package/dist/{AddFeatures-v3TmGQee.js → AddFeatures-D1sU8RjY.js} +2 -2
  6. package/dist/{AddFeatures-v3TmGQee.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
  7. package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
  8. package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
  9. package/dist/AddMenuConfiguration-c6ZKiN0i.js +8898 -0
  10. package/dist/AddMenuConfiguration-c6ZKiN0i.js.map +1 -0
  11. package/dist/AppModal-CCtrQ5Tr.js +394 -0
  12. package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
  13. package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js +387 -0
  14. package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js.map +1 -0
  15. package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js +398 -0
  16. package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js.map +1 -0
  17. package/dist/{ChangePasswordModalCore-DutQAZOx.js → ChangePasswordModalCore-lQ9GamH1.js} +1605 -1610
  18. package/dist/ChangePasswordModalCore-lQ9GamH1.js.map +1 -0
  19. package/dist/ConditionConfig-BQBmBHaM.js +408 -0
  20. package/dist/ConditionConfig-BQBmBHaM.js.map +1 -0
  21. package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js +435 -0
  22. package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js.map +1 -0
  23. package/dist/EventConfig-BY2cgGyx.js +27 -0
  24. package/dist/EventConfig-BY2cgGyx.js.map +1 -0
  25. package/dist/EventConfigurations-CUPEN5BV.js +544 -0
  26. package/dist/EventConfigurations-CUPEN5BV.js.map +1 -0
  27. package/dist/EventConfigurations.css +1 -1
  28. package/dist/EventsExceptionModal-BX-ArkBE.js +188 -0
  29. package/dist/EventsExceptionModal-BX-ArkBE.js.map +1 -0
  30. package/dist/EventsUi-D6O9S7BK.js +258 -0
  31. package/dist/EventsUi-D6O9S7BK.js.map +1 -0
  32. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js +79 -0
  33. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js.map +1 -0
  34. package/dist/FeatureMenu-CHsBbw3W.js +525 -0
  35. package/dist/FeatureMenu-CHsBbw3W.js.map +1 -0
  36. package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-iXBPkRVF.js} +22 -22
  37. package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-iXBPkRVF.js.map} +1 -1
  38. package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
  39. package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
  40. package/dist/FlywayQuery-CQygj51V.js +179 -0
  41. package/dist/FlywayQuery-CQygj51V.js.map +1 -0
  42. package/dist/GrantPermissionModal-D7iNZd0M.js +239 -0
  43. package/dist/GrantPermissionModal-D7iNZd0M.js.map +1 -0
  44. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js +8019 -0
  45. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js.map +1 -0
  46. package/dist/ImmunizationConfigurationBase.css +1 -1
  47. package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
  48. package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
  49. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js +665 -0
  50. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js.map +1 -0
  51. package/dist/LanguagesModal-B3NTebYT.js +352 -0
  52. package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
  53. package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
  54. package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
  55. package/dist/ManageEventConfiguration-DqW3krT6.js +1216 -0
  56. package/dist/ManageEventConfiguration-DqW3krT6.js.map +1 -0
  57. package/dist/ManageEventConfiguration.css +1 -1
  58. package/dist/{ManageNotification-CfhHlfxA.js → ManageNotification-C5MhV77Q.js} +2 -2
  59. package/dist/{ManageNotification-CfhHlfxA.js.map → ManageNotification-C5MhV77Q.js.map} +1 -1
  60. package/dist/{ManageRole-4Y2PP4dQ.js → ManageRole-CNZBRKGU.js} +2 -2
  61. package/dist/{ManageRole-4Y2PP4dQ.js.map → ManageRole-CNZBRKGU.js.map} +1 -1
  62. package/dist/ManageTranslation-vRiptUAP.js +833 -0
  63. package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
  64. package/dist/ManageTranslation.css +1 -1
  65. package/dist/{ManageUser-DDzyd9jm.js → ManageUser-DZltBina.js} +224 -224
  66. package/dist/{ManageUser-DDzyd9jm.js.map → ManageUser-DZltBina.js.map} +1 -1
  67. package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js +272 -0
  68. package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js.map +1 -0
  69. package/dist/MobileAnalytics-BLOionG_.js +17301 -0
  70. package/dist/MobileAnalytics-BLOionG_.js.map +1 -0
  71. package/dist/MobileMenuManagement-68Wijb0X.js +220 -0
  72. package/dist/MobileMenuManagement-68Wijb0X.js.map +1 -0
  73. package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js +752 -0
  74. package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js.map +1 -0
  75. package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
  76. package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
  77. package/dist/{NotificationList-BMFpNUJG.js → NotificationList-DEyRZEuM.js} +2 -2
  78. package/dist/{NotificationList-BMFpNUJG.js.map → NotificationList-DEyRZEuM.js.map} +1 -1
  79. package/dist/OtherTypeEventConfigModal-stNmuSv_.js +1812 -0
  80. package/dist/OtherTypeEventConfigModal-stNmuSv_.js.map +1 -0
  81. package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js +482 -0
  82. package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js.map +1 -0
  83. package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js +157 -0
  84. package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js.map +1 -0
  85. package/dist/PermissionsModal-CCYkcKlC.js +151 -0
  86. package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
  87. package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js +119 -0
  88. package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js.map +1 -0
  89. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js +783 -0
  90. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js.map +1 -0
  91. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js +818 -0
  92. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js.map +1 -0
  93. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js +599 -0
  94. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js.map +1 -0
  95. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js +1305 -0
  96. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js.map +1 -0
  97. package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js +253 -0
  98. package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js.map +1 -0
  99. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js +675 -0
  100. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js.map +1 -0
  101. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js +1577 -0
  102. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js.map +1 -0
  103. package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js +279 -0
  104. package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js.map +1 -0
  105. package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js +293 -0
  106. package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js.map +1 -0
  107. package/dist/QueryBuilder-CXaBe6sr.js +478 -0
  108. package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
  109. package/dist/{RoleManagement-DEiBNfT8.js → RoleManagement-s8iNx2Mu.js} +145 -155
  110. package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
  111. package/dist/Roles-BIyiic67.js +14 -0
  112. package/dist/Roles-BIyiic67.js.map +1 -0
  113. package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js +544 -0
  114. package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js.map +1 -0
  115. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js +315 -0
  116. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js.map +1 -0
  117. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js +676 -0
  118. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js.map +1 -0
  119. package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
  120. package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
  121. package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-DIOUdYfG.js} +170 -123
  122. package/dist/ShowFlywayQuery-DIOUdYfG.js.map +1 -0
  123. package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
  124. package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
  125. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js +728 -0
  126. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js.map +1 -0
  127. package/dist/SubMenu-BdMTYtC1.js +319 -0
  128. package/dist/SubMenu-BdMTYtC1.js.map +1 -0
  129. package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js +746 -0
  130. package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js.map +1 -0
  131. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js +315 -0
  132. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js.map +1 -0
  133. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js +476 -0
  134. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js.map +1 -0
  135. package/dist/TypeConfiguration-JbRCN6GR.js +114 -0
  136. package/dist/TypeConfiguration-JbRCN6GR.js.map +1 -0
  137. package/dist/{UserList-Bc8gYxRL.js → UserList-L41Xw0Q6.js} +253 -236
  138. package/dist/{UserList-Bc8gYxRL.js.map → UserList-L41Xw0Q6.js.map} +1 -1
  139. package/dist/Users-CsJ08Kjm.js.map +1 -1
  140. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js +321 -0
  141. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js.map +1 -0
  142. package/dist/constants-DpXnLsAB-D6lN5cjK.js +445 -0
  143. package/dist/constants-DpXnLsAB-D6lN5cjK.js.map +1 -0
  144. package/dist/{dashboardLayoutUtils-D1xCAxp3.js → dashboardLayoutUtils-CJivzaU1.js} +95 -92
  145. package/dist/dashboardLayoutUtils-CJivzaU1.js.map +1 -0
  146. package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
  147. package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
  148. package/dist/index.css +1 -1
  149. package/dist/index.js +1 -1
  150. package/dist/index.lib-ETRQOzvE.js +894 -0
  151. package/dist/index.lib-ETRQOzvE.js.map +1 -0
  152. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js +36 -0
  153. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js.map +1 -0
  154. package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
  155. package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
  156. package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
  157. package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
  158. package/package.json +4 -3
  159. package/dist/AccessRights-Zm8Obm4N.js +0 -1284
  160. package/dist/AccessRights-Zm8Obm4N.js.map +0 -1
  161. package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
  162. package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
  163. package/dist/AddLabelModal-DFllBVcd.js +0 -734
  164. package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
  165. package/dist/AddMenuConfiguration-Ce91MhnU.js +0 -8547
  166. package/dist/AddMenuConfiguration-Ce91MhnU.js.map +0 -1
  167. package/dist/AppModal-CtG2GjD_.js +0 -428
  168. package/dist/AppModal-CtG2GjD_.js.map +0 -1
  169. package/dist/ChangePasswordModalCore-DutQAZOx.js.map +0 -1
  170. package/dist/ConditionConfig-B4Ffpgj3.js +0 -395
  171. package/dist/ConditionConfig-B4Ffpgj3.js.map +0 -1
  172. package/dist/ConditionConfig.css +0 -1
  173. package/dist/EventConfigurations-BJcURufo.js +0 -449
  174. package/dist/EventConfigurations-BJcURufo.js.map +0 -1
  175. package/dist/EventsExceptionModal-BlZtBQoR.js +0 -200
  176. package/dist/EventsExceptionModal-BlZtBQoR.js.map +0 -1
  177. package/dist/EventsSkeleton-DK6JDKAK.js +0 -83
  178. package/dist/EventsSkeleton-DK6JDKAK.js.map +0 -1
  179. package/dist/FeatureMenu-C3503UIX.js +0 -265
  180. package/dist/FeatureMenu-C3503UIX.js.map +0 -1
  181. package/dist/FlywayQuery-Cx2sly6g.js +0 -169
  182. package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
  183. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js +0 -5895
  184. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js.map +0 -1
  185. package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
  186. package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
  187. package/dist/LanguagesModal-D6VfaGrl.js +0 -394
  188. package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
  189. package/dist/ManageDynamicFeature-dt096fyj.js +0 -4189
  190. package/dist/ManageDynamicFeature-dt096fyj.js.map +0 -1
  191. package/dist/ManageEventConfiguration-BpSJszSX.js +0 -1017
  192. package/dist/ManageEventConfiguration-BpSJszSX.js.map +0 -1
  193. package/dist/ManageTranslation-B4C9-lWD.js +0 -625
  194. package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
  195. package/dist/MobileMenuManagement-Cf8IZlla.js +0 -108
  196. package/dist/MobileMenuManagement-Cf8IZlla.js.map +0 -1
  197. package/dist/MobileTypeEventConfigModal-DUkUYACe.js +0 -783
  198. package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +0 -1
  199. package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
  200. package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
  201. package/dist/OtherTypeEventConfigModal-CYBfr2XE.js +0 -2046
  202. package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +0 -1
  203. package/dist/QueryBuilder-z7eqfd7D.js +0 -383
  204. package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
  205. package/dist/RoleManagement-DEiBNfT8.js.map +0 -1
  206. package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
  207. package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
  208. package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
  209. package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
  210. package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
  211. package/dist/SubMenu-B072oEGb.js +0 -191
  212. package/dist/SubMenu-B072oEGb.js.map +0 -1
  213. package/dist/TypeConfiguration-C3xoP2Nb.js +0 -117
  214. package/dist/TypeConfiguration-C3xoP2Nb.js.map +0 -1
  215. package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +0 -1
  216. package/dist/index.lib-C3fwoM3y.js +0 -820
  217. package/dist/index.lib-C3fwoM3y.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileTypeEventConfigModal-CMcj7Ozp.js","sources":["../src/views/Events/MobileTypeEventConfigModal.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport Grid from \"@mui/material/Grid2\";\nimport * as Yup from \"yup\";\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Tooltip,\n Typography,\n} from \"@mui/material\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport CustomDropdown from \"@/views/custom-components/CustomDropdown\";\nimport { retrieveAllNotifications } from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport \"./Styles/ManageEventConfiguration.scss\";\n\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport FontAwesomeIcons from \"@/common/fontAwesomeIcons/FontAwesomeIcons\";\nimport {\n EmptyState,\n FieldHelp,\n FieldLabel,\n ImplicitParams,\n SectionHeading,\n} from \"./components/EventsUi\";\n// Define the validation schema using Yup\n\n/**\n * Modal component for configuring mobile type event notifications.\n * @module MobileTypeEventConfigModal\n * @param {Object} props - The props for the component.\n * @param {boolean} props.open - Whether the modal is open or not.\n * @param {Function} props.handleClose - Function to close the modal.\n * @param {Function} props.handleClick - Function to handle submission of the modal form.\n * @param {Object} props.type - Configuration type object passed to the modal.\n *\n * @returns {JSX.Element} The rendered modal component.\n */\nconst MobileTypeEventConfigModal = ({\n open,\n handleClose,\n handleClick,\n type,\n}) => {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const trackEvent = useTrackEvent();\n const [notificationTypes, setNotificationTypes] = useState([]);\n const [mobileNotification, setMobileNotification] = useState(null);\n const [mobileNotificationConfigs, setMobileNotificationConfigs] = useState(\n [],\n );\n const [mobileConfigLength, setmobileConfigLength] = useState(0);\n const { translate } = useTranslateProvider();\n\n /**\n * @function handleDeleteConfig\n * Deletes a mobile notification configuration at the specified index.\n *\n * @param {number} index - The index of the configuration to delete.\n */\n const handleDeleteConfig = (index) => {\n if (mobileNotificationConfigs) {\n mobileNotificationConfigs.forEach((data, i) => {\n setValue(`notificationCode${i}`, \"\"); // or set it to a default value\n setValue(`numberOfDaysAddedForOnDate${i}`, 0);\n setValue(`numberOfDaysAddedForExpiryDate${i}`, 0);\n setValue(`numberOfDaysAddedForDueDate${i}`, 0);\n });\n }\n\n setMobileNotificationConfigs((prev) => {\n const newConfigs = prev.filter((_, i) => i !== index);\n\n // Reset form values after deleting\n newConfigs.forEach((data, i) => {\n setValue(`notificationCode${i}`, data.notificationCode); // or set it to a default value\n setValue(\n `numberOfDaysAddedForOnDate${i}`,\n data.numberOfDaysAddedForOnDate,\n );\n setValue(\n `numberOfDaysAddedForExpiryDate${i}`,\n data.numberOfDaysAddedForExpiryDate,\n );\n setValue(\n `numberOfDaysAddedForDueDate${i}`,\n data.numberOfDaysAddedForDueDate,\n );\n });\n\n return newConfigs;\n });\n };\n\n /**\n * Updates the specified field of a mobile notification configuration.\n * @function handleChange\n * @param {number} index - The index of the configuration to update.\n * @param {string} field - The field name to update.\n * @param {*} value - The new value to set for the specified field.\n */\n const handleChange = (index, field, value) => {\n const newConfigs = [...mobileNotificationConfigs];\n newConfigs[index][field] = value;\n setMobileNotificationConfigs(newConfigs);\n };\n\n const validationSchema = Yup.object().shape({\n mobileNotificationType: Yup.string().required(\"Select notification type\"),\n baseDateFieldName: Yup.string().required(\"Enter base date field\"),\n familyFieldName: Yup.string().test(\n \"is-required\",\n \"family name is required\",\n function (value) {\n if (\n mobileNotification?.notificationFor === \"FAMILY\" ||\n mobileNotification?.notificationFor === \"MEMBER\"\n ) {\n return !!value;\n }\n return true;\n },\n ),\n memberFieldName: Yup.string().test(\n \"is-required\",\n \"member name is required\",\n function (value) {\n if (mobileNotification?.notificationFor === \"MEMBER\") {\n return !!value;\n }\n return true;\n },\n ),\n userFieldName: Yup.string().test(\n \"is-required\",\n \"user name is required\",\n function (value) {\n if (mobileNotification?.notificationFor === \"USER\") {\n return !!value;\n }\n return true;\n },\n ),\n });\n\n const {\n control,\n handleSubmit,\n reset,\n setValue,\n setError,\n clearErrors,\n getValues,\n formState: { errors, isSubmitting },\n } = useForm({\n defaultValues: {},\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n useEffect(() => {\n if (type && notificationTypes.length > 0) {\n Object.keys(type)?.forEach((key) => {\n if (key === \"index\") {\n setValue(key, type[key]);\n }\n if (key === \"mobileNotificationType\") {\n const notification = notificationTypes.filter(\n (data) => data.id === parseInt(type[key]),\n );\n setMobileNotification(...notification);\n }\n if (key === \"mobileNotificationConfigs\" && type[key]) {\n setMobileNotificationConfigs(type[key] || []);\n setmobileConfigLength(type[key]?.length);\n } else if (type[key]) {\n setValue(key, type[key]);\n }\n });\n }\n }, [type, notificationTypes]);\n\n useEffect(() => {\n loadInitialState();\n }, []);\n\n const close = () => {\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add Mobile Type Configuration\",\n submit: submitRef.current,\n }); // Use the current ref value\n\n handleClose();\n };\n\n /**\n * @async\n * @function loadInitialState\n * Loads the initial state by retrieving notification types.\n * If an error occurs during retrieval, a toast message is displayed.\n */\n const loadInitialState = async () => {\n try {\n const res = await retrieveAllNotifications(true);\n setNotificationTypes(res?.data);\n } catch {\n showToast({\n message: \"Could not load notification types. Please try again.\",\n type: \"error\",\n });\n }\n };\n\n /**\n * @function addMobileNotification\n * Adds a new mobile notification configuration to the state.\n */\n const addMobileNotification = () => {\n let addconfig = true;\n mobileNotificationConfigs?.forEach((config, index) => {\n if (config.notificationCode === \"\") {\n addconfig = false;\n const fieldPath = `notificationCode${index}`;\n\n setError(fieldPath, {\n type: \"manual\",\n message: \"Enter # of days to add\",\n });\n }\n });\n if (addconfig) {\n setmobileConfigLength((prev) => prev + 1);\n setMobileNotificationConfigs([\n ...mobileNotificationConfigs,\n {\n notificationCode: \"\",\n numberOfDaysAddedForOnDate: 0,\n numberOfDaysAddedForDueDate: 0,\n numberOfDaysAddedForExpiryDate: 0,\n },\n ]);\n }\n };\n\n /**\n * @function onSubmit\n * Handles form submission and processes the input data.\n *\n * @param {Object} data - The form data submitted by the user.\n */\n\n const onSubmit = (data) => {\n data = JSON.parse(JSON.stringify(data));\n for (let i = 0; i < mobileConfigLength; i++) {\n delete data[`notificationCode${i}`];\n delete data[`numberOfDaysAddedForOnDate${i}`];\n delete data[`numberOfDaysAddedForExpiryDate${i}`];\n delete data[`numberOfDaysAddedForDueDate${i}`];\n }\n\n data.mobileNotificationConfigs = mobileNotificationConfigs;\n data.type = type?.type;\n handleClick(data);\n submitRef.current = true;\n close();\n reset();\n };\n\n const notificationTypeOptions = useMemo(\n () =>\n (notificationTypes || []).map((data) => ({\n value: data.id,\n label: data.notificationName,\n })),\n [notificationTypes],\n );\n\n return (\n <Dialog\n data-testid=\"mobiletypeeventconfigmodal-modal\"\n open={open}\n fullWidth\n maxWidth=\"lg\"\n onClose={() => {\n close();\n reset();\n }}\n >\n <DialogTitle\n sx={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 2,\n pt: 2,\n pb: 3,\n borderBottom: \"1px solid\",\n borderColor: \"divider\",\n }}\n data-testid=\"mobiletypeeventconfigmodal-header\"\n >\n <Box>\n <Typography\n variant=\"subtitle1\"\n component=\"span\"\n sx={{ fontWeight: 700, display: \"block\" }}\n >\n {translate(\"Add\")} {translate(\"Mobile Notification\")}{\" \"}\n {translate(\"Configuration\")}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n \"Sends a notification into the mobile app, scheduled relative to a date the query returns.\",\n )}\n </Typography>\n </Box>\n <IconButton\n size=\"small\"\n onClick={() => {\n close();\n reset();\n }}\n aria-label={translate(\"Close\")}\n data-testid=\"mobiletypeeventconfigmodal-close-button\"\n >\n <FontAwesomeIcons iconName=\"faXmark\" />\n </IconButton>\n </DialogTitle>\n\n <Box\n component=\"form\"\n onSubmit={handleSubmit(onSubmit)}\n data-testid=\"mobiletypeeventconfigmodal-form\"\n ref={formRef}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: 0,\n overflow: \"hidden\",\n }}\n >\n <DialogContent\n // MUI zeroes a DialogContent's top padding when it directly follows\n // a DialogTitle; this selector has the specificity to put it back.\n sx={{ \"&.MuiDialogContent-root\": { pt: 3 } }}\n >\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 3 }}>\n <Box data-testid=\"mobiletypeeventconfigmodal-implicit-params\">\n <ImplicitParams\n params={type?.implicitParam}\n translate={translate}\n label={translate(\"Available Implicit Parameters\")}\n />\n </Box>\n\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <SectionHeading\n hint={translate(\"Who gets the notification, and when it is due\")}\n >\n {translate(\"Notification\")}\n </SectionHeading>\n\n <Grid container spacing={2} alignItems=\"flex-start\">\n <Grid\n size={{ xs: 12, md: 4 }}\n data-testid=\"mobiletypeeventconfigmodal-notification-type\"\n >\n <FieldLabel required>\n {translate(\"Notification\")} {translate(\"Type\")}\n </FieldLabel>\n <CustomDropdown\n control={control}\n name=\"mobileNotificationType\"\n options={notificationTypeOptions}\n displayName=\"label\"\n optionValue=\"value\"\n errors={errors}\n isSortedOptions\n isNullSelectDisabled={false}\n placeholder={translate(\"None\")}\n onChange={(event) => {\n const notification = notificationTypes.filter(\n (data) => data.id === event?.target?.value,\n );\n setMobileNotification(...notification);\n }}\n dataTestId=\"mobiletypeeventconfigmodal-notification-select\"\n />\n </Grid>\n\n <Grid\n size={{ xs: 12, md: 4 }}\n data-testid=\"mobiletypeeventconfigmodal-base-date-field\"\n >\n <FieldLabel required>\n {translate(\"Base\")} {translate(\"Date\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n </FieldLabel>\n <CustomTextField\n control={control}\n id=\"baseDateFieldName\"\n name=\"baseDateFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-base-date-input\"\n />\n <FieldHelp>\n {translate(\"The date the schedule counts from\")}\n </FieldHelp>\n </Grid>\n\n <Grid\n size={{ xs: 12, md: 4 }}\n data-testid=\"mobiletypeeventconfigmodal-ref-code-field\"\n >\n <FieldLabel>\n {translate(\"Ref\")} {translate(\"Code\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n </FieldLabel>\n <CustomTextField\n control={control}\n id=\"refCode\"\n name=\"refCode\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-ref-code-input\"\n />\n </Grid>\n\n {mobileNotification?.notificationFor === \"USER\" && (\n <Grid\n size={{ xs: 12, md: 4 }}\n data-testid=\"mobiletypeeventconfigmodal-user-field\"\n >\n <FieldLabel required>\n {translate(\"User\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n </FieldLabel>\n <CustomTextField\n control={control}\n id=\"userFieldName\"\n name=\"userFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-user-input\"\n />\n </Grid>\n )}\n\n {mobileNotification?.notificationFor === \"MEMBER\" && (\n <Grid\n size={{ xs: 12, md: 4 }}\n data-testid=\"mobiletypeeventconfigmodal-member-field\"\n >\n <FieldLabel required>\n {translate(\"Member\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n </FieldLabel>\n <CustomTextField\n control={control}\n id=\"memberFieldName\"\n name=\"memberFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-member-input\"\n />\n </Grid>\n )}\n\n {(mobileNotification?.notificationFor === \"FAMILY\" ||\n mobileNotification?.notificationFor === \"MEMBER\") && (\n <Grid\n size={{ xs: 12, md: 4 }}\n data-testid=\"mobiletypeeventconfigmodal-family-field\"\n >\n <FieldLabel required>\n {translate(\"Family\")} {translate(\"Field\")}{\" \"}\n {translate(\"Name\")}\n </FieldLabel>\n <CustomTextField\n control={control}\n id=\"familyFieldName\"\n name=\"familyFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"mobiletypeeventconfigmodal-family-input\"\n />\n </Grid>\n )}\n </Grid>\n </Box>\n\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 gap: 2,\n flexWrap: \"wrap\",\n }}\n >\n <SectionHeading\n hint={translate(\n \"Each row schedules one notification, counted in days from the base date.\",\n )}\n >\n {translate(\"Schedule\")}\n </SectionHeading>\n <Button\n variant=\"outlined\"\n size=\"small\"\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" size=\"sm\" />}\n onClick={addMobileNotification}\n data-testid=\"mobiletypeeventconfigmodal-add-configuration\"\n >\n {translate(\"Add\")} {translate(\"Configuration\")}\n </Button>\n </Box>\n\n {mobileNotificationConfigs.length === 0 ? (\n <EmptyState\n icon=\"faCalendarDays\"\n title={translate(\"No schedule rows yet\")}\n body={translate(\n \"Add a row to say which notification goes out, and how many days from the base date.\",\n )}\n dataTestId=\"mobiletypeeventconfigmodal-no-config\"\n />\n ) : (\n <TableContainer\n component={Paper}\n elevation={0}\n variant=\"outlined\"\n className=\"mobile-type-event-config-table-container\"\n sx={{ borderRadius: (t) => `${t.shape.borderRadius}px` }}\n data-testid=\"mobiletypeeventconfigmodal-table\"\n >\n <Table\n size=\"small\"\n className=\"mobile-type-event-config-table\"\n aria-label={translate(\"Mobile notification schedule\")}\n >\n <TableHead>\n <TableRow>\n <TableCell>{translate(\"Code\")}</TableCell>\n <TableCell>\n {translate(\"Added\")} {translate(\"Days\")}{\" \"}\n {translate(\"For\")} {translate(\"Schedule\")}\n </TableCell>\n <TableCell>\n {translate(\"Added\")} {translate(\"Days\")}{\" \"}\n {translate(\"For\")} {translate(\"Due\")}\n </TableCell>\n <TableCell>\n {translate(\"Added\")} {translate(\"Days\")}{\" \"}\n {translate(\"For\")} {translate(\"Expiry\")}\n </TableCell>\n <TableCell>{translate(\"Actions\")}</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {mobileNotificationConfigs.map((config, index) => (\n <TableRow key={index + 1}>\n <TableCell>\n <Controller\n control={control}\n name={`notificationCode${index}`}\n defaultValue={config.notificationCode}\n render={({ field }) => (\n <TextField\n required\n fullWidth\n variant=\"outlined\"\n size=\"small\"\n {...field}\n error={Boolean(\n errors[`notificationCode${index}`],\n )}\n helperText={\n errors[`notificationCode${index}`]?.message\n }\n onChange={(e) => {\n setValue(\n `notificationCode${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"notificationCode\",\n e.target.value,\n );\n const fieldPath = `notificationCode${index}`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message: \"Enter # of days to add\",\n });\n } else {\n clearErrors(fieldPath);\n }\n }}\n placeholder={translate(\"Notification code\")}\n onBlur={() => {\n if (field.value === \"\") {\n setError(`notificationCode${index}`, {\n type: \"manual\",\n message: \"Enter # of days to add\",\n });\n } else {\n clearErrors(`notificationCode${index}`);\n }\n }}\n data-testid={`mobiletypeeventconfigmodal-notification-code-input-${index}`}\n />\n )}\n />\n </TableCell>\n <TableCell>\n <Controller\n control={control}\n name={`numberOfDaysAddedForOnDate${index}`}\n defaultValue={config.numberOfDaysAddedForOnDate}\n render={({ field }) => (\n <TextField\n required\n fullWidth\n type=\"number\"\n variant=\"outlined\"\n size=\"small\"\n {...field}\n error={Boolean(\n errors[\n `numberOfDaysAddedForOnDate${index}`\n ],\n )}\n helperText={\n errors[`numberOfDaysAddedForOnDate${index}`]\n ?.message\n }\n onChange={(e) => {\n setValue(\n `numberOfDaysAddedForOnDate${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"numberOfDaysAddedForOnDate\",\n Number(e.target.value),\n );\n const fieldPath = `numberOfDaysAddedForOnDate${index}`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message: \"Enter # of days to add\",\n });\n } else {\n clearErrors(fieldPath);\n }\n }}\n onBlur={() => {\n if (field.value === \"\") {\n setError(\n `numberOfDaysAddedForOnDate${index}`,\n {\n type: \"manual\",\n message: \"Enter # of days to add\",\n },\n );\n } else {\n clearErrors(\n `numberOfDaysAddedForOnDate${index}`,\n );\n }\n }}\n data-testid={`mobiletypeeventconfigmodal-on-date-input-${index}`}\n />\n )}\n />\n </TableCell>\n <TableCell>\n <Controller\n control={control}\n name={`numberOfDaysAddedForDueDate${index}`}\n defaultValue={config.numberOfDaysAddedForDueDate}\n render={({ field }) => (\n <TextField\n fullWidth\n variant=\"outlined\"\n size=\"small\"\n type=\"number\"\n {...field}\n onChange={(e) => {\n setValue(\n `numberOfDaysAddedForDueDate${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"numberOfDaysAddedForDueDate\",\n Number(e.target.value),\n );\n }}\n data-testid={`mobiletypeeventconfigmodal-due-date-input-${index}`}\n />\n )}\n />\n </TableCell>\n <TableCell>\n <Controller\n control={control}\n name={`numberOfDaysAddedForExpiryDate${index}`}\n defaultValue={\n config.numberOfDaysAddedForExpiryDate\n }\n render={({ field }) => (\n <TextField\n fullWidth\n variant=\"outlined\"\n type=\"number\"\n size=\"small\"\n {...field}\n onChange={(e) => {\n setValue(\n `numberOfDaysAddedForExpiryDate${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"numberOfDaysAddedForExpiryDate\",\n Number(e.target.value),\n );\n }}\n data-testid={`mobiletypeeventconfigmodal-expiry-date-input-${index}`}\n />\n )}\n />\n </TableCell>\n <TableCell>\n <Tooltip title={translate(\"Delete row\")}>\n <IconButton\n color=\"error\"\n size=\"small\"\n aria-label={translate(\"Delete row\")}\n onClick={() => handleDeleteConfig(index)}\n data-testid={`mobiletypeeventconfigmodal-delete-button-${index}`}\n >\n <FontAwesomeIcons iconName=\"faTrash\" size=\"sm\" />\n </IconButton>\n </Tooltip>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n )}\n </Box>\n </Box>\n </DialogContent>\n\n <DialogActions\n sx={{ px: 3, py: 2, borderTop: \"1px solid\", borderColor: \"divider\" }}\n >\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n size=\"small\"\n onClick={() => {\n close();\n reset();\n }}\n data-testid=\"mobiletypeeventconfigmodal-close-button-action\"\n >\n {translate(\"Cancel\")}\n </Button>\n <Button\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n disabled={isSubmitting}\n data-testid=\"mobiletypeeventconfigmodal-submit-button\"\n >\n {translate(\"Submit\")}\n </Button>\n </DialogActions>\n </Box>\n </Dialog>\n );\n};\n\nMobileTypeEventConfigModal.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n handleClick: PropTypes.any,\n type: PropTypes.any,\n};\n\nexport default MobileTypeEventConfigModal;\n"],"names":["MobileTypeEventConfigModal","open","handleClose","handleClick","type","formRef","useRef","submitRef","trackEvent","useTrackEvent","notificationTypes","setNotificationTypes","useState","mobileNotification","setMobileNotification","mobileNotificationConfigs","setMobileNotificationConfigs","mobileConfigLength","setmobileConfigLength","translate","useTranslateProvider","handleDeleteConfig","index","data","i","setValue","prev","newConfigs","_","handleChange","field","value","validationSchema","Yup","control","handleSubmit","reset","setError","clearErrors","getValues","errors","isSubmitting","useForm","yupResolver","useEffect","_a","key","notification","loadInitialState","close","res","retrieveAllNotifications","showToast","addMobileNotification","addconfig","config","fieldPath","onSubmit","notificationTypeOptions","useMemo","jsxs","Dialog","DialogTitle","Box","Typography","jsx","IconButton","FontAwesomeIcons","DialogContent","ImplicitParams","SectionHeading","Grid","FieldLabel","CustomDropdown","event","CustomTextField","FieldHelp","Button","EmptyState","TableContainer","Paper","t","Table","TableHead","TableRow","TableCell","TableBody","Controller","TextField","e","Tooltip","DialogActions","PropTypes"],"mappings":";;;;;;;;;;;;;;;;;AAsDA,MAAMA,KAA6B,CAAC;AAAA,EAClC,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AACF,MAAM;AACJ,QAAMC,IAAUC,EAAO,IAAI,GACrBC,IAAYD,EAAO,EAAK,GACxBE,IAAaC,GAAA,GACb,CAACC,GAAmBC,CAAoB,IAAIC,EAAS,CAAA,CAAE,GACvD,CAACC,GAAoBC,CAAqB,IAAIF,EAAS,IAAI,GAC3D,CAACG,GAA2BC,CAA4B,IAAIJ;AAAA,IAChE,CAAA;AAAA,EAAC,GAEG,CAACK,GAAoBC,CAAqB,IAAIN,EAAS,CAAC,GACxD,EAAE,WAAAO,EAAA,IAAcC,GAAA,GAQhBC,IAAqB,CAACC,MAAU;AACpC,IAAIP,KACFA,EAA0B,QAAQ,CAACQ,GAAMC,MAAM;AAC7C,MAAAC,EAAS,mBAAmBD,CAAC,IAAI,EAAE,GACnCC,EAAS,6BAA6BD,CAAC,IAAI,CAAC,GAC5CC,EAAS,iCAAiCD,CAAC,IAAI,CAAC,GAChDC,EAAS,8BAA8BD,CAAC,IAAI,CAAC;AAAA,IAC/C,CAAC,GAGHR,EAA6B,CAACU,MAAS;AACrC,YAAMC,IAAaD,EAAK,OAAO,CAACE,GAAGJ,MAAMA,MAAMF,CAAK;AAGpD,aAAAK,EAAW,QAAQ,CAACJ,GAAMC,MAAM;AAC9B,QAAAC,EAAS,mBAAmBD,CAAC,IAAID,EAAK,gBAAgB,GACtDE;AAAA,UACE,6BAA6BD,CAAC;AAAA,UAC9BD,EAAK;AAAA,QAAA,GAEPE;AAAA,UACE,iCAAiCD,CAAC;AAAA,UAClCD,EAAK;AAAA,QAAA,GAEPE;AAAA,UACE,8BAA8BD,CAAC;AAAA,UAC/BD,EAAK;AAAA,QAAA;AAAA,MAET,CAAC,GAEMI;AAAA,IACT,CAAC;AAAA,EACH,GASME,IAAe,CAACP,GAAOQ,GAAOC,MAAU;AAC5C,UAAMJ,IAAa,CAAC,GAAGZ,CAAyB;AAChD,IAAAY,EAAWL,CAAK,EAAEQ,CAAK,IAAIC,GAC3Bf,EAA6BW,CAAU;AAAA,EACzC,GAEMK,IAAmBC,EAAI,OAAA,EAAS,MAAM;AAAA,IAC1C,wBAAwBA,EAAI,SAAS,SAAS,0BAA0B;AAAA,IACxE,mBAAmBA,EAAI,SAAS,SAAS,uBAAuB;AAAA,IAChE,iBAAiBA,EAAI,OAAA,EAAS;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,SAAUF,GAAO;AACf,gBACElB,KAAA,gBAAAA,EAAoB,qBAAoB,aACxCA,KAAA,gBAAAA,EAAoB,qBAAoB,WAEjC,CAAC,CAACkB,IAEJ;AAAA,MACT;AAAA,IAAA;AAAA,IAEF,iBAAiBE,EAAI,OAAA,EAAS;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,SAAUF,GAAO;AACf,gBAAIlB,KAAA,gBAAAA,EAAoB,qBAAoB,WACnC,CAAC,CAACkB,IAEJ;AAAA,MACT;AAAA,IAAA;AAAA,IAEF,eAAeE,EAAI,OAAA,EAAS;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,SAAUF,GAAO;AACf,gBAAIlB,KAAA,gBAAAA,EAAoB,qBAAoB,SACnC,CAAC,CAACkB,IAEJ;AAAA,MACT;AAAA,IAAA;AAAA,EACF,CACD,GAEK;AAAA,IACJ,SAAAG;AAAA,IACA,cAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAX;AAAA,IACA,UAAAY;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAW,EAAE,QAAAC,GAAQ,cAAAC,GAAA;AAAA,EAAa,IAChCC,GAAQ;AAAA,IACV,eAAe,CAAA;AAAA,IACf,UAAUC,GAAYX,CAAgB;AAAA,IACtC,MAAM;AAAA,EAAA,CACP;AACD,EAAAY,EAAU,MAAM;;AACd,IAAIxC,KAAQM,EAAkB,SAAS,OACrCmC,IAAA,OAAO,KAAKzC,CAAI,MAAhB,QAAAyC,EAAmB,QAAQ,CAACC,MAAQ;;AAIlC,UAHIA,MAAQ,WACVrB,EAASqB,GAAK1C,EAAK0C,CAAG,CAAC,GAErBA,MAAQ,0BAA0B;AACpC,cAAMC,IAAerC,EAAkB;AAAA,UACrC,CAACa,MAASA,EAAK,OAAO,SAASnB,EAAK0C,CAAG,CAAC;AAAA,QAAA;AAE1C,QAAAhC,EAAsB,GAAGiC,CAAY;AAAA,MACvC;AACA,MAAID,MAAQ,+BAA+B1C,EAAK0C,CAAG,KACjD9B,EAA6BZ,EAAK0C,CAAG,KAAK,EAAE,GAC5C5B,GAAsB2B,IAAAzC,EAAK0C,CAAG,MAAR,gBAAAD,EAAW,MAAM,KAC9BzC,EAAK0C,CAAG,KACjBrB,EAASqB,GAAK1C,EAAK0C,CAAG,CAAC;AAAA,IAE3B;AAAA,EAEJ,GAAG,CAAC1C,GAAMM,CAAiB,CAAC,GAE5BkC,EAAU,MAAM;AACd,IAAAI,GAAA;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAMC,IAAQ,MAAM;AAClB,IAAAzC,EAAW,oBAAoB;AAAA,MAC7B,MAAMH,EAAQ;AAAA,MACd,WAAW;AAAA,MACX,QAAQE,EAAU;AAAA,IAAA,CACnB,GAEDL,EAAA;AAAA,EACF,GAQM8C,KAAmB,YAAY;AACnC,QAAI;AACF,YAAME,IAAM,MAAMC,GAAyB,EAAI;AAC/C,MAAAxC,EAAqBuC,KAAA,gBAAAA,EAAK,IAAI;AAAA,IAChC,QAAQ;AACN,MAAAE,GAAU;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAAA,EACF,GAMMC,KAAwB,MAAM;AAClC,QAAIC,IAAY;AAChB,IAAAvC,KAAA,QAAAA,EAA2B,QAAQ,CAACwC,GAAQjC,MAAU;AACpD,UAAIiC,EAAO,qBAAqB,IAAI;AAClC,QAAAD,IAAY;AACZ,cAAME,IAAY,mBAAmBlC,CAAK;AAE1C,QAAAe,EAASmB,GAAW;AAAA,UAClB,MAAM;AAAA,UACN,SAAS;AAAA,QAAA,CACV;AAAA,MACH;AAAA,IACF,IACIF,MACFpC,EAAsB,CAACQ,MAASA,IAAO,CAAC,GACxCV,EAA6B;AAAA,MAC3B,GAAGD;AAAA,MACH;AAAA,QACE,kBAAkB;AAAA,QAClB,4BAA4B;AAAA,QAC5B,6BAA6B;AAAA,QAC7B,gCAAgC;AAAA,MAAA;AAAA,IAClC,CACD;AAAA,EAEL,GASM0C,KAAW,CAAClC,MAAS;AACzB,IAAAA,IAAO,KAAK,MAAM,KAAK,UAAUA,CAAI,CAAC;AACtC,aAASC,IAAI,GAAGA,IAAIP,GAAoBO;AACtC,aAAOD,EAAK,mBAAmBC,CAAC,EAAE,GAClC,OAAOD,EAAK,6BAA6BC,CAAC,EAAE,GAC5C,OAAOD,EAAK,iCAAiCC,CAAC,EAAE,GAChD,OAAOD,EAAK,8BAA8BC,CAAC,EAAE;AAG/C,IAAAD,EAAK,4BAA4BR,GACjCQ,EAAK,OAAOnB,KAAA,gBAAAA,EAAM,MAClBD,EAAYoB,CAAI,GAChBhB,EAAU,UAAU,IACpB0C,EAAA,GACAb,EAAA;AAAA,EACF,GAEMsB,KAA0BC;AAAA,IAC9B,OACGjD,KAAqB,CAAA,GAAI,IAAI,CAACa,OAAU;AAAA,MACvC,OAAOA,EAAK;AAAA,MACZ,OAAOA,EAAK;AAAA,IAAA,EACZ;AAAA,IACJ,CAACb,CAAiB;AAAA,EAAA;AAGpB,SACE,gBAAAkD;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,MAAA5D;AAAA,MACA,WAAS;AAAA,MACT,UAAS;AAAA,MACT,SAAS,MAAM;AACb,QAAAgD,EAAA,GACAb,EAAA;AAAA,MACF;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAwB;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,cAChB,KAAK;AAAA,cACL,IAAI;AAAA,cACJ,IAAI;AAAA,cACJ,cAAc;AAAA,cACd,aAAa;AAAA,YAAA;AAAA,YAEf,eAAY;AAAA,YAEZ,UAAA;AAAA,cAAA,gBAAAF,EAACG,GAAA,EACC,UAAA;AAAA,gBAAA,gBAAAH;AAAA,kBAACI;AAAA,kBAAA;AAAA,oBACC,SAAQ;AAAA,oBACR,WAAU;AAAA,oBACV,IAAI,EAAE,YAAY,KAAK,SAAS,QAAA;AAAA,oBAE/B,UAAA;AAAA,sBAAA7C,EAAU,KAAK;AAAA,sBAAE;AAAA,sBAAEA,EAAU,qBAAqB;AAAA,sBAAG;AAAA,sBACrDA,EAAU,eAAe;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAE5B,gBAAA8C,EAACD,GAAA,EAAW,SAAQ,SAAQ,OAAM,kBAC/B,UAAA7C;AAAA,kBACC;AAAA,gBAAA,EACF,CACF;AAAA,cAAA,GACF;AAAA,cACA,gBAAA8C;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAS,MAAM;AACb,oBAAAjB,EAAA,GACAb,EAAA;AAAA,kBACF;AAAA,kBACA,cAAYjB,EAAU,OAAO;AAAA,kBAC7B,eAAY;AAAA,kBAEZ,UAAA,gBAAA8C,EAACE,GAAA,EAAiB,UAAS,UAAA,CAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,YACvC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,gBAAAP;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,UAAU5B,EAAasB,EAAQ;AAAA,YAC/B,eAAY;AAAA,YACZ,KAAKpD;AAAA,YACL,IAAI;AAAA,cACF,SAAS;AAAA,cACT,eAAe;AAAA,cACf,WAAW;AAAA,cACX,UAAU;AAAA,YAAA;AAAA,YAGZ,UAAA;AAAA,cAAA,gBAAA4D;AAAA,gBAACG;AAAA,gBAAA;AAAA,kBAGC,IAAI,EAAE,2BAA2B,EAAE,IAAI,IAAE;AAAA,kBAEzC,UAAA,gBAAAR,EAACG,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA,GACxD,UAAA;AAAA,oBAAA,gBAAAE,EAACF,GAAA,EAAI,eAAY,8CACf,UAAA,gBAAAE;AAAA,sBAACI;AAAA,sBAAA;AAAA,wBACC,QAAQjE,KAAA,gBAAAA,EAAM;AAAA,wBACd,WAAAe;AAAA,wBACA,OAAOA,EAAU,+BAA+B;AAAA,sBAAA;AAAA,oBAAA,GAEpD;AAAA,oBAEA,gBAAAyC,EAACG,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA,GACxD,UAAA;AAAA,sBAAA,gBAAAE;AAAA,wBAACK;AAAA,wBAAA;AAAA,0BACC,MAAMnD,EAAU,+CAA+C;AAAA,0BAE9D,YAAU,cAAc;AAAA,wBAAA;AAAA,sBAAA;AAAA,wCAG1BoD,GAAA,EAAK,WAAS,IAAC,SAAS,GAAG,YAAW,cACrC,UAAA;AAAA,wBAAA,gBAAAX;AAAA,0BAACW;AAAA,0BAAA;AAAA,4BACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,4BACpB,eAAY;AAAA,4BAEZ,UAAA;AAAA,8BAAA,gBAAAX,EAACY,GAAA,EAAW,UAAQ,IACjB,UAAA;AAAA,gCAAArD,EAAU,cAAc;AAAA,gCAAE;AAAA,gCAAEA,EAAU,MAAM;AAAA,8BAAA,GAC/C;AAAA,8BACA,gBAAA8C;AAAA,gCAACQ;AAAA,gCAAA;AAAA,kCACC,SAAAvC;AAAA,kCACA,MAAK;AAAA,kCACL,SAASwB;AAAA,kCACT,aAAY;AAAA,kCACZ,aAAY;AAAA,kCACZ,QAAAlB;AAAA,kCACA,iBAAe;AAAA,kCACf,sBAAsB;AAAA,kCACtB,aAAarB,EAAU,MAAM;AAAA,kCAC7B,UAAU,CAACuD,MAAU;AACnB,0CAAM3B,IAAerC,EAAkB;AAAA,sCACrC,CAACa,MAAA;;AAAS,+CAAAA,EAAK,SAAOsB,IAAA6B,KAAA,gBAAAA,EAAO,WAAP,gBAAA7B,EAAe;AAAA;AAAA,oCAAA;AAEvC,oCAAA/B,EAAsB,GAAGiC,CAAY;AAAA,kCACvC;AAAA,kCACA,YAAW;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BACb;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAGF,gBAAAa;AAAA,0BAACW;AAAA,0BAAA;AAAA,4BACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,4BACpB,eAAY;AAAA,4BAEZ,UAAA;AAAA,8BAAA,gBAAAX,EAACY,GAAA,EAAW,UAAQ,IACjB,UAAA;AAAA,gCAAArD,EAAU,MAAM;AAAA,gCAAE;AAAA,gCAAEA,EAAU,MAAM;AAAA,gCAAE;AAAA,gCAAEA,EAAU,OAAO;AAAA,gCAAG;AAAA,gCAC5DA,EAAU,MAAM;AAAA,8BAAA,GACnB;AAAA,8BACA,gBAAA8C;AAAA,gCAACU;AAAA,gCAAA;AAAA,kCACC,SAAAzC;AAAA,kCACA,IAAG;AAAA,kCACH,MAAK;AAAA,kCACL,QAAAM;AAAA,kCACA,OAAM;AAAA,kCACN,MAAK;AAAA,kCACL,YAAW;AAAA,gCAAA;AAAA,8BAAA;AAAA,8BAEb,gBAAAyB,EAACW,IAAA,EACE,UAAAzD,EAAU,mCAAmC,EAAA,CAChD;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAGF,gBAAAyC;AAAA,0BAACW;AAAA,0BAAA;AAAA,4BACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,4BACpB,eAAY;AAAA,4BAEZ,UAAA;AAAA,8BAAA,gBAAAX,EAACY,GAAA,EACE,UAAA;AAAA,gCAAArD,EAAU,KAAK;AAAA,gCAAE;AAAA,gCAAEA,EAAU,MAAM;AAAA,gCAAE;AAAA,gCAAEA,EAAU,OAAO;AAAA,gCAAG;AAAA,gCAC3DA,EAAU,MAAM;AAAA,8BAAA,GACnB;AAAA,8BACA,gBAAA8C;AAAA,gCAACU;AAAA,gCAAA;AAAA,kCACC,SAAAzC;AAAA,kCACA,IAAG;AAAA,kCACH,MAAK;AAAA,kCACL,QAAAM;AAAA,kCACA,OAAM;AAAA,kCACN,MAAK;AAAA,kCACL,YAAW;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BACb;AAAA,0BAAA;AAAA,wBAAA;AAAA,yBAGD3B,KAAA,gBAAAA,EAAoB,qBAAoB,UACvC,gBAAA+C;AAAA,0BAACW;AAAA,0BAAA;AAAA,4BACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,4BACpB,eAAY;AAAA,4BAEZ,UAAA;AAAA,8BAAA,gBAAAX,EAACY,GAAA,EAAW,UAAQ,IACjB,UAAA;AAAA,gCAAArD,EAAU,MAAM;AAAA,gCAAE;AAAA,gCAAEA,EAAU,OAAO;AAAA,gCAAG;AAAA,gCACxCA,EAAU,MAAM;AAAA,8BAAA,GACnB;AAAA,8BACA,gBAAA8C;AAAA,gCAACU;AAAA,gCAAA;AAAA,kCACC,SAAAzC;AAAA,kCACA,IAAG;AAAA,kCACH,MAAK;AAAA,kCACL,QAAAM;AAAA,kCACA,OAAM;AAAA,kCACN,MAAK;AAAA,kCACL,YAAW;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BACb;AAAA,0BAAA;AAAA,wBAAA;AAAA,yBAIH3B,KAAA,gBAAAA,EAAoB,qBAAoB,YACvC,gBAAA+C;AAAA,0BAACW;AAAA,0BAAA;AAAA,4BACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,4BACpB,eAAY;AAAA,4BAEZ,UAAA;AAAA,8BAAA,gBAAAX,EAACY,GAAA,EAAW,UAAQ,IACjB,UAAA;AAAA,gCAAArD,EAAU,QAAQ;AAAA,gCAAE;AAAA,gCAAEA,EAAU,OAAO;AAAA,gCAAG;AAAA,gCAC1CA,EAAU,MAAM;AAAA,8BAAA,GACnB;AAAA,8BACA,gBAAA8C;AAAA,gCAACU;AAAA,gCAAA;AAAA,kCACC,SAAAzC;AAAA,kCACA,IAAG;AAAA,kCACH,MAAK;AAAA,kCACL,QAAAM;AAAA,kCACA,OAAM;AAAA,kCACN,MAAK;AAAA,kCACL,YAAW;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BACb;AAAA,0BAAA;AAAA,wBAAA;AAAA,0BAIF3B,KAAA,gBAAAA,EAAoB,qBAAoB,aACxCA,KAAA,gBAAAA,EAAoB,qBAAoB,aACxC,gBAAA+C;AAAA,0BAACW;AAAA,0BAAA;AAAA,4BACC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA;AAAA,4BACpB,eAAY;AAAA,4BAEZ,UAAA;AAAA,8BAAA,gBAAAX,EAACY,GAAA,EAAW,UAAQ,IACjB,UAAA;AAAA,gCAAArD,EAAU,QAAQ;AAAA,gCAAE;AAAA,gCAAEA,EAAU,OAAO;AAAA,gCAAG;AAAA,gCAC1CA,EAAU,MAAM;AAAA,8BAAA,GACnB;AAAA,8BACA,gBAAA8C;AAAA,gCAACU;AAAA,gCAAA;AAAA,kCACC,SAAAzC;AAAA,kCACA,IAAG;AAAA,kCACH,MAAK;AAAA,kCACL,QAAAM;AAAA,kCACA,OAAM;AAAA,kCACN,MAAK;AAAA,kCACL,YAAW;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BACb;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBACF,EAAA,CAEJ;AAAA,oBAAA,GACF;AAAA,oBAEA,gBAAAoB,EAACG,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,EAAA,GACxD,UAAA;AAAA,sBAAA,gBAAAH;AAAA,wBAACG;AAAA,wBAAA;AAAA,0BACC,IAAI;AAAA,4BACF,SAAS;AAAA,4BACT,gBAAgB;AAAA,4BAChB,YAAY;AAAA,4BACZ,KAAK;AAAA,4BACL,UAAU;AAAA,0BAAA;AAAA,0BAGZ,UAAA;AAAA,4BAAA,gBAAAE;AAAA,8BAACK;AAAA,8BAAA;AAAA,gCACC,MAAMnD;AAAA,kCACJ;AAAA,gCAAA;AAAA,gCAGD,YAAU,UAAU;AAAA,8BAAA;AAAA,4BAAA;AAAA,4BAEvB,gBAAAyC;AAAA,8BAACiB;AAAA,8BAAA;AAAA,gCACC,SAAQ;AAAA,gCACR,MAAK;AAAA,gCACL,WAAW,gBAAAZ,EAACE,GAAA,EAAiB,UAAS,UAAS,MAAK,MAAK;AAAA,gCACzD,SAASd;AAAA,gCACT,eAAY;AAAA,gCAEX,UAAA;AAAA,kCAAAlC,EAAU,KAAK;AAAA,kCAAE;AAAA,kCAAEA,EAAU,eAAe;AAAA,gCAAA;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BAC/C;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAGDJ,EAA0B,WAAW,IACpC,gBAAAkD;AAAA,wBAACa;AAAA,wBAAA;AAAA,0BACC,MAAK;AAAA,0BACL,OAAO3D,EAAU,sBAAsB;AAAA,0BACvC,MAAMA;AAAA,4BACJ;AAAA,0BAAA;AAAA,0BAEF,YAAW;AAAA,wBAAA;AAAA,sBAAA,IAGb,gBAAA8C;AAAA,wBAACc;AAAA,wBAAA;AAAA,0BACC,WAAWC;AAAA,0BACX,WAAW;AAAA,0BACX,SAAQ;AAAA,0BACR,WAAU;AAAA,0BACV,IAAI,EAAE,cAAc,CAACC,MAAM,GAAGA,EAAE,MAAM,YAAY,KAAA;AAAA,0BAClD,eAAY;AAAA,0BAEZ,UAAA,gBAAArB;AAAA,4BAACsB;AAAA,4BAAA;AAAA,8BACC,MAAK;AAAA,8BACL,WAAU;AAAA,8BACV,cAAY/D,EAAU,8BAA8B;AAAA,8BAEpD,UAAA;AAAA,gCAAA,gBAAA8C,EAACkB,IAAA,EACC,4BAACC,GAAA,EACC,UAAA;AAAA,kCAAA,gBAAAnB,EAACoB,GAAA,EAAW,UAAAlE,EAAU,MAAM,EAAA,CAAE;AAAA,oDAC7BkE,GAAA,EACE,UAAA;AAAA,oCAAAlE,EAAU,OAAO;AAAA,oCAAE;AAAA,oCAAEA,EAAU,MAAM;AAAA,oCAAG;AAAA,oCACxCA,EAAU,KAAK;AAAA,oCAAE;AAAA,oCAAEA,EAAU,UAAU;AAAA,kCAAA,GAC1C;AAAA,oDACCkE,GAAA,EACE,UAAA;AAAA,oCAAAlE,EAAU,OAAO;AAAA,oCAAE;AAAA,oCAAEA,EAAU,MAAM;AAAA,oCAAG;AAAA,oCACxCA,EAAU,KAAK;AAAA,oCAAE;AAAA,oCAAEA,EAAU,KAAK;AAAA,kCAAA,GACrC;AAAA,oDACCkE,GAAA,EACE,UAAA;AAAA,oCAAAlE,EAAU,OAAO;AAAA,oCAAE;AAAA,oCAAEA,EAAU,MAAM;AAAA,oCAAG;AAAA,oCACxCA,EAAU,KAAK;AAAA,oCAAE;AAAA,oCAAEA,EAAU,QAAQ;AAAA,kCAAA,GACxC;AAAA,kCACA,gBAAA8C,EAACoB,GAAA,EAAW,UAAAlE,EAAU,SAAS,EAAA,CAAE;AAAA,gCAAA,EAAA,CACnC,EAAA,CACF;AAAA,gCACA,gBAAA8C,EAACqB,MACE,UAAAvE,EAA0B,IAAI,CAACwC,GAAQjC,wBACrC8D,GAAA,EACC,UAAA;AAAA,kCAAA,gBAAAnB,EAACoB,GAAA,EACC,UAAA,gBAAApB;AAAA,oCAACsB;AAAA,oCAAA;AAAA,sCACC,SAAArD;AAAA,sCACA,MAAM,mBAAmBZ,CAAK;AAAA,sCAC9B,cAAciC,EAAO;AAAA,sCACrB,QAAQ,CAAC,EAAE,OAAAzB,EAAA;;AACT,+DAAAmC;AAAA,0CAACuB;AAAA,0CAAA;AAAA,4CACC,UAAQ;AAAA,4CACR,WAAS;AAAA,4CACT,SAAQ;AAAA,4CACR,MAAK;AAAA,4CACJ,GAAG1D;AAAA,4CACJ,OAAO,EACLU,EAAO,mBAAmBlB,CAAK,EAAE;AAAA,4CAEnC,aACEuB,IAAAL,EAAO,mBAAmBlB,CAAK,EAAE,MAAjC,gBAAAuB,EAAoC;AAAA,4CAEtC,UAAU,CAAC4C,MAAM;AACf,8CAAAhE;AAAA,gDACE,mBAAmBH,CAAK;AAAA,gDACxBmE,EAAE,OAAO;AAAA,8CAAA,GAEX5D;AAAA,gDACEP;AAAA,gDACA;AAAA,gDACAmE,EAAE,OAAO;AAAA,8CAAA;AAEX,oDAAMjC,IAAY,mBAAmBlC,CAAK;AAC1C,8CAAIiB,EAAUiB,CAAS,MAAM,KAC3BnB,EAASmB,GAAW;AAAA,gDAClB,MAAM;AAAA,gDACN,SAAS;AAAA,8CAAA,CACV,IAEDlB,EAAYkB,CAAS;AAAA,4CAEzB;AAAA,4CACA,aAAarC,EAAU,mBAAmB;AAAA,4CAC1C,QAAQ,MAAM;AACZ,8CAAIW,EAAM,UAAU,KAClBO,EAAS,mBAAmBf,CAAK,IAAI;AAAA,gDACnC,MAAM;AAAA,gDACN,SAAS;AAAA,8CAAA,CACV,IAEDgB,EAAY,mBAAmBhB,CAAK,EAAE;AAAA,4CAE1C;AAAA,4CACA,eAAa,sDAAsDA,CAAK;AAAA,0CAAA;AAAA,wCAAA;AAAA;AAAA,oCAC1E;AAAA,kCAAA,GAGN;AAAA,oDACC+D,GAAA,EACC,UAAA,gBAAApB;AAAA,oCAACsB;AAAA,oCAAA;AAAA,sCACC,SAAArD;AAAA,sCACA,MAAM,6BAA6BZ,CAAK;AAAA,sCACxC,cAAciC,EAAO;AAAA,sCACrB,QAAQ,CAAC,EAAE,OAAAzB,EAAA;;AACT,+DAAAmC;AAAA,0CAACuB;AAAA,0CAAA;AAAA,4CACC,UAAQ;AAAA,4CACR,WAAS;AAAA,4CACT,MAAK;AAAA,4CACL,SAAQ;AAAA,4CACR,MAAK;AAAA,4CACJ,GAAG1D;AAAA,4CACJ,OAAO,EACLU,EACE,6BAA6BlB,CAAK,EACpC;AAAA,4CAEF,aACEuB,IAAAL,EAAO,6BAA6BlB,CAAK,EAAE,MAA3C,gBAAAuB,EACI;AAAA,4CAEN,UAAU,CAAC4C,MAAM;AACf,8CAAAhE;AAAA,gDACE,6BAA6BH,CAAK;AAAA,gDAClCmE,EAAE,OAAO;AAAA,8CAAA,GAEX5D;AAAA,gDACEP;AAAA,gDACA;AAAA,gDACA,OAAOmE,EAAE,OAAO,KAAK;AAAA,8CAAA;AAEvB,oDAAMjC,IAAY,6BAA6BlC,CAAK;AACpD,8CAAIiB,EAAUiB,CAAS,MAAM,KAC3BnB,EAASmB,GAAW;AAAA,gDAClB,MAAM;AAAA,gDACN,SAAS;AAAA,8CAAA,CACV,IAEDlB,EAAYkB,CAAS;AAAA,4CAEzB;AAAA,4CACA,QAAQ,MAAM;AACZ,8CAAI1B,EAAM,UAAU,KAClBO;AAAA,gDACE,6BAA6Bf,CAAK;AAAA,gDAClC;AAAA,kDACE,MAAM;AAAA,kDACN,SAAS;AAAA,gDAAA;AAAA,8CACX,IAGFgB;AAAA,gDACE,6BAA6BhB,CAAK;AAAA,8CAAA;AAAA,4CAGxC;AAAA,4CACA,eAAa,4CAA4CA,CAAK;AAAA,0CAAA;AAAA,wCAAA;AAAA;AAAA,oCAChE;AAAA,kCAAA,GAGN;AAAA,oDACC+D,GAAA,EACC,UAAA,gBAAApB;AAAA,oCAACsB;AAAA,oCAAA;AAAA,sCACC,SAAArD;AAAA,sCACA,MAAM,8BAA8BZ,CAAK;AAAA,sCACzC,cAAciC,EAAO;AAAA,sCACrB,QAAQ,CAAC,EAAE,OAAAzB,EAAA,MACT,gBAAAmC;AAAA,wCAACuB;AAAA,wCAAA;AAAA,0CACC,WAAS;AAAA,0CACT,SAAQ;AAAA,0CACR,MAAK;AAAA,0CACL,MAAK;AAAA,0CACJ,GAAG1D;AAAA,0CACJ,UAAU,CAAC2D,MAAM;AACf,4CAAAhE;AAAA,8CACE,8BAA8BH,CAAK;AAAA,8CACnCmE,EAAE,OAAO;AAAA,4CAAA,GAEX5D;AAAA,8CACEP;AAAA,8CACA;AAAA,8CACA,OAAOmE,EAAE,OAAO,KAAK;AAAA,4CAAA;AAAA,0CAEzB;AAAA,0CACA,eAAa,6CAA6CnE,CAAK;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCACjE;AAAA,kCAAA,GAGN;AAAA,oDACC+D,GAAA,EACC,UAAA,gBAAApB;AAAA,oCAACsB;AAAA,oCAAA;AAAA,sCACC,SAAArD;AAAA,sCACA,MAAM,iCAAiCZ,CAAK;AAAA,sCAC5C,cACEiC,EAAO;AAAA,sCAET,QAAQ,CAAC,EAAE,OAAAzB,EAAA,MACT,gBAAAmC;AAAA,wCAACuB;AAAA,wCAAA;AAAA,0CACC,WAAS;AAAA,0CACT,SAAQ;AAAA,0CACR,MAAK;AAAA,0CACL,MAAK;AAAA,0CACJ,GAAG1D;AAAA,0CACJ,UAAU,CAAC2D,MAAM;AACf,4CAAAhE;AAAA,8CACE,iCAAiCH,CAAK;AAAA,8CACtCmE,EAAE,OAAO;AAAA,4CAAA,GAEX5D;AAAA,8CACEP;AAAA,8CACA;AAAA,8CACA,OAAOmE,EAAE,OAAO,KAAK;AAAA,4CAAA;AAAA,0CAEzB;AAAA,0CACA,eAAa,gDAAgDnE,CAAK;AAAA,wCAAA;AAAA,sCAAA;AAAA,oCACpE;AAAA,kCAAA,GAGN;AAAA,oDACC+D,GAAA,EACC,UAAA,gBAAApB,EAACyB,MAAQ,OAAOvE,EAAU,YAAY,GACpC,UAAA,gBAAA8C;AAAA,oCAACC;AAAA,oCAAA;AAAA,sCACC,OAAM;AAAA,sCACN,MAAK;AAAA,sCACL,cAAY/C,EAAU,YAAY;AAAA,sCAClC,SAAS,MAAME,EAAmBC,CAAK;AAAA,sCACvC,eAAa,4CAA4CA,CAAK;AAAA,sCAE9D,UAAA,gBAAA2C,EAACE,GAAA,EAAiB,UAAS,WAAU,MAAK,KAAA,CAAK;AAAA,oCAAA;AAAA,kCAAA,GAEnD,EAAA,CACF;AAAA,gCAAA,KA3La7C,IAAQ,CA4LvB,CACD,EAAA,CACH;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACF;AAAA,sBAAA;AAAA,oBACF,EAAA,CAEJ;AAAA,kBAAA,EAAA,CACF;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGF,gBAAAsC;AAAA,gBAAC+B;AAAA,gBAAA;AAAA,kBACC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,aAAa,aAAa,UAAA;AAAA,kBAEzD,UAAA;AAAA,oBAAA,gBAAA1B;AAAA,sBAACY;AAAA,sBAAA;AAAA,wBACC,SAAQ;AAAA,wBACR,OAAM;AAAA,wBACN,MAAK;AAAA,wBACL,SAAS,MAAM;AACb,0BAAA5B,EAAA,GACAb,EAAA;AAAA,wBACF;AAAA,wBACA,eAAY;AAAA,wBAEX,YAAU,QAAQ;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAErB,gBAAA6B;AAAA,sBAACY;AAAA,sBAAA;AAAA,wBACC,MAAK;AAAA,wBACL,SAAQ;AAAA,wBACR,OAAM;AAAA,wBACN,MAAK;AAAA,wBACL,UAAUpC;AAAA,wBACV,eAAY;AAAA,wBAEX,YAAU,QAAQ;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACrB;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEAzC,GAA2B,YAAY;AAAA,EACrC,MAAM4F,EAAU;AAAA,EAChB,aAAaA,EAAU;AAAA,EACvB,aAAaA,EAAU;AAAA,EACvB,MAAMA,EAAU;AAClB;"}
@@ -0,0 +1,247 @@
1
+ import { jsxs as p, jsx as l } from "react/jsx-runtime";
2
+ import { useTranslateProvider as D } from "@/common/languageTranslator/TranslationContext";
3
+ import { showToast as W } from "@/common/toaster/toaster";
4
+ import Q from "@/hooks/useTrackEvent";
5
+ import v from "@/common/fontAwesomeIcons/FontAwesomeIcons";
6
+ import U from "@/views/custom-components/PostgresEditor";
7
+ import { Dialog as H, DialogTitle as z, Box as F, Typography as q, IconButton as V, DialogContent as $, DialogActions as M, Button as h } from "@mui/material";
8
+ import E from "prop-types";
9
+ import "react";
10
+ import { useSelector as P } from "react-redux";
11
+ function K({
12
+ open: O,
13
+ handleClose: u,
14
+ data: i,
15
+ roleData: t
16
+ }) {
17
+ var g, w, A, T, b, N;
18
+ const { user: n } = P((r) => r.Authenticate), { translate: c } = D();
19
+ let e = "";
20
+ if (e = "", e += "begin;", e += `
21
+ `, e += "DO $$", e += `
22
+ `, e += "DECLARE", e += `
23
+ `, e += "var_notification_type_id integer;", e += `
24
+ `, e += "var_escalation_level_id integer;", e += `
25
+ `, e += "old_notification_type_id integer;", e += `
26
+ `, e += "old_escalation_level_id integer;", e += `
27
+ `, e += "BEGIN", e += `
28
+ `, i.code !== null || i.code !== void 0) {
29
+ e += "DELETE FROM notification_type_master WHERE code = '" + i.code + "'returning id into old_notification_type_id;", e += `
30
+ `, e += `
31
+ `, e += "INSERT INTO notification_type_master (", e += 'created_by,created_on,modified_by,modified_on,code,"name","type",role_id,state,notification_for,action_on_role_id,data_query,action_query,order_no,color_code,data_for,url_based_action,url,modal_based_action,modal_name,is_location_filter_required,fetch_up_to_level,required_up_to_level,is_fetch_according_aoi,"uuid"', e += ")", e += `
32
+ `, e += "VALUES (", e += (n == null ? void 0 : n.id) + ",", e += "now(),", e += (n == null ? void 0 : n.id) + ",", e += "now(),", e += i.code ? "'" + i.code + "'," : "null,", e += i.notificationName ? "'" + i.notificationName + "'," : "null,", e += i.notificationType ? "'" + i.notificationType + "'," : "null,", i.roleId !== null ? e += i.roleId + "," : e += "null,", e += i.state ? "'" + i.state + "'," : "null,", e += i.notificationFor ? "'" + i.notificationFor + "'," : "null,", e += "null,", i.dataQuery !== null ? e += "'" + ((g = i == null ? void 0 : i.dataQuery) == null ? void 0 : g.replace(/'/g, "''")) + "'," : e += "null,", i.actionQuery !== null ? e += "'" + ((w = i == null ? void 0 : i.actionQuery) == null ? void 0 : w.replace(/'/g, "''")) + "'," : e += "null,", i.orderNo !== null ? e += i.orderNo + "," : e += "null,", i.colorCode !== null ? e += "'" + i.colorCode + "'," : e += "null,", i.dataFor !== null ? e += "'" + i.dataFor + "'," : e += "null,", e += i.urlBasedAction ? i.urlBasedAction + "," : (() => {
33
+ let o;
34
+ return i.urlBasedAction === !1 ? o = "false," : o = "null,", o;
35
+ })(), i.url !== null ? e += "'" + i.url + "'," : e += "null,", e += i.modalBasedAction ? i.modalBasedAction + "," : (() => {
36
+ let o;
37
+ return i.modalBasedAction === !1 ? o = "false," : o = "null,", o;
38
+ })(), i.modalName !== null ? e += "'" + i.modalName + "'," : e += "null,", e += i.isLocationFilterRequired ? i.isLocationFilterRequired + "," : "null,", i.fetchUptoLevel !== null ? e += i.fetchUptoLevel + "," : e += "null,", i.requiredUptoLevel !== null ? e += i.requiredUptoLevel + "," : e += "null,", e += i.isFetchAccordingAOI ? i.isFetchAccordingAOI + "," : "null,", i.uuid !== null ? e += "'" + i.uuid + "'" : e += "null", e += ")", e += "returning id into var_notification_type_id;", e += `
39
+ `, e += `
40
+ `, e += "DELETE FROM notification_type_role_rel WHERE notification_type_id = old_notification_type_id;", e += `
41
+ `, e += `
42
+ `, e += "INSERT INTO notification_type_role_rel (notification_type_id, role_id)", e += `
43
+ `, e += "SELECT var_notification_type_id, id", e += `
44
+ `, e += "FROM um_role_master", e += `
45
+ `, e += "WHERE name IN (";
46
+ let r = (A = i.roles) == null ? void 0 : A.length, m = 0;
47
+ if (((T = i.roles) == null ? void 0 : T.length) > 0)
48
+ i.roles.forEach((o) => {
49
+ var d;
50
+ m += 1, ((d = t.find((f) => f.id === o)) == null ? void 0 : d.name) != null && (e += "'" + t.find((f) => f.id === o).name + "' "), m === r ? e += ");" : e += ",", e += `
51
+ `;
52
+ });
53
+ else {
54
+ m += 1;
55
+ const o = ((b = t == null ? void 0 : t.find((d) => d.id === (i == null ? void 0 : i.roleId))) == null ? void 0 : b.name) ?? null;
56
+ e += o ? `'${o}'` : "'null'", e += ");", e += `
57
+ `;
58
+ }
59
+ ((N = i.escalationLevels) == null ? void 0 : N.length) > 0 && i.escalationLevels.forEach((o) => {
60
+ var f, R, C, x, L, I;
61
+ let d = !1;
62
+ if (e += `
63
+ `, e += "DELETE FROM escalation_level_master WHERE uuid = '" + o.uuid + "' returning id into old_escalation_level_id;", e += `
64
+ `, e += `
65
+ `, e += 'INSERT INTO escalation_level_master ("name", notification_type_id, created_by, created_on, modified_by, modified_on,uuid)', e += "VALUES (", e += "'" + o.name + "',", e += "var_notification_type_id,", e += (n == null ? void 0 : n.id) + ",", e += "now(),", e += (n == null ? void 0 : n.id) + ",", e += "now(),", e += "'" + o.uuid + "'", e += ")", e += "returning id into var_escalation_level_id;", e += `
66
+ `, e += `
67
+ `, e += "DELETE FROM escalation_level_role_rel WHERE escalation_level_id = old_escalation_level_id ;", e += `
68
+ `, e += `
69
+ `, o.performAction != null && ((f = Object.keys(o.performAction)) == null ? void 0 : f.length) > 0) {
70
+ for (const y in o.performAction)
71
+ if (((R = t.find((s) => s.id === y)) == null ? void 0 : R.name) != null) {
72
+ d = !0;
73
+ break;
74
+ }
75
+ }
76
+ if (d) {
77
+ e += "INSERT INTO escalation_level_role_rel (escalation_level_id, role_id, can_perform_action)", e += `
78
+ `, e += "SELECT var_escalation_level_id, id, ";
79
+ let y = (C = Object.keys(o.performAction)) == null ? void 0 : C.length;
80
+ e += `
81
+ `, e += "CASE", e += `
82
+ `;
83
+ let s = 0;
84
+ for (const _ in o.performAction)
85
+ s++, ((x = t.find((a) => a.id === _)) == null ? void 0 : x.name) != null && (e += "WHEN um_role_master.name = '" + ((L = t.find((a) => a.id === _)) == null ? void 0 : L.name) + "' THEN " + o.performAction[_]), s === y && (e += `
86
+ `, e += "ELSE false", e += `
87
+ `, e += "END"), e += `
88
+ `;
89
+ s = 0, e += "FROM um_role_master", e += `
90
+ `, e += "WHERE name IN (";
91
+ for (const _ in o.performAction)
92
+ s++, ((I = t.find((a) => a.id === _)) == null ? void 0 : I.name) !== void 0 && (e += "'" + t.find((a) => a.id === _).name + "' "), s === y ? e += ");" : e += ",", e += `
93
+ `;
94
+ }
95
+ }), e += "END $$;", e += `
96
+ `, e += "commit;";
97
+ }
98
+ const k = Q(), B = () => {
99
+ const r = new Blob([e], { type: "text/plain" }), m = (r.size / 1024).toFixed(2), o = document.createElement("a");
100
+ o.href = URL.createObjectURL(r), o.download = "V" + (/* @__PURE__ */ new Date()).getTime() + "__CREATED_OR_UPDATED_feature_.sql", document.body.appendChild(o), o.click(), k("file_download", {
101
+ file_type: "sql",
102
+ file_name: o.download,
103
+ file_size: `${m} KB`,
104
+ download_status: "success"
105
+ }), document.body.removeChild(o), u();
106
+ }, S = () => {
107
+ navigator.clipboard.writeText(e).then(
108
+ () => {
109
+ W({
110
+ message: "Query copied",
111
+ type: "success"
112
+ });
113
+ },
114
+ (r) => {
115
+ console.error("Could not copy text: ", r);
116
+ }
117
+ ), u();
118
+ };
119
+ return /* @__PURE__ */ p(
120
+ H,
121
+ {
122
+ "data-testid": "notification-flywayquery-modal",
123
+ open: O,
124
+ onClose: u,
125
+ fullWidth: !0,
126
+ maxWidth: "md",
127
+ children: [
128
+ /* @__PURE__ */ p(
129
+ z,
130
+ {
131
+ sx: {
132
+ display: "flex",
133
+ alignItems: "flex-start",
134
+ justifyContent: "space-between",
135
+ gap: 2,
136
+ py: 1.5,
137
+ borderBottom: "1px solid",
138
+ borderColor: "divider"
139
+ },
140
+ children: [
141
+ /* @__PURE__ */ p(F, { children: [
142
+ /* @__PURE__ */ l(
143
+ q,
144
+ {
145
+ variant: "subtitle1",
146
+ component: "span",
147
+ sx: { fontWeight: 700, display: "block" },
148
+ children: c("Flyway Query")
149
+ }
150
+ ),
151
+ /* @__PURE__ */ l(q, { variant: "body2", color: "text.secondary", children: c(
152
+ "Copy or download this migration to recreate this notification on another environment."
153
+ ) })
154
+ ] }),
155
+ /* @__PURE__ */ l(
156
+ V,
157
+ {
158
+ size: "small",
159
+ onClick: u,
160
+ "aria-label": c("Close"),
161
+ "data-testid": "notification-flywayquery-close-button",
162
+ children: /* @__PURE__ */ l(v, { iconName: "faXmark" })
163
+ }
164
+ )
165
+ ]
166
+ }
167
+ ),
168
+ /* @__PURE__ */ l($, { children: /* @__PURE__ */ l(
169
+ F,
170
+ {
171
+ "data-testid": "shownotification-flywayquery-textfield-query-display",
172
+ role: "region",
173
+ "aria-label": c("Flyway Query"),
174
+ sx: {
175
+ mt: 2,
176
+ overflow: "hidden",
177
+ borderRadius: (r) => `${r.shape.borderRadius}px`,
178
+ border: "1px solid",
179
+ borderColor: "divider"
180
+ },
181
+ children: /* @__PURE__ */ l(
182
+ U,
183
+ {
184
+ mode: "READ_ONLY",
185
+ height: "45vh",
186
+ defaultValue: e
187
+ }
188
+ )
189
+ }
190
+ ) }),
191
+ /* @__PURE__ */ p(
192
+ M,
193
+ {
194
+ sx: { px: 3, py: 2, borderTop: "1px solid", borderColor: "divider" },
195
+ children: [
196
+ /* @__PURE__ */ l(
197
+ h,
198
+ {
199
+ "data-testid": "notification-flywayquery-close-button-action",
200
+ variant: "outlined",
201
+ color: "inherit",
202
+ size: "small",
203
+ onClick: u,
204
+ children: c("Close")
205
+ }
206
+ ),
207
+ /* @__PURE__ */ l(
208
+ h,
209
+ {
210
+ "data-testid": "notification-flywayquery-copy-button",
211
+ variant: "outlined",
212
+ color: "primary",
213
+ size: "small",
214
+ startIcon: /* @__PURE__ */ l(v, { iconName: "faCopy" }),
215
+ onClick: S,
216
+ children: c("Copy Query")
217
+ }
218
+ ),
219
+ /* @__PURE__ */ l(
220
+ h,
221
+ {
222
+ "data-testid": "notification-flywayquery-download-button",
223
+ variant: "contained",
224
+ color: "primary",
225
+ size: "small",
226
+ startIcon: /* @__PURE__ */ l(v, { iconName: "faDownload" }),
227
+ onClick: B,
228
+ children: c("Download")
229
+ }
230
+ )
231
+ ]
232
+ }
233
+ )
234
+ ]
235
+ }
236
+ );
237
+ }
238
+ K.propTypes = {
239
+ open: E.any,
240
+ handleClose: E.any,
241
+ data: E.any,
242
+ roleData: E.any
243
+ };
244
+ export {
245
+ K as default
246
+ };
247
+ //# sourceMappingURL=NotificationFlywayQuery-BAHVjf6N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationFlywayQuery-BAHVjf6N.js","sources":["../src/views/Notifications/NotificationFlywayQuery.jsx"],"sourcesContent":["import { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport FontAwesomeIcons from \"@/common/fontAwesomeIcons/FontAwesomeIcons\";\nimport PostgresEditor from \"@/views/custom-components/PostgresEditor\";\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Typography,\n} from \"@mui/material\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\n\n/**\n * NotificationFlywayQuery is a React component that renders a notification flyout with data and role information.\n * @module NotificationFlywayQuery\n * @param {Object} props - The props for the component.\n * @param {boolean} props.open - Boolean flag to determine if the notification flyout is open.\n * @param {Function} props.handleClose - Function to handle the closing of the notification flyout.\n * @param {Object} props.data - Data to display inside the notification flyout.\n * @param {Object} props.roleData - Role data to display in the notification flyout (such as user role or permissions).\n *\n * @returns {JSX.Element} A rendered notification flyout component.\n */\nexport default function NotificationFlywayQuery({\n open,\n handleClose,\n data,\n roleData,\n}) {\n const { user } = useSelector((state) => state.Authenticate);\n const { translate } = useTranslateProvider();\n let queryText = \"\";\n queryText = \"\";\n queryText += `begin;`;\n queryText += `\\n`;\n queryText += `DO $$`;\n queryText += `\\n`;\n queryText += `DECLARE`;\n queryText += `\\n`;\n queryText += `var_notification_type_id integer;`;\n queryText += `\\n`;\n queryText += `var_escalation_level_id integer;`;\n queryText += `\\n`;\n queryText += `old_notification_type_id integer;`;\n queryText += `\\n`;\n queryText += `old_escalation_level_id integer;`;\n queryText += `\\n`;\n queryText += `BEGIN`;\n queryText += `\\n`;\n\n if (data.code !== null || data.code !== undefined) {\n queryText +=\n `DELETE FROM notification_type_master WHERE code = '` +\n data.code +\n `'` +\n `returning id into old_notification_type_id;`;\n queryText += `\\n`;\n queryText += `\\n`;\n queryText += `INSERT INTO notification_type_master (`;\n queryText += `created_by,created_on,modified_by,modified_on,code,\"name\",\"type\",role_id,state,notification_for,action_on_role_id,data_query,action_query,order_no,color_code,data_for,url_based_action,url,modal_based_action,modal_name,is_location_filter_required,fetch_up_to_level,required_up_to_level,is_fetch_according_aoi,\"uuid\"`;\n queryText += `)`;\n queryText += `\\n`;\n queryText += `VALUES (`;\n queryText += user?.id + `,`;\n queryText += `now(),`;\n queryText += user?.id + `,`;\n queryText += `now(),`;\n queryText += data.code ? `'` + data.code + `',` : `null,`;\n queryText += data.notificationName\n ? `'` + data.notificationName + `',`\n : `null,`;\n queryText += data.notificationType\n ? `'` + data.notificationType + `',`\n : `null,`;\n if (data.roleId !== null) {\n queryText += data.roleId + \",\";\n } else {\n queryText += \"null,\";\n }\n queryText += data.state ? \"'\" + data.state + \"',\" : \"null,\";\n queryText += data.notificationFor\n ? \"'\" + data.notificationFor + \"',\"\n : \"null,\";\n queryText += \"null,\";\n if (data.dataQuery !== null) {\n queryText += \"'\" + data?.dataQuery?.replace(/'/g, \"''\") + \"',\";\n } else {\n queryText += \"null,\";\n }\n if (data.actionQuery !== null) {\n queryText += \"'\" + data?.actionQuery?.replace(/'/g, \"''\") + \"',\";\n } else {\n queryText += \"null,\";\n }\n if (data.orderNo !== null) {\n queryText += data.orderNo + \",\";\n } else {\n queryText += \"null,\";\n }\n if (data.colorCode !== null) {\n queryText += \"'\" + data.colorCode + \"',\";\n } else {\n queryText += \"null,\";\n }\n if (data.dataFor !== null) {\n queryText += \"'\" + data.dataFor + \"',\";\n } else {\n queryText += \"null,\";\n }\n queryText += data.urlBasedAction\n ? data.urlBasedAction + \",\"\n : (() => {\n let modalBasedActionValue;\n if (data.urlBasedAction === false) {\n modalBasedActionValue = \"false,\";\n } else {\n modalBasedActionValue = \"null,\";\n }\n return modalBasedActionValue;\n })();\n if (data.url !== null) {\n queryText += \"'\" + data.url + \"',\";\n } else {\n queryText += \"null,\";\n }\n queryText += data.modalBasedAction\n ? data.modalBasedAction + \",\"\n : (() => {\n let modalBasedActionValue;\n if (data.modalBasedAction === false) {\n modalBasedActionValue = \"false,\";\n } else {\n modalBasedActionValue = \"null,\";\n }\n return modalBasedActionValue;\n })();\n if (data.modalName !== null) {\n queryText += \"'\" + data.modalName + \"',\";\n } else {\n queryText += \"null,\";\n }\n queryText += data.isLocationFilterRequired\n ? data.isLocationFilterRequired + \",\"\n : \"null,\";\n if (data.fetchUptoLevel !== null) {\n queryText += data.fetchUptoLevel + \",\";\n } else {\n queryText += \"null,\";\n }\n if (data.requiredUptoLevel !== null) {\n queryText += data.requiredUptoLevel + \",\";\n } else {\n queryText += \"null,\";\n }\n queryText += data.isFetchAccordingAOI\n ? data.isFetchAccordingAOI + \",\"\n : \"null,\";\n if (data.uuid !== null) {\n queryText += \"'\" + data.uuid + \"'\";\n } else {\n queryText += \"null\";\n }\n queryText += \")\";\n queryText += \"returning id into var_notification_type_id;\";\n queryText += \"\\n\";\n queryText += \"\\n\";\n queryText +=\n \"DELETE FROM notification_type_role_rel WHERE notification_type_id = old_notification_type_id;\";\n queryText += \"\\n\";\n queryText += \"\\n\";\n queryText +=\n \"INSERT INTO notification_type_role_rel (notification_type_id, role_id)\";\n queryText += \"\\n\";\n queryText += \"SELECT var_notification_type_id, id\";\n queryText += \"\\n\";\n queryText += \"FROM um_role_master\";\n queryText += \"\\n\";\n queryText += \"WHERE name IN (\";\n let notificationRoleLength = data.roles?.length;\n let notificationCount = 0;\n if (data.roles?.length > 0) {\n data.roles.forEach((val) => {\n notificationCount += 1;\n if (roleData.find((item) => item.id === val)?.name != undefined) {\n queryText +=\n \"'\" + roleData.find((item) => item.id === val).name + \"' \";\n }\n if (notificationCount === notificationRoleLength) {\n queryText += \");\";\n } else {\n queryText += \",\";\n }\n queryText += \"\\n\";\n });\n } else {\n notificationCount += 1;\n const roleName =\n roleData?.find((item) => item.id === data?.roleId)?.name ?? null;\n queryText += roleName ? `'${roleName}'` : \"'null'\";\n queryText += \");\";\n queryText += \"\\n\";\n }\n if (data.escalationLevels?.length > 0) {\n data.escalationLevels.forEach((obj) => {\n let isPerformActionValid = false;\n queryText += \"\\n\";\n queryText +=\n \"DELETE FROM escalation_level_master WHERE uuid = \" +\n \"'\" +\n obj.uuid +\n \"' returning id into old_escalation_level_id;\";\n queryText += \"\\n\";\n queryText += \"\\n\";\n queryText +=\n 'INSERT INTO escalation_level_master (\"name\", notification_type_id, created_by, created_on, modified_by, modified_on,uuid)';\n queryText += \"VALUES (\";\n queryText += \"'\" + obj.name + \"',\";\n queryText += \"var_notification_type_id,\";\n queryText += user?.id + \",\";\n queryText += \"now(),\";\n queryText += user?.id + \",\";\n queryText += \"now(),\";\n queryText += \"'\" + obj.uuid + \"'\";\n queryText += \")\";\n queryText += \"returning id into var_escalation_level_id;\";\n queryText += \"\\n\";\n queryText += \"\\n\";\n queryText +=\n \"DELETE FROM escalation_level_role_rel WHERE escalation_level_id = \" +\n \"old_escalation_level_id ;\";\n queryText += \"\\n\";\n queryText += \"\\n\";\n if (\n obj.performAction != null &&\n Object.keys(obj.performAction)?.length > 0\n ) {\n for (const key in obj.performAction) {\n if (roleData.find((item) => item.id === key)?.name != undefined) {\n isPerformActionValid = true;\n break;\n }\n }\n }\n if (isPerformActionValid) {\n queryText +=\n \"INSERT INTO escalation_level_role_rel (escalation_level_id, role_id, can_perform_action)\";\n queryText += \"\\n\";\n queryText += \"SELECT var_escalation_level_id, id, \";\n let escalationLength = Object.keys(obj.performAction)?.length;\n queryText += \"\\n\";\n queryText += \"CASE\";\n queryText += \"\\n\";\n let escalationCount = 0;\n for (const key in obj.performAction) {\n escalationCount++;\n if (roleData.find((item) => item.id === key)?.name != undefined) {\n queryText +=\n \"WHEN um_role_master.name = \" +\n \"'\" +\n roleData.find((item) => item.id === key)?.name +\n \"' \" +\n \"THEN \" +\n obj.performAction[key];\n }\n if (escalationCount === escalationLength) {\n queryText += \"\\n\";\n queryText += \"ELSE false\";\n queryText += \"\\n\";\n queryText += \"END\";\n queryText += \"\\n\";\n } else {\n queryText += \"\\n\";\n }\n }\n escalationCount = 0;\n queryText += \"FROM um_role_master\";\n queryText += \"\\n\";\n queryText += \"WHERE name IN (\";\n for (const key in obj.performAction) {\n escalationCount++;\n if (roleData.find((item) => item.id === key)?.name !== undefined) {\n queryText +=\n \"'\" + roleData.find((item) => item.id === key).name + \"' \";\n }\n if (escalationCount === escalationLength) {\n queryText += \");\";\n } else {\n queryText += \",\";\n }\n queryText += \"\\n\";\n }\n }\n });\n }\n queryText += \"END $$;\";\n queryText += \"\\n\";\n queryText += \"commit;\";\n }\n const trackEvent = useTrackEvent();\n\n /**\n * Handles the download of a SQL file with the query text.\n * @function handleDownload\n * @returns {void}\n */\n\n const handleDownload = () => {\n const blob = new Blob([queryText], { type: \"text/plain\" });\n const blobSizeInKB = (blob.size / 1024).toFixed(2);\n const link = document.createElement(\"a\");\n link.href = URL.createObjectURL(blob);\n link.download =\n \"V\" + new Date().getTime() + \"__CREATED_OR_UPDATED_feature_\" + \".sql\";\n document.body.appendChild(link);\n link.click();\n\n trackEvent(\"file_download\", {\n file_type: \"sql\",\n file_name: link.download,\n file_size: `${blobSizeInKB} KB`,\n download_status: \"success\",\n });\n\n document.body.removeChild(link);\n\n handleClose();\n };\n\n /**\n * Copies the query text to the clipboard and displays a success message.\n * @function handleCopy\n * @returns {void}\n */\n\n const handleCopy = () => {\n navigator.clipboard.writeText(queryText).then(\n () => {\n showToast({\n message: \"Query copied\",\n type: \"success\",\n });\n },\n (err) => {\n console.error(\"Could not copy text: \", err);\n },\n );\n handleClose();\n };\n\n return (\n <Dialog\n data-testid=\"notification-flywayquery-modal\"\n open={open}\n onClose={handleClose}\n fullWidth\n maxWidth=\"md\"\n >\n <DialogTitle\n sx={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 2,\n py: 1.5,\n borderBottom: \"1px solid\",\n borderColor: \"divider\",\n }}\n >\n <Box>\n <Typography\n variant=\"subtitle1\"\n component=\"span\"\n sx={{ fontWeight: 700, display: \"block\" }}\n >\n {translate(\"Flyway Query\")}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n \"Copy or download this migration to recreate this notification on another environment.\",\n )}\n </Typography>\n </Box>\n <IconButton\n size=\"small\"\n onClick={handleClose}\n aria-label={translate(\"Close\")}\n data-testid=\"notification-flywayquery-close-button\"\n >\n <FontAwesomeIcons iconName=\"faXmark\" />\n </IconButton>\n </DialogTitle>\n\n <DialogContent>\n <Box\n data-testid=\"shownotification-flywayquery-textfield-query-display\"\n role=\"region\"\n aria-label={translate(\"Flyway Query\")}\n sx={{\n mt: 2,\n overflow: \"hidden\",\n borderRadius: (t) => `${t.shape.borderRadius}px`,\n border: \"1px solid\",\n borderColor: \"divider\",\n }}\n >\n <PostgresEditor\n mode=\"READ_ONLY\"\n height=\"45vh\"\n defaultValue={queryText}\n />\n </Box>\n </DialogContent>\n\n <DialogActions\n sx={{ px: 3, py: 2, borderTop: \"1px solid\", borderColor: \"divider\" }}\n >\n <Button\n data-testid=\"notification-flywayquery-close-button-action\"\n variant=\"outlined\"\n color=\"inherit\"\n size=\"small\"\n onClick={handleClose}\n >\n {translate(\"Close\")}\n </Button>\n <Button\n data-testid=\"notification-flywayquery-copy-button\"\n variant=\"outlined\"\n color=\"primary\"\n size=\"small\"\n startIcon={<FontAwesomeIcons iconName=\"faCopy\" />}\n onClick={handleCopy}\n >\n {translate(\"Copy Query\")}\n </Button>\n <Button\n data-testid=\"notification-flywayquery-download-button\"\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n startIcon={<FontAwesomeIcons iconName=\"faDownload\" />}\n onClick={handleDownload}\n >\n {translate(\"Download\")}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n\nNotificationFlywayQuery.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n data: PropTypes.any,\n roleData: PropTypes.any,\n};\n"],"names":["NotificationFlywayQuery","open","handleClose","data","roleData","user","useSelector","state","translate","useTranslateProvider","queryText","_a","_b","modalBasedActionValue","notificationRoleLength","_c","notificationCount","_d","val","item","roleName","_e","_f","obj","isPerformActionValid","key","escalationLength","escalationCount","trackEvent","useTrackEvent","handleDownload","blob","blobSizeInKB","link","handleCopy","showToast","err","jsxs","Dialog","DialogTitle","Box","jsx","Typography","IconButton","FontAwesomeIcons","DialogContent","t","PostgresEditor","DialogActions","Button","PropTypes"],"mappings":"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"}
@@ -68,7 +68,7 @@ Ae.propTypes = {
68
68
  children: v.any,
69
69
  isLoading: v.any
70
70
  };
71
- const Me = X(() => import("./ManageNotification-CfhHlfxA.js")), Ee = X(() => import("./NotificationFlywayQuery-BY8Zzml_.js"));
71
+ const Me = X(() => import("./ManageNotification-C5MhV77Q.js")), Ee = X(() => import("./NotificationFlywayQuery-BAHVjf6N.js"));
72
72
  function Oe() {
73
73
  const l = Ce(), [d, x] = c(""), [C, E] = c([]), [O, h] = c([]), [g, u] = c(""), [o, N] = c({}), [w, te] = c([]), { translate: m } = pe(), [L, B] = c(null), [F, p] = c(!1), [r, ae] = c({}), ie = [
74
74
  {
@@ -399,4 +399,4 @@ export {
399
399
  Xe as c,
400
400
  Ye as u
401
401
  };
402
- //# sourceMappingURL=NotificationList-BMFpNUJG.js.map
402
+ //# sourceMappingURL=NotificationList-DEyRZEuM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationList-BMFpNUJG.js","sources":["../src/services/Notifications.js","../src/views/Notifications/Skeletons/NotificationsSkeletons.jsx","../src/views/Notifications/NotificationList.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\nexport const toggleActiveState = ({ id, state }) =>\n api.put(\n `notificationtype/toggleActive?id=${id}&is_active=${state === \"INACTIVE\" ? \"true\" : \"false\"}`\n );\n\nexport const createNotification = (params) =>\n api.post(\"notificationtype/create\", params);\n\nexport const updateNotification = (params) =>\n api.post(\"notificationtype/update\", params);\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nexport const NotificationListSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex space-between justify-between m-[0px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"flex\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[150px] h-[40px] mx-[5px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[100px] h-[40px]\"></div>\n </div>\n </div>\n\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-full h-100\"></div>\n </div>\n );\n};\n\nNotificationListSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const ManageNotificationSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"flex flex-col w-full md:w-[650px] bg-white \">\n <div className=\"px-2 py-2 flex items-center \">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-60 h-10\"></div>\n </div>\n <hr></hr>\n <div className=\"flex flex-col w-full space-y-2 p-2\">\n <div className=\"flex flex-col space-y-2\">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n <div className=\"flex flex-col space-y-2 \">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n <div className=\"flex flex-col space-y-2 \">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n <div className=\"flex flex-col space-y-2 \">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n <div className=\"flex flex-col space-y-2 \">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n </div>\n <hr></hr>\n <div className=\"px-2 py-2 w-full flex space-x-3 items-center justify-end \">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-20 h-10\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-20 h-10\"></div>\n </div>\n </div>\n );\n};\n\nManageNotificationSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n","import {\n lazy,\n default as React,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { toggleActiveState } from \"../../services/Notifications\";\nimport { getAllRoleList, getNotifications } from \"@/common/services/GlobalApis\";\nimport SyncWithServerDialog from \"@/common/syncWithServer/SyncWithServerDialog\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nconst ManageNotification = lazy(() => import(\"./ManageNotification\"));\nconst NotificationFlywayQuery = lazy(() => import(\"./NotificationFlywayQuery\"));\nimport { Box, Button, Card, Checkbox, debounce, FormControlLabel, TextField, Typography } from \"@mui/material\";\nimport { Grid } from \"@mui/system\";\nimport { NotificationListSkeleton } from \"./Skeletons/NotificationsSkeletons\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomizedTable from \"@/views/custom-components/CustomizedTable/CustomizedTableV2\";\nimport { faBars, faPen } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\n\n/**\n *\n * @module NotificationList\n * @returns {JSX.element}\n *\n */\nexport default function NotificationList() {\n const trackEvent = useTrackEvent();\n const [search, setSearch] = useState(\"\");\n const [notifications, setNotifications] = useState([]);\n const [filteredNotifications, setFilteredNotifications] = useState([]);\n const [openModal, setOpenModal] = useState(\"\");\n const [rowData, setRowData] = useState({});\n const [roleData, setRoleData] = useState([]);\n const { translate } = useTranslateProvider();\n const [featureUuid, setFeatureUuid] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [rights, setRights] = useState({});\n const defaultColumns = [\n {\n field: \"notificationName\",\n label: \"Name\",\n sortable: true,\n sortOrder: \"asc\",\n align: \"left\",\n },\n {\n field: \"code\",\n label: \"Code\",\n sortable: true,\n sortOrder: \"asc\",\n align: \"left\",\n },\n {\n field: \"notificationType\",\n label: \"Type\",\n align: \"left\",\n render: (row) => {\n return <Typography mt={0.5}>{row.notificationType === 'WEB' ? 'WEB' : 'MOBILE'}</Typography>;\n }\n },\n {\n field: \"state\",\n label: \"State\",\n sortable: true,\n sortOrder: \"asc\",\n align: \"left\",\n },\n { field: \"Actions\", label: \"Actions\", align: \"left\" },\n ];\n const [columns, setColumns] = useState(defaultColumns);\n const [isActive, setisActive] = useState(true);\n const [isMobile, setisMobile] = useState(true);\n\n const isActiveRef = useRef(isActive);\n const isMobileRef = useRef(isMobile);\n\n useEffect(() => {\n isActiveRef.current = isActive;\n }, [isActive]);\n\n useEffect(() => {\n isMobileRef.current = isMobile;\n }, [isMobile]);\n\n /**\n * Toggles the active/inactive status of a notification.\n * @async\n * @function toggleActiveStatus\n * @returns {Promise<void>} A promise that resolves when the active status has been toggled and notifications reloaded.\n */\n const toggleActiveStatus = async () => {\n try {\n setIsLoading((cur) => !cur);\n await toggleActiveState({ id: rowData.id, state: rowData.state });\n setOpenModal(\"\");\n const { data } = await getNotifications();\n setNotifications(data);\n setFilteredNotifications(data);\n showToast({\n type: \"success\",\n message: `State succesfully changed from ${rowData?.state === \"INACTIVE\" ? \"inactive\" : \"active\"} to ${rowData?.state === \"INACTIVE\" ? \"active\" : \"inactive\"}`,\n });\n setIsLoading((cur) => !cur);\n } catch (error) {\n showToast({\n type: \"error\",\n message: `Error ${error}`,\n });\n setIsLoading((cur) => !cur);\n }\n };\n\n const actions = useMemo(() => (row) => {\n const list = [];\n\n if (GeneralUtil.hasCheckRights(rights?.['update.manage.notificationlist'])) {\n list.push({\n label: \"\",\n icon: (\n <FontAwesomeIcon\n icon={faPen}\n data-testid=\"notificationlist-button-edit\"\n />\n ),\n onClick: (e) => {\n setOpenModal(1);\n setRowData(e);\n },\n });\n }\n\n const currentMenuItems = [];\n if (GeneralUtil.hasCheckRights(rights?.['update.manage.notificationlist'])) {\n currentMenuItems.push({\n label: translate(\n row.state === \"ACTIVE\" ? \"Mark as Inactive\" : \"Mark as Active\"\n ),\n onClick: (e) => {\n setRowData(e);\n setOpenModal(2);\n },\n });\n currentMenuItems.push({\n label: translate(\"Sync With Server\"),\n onClick: (e) => {\n if (!e.uuid) {\n showToast({\n type: \"info\",\n message: `No configuration found. Please open the respective feature item and save it.`,\n });\n return;\n }\n setOpenModal(4);\n setFeatureUuid(e?.uuid);\n setRowData(e);\n },\n });\n currentMenuItems.push({\n label: translate(\"Show Flyway Query\"),\n onClick: (e) => {\n setOpenModal(3);\n setRowData(e);\n },\n });\n }\n\n if (currentMenuItems.length > 0) {\n list.push({\n label: \"\",\n icon: (\n <FontAwesomeIcon\n icon={faBars}\n data-testid=\"notificationlist-button-menu\"\n />\n ),\n menuItems: currentMenuItems,\n });\n }\n\n return list;\n }, [rights, translate]);\n\n const debouncedFilter = useCallback(\n debounce((searchValue) => {\n const filteredData = notifications.filter(d =>\n d.notificationName?.toLowerCase().includes(searchValue) &&\n d.state === (isActiveRef.current ? 'ACTIVE' : 'INACTIVE') &&\n d.notificationType === (isMobileRef.current ? 'MO' : 'WEB')\n );\n trackEvent(\"search_tracking\", {\n searchTerm: searchValue,\n results_count: filteredData.length,\n search_type: \"Page Search\",\n });\n setFilteredNotifications(filteredData);\n }, 500),\n [notifications, trackEvent]\n );\n\n /**\n * Handles the search input to filter notifications by name.\n * @function handleSearch\n * @param {Object} e - The event object from the input field.\n * @param {string} e.target.value - The current value in the search input field.\n */\n const handleSearch = (e) => {\n const searchValue = e.target.value.toLowerCase();\n setSearch(searchValue);\n debouncedFilter(searchValue);\n };\n\n /**\n * Handles sorting of the notification list based on the specified column.\n * @function handleSort\n */\n const handleSort = (column) => {\n const order = column.sortOrder === \"asc\" ? \"desc\" : \"asc\";\n setColumns((prev) =>\n prev.map((col) => {\n if (col.field === column.field) {\n return { ...col, sortOrder: order };\n }\n return col;\n })\n );\n\n const sortedData = [...filteredNotifications].sort((a, b) => {\n const valA = a[column.field]?.toString().toLowerCase();\n const valB = b[column.field]?.toString().toLowerCase();\n\n if (valA < valB) {\n return order === \"asc\" ? -1 : 1;\n }\n if (valA > valB) {\n return order === \"asc\" ? 1 : -1;\n }\n return 0;\n });\n\n setFilteredNotifications(sortedData);\n };\n\n /**\n * Loads initial data for notifications and roles when the component is mounted or when `openModal` changes.\n * @function useEffect\n * @param {boolean} openModal - The state that controls whether a modal is open. Triggers the hook to reload data when it changes.\n */\n\n const loadInitialData = async () => {\n try {\n setIsLoading((cur) => !cur);\n const { data } = await getNotifications();\n setNotifications(data);\n const filteredData = data.filter(d => d.notificationType === 'MO' && d.state === 'ACTIVE');\n setFilteredNotifications(filteredData);\n if (!roleData.length) {\n const { data: roleData } = await getAllRoleList();\n setRoleData(roleData);\n }\n const { data: assignedFeatures } = await getAssignedFeatures(\"techo.manage.notification\");\n setRights(JSON.parse(assignedFeatures));\n setIsLoading((cur) => !cur);\n setSearch('');\n } catch (error) {\n console.error(\"error\", error);\n setIsLoading((cur) => !cur);\n }\n };\n\n useEffect(() => {\n loadInitialData();\n }, []);\n\n const handleFilter = (value, filterType) => {\n const nextIsActive =\n filterType === 'status' ? value : isActive;\n\n const nextIsMobile =\n filterType === 'notificationType' ? value : isMobile;\n\n setisActive(nextIsActive);\n setisMobile(nextIsMobile);\n\n if (search) {\n debouncedFilter(search);\n } else {\n setFilteredNotifications(\n notifications.filter(d =>\n d.state === (nextIsActive ? 'ACTIVE' : 'INACTIVE') &&\n d.notificationType === (nextIsMobile ? 'MO' : 'WEB')\n )\n );\n }\n };\n\n return (\n <Card\n variant=\"elevation\"\n container\n className=\"mt-6 p-3 flex flex-col space-y-3 shadow-xl\"\n >\n <Suspense>\n <ManageNotification\n open={openModal === 1 || openModal === 5}\n handleClose={() => setOpenModal(\"\")}\n data={openModal === 1 ? rowData : null}\n roleData={roleData}\n setNotifications={loadInitialData}\n data-testid=\"notification-list-managenotification-dialog\"\n />\n </Suspense>\n <Suspense>\n <NotificationFlywayQuery\n open={openModal === 3}\n handleClose={() => setOpenModal(\"\")}\n data={rowData}\n roleData={roleData}\n />\n </Suspense>\n <CustomConfirmationModal\n title={\"CONFIRM ACTION\"}\n open={openModal === 2}\n description={`Are you sure you want to change the state ${rowData?.state === \"INACTIVE\" ? \"inactive\" : \"active\"} to ${rowData?.state === \"INACTIVE\" ? \"active\" : \"inactive\"}`}\n handleClick={toggleActiveStatus}\n handleClose={() => setOpenModal(\"\")}\n dataTestId=\"notification-list-customconfirmationmodal-dialog\"\n />\n <SyncWithServerDialog\n isOpen={Boolean(featureUuid)}\n handleClose={() => setFeatureUuid(() => null)}\n featureUUID={featureUuid}\n dataTestId=\"notification-list-syncwithserverdialog-dialog\"\n />\n <NotificationListSkeleton isLoading={isLoading}>\n <Grid container className=\"flex justify-between\">\n <Grid>\n <Typography\n variant=\"body2\"\n className=\"font-bold font-sans text-lg text-customBlue uppercase\"\n data-testid=\"notification-list-typography-title\"\n >\n {translate(\"Notification Configuration\")}\n </Typography>\n </Grid>\n <Box className=\"flex flex-col sm:flex-row sm:items-center gap-3 w-full sm:w-auto\">\n <Box className=\"flex items-center gap-3\">\n <FormControlLabel\n control={\n <Checkbox\n checked={isActive}\n onChange={(e) =>\n handleFilter(e.target.checked, 'status')\n }\n data-testid=\"notifications-checkbox-include-active\"\n />\n }\n label={translate(\"Active\")}\n slotProps={{\n typography: {\n className: \"custom-label\",\n },\n }}\n />\n <FormControlLabel\n control={\n <Checkbox\n checked={isMobile}\n onChange={(e) =>\n handleFilter(e.target.checked, 'notificationType')\n }\n data-testid=\"notifications-checkbox-include-mobile\"\n />\n }\n label={translate(\"Mobile\")}\n slotProps={{\n typography: {\n className: \"custom-label\",\n },\n }}\n />\n </Box>\n <Box className=\"flex items-center gap-3 w-full sm:w-auto\">\n <TextField\n id=\"searchQuery\"\n placeholder=\"Search Text\"\n size=\"small\"\n onChange={handleSearch}\n className=\"m-0 p-0 bg-white\"\n value={search}\n data-testid=\"notification-list-textfield-search\"\n sx={{\n \"& .MuiInputBase-root\": {\n height: \"2.4em\",\n width: { xs: \"100%\", sm: \"190px\" },\n },\n flex: { xs: 1, sm: 1 }\n }}\n />\n {GeneralUtil.hasCheckRights(rights?.['create.manage.notificationlist']) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"notification-list-add-button\",\n button_type: \"navigate\",\n button_id: \"notification-list-button-add\",\n });\n setOpenModal(5);\n }}\n data-testid=\"notification-list-button-add\"\n sx={{ whiteSpace: 'nowrap' }}\n >\n {translate(\"Add\")}\n </Button>\n )}\n </Box>\n </Box>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <CustomizedTable\n columns={columns}\n actions={actions}\n tableData={filteredNotifications}\n paginationConfig={{\n pagination: false,\n }}\n styleConfig={{\n tableStyle: {\n maxHeight: 40,\n },\n }}\n handleSort={handleSort}\n isLoading={isLoading}\n dataTestId=\"notification-list-customizedtable\"\n />\n </Grid>\n </NotificationListSkeleton>\n </Card>\n );\n}\n"],"names":["toggleActiveState","id","state","api","createNotification","params","updateNotification","NotificationListSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","ManageNotificationSkeleton","ManageNotification","lazy","NotificationFlywayQuery","NotificationList","trackEvent","useTrackEvent","search","setSearch","useState","notifications","setNotifications","filteredNotifications","setFilteredNotifications","openModal","setOpenModal","rowData","setRowData","roleData","setRoleData","translate","useTranslateProvider","featureUuid","setFeatureUuid","setIsLoading","rights","setRights","defaultColumns","row","Typography","columns","setColumns","isActive","setisActive","isMobile","setisMobile","isActiveRef","useRef","isMobileRef","useEffect","toggleActiveStatus","cur","data","getNotifications","showToast","error","actions","useMemo","list","GeneralUtil","FontAwesomeIcon","faPen","e","currentMenuItems","faBars","debouncedFilter","useCallback","debounce","searchValue","filteredData","_a","d","handleSearch","handleSort","column","order","prev","col","sortedData","b","valA","valB","_b","loadInitialData","getAllRoleList","assignedFeatures","getAssignedFeatures","handleFilter","value","filterType","nextIsActive","nextIsMobile","Card","Suspense","CustomConfirmationModal","SyncWithServerDialog","Grid","Box","FormControlLabel","Checkbox","TextField","Button","CustomizedTable"],"mappings":"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"}
1
+ {"version":3,"file":"NotificationList-DEyRZEuM.js","sources":["../src/services/Notifications.js","../src/views/Notifications/Skeletons/NotificationsSkeletons.jsx","../src/views/Notifications/NotificationList.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\nexport const toggleActiveState = ({ id, state }) =>\n api.put(\n `notificationtype/toggleActive?id=${id}&is_active=${state === \"INACTIVE\" ? \"true\" : \"false\"}`\n );\n\nexport const createNotification = (params) =>\n api.post(\"notificationtype/create\", params);\n\nexport const updateNotification = (params) =>\n api.post(\"notificationtype/update\", params);\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nexport const NotificationListSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex space-between justify-between m-[0px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"flex\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[150px] h-[40px] mx-[5px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[100px] h-[40px]\"></div>\n </div>\n </div>\n\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-full h-100\"></div>\n </div>\n );\n};\n\nNotificationListSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const ManageNotificationSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"flex flex-col w-full md:w-[650px] bg-white \">\n <div className=\"px-2 py-2 flex items-center \">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-60 h-10\"></div>\n </div>\n <hr></hr>\n <div className=\"flex flex-col w-full space-y-2 p-2\">\n <div className=\"flex flex-col space-y-2\">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n <div className=\"flex flex-col space-y-2 \">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n <div className=\"flex flex-col space-y-2 \">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n <div className=\"flex flex-col space-y-2 \">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n <div className=\"flex flex-col space-y-2 \">\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-5 mr-[100px]\"></button>\n <button className=\"bg-gray-300 animate-pulse rounded-sm w-full h-10 \"></button>\n </div>\n </div>\n <hr></hr>\n <div className=\"px-2 py-2 w-full flex space-x-3 items-center justify-end \">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-20 h-10\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-20 h-10\"></div>\n </div>\n </div>\n );\n};\n\nManageNotificationSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n","import {\n lazy,\n default as React,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { toggleActiveState } from \"../../services/Notifications\";\nimport { getAllRoleList, getNotifications } from \"@/common/services/GlobalApis\";\nimport SyncWithServerDialog from \"@/common/syncWithServer/SyncWithServerDialog\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nconst ManageNotification = lazy(() => import(\"./ManageNotification\"));\nconst NotificationFlywayQuery = lazy(() => import(\"./NotificationFlywayQuery\"));\nimport { Box, Button, Card, Checkbox, debounce, FormControlLabel, TextField, Typography } from \"@mui/material\";\nimport { Grid } from \"@mui/system\";\nimport { NotificationListSkeleton } from \"./Skeletons/NotificationsSkeletons\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomizedTable from \"@/views/custom-components/CustomizedTable/CustomizedTableV2\";\nimport { faBars, faPen } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\n\n/**\n *\n * @module NotificationList\n * @returns {JSX.element}\n *\n */\nexport default function NotificationList() {\n const trackEvent = useTrackEvent();\n const [search, setSearch] = useState(\"\");\n const [notifications, setNotifications] = useState([]);\n const [filteredNotifications, setFilteredNotifications] = useState([]);\n const [openModal, setOpenModal] = useState(\"\");\n const [rowData, setRowData] = useState({});\n const [roleData, setRoleData] = useState([]);\n const { translate } = useTranslateProvider();\n const [featureUuid, setFeatureUuid] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [rights, setRights] = useState({});\n const defaultColumns = [\n {\n field: \"notificationName\",\n label: \"Name\",\n sortable: true,\n sortOrder: \"asc\",\n align: \"left\",\n },\n {\n field: \"code\",\n label: \"Code\",\n sortable: true,\n sortOrder: \"asc\",\n align: \"left\",\n },\n {\n field: \"notificationType\",\n label: \"Type\",\n align: \"left\",\n render: (row) => {\n return <Typography mt={0.5}>{row.notificationType === 'WEB' ? 'WEB' : 'MOBILE'}</Typography>;\n }\n },\n {\n field: \"state\",\n label: \"State\",\n sortable: true,\n sortOrder: \"asc\",\n align: \"left\",\n },\n { field: \"Actions\", label: \"Actions\", align: \"left\" },\n ];\n const [columns, setColumns] = useState(defaultColumns);\n const [isActive, setisActive] = useState(true);\n const [isMobile, setisMobile] = useState(true);\n\n const isActiveRef = useRef(isActive);\n const isMobileRef = useRef(isMobile);\n\n useEffect(() => {\n isActiveRef.current = isActive;\n }, [isActive]);\n\n useEffect(() => {\n isMobileRef.current = isMobile;\n }, [isMobile]);\n\n /**\n * Toggles the active/inactive status of a notification.\n * @async\n * @function toggleActiveStatus\n * @returns {Promise<void>} A promise that resolves when the active status has been toggled and notifications reloaded.\n */\n const toggleActiveStatus = async () => {\n try {\n setIsLoading((cur) => !cur);\n await toggleActiveState({ id: rowData.id, state: rowData.state });\n setOpenModal(\"\");\n const { data } = await getNotifications();\n setNotifications(data);\n setFilteredNotifications(data);\n showToast({\n type: \"success\",\n message: `State succesfully changed from ${rowData?.state === \"INACTIVE\" ? \"inactive\" : \"active\"} to ${rowData?.state === \"INACTIVE\" ? \"active\" : \"inactive\"}`,\n });\n setIsLoading((cur) => !cur);\n } catch (error) {\n showToast({\n type: \"error\",\n message: `Error ${error}`,\n });\n setIsLoading((cur) => !cur);\n }\n };\n\n const actions = useMemo(() => (row) => {\n const list = [];\n\n if (GeneralUtil.hasCheckRights(rights?.['update.manage.notificationlist'])) {\n list.push({\n label: \"\",\n icon: (\n <FontAwesomeIcon\n icon={faPen}\n data-testid=\"notificationlist-button-edit\"\n />\n ),\n onClick: (e) => {\n setOpenModal(1);\n setRowData(e);\n },\n });\n }\n\n const currentMenuItems = [];\n if (GeneralUtil.hasCheckRights(rights?.['update.manage.notificationlist'])) {\n currentMenuItems.push({\n label: translate(\n row.state === \"ACTIVE\" ? \"Mark as Inactive\" : \"Mark as Active\"\n ),\n onClick: (e) => {\n setRowData(e);\n setOpenModal(2);\n },\n });\n currentMenuItems.push({\n label: translate(\"Sync With Server\"),\n onClick: (e) => {\n if (!e.uuid) {\n showToast({\n type: \"info\",\n message: `No configuration found. Please open the respective feature item and save it.`,\n });\n return;\n }\n setOpenModal(4);\n setFeatureUuid(e?.uuid);\n setRowData(e);\n },\n });\n currentMenuItems.push({\n label: translate(\"Show Flyway Query\"),\n onClick: (e) => {\n setOpenModal(3);\n setRowData(e);\n },\n });\n }\n\n if (currentMenuItems.length > 0) {\n list.push({\n label: \"\",\n icon: (\n <FontAwesomeIcon\n icon={faBars}\n data-testid=\"notificationlist-button-menu\"\n />\n ),\n menuItems: currentMenuItems,\n });\n }\n\n return list;\n }, [rights, translate]);\n\n const debouncedFilter = useCallback(\n debounce((searchValue) => {\n const filteredData = notifications.filter(d =>\n d.notificationName?.toLowerCase().includes(searchValue) &&\n d.state === (isActiveRef.current ? 'ACTIVE' : 'INACTIVE') &&\n d.notificationType === (isMobileRef.current ? 'MO' : 'WEB')\n );\n trackEvent(\"search_tracking\", {\n searchTerm: searchValue,\n results_count: filteredData.length,\n search_type: \"Page Search\",\n });\n setFilteredNotifications(filteredData);\n }, 500),\n [notifications, trackEvent]\n );\n\n /**\n * Handles the search input to filter notifications by name.\n * @function handleSearch\n * @param {Object} e - The event object from the input field.\n * @param {string} e.target.value - The current value in the search input field.\n */\n const handleSearch = (e) => {\n const searchValue = e.target.value.toLowerCase();\n setSearch(searchValue);\n debouncedFilter(searchValue);\n };\n\n /**\n * Handles sorting of the notification list based on the specified column.\n * @function handleSort\n */\n const handleSort = (column) => {\n const order = column.sortOrder === \"asc\" ? \"desc\" : \"asc\";\n setColumns((prev) =>\n prev.map((col) => {\n if (col.field === column.field) {\n return { ...col, sortOrder: order };\n }\n return col;\n })\n );\n\n const sortedData = [...filteredNotifications].sort((a, b) => {\n const valA = a[column.field]?.toString().toLowerCase();\n const valB = b[column.field]?.toString().toLowerCase();\n\n if (valA < valB) {\n return order === \"asc\" ? -1 : 1;\n }\n if (valA > valB) {\n return order === \"asc\" ? 1 : -1;\n }\n return 0;\n });\n\n setFilteredNotifications(sortedData);\n };\n\n /**\n * Loads initial data for notifications and roles when the component is mounted or when `openModal` changes.\n * @function useEffect\n * @param {boolean} openModal - The state that controls whether a modal is open. Triggers the hook to reload data when it changes.\n */\n\n const loadInitialData = async () => {\n try {\n setIsLoading((cur) => !cur);\n const { data } = await getNotifications();\n setNotifications(data);\n const filteredData = data.filter(d => d.notificationType === 'MO' && d.state === 'ACTIVE');\n setFilteredNotifications(filteredData);\n if (!roleData.length) {\n const { data: roleData } = await getAllRoleList();\n setRoleData(roleData);\n }\n const { data: assignedFeatures } = await getAssignedFeatures(\"techo.manage.notification\");\n setRights(JSON.parse(assignedFeatures));\n setIsLoading((cur) => !cur);\n setSearch('');\n } catch (error) {\n console.error(\"error\", error);\n setIsLoading((cur) => !cur);\n }\n };\n\n useEffect(() => {\n loadInitialData();\n }, []);\n\n const handleFilter = (value, filterType) => {\n const nextIsActive =\n filterType === 'status' ? value : isActive;\n\n const nextIsMobile =\n filterType === 'notificationType' ? value : isMobile;\n\n setisActive(nextIsActive);\n setisMobile(nextIsMobile);\n\n if (search) {\n debouncedFilter(search);\n } else {\n setFilteredNotifications(\n notifications.filter(d =>\n d.state === (nextIsActive ? 'ACTIVE' : 'INACTIVE') &&\n d.notificationType === (nextIsMobile ? 'MO' : 'WEB')\n )\n );\n }\n };\n\n return (\n <Card\n variant=\"elevation\"\n container\n className=\"mt-6 p-3 flex flex-col space-y-3 shadow-xl\"\n >\n <Suspense>\n <ManageNotification\n open={openModal === 1 || openModal === 5}\n handleClose={() => setOpenModal(\"\")}\n data={openModal === 1 ? rowData : null}\n roleData={roleData}\n setNotifications={loadInitialData}\n data-testid=\"notification-list-managenotification-dialog\"\n />\n </Suspense>\n <Suspense>\n <NotificationFlywayQuery\n open={openModal === 3}\n handleClose={() => setOpenModal(\"\")}\n data={rowData}\n roleData={roleData}\n />\n </Suspense>\n <CustomConfirmationModal\n title={\"CONFIRM ACTION\"}\n open={openModal === 2}\n description={`Are you sure you want to change the state ${rowData?.state === \"INACTIVE\" ? \"inactive\" : \"active\"} to ${rowData?.state === \"INACTIVE\" ? \"active\" : \"inactive\"}`}\n handleClick={toggleActiveStatus}\n handleClose={() => setOpenModal(\"\")}\n dataTestId=\"notification-list-customconfirmationmodal-dialog\"\n />\n <SyncWithServerDialog\n isOpen={Boolean(featureUuid)}\n handleClose={() => setFeatureUuid(() => null)}\n featureUUID={featureUuid}\n dataTestId=\"notification-list-syncwithserverdialog-dialog\"\n />\n <NotificationListSkeleton isLoading={isLoading}>\n <Grid container className=\"flex justify-between\">\n <Grid>\n <Typography\n variant=\"body2\"\n className=\"font-bold font-sans text-lg text-customBlue uppercase\"\n data-testid=\"notification-list-typography-title\"\n >\n {translate(\"Notification Configuration\")}\n </Typography>\n </Grid>\n <Box className=\"flex flex-col sm:flex-row sm:items-center gap-3 w-full sm:w-auto\">\n <Box className=\"flex items-center gap-3\">\n <FormControlLabel\n control={\n <Checkbox\n checked={isActive}\n onChange={(e) =>\n handleFilter(e.target.checked, 'status')\n }\n data-testid=\"notifications-checkbox-include-active\"\n />\n }\n label={translate(\"Active\")}\n slotProps={{\n typography: {\n className: \"custom-label\",\n },\n }}\n />\n <FormControlLabel\n control={\n <Checkbox\n checked={isMobile}\n onChange={(e) =>\n handleFilter(e.target.checked, 'notificationType')\n }\n data-testid=\"notifications-checkbox-include-mobile\"\n />\n }\n label={translate(\"Mobile\")}\n slotProps={{\n typography: {\n className: \"custom-label\",\n },\n }}\n />\n </Box>\n <Box className=\"flex items-center gap-3 w-full sm:w-auto\">\n <TextField\n id=\"searchQuery\"\n placeholder=\"Search Text\"\n size=\"small\"\n onChange={handleSearch}\n className=\"m-0 p-0 bg-white\"\n value={search}\n data-testid=\"notification-list-textfield-search\"\n sx={{\n \"& .MuiInputBase-root\": {\n height: \"2.4em\",\n width: { xs: \"100%\", sm: \"190px\" },\n },\n flex: { xs: 1, sm: 1 }\n }}\n />\n {GeneralUtil.hasCheckRights(rights?.['create.manage.notificationlist']) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"notification-list-add-button\",\n button_type: \"navigate\",\n button_id: \"notification-list-button-add\",\n });\n setOpenModal(5);\n }}\n data-testid=\"notification-list-button-add\"\n sx={{ whiteSpace: 'nowrap' }}\n >\n {translate(\"Add\")}\n </Button>\n )}\n </Box>\n </Box>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <CustomizedTable\n columns={columns}\n actions={actions}\n tableData={filteredNotifications}\n paginationConfig={{\n pagination: false,\n }}\n styleConfig={{\n tableStyle: {\n maxHeight: 40,\n },\n }}\n handleSort={handleSort}\n isLoading={isLoading}\n dataTestId=\"notification-list-customizedtable\"\n />\n </Grid>\n </NotificationListSkeleton>\n </Card>\n );\n}\n"],"names":["toggleActiveState","id","state","api","createNotification","params","updateNotification","NotificationListSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","ManageNotificationSkeleton","ManageNotification","lazy","NotificationFlywayQuery","NotificationList","trackEvent","useTrackEvent","search","setSearch","useState","notifications","setNotifications","filteredNotifications","setFilteredNotifications","openModal","setOpenModal","rowData","setRowData","roleData","setRoleData","translate","useTranslateProvider","featureUuid","setFeatureUuid","setIsLoading","rights","setRights","defaultColumns","row","Typography","columns","setColumns","isActive","setisActive","isMobile","setisMobile","isActiveRef","useRef","isMobileRef","useEffect","toggleActiveStatus","cur","data","getNotifications","showToast","error","actions","useMemo","list","GeneralUtil","FontAwesomeIcon","faPen","e","currentMenuItems","faBars","debouncedFilter","useCallback","debounce","searchValue","filteredData","_a","d","handleSearch","handleSort","column","order","prev","col","sortedData","b","valA","valB","_b","loadInitialData","getAllRoleList","assignedFeatures","getAssignedFeatures","handleFilter","value","filterType","nextIsActive","nextIsMobile","Card","Suspense","CustomConfirmationModal","SyncWithServerDialog","Grid","Box","FormControlLabel","Checkbox","TextField","Button","CustomizedTable"],"mappings":"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"}