@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
@@ -1,383 +0,0 @@
1
- import { jsxs as d, jsx as t, Fragment as Ee } from "react/jsx-runtime";
2
- import { useState as s, useRef as Ae, useEffect as g, Suspense as x, lazy as N } from "react";
3
- import { useTranslateProvider as Re } from "@/common/languageTranslator/TranslationContext";
4
- import { api as W } from "@/common/interceptors/AxiosInterceptor";
5
- import { execute as _ } from "@/common/services/GlobalApis";
6
- import De from "@/common/syncWithServer/SyncWithServerDialog";
7
- import { showToast as p } from "@/common/toaster/toaster";
8
- import Oe from "@/hooks/usePagination";
9
- import Pe from "@/views/custom-components/CustomConfirmationModal";
10
- import { Box as Fe, Card as Be, Typography as V, TextField as He, Button as ze } from "@mui/material";
11
- import u from "@mui/material/Grid2";
12
- import Le from "@/hooks/useTrackEvent";
13
- import Me from "@/views/custom-components/CustomizedTable/CustomizedTableV2";
14
- import { FontAwesomeIcon as J } from "@fortawesome/react-fontawesome";
15
- import { faBars as je, faPen as Ue } from "@fortawesome/free-solid-svg-icons";
16
- import Y from "prop-types";
17
- import { useSelector as Ve } from "react-redux";
18
- import { getUseSkeleton as Je } from "@/store/reducers/SkeletonReducer";
19
- import { getAssignedFeatures as Ye } from "@/utils/feature";
20
- import We from "@/common/config/implementationConfig";
21
- import b from "@/common/services/util/GeneralUtil";
22
- import './QueryBuilder.css';const $e = (l) => W.put("/resource", l), vt = (l) => W.post("/resource", l), $ = ({ children: l, isLoading: w }) => !Ve(Je) || !w ? l : /* @__PURE__ */ d("div", { className: "flex flex-col gap-2", children: [
23
- /* @__PURE__ */ d("div", { className: "w-full justify-between flex-wrap flex flex-row pt-6", children: [
24
- /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t("div", { className: "bg-gray-300 animate-pulse rounded-sm h-[36px] w-[64px]" }) }),
25
- /* @__PURE__ */ d("div", { className: "flex", children: [
26
- /* @__PURE__ */ t("div", { className: "bg-gray-300 animate-pulse rounded-sm h-[32px] w-[160px] mr-2" }),
27
- /* @__PURE__ */ t("div", { className: "bg-gray-300 animate-pulse rounded-sm h-[32px] w-[60px]" })
28
- ] })
29
- ] }),
30
- /* @__PURE__ */ t("div", { className: "bg-gray-300 animate-pulse rounded-sm w-full h-100" })
31
- ] });
32
- $.propTypes = {
33
- children: Y.any,
34
- isLoading: Y.any
35
- };
36
- const Ge = N(() => import("./AddEditQueryBuilder-Brdnm6rQ.js")), Ke = N(() => import("./ShowFlywayQuery-tj42YQAS.js")), Xe = N(() => import("./ShowQueryHistory-BDN0tzHg.js")), Ze = () => {
37
- const l = Le(), [w, E] = s([]), [G, K] = s(!1), [A, X] = s([]), [m, R] = s(1), [Z, ee] = s(""), [te, re] = s(""), [se, oe] = s({}), [ae, D] = s(!1), [ne, ie] = s(""), [le, O] = s(!1), [P, C] = s(null), [c, F] = s(null), [B, ce] = s(null), [i, ue] = s({}), [de, H] = s(!1), [ye, z] = s({}), [he, v] = s(!1), [L, M] = s(!1), [fe, me] = s(0), { translate: S } = Re(), [a, pe] = s(null), ge = Ae(a);
38
- g(() => {
39
- ge.current = a;
40
- }, [a]);
41
- const be = We.queryBuilder.showClickhouseOption, T = [
42
- { field: "code", label: "Code", align: "left" },
43
- {
44
- field: "description",
45
- label: "Description",
46
- align: "left"
47
- },
48
- { field: "query", label: "Query", align: "left" },
49
- { field: "returnsResultSet", label: "Returns Result Set" },
50
- { field: "isPublic", label: "Is Public" }
51
- ];
52
- be && T.push({
53
- field: "isClickhouseQuery",
54
- label: "Is Clickhouse Query"
55
- }), T.push({ field: "Actions", label: "Actions" });
56
- const [q, y] = s(!1), h = 50, { data: j } = Oe({
57
- key: ["queries", B, m, G, a],
58
- queryFn: (e) => I(e),
59
- currentPage: m,
60
- limit: h,
61
- searchString: B || null,
62
- paginationType: "traditional"
63
- }), we = (e) => {
64
- const r = A.filter((o) => o.uuid === e.uuid);
65
- z(r[0]), M((o) => !o), H(!0);
66
- }, Ce = (e) => {
67
- ee(
68
- (e == null ? void 0 : e.state) === "ACTIVE" ? "Mark as Inactive" : "Mark as Active"
69
- ), re(
70
- (e == null ? void 0 : e.state) === "ACTIVE" ? "Are you sure you want to change the state from active to inactive?" : "Are you sure you want to change the state from inactive to active?"
71
- );
72
- const r = A.filter((o) => o.uuid === e.uuid);
73
- ue(r[0]);
74
- }, ve = async () => {
75
- v((e) => !e);
76
- }, Se = async () => {
77
- try {
78
- let e = JSON.parse(JSON.stringify(i));
79
- e.state = (i == null ? void 0 : i.state) === "ACTIVE" ? "INACTIVE" : "ACTIVE", await $e(e), await Q();
80
- const r = await I({
81
- limit: h,
82
- offset: (m - 1) * h,
83
- searchString: c || ""
84
- });
85
- p({ message: "Query state changed successfully!!", type: "success" }), k(r), K(i), v((o) => !o);
86
- } catch (e) {
87
- console.error(e), p({ message: "Error in toggle state", type: "error" });
88
- }
89
- }, Te = async () => {
90
- var e, r, o;
91
- try {
92
- const n = {
93
- code: "retrieve_logged_actions_by_table_name_query_code",
94
- parameters: {
95
- tableName: "query_master",
96
- queryCode: i.code
97
- }
98
- }, f = await _(n);
99
- ((r = (e = f == null ? void 0 : f.data) == null ? void 0 : e.result) == null ? void 0 : r.length) === 0 ? p({
100
- message: "No Query History found for Query code",
101
- type: "warn"
102
- }) : (oe((o = f == null ? void 0 : f.data) == null ? void 0 : o.result), D((Ne) => !Ne));
103
- } catch (n) {
104
- console.error(n), p({ message: "Error in loading Query History", type: "error" });
105
- }
106
- }, qe = () => {
107
- ie(i), O((e) => !e);
108
- }, Qe = () => {
109
- C(i == null ? void 0 : i.uuid);
110
- }, Ie = () => C(() => null), ke = () => {
111
- const e = [
112
- {
113
- label: "",
114
- icon: /* @__PURE__ */ t(J, { icon: je, size: "lg" }),
115
- menuClick: Ce,
116
- menuItems: [
117
- {
118
- label: S(Z),
119
- onClick: ve
120
- },
121
- {
122
- label: "Show Flyway Query",
123
- onClick: qe
124
- },
125
- {
126
- label: "Show Query History",
127
- onClick: Te
128
- },
129
- {
130
- label: "Sync With Server",
131
- onClick: Qe
132
- }
133
- ],
134
- dataTestId: "MenuIcon"
135
- }
136
- ];
137
- return b.hasCheckRights(a == null ? void 0 : a["update.admin.query"], void 0, !0) && e.unshift({
138
- label: "",
139
- icon: /* @__PURE__ */ t(J, { icon: Ue, size: "lg" }),
140
- onClick: we,
141
- dataTestId: "EditIcon"
142
- }), e;
143
- };
144
- g(() => {
145
- const e = setTimeout(async () => {
146
- await Q(), R(1), ce(c);
147
- }, 1e3);
148
- return () => clearTimeout(e);
149
- }, [c]);
150
- const Q = async () => {
151
- try {
152
- const { data: e } = await _(
153
- {
154
- code: "fetch_total_count_for_query_builder",
155
- parameters: {
156
- state: null,
157
- searchString: c || null
158
- }
159
- },
160
- { showLoader: !1 }
161
- );
162
- me(e.result[0].count);
163
- } catch (e) {
164
- console.error(e);
165
- }
166
- }, I = async (e) => {
167
- try {
168
- if (b.hasCheckRights(a == null ? void 0 : a["view.admin.query"], void 0, !0)) {
169
- y((o) => !o);
170
- const { data: r } = await _(
171
- {
172
- code: "fetch_queries_for_query_builder",
173
- parameters: {
174
- limit: e.limit || 50,
175
- offset: e.offset || 0,
176
- state: null,
177
- searchString: e.searchString || ""
178
- }
179
- },
180
- { showLoader: !1 }
181
- );
182
- return c !== "" && l("search_tracking", {
183
- searchTerm: c,
184
- results_count: r == null ? void 0 : r.length,
185
- search_type: "Page Search"
186
- }), y((o) => !o), r.result;
187
- }
188
- } catch (r) {
189
- p({ message: `error ${r}`, type: "error" }), y((o) => !o);
190
- }
191
- }, xe = async () => {
192
- try {
193
- y(!0);
194
- const { data: e } = await Ye("techo.manage.query");
195
- pe(JSON.parse(e)), y(!1);
196
- } catch (e) {
197
- console.error("Error loading rights:", e), y(!1);
198
- }
199
- };
200
- g(() => {
201
- xe();
202
- }, []);
203
- const k = (e) => {
204
- const r = (e == null ? void 0 : e.flat()) || [];
205
- X(r);
206
- const o = r.map((n) => ({
207
- ...n,
208
- query: `${n == null ? void 0 : n.query.slice(0, 50)}...`,
209
- returnsResultSet: n != null && n.returnsResultSet ? "Yes" : "No",
210
- isPublic: n != null && n.isPublic ? "Yes" : "No",
211
- isClickhouseQuery: n != null && n.isClickhouseQuery ? "Yes" : "No"
212
- }));
213
- E(o);
214
- };
215
- g(() => {
216
- k(j);
217
- }, [j]);
218
- const U = () => {
219
- l("button_click", {
220
- button_name: "querybuilder-add-button",
221
- button_type: "navigate",
222
- button_id: "querybuilder-add-button"
223
- }), M((e) => !e), H(!1), z({});
224
- }, _e = async () => {
225
- try {
226
- if (c !== "")
227
- F("");
228
- else {
229
- await Q();
230
- const e = await I({
231
- limit: h,
232
- offset: (m - 1) * h,
233
- searchString: c || ""
234
- });
235
- k(e);
236
- }
237
- } catch (e) {
238
- console.error(e);
239
- }
240
- };
241
- return !q && a !== null && !b.hasCheckRights(a == null ? void 0 : a["view.admin.query"], void 0, !0) ? /* @__PURE__ */ t(Fe, { className: "flex justify-center items-center w-full h-[80vh]", children: /* @__PURE__ */ t(Be, { className: "h-80 w-150 flex justify-center items-center", children: /* @__PURE__ */ t(V, { variant: "h5", "data-testid": "no-permission-message", className: "text-customBlue", children: "You dont have permission to view Queries" }) }) }) : /* @__PURE__ */ d(u, { pt: 2, sx: { height: "calc(100vh - 84px)" }, children: [
242
- /* @__PURE__ */ t(x, { children: L && /* @__PURE__ */ t(
243
- Ge,
244
- {
245
- loadInitialState: _e,
246
- isEditMode: de,
247
- editRow: ye,
248
- open: L,
249
- close: U,
250
- "data-testid": "querybuilder-addeditquerybuilder"
251
- }
252
- ) }),
253
- P && /* @__PURE__ */ t(
254
- De,
255
- {
256
- isOpen: !!C,
257
- handleClose: Ie,
258
- featureUUID: P,
259
- dataTestId: "querybuilder-syncwithserverdialog"
260
- }
261
- ),
262
- /* @__PURE__ */ t(x, { children: /* @__PURE__ */ t(
263
- Ke,
264
- {
265
- configuredQuery: ne,
266
- open: le,
267
- onClose: () => {
268
- O((e) => !e);
269
- },
270
- "data-testid": "querybuilder-showflywayquery"
271
- }
272
- ) }),
273
- /* @__PURE__ */ t(x, { children: /* @__PURE__ */ t(
274
- Xe,
275
- {
276
- historyList: se,
277
- open: ae,
278
- handleClose: () => {
279
- D((e) => !e);
280
- },
281
- "data-testid": "querybuilder-showqueryhistory"
282
- }
283
- ) }),
284
- /* @__PURE__ */ t(
285
- Pe,
286
- {
287
- description: te,
288
- title: "CONFIRM ACTION",
289
- handleClick: Se,
290
- open: he,
291
- handleClose: () => v((e) => !e),
292
- dataTestId: "querybuilder-customconfirmationmodal"
293
- }
294
- ),
295
- /* @__PURE__ */ t(u, { children: /* @__PURE__ */ t($, { isLoading: q, children: /* @__PURE__ */ d(Ee, { children: [
296
- /* @__PURE__ */ d(
297
- u,
298
- {
299
- container: !0,
300
- direction: "row",
301
- justifyContent: "space-between",
302
- alignItems: "center",
303
- children: [
304
- /* @__PURE__ */ t(u, { item: "true", mt: 1, children: /* @__PURE__ */ t(
305
- V,
306
- {
307
- variant: "body2",
308
- className: "font-bold font-sans text-lg uppercase text-customBlue",
309
- children: S("Queries")
310
- }
311
- ) }),
312
- /* @__PURE__ */ t(u, { item: "true", children: /* @__PURE__ */ d(u, { container: !0, spacing: 2, children: [
313
- /* @__PURE__ */ t(u, { item: "true", children: /* @__PURE__ */ t(
314
- He,
315
- {
316
- name: "searchQuery",
317
- id: "searchQuery",
318
- className: "m-0 p-0",
319
- placeholder: "Search Code",
320
- size: "small",
321
- value: c,
322
- onChange: (e) => {
323
- var r;
324
- return F((r = e == null ? void 0 : e.target) == null ? void 0 : r.value);
325
- },
326
- slotProps: {
327
- input: {
328
- className: "custom-input-root"
329
- }
330
- },
331
- sx: {
332
- "& .MuiInputBase-root": {
333
- backgroundColor: (e) => e.palette.background.paper
334
- }
335
- },
336
- "data-testid": "querybuilder-search-textfield"
337
- }
338
- ) }),
339
- b.hasCheckRights(a == null ? void 0 : a["create.admin.query"], void 0, !0) && /* @__PURE__ */ t(u, { item: "true", className: "flex items-center", children: /* @__PURE__ */ t(
340
- ze,
341
- {
342
- size: "small",
343
- variant: "contained",
344
- onClick: U,
345
- "data-testid": "querybuilder-add-button",
346
- children: S("Add")
347
- }
348
- ) })
349
- ] }) })
350
- ]
351
- }
352
- ),
353
- /* @__PURE__ */ t(u, { container: !0, className: "mt-4", children: /* @__PURE__ */ t(
354
- Me,
355
- {
356
- columns: T,
357
- tableData: w,
358
- actions: ke(),
359
- paginationConfig: {
360
- pagination: !0,
361
- rowsPerPageInTable: h,
362
- onPageChange: (e) => {
363
- R(e);
364
- },
365
- currentPage: m,
366
- totalRows: fe
367
- },
368
- dataTestId: "querybuilder-customizedtable",
369
- styleConfig: { tableStyle: { maxHeight: 65 } },
370
- isLoading: q
371
- }
372
- ) })
373
- ] }) }) })
374
- ] });
375
- }, St = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
376
- __proto__: null,
377
- default: Ze
378
- }, Symbol.toStringTag, { value: "Module" }));
379
- export {
380
- St as Q,
381
- vt as s
382
- };
383
- //# sourceMappingURL=QueryBuilder-z7eqfd7D.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QueryBuilder-z7eqfd7D.js","sources":["../src/services/QueryBuilder.js","../src/views/QueryBuilder/Skeletons/QueryBuilderSkeleton.jsx","../src/views/QueryBuilder/QueryBuilder.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\n\nexport const retrieveAllConfigured = (isActive) =>\n api.get(\"/resource\", { params: { is_active: isActive } });\n\nexport const toggleState = (data) => api.put(\"/resource\", data);\n\nexport const executeForFormConfigurator = (data) =>\n api.post(`/resource/getdataforformconfigurator/${data.code}`, data);\n\nexport const executeWithTimeout = (params) =>\n api.post(\"/resource/getdatawithtimeout\", params);\n\nexport const executeQueryForFamilyReport = (data) =>\n api.post(\"/resource/getdata\", data);\n\nexport const executeAllQuery = (dataList) =>\n api.post(\"/resource/getdatas\", dataList);\n\nexport const executeAll = (dataList) =>\n api.post(\"/resource/getalldata\", dataList);\n\nexport const getServerList = () =>\n api.post(\"/resource/getdata\", {\n code: \"get_runqueryactive_server_list\",\n parameters: {},\n });\n\nexport const saveOrUpdate = (data) => api.post(\"/resource\", data);\n\nexport const runQuery = (query) =>\n api.post(\"/resource/runquery\", query, {\n headers: { \"Content-Type\": \"application/json\" },\n transformRequest: [(data) => data],\n });\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nexport const QueryBuilderSkeleton = ({children , isLoading}) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"w-full justify-between flex-wrap flex flex-row pt-6\">\n <div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[36px] w-[64px]\"></div>\n </div>\n\n <div className=\"flex\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[160px] mr-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[60px]\"></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\nQueryBuilderSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n","import { lazy, default as React, Suspense, useEffect, useState, useRef } from \"react\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { toggleState } from \"../../services/QueryBuilder\";\nimport { execute } from \"@/common/services/GlobalApis\";\nimport SyncWithServerDialog from \"@/common/syncWithServer/SyncWithServerDialog\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport usePagination from \"@/hooks/usePagination\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport \"./Styles/QueryBuilder.scss\";\nconst AddEditQueryBuilder = lazy(() => import(\"./AddEditQueryBuilder\"));\nconst ShowFlywayQuery = lazy(() => import(\"./ShowFlywayQuery\"));\nconst ShowQueryHistory = lazy(() => import(\"./ShowQueryHistory\"));\nimport { Box, Button, Card, TextField, Typography } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\n\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomizedTable from \"@/views/custom-components/CustomizedTable/CustomizedTableV2\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faBars, faPen } from \"@fortawesome/free-solid-svg-icons\";\nimport { QueryBuilderSkeleton } from \"./Skeletons/QueryBuilderSkeleton\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\nimport implementationConfig from \"@/common/config/implementationConfig\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\n\n/**\n * @module QueryBuilder\n * @returns {JSX.Element}\n */\n\nconst QueryBuilder = () => {\n const trackEvent = useTrackEvent();\n const [queryTableValues, setQueryTableValues] = useState([]);\n const [refreshData, setRefreshData] = useState(false);\n const [actualData, setActualData] = useState([]);\n const [currentPage, setCurrentPage] = useState(1);\n const [isActiveLabel, setIsActiveLabel] = useState(\"\");\n const [isActiveDescription, setIsActiveDescription] = useState(\"\");\n const [queryHistory, setQueryHistory] = useState({});\n const [openHistory, setOpenHistory] = useState(false);\n const [configuredQuery, setConfiguredQuery] = useState(\"\");\n const [openFlywayQuery, setOpenFlywayQuery] = useState(false);\n const [featureUuid, setFeatureUuid] = useState(null);\n const [search, setSearch] = useState(null);\n const [debounceSearch, setDebounceSearch] = useState(null);\n const [clickedRow, setClickedRow] = useState({});\n const [isEdit, setIsEdit] = useState(false);\n const [editRow, setEditRow] = useState({});\n const [toggleOpen, setToggleOpen] = useState(false);\n const [addEdit, setAddEdit] = useState(false);\n const [totalRows, setTotalRows] = useState(0);\n const { translate } = useTranslateProvider();\n const [rights, setRights] = useState(null);\n const rightsRef = useRef(rights);\n\n useEffect(() => {\n rightsRef.current = rights;\n }, [rights]);\n\n const isClickhouseEnabledEnv = implementationConfig.queryBuilder.showClickhouseOption;\n\n const queryTableFields = [\n { field: \"code\", label: \"Code\", align: \"left\" },\n {\n field: \"description\",\n label: \"Description\",\n align: \"left\",\n },\n { field: \"query\", label: \"Query\", align: \"left\" },\n { field: \"returnsResultSet\", label: \"Returns Result Set\" },\n { field: \"isPublic\", label: \"Is Public\" },\n ];\n\n if (isClickhouseEnabledEnv) {\n queryTableFields.push({\n field: \"isClickhouseQuery\",\n label: \"Is Clickhouse Query\",\n });\n }\n\n queryTableFields.push({ field: \"Actions\", label: \"Actions\" });\n\n const [isLoading, setIsLoading] = useState(false);\n\n const pageSize = 50;\n\n /**\n * Custom hook for managing paginated user data.\n *\n * @CustomHook\n * @type {Object}\n * @property {Array} pageData - The paginated user data fetched from the server.\n * @property {Function} fetchNextPage - Function to fetch the next page of data.\n * @property {boolean} isFetchingNextPage - Indicates if the next page is currently being fetched.\n **/\n const { data: pageData } = usePagination({\n key: [\"queries\", debounceSearch, currentPage, refreshData, rights],\n queryFn: (pageParam) => loadMoreData(pageParam),\n currentPage,\n limit: pageSize,\n searchString: debounceSearch || null,\n paginationType: \"traditional\",\n });\n\n /**\n * Handles the editing of a data item.\n * @function handleEdit\n * @param {Object} data - The data item to be edited, including at least the `uuid` property.\n * @param {string} data.uuid - The unique identifier of the data item.\n * @returns {void}\n */\n\n const handleEdit = (data) => {\n const toggledData = actualData.filter((item) => item.uuid === data.uuid);\n setEditRow(toggledData[0]);\n setAddEdit((cur) => !cur);\n setIsEdit(true);\n };\n\n /**\n * Handles toggling the state of a data item between active and inactive.\n * @function handleToggleOption\n * @param {Object} data - The data item whose state is being toggled, including at least the `uuid` and `state` properties.\n * @param {string} data.uuid - The unique identifier of the data item.\n * @param {string} data.state - The current state of the data item (e.g., 'ACTIVE' or 'INACTIVE').\n * @returns {void}\n */\n\n const handleToggleOption = (data) => {\n setIsActiveLabel(\n data?.state === \"ACTIVE\" ? \"Mark as Inactive\" : \"Mark as Active\"\n );\n setIsActiveDescription(\n data?.state === \"ACTIVE\"\n ? \"Are you sure you want to change the state from active to inactive?\"\n : \"Are you sure you want to change the state from inactive to active?\"\n );\n const toggledData = actualData.filter((item) => item.uuid === data.uuid);\n setClickedRow(toggledData[0]);\n };\n\n /**\n * Toggles the state of a boolean value used to open or close a toggle component.\n * @async\n * @function handleToggle\n * @returns {void}\n */\n\n const handleToggle = async () => {\n setToggleOpen((cur) => !cur);\n };\n\n /**\n * Handles the state toggling operation and updates the UI accordingly.\n * @async\n * @function handleToggleState\n * @returns {Promise<void>} A promise that resolves when the operation is complete.\n * @throws {Error} Throws an error if `toggleState` or `loadInitialState` fails, which is caught and handled by showing a toast message.\n */\n\n const handleToggleState = async () => {\n try {\n let data = JSON.parse(JSON.stringify(clickedRow));\n data.state = clickedRow?.state === \"ACTIVE\" ? \"INACTIVE\" : \"ACTIVE\";\n await toggleState(data);\n await fetchTotalRows();\n const updatedData = await loadMoreData({\n limit: pageSize,\n offset: (currentPage - 1) * pageSize,\n searchString: search || \"\",\n });\n showToast({ message: \"Query state changed successfully!!\", type: \"success\" });\n setTableData(updatedData);\n setRefreshData(clickedRow);\n setToggleOpen((cur) => !cur);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in toggle state\", type: \"error\" });\n }\n };\n\n /**\n * Retrieves and displays the query history for a specific query code.\n * @async\n * @function showQueryHistory\n * @returns {Promise<void>} A promise that resolves when the query history has been retrieved and displayed.\n * @throws {Error} Throws an error if `getQueryHistory` fails, which is caught and handled by showing a toast message.\n */\n\n const showQueryHistory = async () => {\n try {\n const data = {\n code: \"retrieve_logged_actions_by_table_name_query_code\",\n parameters: {\n tableName: \"query_master\",\n queryCode: clickedRow.code,\n },\n };\n const response = await execute(data);\n\n if (response?.data?.result?.length === 0) {\n showToast({\n message: \"No Query History found for Query code\",\n type: \"warn\",\n });\n } else {\n setQueryHistory(response?.data?.result);\n setOpenHistory((cur) => !cur);\n }\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in loading Query History\", type: \"error\" });\n }\n };\n\n /**\n * Toggles the display of the Flyway query configuration modal.\n * @function showFlywayQuery\n * @returns {void} This function does not return any value.\n */\n\n const showFlywayQuery = () => {\n setConfiguredQuery(clickedRow);\n setOpenFlywayQuery((cur) => !cur);\n };\n\n /**\n * Synchronizes the local feature state with the server.\n * @function syncWithServer\n * @returns {void} This function does not return any value.\n */\n\n const syncWithServer = () => {\n setFeatureUuid(clickedRow?.uuid);\n };\n\n /**\n * sets the feature UUid to null.\n * @function handleSyncClose\n * @returns {void} This function does not return any value.\n */\n\n const handleSyncClose = () => setFeatureUuid(() => null);\n\n const getActions = () => {\n const actions = [\n {\n label: \"\",\n icon: <FontAwesomeIcon icon={faBars} size=\"lg\" />,\n menuClick: handleToggleOption,\n menuItems: [\n {\n label: translate(isActiveLabel),\n onClick: handleToggle,\n },\n {\n label: \"Show Flyway Query\",\n onClick: showFlywayQuery,\n },\n {\n label: \"Show Query History\",\n onClick: showQueryHistory,\n },\n {\n label: \"Sync With Server\",\n onClick: syncWithServer,\n },\n ],\n dataTestId: \"MenuIcon\",\n },\n ];\n if (GeneralUtil.hasCheckRights(rights?.[\"update.admin.query\"], undefined, true)) {\n actions.unshift({\n label: \"\",\n icon: <FontAwesomeIcon icon={faPen} size=\"lg\" />,\n onClick: handleEdit,\n dataTestId: \"EditIcon\",\n });\n }\n return actions;\n };\n\n useEffect(() => {\n const timer = setTimeout(async () => {\n await fetchTotalRows();\n setCurrentPage(1);\n setDebounceSearch(search);\n }, 1000);\n\n return () => clearTimeout(timer); // Cleanup previous timer\n }, [search]);\n\n const fetchTotalRows = async () => {\n try {\n const { data: countData } = await execute(\n {\n code: \"fetch_total_count_for_query_builder\",\n parameters: {\n state: null,\n searchString: search || null,\n },\n },\n { showLoader: false }\n );\n setTotalRows(countData.result[0].count);\n } catch (error) {\n console.error(error);\n }\n };\n\n /**\n * Fetches additional query data for pagination and logs the search tracking event.\n * @async\n * @function loadMoreData\n * @param {Object} pageParam - The pagination parameters for the API request.\n * @param {number} pageParam.limit - The number of items to fetch per page.\n * @param {number} pageParam.offset - The offset for pagination.\n * @returns {Promise<Array>} - A promise that resolves to an array of user data fetched from the API.\n * @throws {Error} - Displays a toast notification if an error occurs during the API call.\n *\n **/\n\n const loadMoreData = async (pageParam) => {\n try {\n if (GeneralUtil.hasCheckRights(rights?.[\"view.admin.query\"], undefined, true)) {\n setIsLoading((cur) => !cur);\n const { data } = await execute(\n {\n code: \"fetch_queries_for_query_builder\",\n parameters: {\n limit: pageParam.limit || 50,\n offset: pageParam.offset || 0,\n state: null,\n searchString: pageParam.searchString || \"\",\n },\n },\n { showLoader: false }\n );\n search !== \"\" &&\n trackEvent(\"search_tracking\", {\n searchTerm: search,\n results_count: data?.length,\n search_type: \"Page Search\",\n });\n setIsLoading((cur) => !cur);\n return data.result;\n }\n } catch (error) {\n showToast({ message: `error ${error}`, type: \"error\" });\n setIsLoading((cur) => !cur);\n }\n };\n\n const loadRights = async () => {\n try {\n setIsLoading(true);\n const { data: featureJson } =\n await getAssignedFeatures(\"techo.manage.query\");\n setRights(JSON.parse(featureJson));\n setIsLoading(false);\n } catch (error) {\n console.error(\"Error loading rights:\", error);\n setIsLoading(false);\n }\n };\n useEffect(() => {\n loadRights();\n }, []);\n\n const setTableData = (tableData) => {\n const allQueriesData = tableData?.flat() || [];\n\n setActualData(allQueriesData);\n const data = allQueriesData.map((item) => {\n return {\n ...item,\n query: `${item?.query.slice(0, 50)}...`,\n returnsResultSet: item?.returnsResultSet ? \"Yes\" : \"No\",\n isPublic: item?.isPublic ? \"Yes\" : \"No\",\n isClickhouseQuery: item?.isClickhouseQuery ? \"Yes\" : \"No\",\n };\n });\n setQueryTableValues(data);\n };\n\n /**\n * `useEffect` hook that loads initial data when the component mounts.\n * @function useEffect\n * @async\n * @returns {void} This function does not return a value.\n */\n useEffect(() => {\n setTableData(pageData);\n }, [pageData]);\n\n /**\n * Toggles the add/edit state of the component and resets the edit row.\n * @function handleAddEdit\n */\n\n const handleAddEdit = () => {\n trackEvent(\"button_click\", {\n button_name: \"querybuilder-add-button\",\n button_type: \"navigate\",\n button_id: \"querybuilder-add-button\",\n });\n setAddEdit((cur) => !cur);\n setIsEdit(false);\n setEditRow({});\n };\n\n const addEditLoadInitial = async () => {\n try {\n if (search !== \"\") {\n setSearch(\"\");\n } else {\n await fetchTotalRows();\n const updatedData = await loadMoreData({\n limit: pageSize,\n offset: (currentPage - 1) * pageSize,\n searchString: search || \"\",\n });\n setTableData(updatedData);\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.admin.query\"], undefined, true) ? (\n <Box className=\"flex justify-center items-center w-full h-[80vh]\">\n <Card className=\"h-80 w-150 flex justify-center items-center\">\n <Typography variant=\"h5\" data-testid=\"no-permission-message\" className=\"text-customBlue\">\n You dont have permission to view Queries\n </Typography>\n </Card>\n </Box>\n ) : (\n <Grid pt={2} sx={{ height: \"calc(100vh - 84px)\" }}>\n <Suspense>\n {addEdit && (\n <AddEditQueryBuilder\n loadInitialState={addEditLoadInitial}\n isEditMode={isEdit}\n editRow={editRow}\n open={addEdit}\n close={handleAddEdit}\n data-testid=\"querybuilder-addeditquerybuilder\"\n />\n )}\n </Suspense>\n\n {featureUuid && (\n <SyncWithServerDialog\n isOpen={Boolean(setFeatureUuid)}\n handleClose={handleSyncClose}\n featureUUID={featureUuid}\n dataTestId=\"querybuilder-syncwithserverdialog\"\n />\n )}\n\n <Suspense>\n <ShowFlywayQuery\n configuredQuery={configuredQuery}\n open={openFlywayQuery}\n onClose={() => {\n setOpenFlywayQuery((cur) => !cur);\n }}\n data-testid=\"querybuilder-showflywayquery\"\n />\n </Suspense>\n\n <Suspense>\n <ShowQueryHistory\n historyList={queryHistory}\n open={openHistory}\n handleClose={() => {\n setOpenHistory((cur) => !cur);\n }}\n data-testid=\"querybuilder-showqueryhistory\"\n />\n </Suspense>\n\n <CustomConfirmationModal\n description={isActiveDescription}\n title={\"CONFIRM ACTION\"}\n handleClick={handleToggleState}\n open={toggleOpen}\n handleClose={() => setToggleOpen((cur) => !cur)}\n dataTestId=\"querybuilder-customconfirmationmodal\"\n />\n\n <Grid>\n <QueryBuilderSkeleton isLoading={isLoading}>\n <>\n <Grid\n container\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems={\"center\"}\n >\n <Grid item=\"true\" mt={1}>\n <Typography\n variant=\"body2\"\n className=\"font-bold font-sans text-lg uppercase text-customBlue\"\n >\n {translate(\"Queries\")}\n </Typography>\n </Grid>\n <Grid item=\"true\">\n <Grid container spacing={2}>\n <Grid item=\"true\">\n <TextField\n name=\"searchQuery\"\n id=\"searchQuery\"\n className=\"m-0 p-0\"\n placeholder=\"Search Code\"\n size=\"small\"\n value={search}\n onChange={(e) => setSearch(e?.target?.value)}\n slotProps={{\n input: {\n className: \"custom-input-root\",\n },\n }}\n sx={{\n \"& .MuiInputBase-root\": {\n backgroundColor: (theme) =>\n theme.palette.background.paper,\n },\n }}\n data-testid=\"querybuilder-search-textfield\"\n />\n </Grid>\n {GeneralUtil.hasCheckRights(rights?.[\"create.admin.query\"], undefined, true) && (\n <Grid item=\"true\" className=\"flex items-center\">\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={handleAddEdit}\n data-testid=\"querybuilder-add-button\"\n >\n {translate(\"Add\")}\n </Button>\n </Grid>\n )}\n </Grid>\n </Grid>\n </Grid>\n <Grid container className=\"mt-4\">\n <CustomizedTable\n columns={queryTableFields}\n tableData={queryTableValues}\n actions={getActions()}\n paginationConfig={{\n pagination: true,\n rowsPerPageInTable: pageSize,\n onPageChange: (newPage) => {\n setCurrentPage(newPage);\n },\n currentPage: currentPage,\n totalRows: totalRows,\n }}\n dataTestId=\"querybuilder-customizedtable\"\n styleConfig={{ tableStyle: { maxHeight: 65 } }}\n isLoading={isLoading}\n />\n </Grid>\n </>\n </QueryBuilderSkeleton>\n </Grid>\n </Grid>\n );\n};\n\nexport default QueryBuilder;\n"],"names":["toggleState","data","api","saveOrUpdate","QueryBuilderSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","AddEditQueryBuilder","lazy","ShowFlywayQuery","ShowQueryHistory","QueryBuilder","trackEvent","useTrackEvent","queryTableValues","setQueryTableValues","useState","refreshData","setRefreshData","actualData","setActualData","currentPage","setCurrentPage","isActiveLabel","setIsActiveLabel","isActiveDescription","setIsActiveDescription","queryHistory","setQueryHistory","openHistory","setOpenHistory","configuredQuery","setConfiguredQuery","openFlywayQuery","setOpenFlywayQuery","featureUuid","setFeatureUuid","search","setSearch","debounceSearch","setDebounceSearch","clickedRow","setClickedRow","isEdit","setIsEdit","editRow","setEditRow","toggleOpen","setToggleOpen","addEdit","setAddEdit","totalRows","setTotalRows","translate","useTranslateProvider","rights","setRights","rightsRef","useRef","useEffect","isClickhouseEnabledEnv","implementationConfig","queryTableFields","setIsLoading","pageSize","pageData","usePagination","pageParam","loadMoreData","handleEdit","toggledData","item","cur","handleToggleOption","handleToggle","handleToggleState","fetchTotalRows","updatedData","showToast","setTableData","error","showQueryHistory","response","execute","_b","_a","_c","showFlywayQuery","syncWithServer","handleSyncClose","getActions","actions","FontAwesomeIcon","faBars","GeneralUtil","faPen","timer","countData","loadRights","featureJson","getAssignedFeatures","tableData","allQueriesData","handleAddEdit","addEditLoadInitial","Box","Card","Typography","Grid","Suspense","SyncWithServerDialog","CustomConfirmationModal","Fragment","TextField","theme","Button","CustomizedTable","newPage"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RoleManagement-DEiBNfT8.js","sources":["../src/services/Roles.js","../src/views/Roles/Skeletons/RoleManagementSkeleton.jsx","../src/views/Roles/RoleManagement.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\n\nexport const getAllRoleList = () => api.get(\"/role\");\n\nexport const deleteRoleFeature = (id) =>\n api.delete(`/menuconfig/usermenuitem?empMenuItemId=${id}`);\n\nexport const getRoleById = (id) => api.get(`/role?id=${id}`);\n\nexport const postRole = (params) => api.post(\"/role\", { ...params });\n\nexport const putRole = (params) => api.put(\"/role\", { ...params });\n\nexport const ToggleState = (params) =>\n api.put(`role/?is_active=${params.state === \"INACTIVE\" ? \"true\" : \"false\"}`, {\n ...params,\n });\nexport const postNewFeature = (params, id) =>\n api.post(`/menuconfig/assignnewfeature?roleId=${id}`, { ...params });\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nconst RoleManagementSkeleton = ({ children, isLoading = true }) => {\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=\"pt-6 relative h-[90vh]\">\n {/* skleton for roles and add button */}\n\n <div className=\"flex flex-row h-[80vh] \">\n <div className=\"flex flex-col border border-gray-300 w-[20%] p-2 mr-3 rounded-md\">\n {\" \"}\n <div className=\"flex justify-between\">\n {/* skleton for list of roles and toogle roles */}\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-23 h-[40px] mr-3\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-[40px]\"></div>\n </div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm mt-2 w-full h-[50px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm mt-2 w-full h-full\"></div>\n </div>\n <div className=\"flex flex-col border border-gray-300 w-[80%] p-2 rounded-md\">\n <div className=\"flex justify-between\">\n {/* skleton for role name and options */}\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-24 h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-21 h-[40px]\"></div>\n </div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm mt-2 w-full h-[50px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm mt-2 w-full h-full\"></div>\n </div>\n </div>\n\n <div className=\"absolute bottom-20 right-[10px] \">\n <div className=\"bg-gray-300 animate-pulse rounded-full w-[40px] h-[40px]\"></div>\n </div>\n </div>\n );\n};\n\nRoleManagementSkeleton.propTypes = {\n children: PropTypes.any,\n loading: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport default RoleManagementSkeleton;\n","import GeneralUtil from \"@/common/services/util/GeneralUtil\";\nimport { Suspense, useEffect, useState, lazy } from \"react\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport {\n Box,\n Card,\n Switch,\n TextField,\n Button,\n Chip,\n Typography,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport {\n getAllRoleList,\n ToggleState,\n deleteRoleFeature,\n getRoleById,\n} from \"../../services/Roles.js\";\nimport { getRoleList } from \"@/common/services/GlobalApis.js\";\nimport { getAssignedFeatures } from \"@/utils/feature.js\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport RoleManagementSkeleton from \"./Skeletons/RoleManagementSkeleton.jsx\";\nimport { useSelector } from \"react-redux\";\nconst AddFeatures = lazy(() => import(\"./AddFeatures.jsx\"));\nconst ManageRole = lazy(() => import(\"./ManageRole.jsx\"));\n\nexport default function RoleManagement() {\n const { translate } = useTranslateProvider();\n const [Data, setData] = useState(\"\");\n const [selectedRole, setSelectedRole] = useState(Data[0]);\n const [includeInActive, setincludeInActive] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [openModal, setOpenModal] = useState(false);\n const [openManageRole, setOpenManageRole] = useState(0);\n const [searchText, setSearchText] = useState(\"\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [rights, setRights] = useState(null);\n const [confirmToggleOpen, setConfirmToggleOpen] = useState(false);\n const trackEvent = useTrackEvent();\n const currentLoogedInUserRoleId = useSelector((state) => state.Authenticate.user.roleId);\n const [allowedRoleIds, setallowedRoleIds] = useState([]);\n\n const getAllData = async (isPreserveRole = false) => {\n try {\n setIsLoading(true);\n const roleListPromise = includeInActive ? getAllRoleList() : getRoleList();\n let data, userRoleIds = [];\n if (currentLoogedInUserRoleId) {\n // Run both APIs in parallel\n const [{ data: roleData }, currRoleData] = await Promise.all([\n roleListPromise,\n getRoleById(currentLoogedInUserRoleId),\n ]);\n data = roleData;\n userRoleIds = currRoleData?.data?.roleIds || [];\n } else {\n // Only fetch role list\n const { data: roleData } = await roleListPromise;\n data = roleData;\n }\n setallowedRoleIds(userRoleIds);\n // ✅ Filter logic (keep only allowed roles)\n const filteredData =\n userRoleIds.length > 0\n ? data.filter((role) => userRoleIds.includes(role.id))\n : data; // fallback: show all if no roleIds\n setData(filteredData);\n if (!isPreserveRole && filteredData.length > 0) {\n setSelectedRole(filteredData[0]);\n }\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in getting role data\", type: \"error\" });\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(function () {\n const fetchRights = async () => {\n const { data: featureJson } = await getAssignedFeatures(\"techo.manage.role\");\n if (featureJson) setRights(JSON.parse(featureJson));\n };\n fetchRights();\n getAllData();\n }, []);\n\n const handleCheckboxChange = async (event) => {\n let isChecked = event.target.checked;\n setincludeInActive(event.target.checked);\n try {\n setIsLoading((cur) => !cur);\n let data;\n if (isChecked) {\n ({ data } = await getAllRoleList());\n } else {\n ({ data } = await getRoleList());\n }\n if (allowedRoleIds && allowedRoleIds.length > 0) {\n data = data.filter(\n (role) => allowedRoleIds.includes(role.id)\n );\n }\n setData(data);\n setSelectedRole(data[0]);\n setIsLoading((cur) => !cur);\n setSearchText(\"\");\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in getting role data\", type: \"error\" });\n setIsLoading((cur) => !cur);\n }\n };\n\n const filterData = Data\n ? Data?.filter((feature) =>\n feature.name.toLowerCase().includes(searchText.toLowerCase())\n )\n : [];\n\n const formatDateDDMMYYYY = (timestamp) => {\n if (!timestamp) return \"\";\n const date = new Date(Number(timestamp));\n const day = String(date.getDate()).padStart(2, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const year = date.getFullYear();\n return `${day}/${month}/${year}`;\n };\n\n const handleToggleState = async () => {\n setConfirmToggleOpen(false);\n try {\n const payload = Data?.find((data) => data.id === selectedRole.id);\n await ToggleState(payload);\n showToast({\n message: `State succesfully changed from ${payload?.state === \"INACTIVE\" ? \"inactive\" : \"active\"} to ${payload?.state === \"INACTIVE\" ? \"active\" : \"inactive\"}`,\n type: \"success\",\n });\n let res;\n setIsLoading((cur) => !cur);\n if (includeInActive) {\n res = await getAllRoleList();\n } else {\n res = await getRoleList();\n }\n\n setData(res.data);\n setSelectedRole(res.data[0]);\n setIsLoading((cur) => !cur);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in handle active\", type: \"error\" });\n setIsLoading((cur) => !cur);\n }\n };\n\n const sortedFilteredFeatures = Data\n ? Data.find((obj) => obj.id === selectedRole.id)\n ?.assignedFeatureList.filter((feature) =>\n feature.featureName\n ?.toLowerCase()\n .includes(searchQuery?.toLowerCase())\n )\n .sort((a, b) => a.featureName?.localeCompare(b.featureName))\n : [];\n\n const handleDeleteRoleFeature = async (feature) => {\n try {\n await deleteRoleFeature(feature.userMenuItemId);\n await getAllData(true);\n setSearchQuery(\"\");\n showToast({ message: \"Feature deleted successfully!\", type: \"success\" });\n } catch (error) {\n showToast({ message: error, type: \"error\" });\n }\n };\n\n const handleManageRoleModel = (index) => {\n setOpenManageRole(index);\n trackEvent(\"button_click\", {\n button_name: `${index === 1 ? \"add\" : \"edit\"} role modal button`,\n button_type: \"navigate\",\n button_id: `roles-${index === 1 ? \"add\" : \"edit\"}-button`,\n });\n };\n\n const isRoleListModified = () => {\n getAllData();\n setSearchText(\"\");\n };\n\n const handleOpen = async () => {\n try {\n setOpenModal(true);\n await trackEvent(\"button_click\", {\n button_name: \"add feature button\",\n button_type: \"navigate\",\n button_id: \"roles-addfeatures-button-add\",\n });\n } catch (error) {\n console.error(error);\n }\n };\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.role\"]) ? (\n <Box className=\"flex justify-center items-center w-full h-[80vh]\">\n <Card\n className=\"h-80 w-150 flex justify-center items-center\"\n >\n <Typography variant=\"h5\" className=\"text-customBlue\">\n You dont have permission to view Roles\n </Typography>\n </Card>\n </Box>\n ) : (\n <RoleManagementSkeleton isLoading={isLoading}>\n <Box className=\"flex flex-col gap-4 p-4 min-[900px]:flex-row min-[900px]:h-[calc(100vh-80px)]\">\n <Card\n variant=\"outlined\"\n className=\"w-full min-[900px]:w-[300px] flex flex-col p-4\"\n >\n <div className=\"flex justify-between items-center mb-3\">\n <Typography\n variant=\"h6\"\n fontWeight={600}\n className=\"text-customBlue\"\n >\n User Roles\n </Typography>\n {GeneralUtil.hasCheckRights(rights?.['create.manage.role']) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n onClick={() => handleManageRoleModel(1)}\n data-testid=\"managerole-add-button\"\n >\n {translate(\"+ Add Role\")}\n </Button>\n )}\n </div>\n <TextField\n size=\"small\"\n variant=\"outlined\"\n placeholder=\"Search roles...\"\n fullWidth\n value={searchText}\n onChange={(e) => setSearchText(e.target.value)}\n data-testid=\"listofroles-search-input\"\n />\n <div className=\"flex items-center gap-2 mt-3\">\n <Switch\n size=\"small\"\n checked={includeInActive}\n onChange={handleCheckboxChange}\n />\n <Typography variant=\"body2\">Include Inactive</Typography>\n </div>\n <div className=\"flex-1 overflow-y-auto mt-4\">\n {filterData.length > 0 && (\n <>\n {filterData.map((role) => (\n <Card\n key={role.id}\n variant=\"outlined\"\n onClick={() => setSelectedRole(role)}\n className={`p-3 cursor-pointer transition\n ${selectedRole.id === role.id\n ? \"border-b-2\"\n : \"border-b-2 border-0\"\n }`}\n sx={\n selectedRole.id === role.id\n ? {\n bgcolor: (t) => alpha(t.palette.primary.main, 0.08),\n }\n : {}\n }\n >\n <Typography fontWeight={600}>\n {role.name}\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n {role?.state === \"INACTIVE\" && (\n <Chip label=\"INACTIVE\" color=\"disabled\" size=\"small\" />\n )}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {role.assignedFeatureList.length} Features\n </Typography>\n </Card>\n ))}\n </>\n )}\n </div>\n </Card>\n <Card\n variant=\"outlined\"\n className=\"w-full min-[900px]:flex-1 flex flex-col p-5\"\n >\n <div className=\"flex flex-col sm:flex-row justify-between items-start border-b pb-4 gap-4\">\n <div className=\"flex flex-col gap-1 w-full sm:w-auto\">\n <div className=\"flex items-center gap-2\">\n <Typography\n variant=\"h5\"\n fontWeight={600}\n className=\"text-customBlue\"\n >\n {selectedRole?.name || \"Select Role\"}\n </Typography>\n {selectedRole?.state === \"ACTIVE\" && (\n <Chip label=\"ACTIVE\" color=\"success\" size=\"small\" />\n )}\n {selectedRole?.state === \"INACTIVE\" && (\n <Chip label=\"INACTIVE\" color=\"disabled\" size=\"small\" />\n )}\n </div>\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n className=\"mt-1\"\n >\n Created on {formatDateDDMMYYYY(selectedRole?.createdOn)}\n </Typography>\n </div>\n <div className=\"flex gap-2\">\n {GeneralUtil.hasCheckRights(rights?.['update.manage.role.toggleActive']) && (\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={() => setConfirmToggleOpen(true)}\n >\n {selectedRole?.state === \"ACTIVE\" ? \"Deactivate\" : \"Activate\"}\n </Button>\n )}\n {GeneralUtil.hasCheckRights(rights?.['update.manage.role']) && (\n <Button\n variant=\"contained\"\n size=\"small\"\n onClick={() => handleManageRoleModel(2)}\n >\n ✏️ Edit Role\n </Button>\n )}\n </div>\n </div>\n {/* ASSIGNED FEATURES */}\n <div className=\"mt-5 flex flex-col flex-1 overflow-hidden\">\n <div className=\"flex flex-col sm:flex-row justify-between items-start sm:items-center mb-4 gap-4\">\n <div className=\"flex flex-row items-center gap-2 w-full sm:w-auto\">\n <Typography fontWeight={600}>{translate(\"Assigned Features\")}</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n ({sortedFilteredFeatures.length} {translate(\"features active for this role\")})\n </Typography>\n </div>\n <TextField\n size=\"small\"\n sx={{ width: { xs: \"100%\", sm: \"60%\" } }}\n placeholder=\"Search Feature Name\"\n variant=\"outlined\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n data-testid=\"assignedfeatures-search-input\"\n />\n </div>\n <Box className=\"overflow-x-auto w-full\">\n <Box\n className=\"grid grid-cols-[minmax(340px,1.5fr)_120px] px-4 py-2 text-[15px] font-semibold border-b min-w-[500px]\"\n sx={{\n color: \"text.secondary\",\n bgcolor: (t) => alpha(t.palette.action.hover, 0.04),\n }}\n >\n <div>{translate(\"FEATURE NAME\")}</div>\n <div className=\"text-center\">{translate(\"ACTIONS\")}</div>\n </Box>\n <Box\n className=\"h-[calc(100vh-440px)] overflow-y-auto min-w-[500px]\"\n sx={{\n bgcolor: \"background.paper\",\n }}\n >\n {sortedFilteredFeatures.length > 0 && (\n <>\n {sortedFilteredFeatures.map((feature, index) => (\n <Box\n key={feature.id}\n className=\"grid grid-cols-[minmax(340px,1.5fr)_120px] px-4 py-3 items-center border-b last:border-b-0 transition\"\n sx={{\n \"&:hover\": {\n bgcolor: (t) => alpha(t.palette.action.hover, 0.04),\n },\n }}\n >\n <div className=\"flex flex-col\">\n <Typography sx={{ fontSize: \"13px\", fontWeight: 600 }}>\n {feature.featureName}\n </Typography>\n </div>\n <div className=\"flex justify-center\">\n {GeneralUtil.hasCheckRights(rights?.['view.manage.role.unassignFeature']) && (\n <FontAwesomeIcon\n icon={faTrash}\n onClick={() => {\n handleDeleteRoleFeature(feature);\n }}\n color=\"error\"\n className=\"text-red-400 cursor-pointer\"\n data-testid={`assignedfeatures-delete-icon-${index}`}\n />\n )}\n </div>\n </Box>\n ))}\n </>\n )}\n {sortedFilteredFeatures.length === 0 && (\n <>\n <Typography\n className=\"p-4\"\n sx={{ fontSize: \"13px\", fontStyle: \"italic\" }}\n >\n No Features assigned yet!\n </Typography>\n </>\n )}\n </Box>\n </Box>\n </div>\n <Box\n className=\"border-t p-4\"\n sx={{\n bgcolor: (t) => alpha(t.palette.primary.main, 0.06),\n }}\n >\n {GeneralUtil.hasCheckRights(rights?.['view.manage.role.assignFeature']) && (\n <Button variant=\"outlined\" size=\"small\" onClick={handleOpen}>\n + Add More Features\n </Button>\n )}\n </Box>\n </Card>\n <CustomConfirmationModal\n open={confirmToggleOpen}\n handleClose={() => setConfirmToggleOpen(false)}\n handleClick={handleToggleState}\n title={selectedRole?.state === \"ACTIVE\" ? \"Deactivate Role\" : \"Activate Role\"}\n description={`Are you sure you want to ${selectedRole?.state === \"ACTIVE\" ? \"deactivate\" : \"activate\"} the role \"${selectedRole?.name}\"?`}\n dataTestId=\"toggle-role-confirm-modal\"\n />\n <Suspense>\n <ManageRole\n isUpdate={openManageRole !== 1}\n selectedId={openManageRole === 2 ? selectedRole.id : null}\n data-testid=\"roles-managerole-add-button\"\n open={openManageRole}\n setOpen={setOpenManageRole}\n isRoleListModified={isRoleListModified}\n />\n </Suspense>\n <Suspense fallback={<div className=\"animate-pulse w-80 h-20 \"></div>}>\n {openModal === true && (\n <AddFeatures\n open={openModal}\n setOpenModal={setOpenModal}\n selectedId={selectedRole.id}\n setData={() => getAllData(true)}\n assignedFeatureList={\n Data\n ? (() =>\n Data?.find((data) => data?.id === selectedRole.id)\n ?.assignedFeatureList\n ? Data?.find((data) => data?.id === selectedRole.id)\n ?.assignedFeatureList\n : Data[0]?.assignedFeatureList)()\n : []\n }\n data-testid=\"roles-addfeatures-component\"\n />\n )}\n </Suspense>\n </Box>\n </RoleManagementSkeleton>\n );\n}\n"],"names":["getAllRoleList","api","deleteRoleFeature","id","getRoleById","postRole","params","putRole","ToggleState","postNewFeature","RoleManagementSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","AddFeatures","lazy","ManageRole","RoleManagement","translate","useTranslateProvider","Data","setData","useState","selectedRole","setSelectedRole","includeInActive","setincludeInActive","setIsLoading","openModal","setOpenModal","openManageRole","setOpenManageRole","searchText","setSearchText","searchQuery","setSearchQuery","rights","setRights","confirmToggleOpen","setConfirmToggleOpen","trackEvent","useTrackEvent","currentLoogedInUserRoleId","state","allowedRoleIds","setallowedRoleIds","getAllData","isPreserveRole","roleListPromise","getRoleList","data","userRoleIds","roleData","currRoleData","_a","filteredData","role","error","showToast","useEffect","featureJson","getAssignedFeatures","handleCheckboxChange","event","isChecked","cur","filterData","feature","formatDateDDMMYYYY","timestamp","date","day","month","year","handleToggleState","payload","res","sortedFilteredFeatures","obj","a","b","handleDeleteRoleFeature","handleManageRoleModel","index","isRoleListModified","handleOpen","GeneralUtil","Box","Card","Typography","Button","TextField","Switch","Fragment","t","alpha","Chip","FontAwesomeIcon","faTrash","CustomConfirmationModal","Suspense","_b","_c"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShowFlywayQuery-DVRCd384.js","sources":["../src/views/Events/ShowFlywayQuery.jsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Button,\n TextField,\n} from \"@mui/material\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport moment from \"moment/moment\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\n\n/**\n * A React functional component that displays a configured Flyway query.\n * @module ShowFlywayQuery\n * @param {Object} props - Component properties.\n * @param {Object} props.configuredQuery - The query configuration object to display.\n * @param {boolean} props.open - Boolean flag indicating if the component should be visible.\n * @param {function} props.onClose - Callback function to close the component.\n */\n\nconst ShowFlywayQuery = ({ configuredQuery, open, onClose, dataTestId }) => {\n const [text, setText] = useState(\"\");\n const [isPublicKeyword, setIsPublicKeyword] = useState(false);\n const { translate } = useTranslateProvider();\n\n const [openConfirm, setOpenConfirm] = useState(false);\n\n /**\n *\n * Generates a SQL query string based on the `configuredQuery` object.\n * @function generateQueryText\n * @param {Object} configuredQuery - The query configuration object used to generate the SQL query.\n * @param {string} configuredQuery.code - The unique code for the query.\n * @param {string} configuredQuery.uuid - The unique identifier for the query.\n * @param {number} configuredQuery.createdBy - The ID of the user who created the query.\n * @param {string} [configuredQuery.params] - The parameters for the query.\n * @param {string} configuredQuery.query - The actual SQL query text.\n * @param {string} [configuredQuery.description] - A description of the query.\n * @param {boolean} [configuredQuery.returnsResultSet] - Flag indicating if the query returns a result set.\n * @param {string} [configuredQuery.state] - The state of the query (e.g., 'ACTIVE').\n * @returns {void}\n */\n\n const generateQueryText = useCallback(() => {\n const publicKeyword = configuredQuery?.configJson?.includes(\"public\");\n setIsPublicKeyword(publicKeyword);\n // Delete existing event configuration\n let queryText = `DELETE FROM EVENT_CONFIGURATION WHERE uuid = '${configuredQuery.uuid}';\\n\\n`;\n\n // Insert new event configuration\n queryText += `INSERT INTO EVENT_CONFIGURATION (created_by, created_on, modified_by, modified_on, day, description, event_type, event_type_detail_id, form_type_id, hour, minute, name, config_json, state, trigger_when, event_type_detail_code, uuid)\\nVALUES (\\n`;\n queryText += `${configuredQuery.createdBy}, current_date, ${configuredQuery.createdBy}, current_date, `;\n\n queryText +=\n configuredQuery.day !== undefined && configuredQuery.day !== null\n ? `${configuredQuery.day}, `\n : \"null, \";\n queryText += configuredQuery.description\n ? `'${configuredQuery.description.replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += `'${configuredQuery.eventType}', `;\n queryText +=\n configuredQuery.eventTypeDetailId !== undefined &&\n configuredQuery.eventTypeDetailId !== null\n ? `${configuredQuery.eventTypeDetailId}, `\n : \"null, \";\n queryText +=\n configuredQuery.formTypeId !== undefined &&\n configuredQuery.formTypeId !== null\n ? `${configuredQuery.formTypeId}, `\n : \"null, \";\n queryText +=\n configuredQuery.hour !== undefined && configuredQuery.hour !== null\n ? `${configuredQuery.hour}, `\n : \"null, \";\n queryText +=\n configuredQuery.minute !== undefined && configuredQuery.minute !== null\n ? `${configuredQuery.minute}, `\n : \"null, \";\n queryText += `'${configuredQuery.name.replace(/'/g, \"''\")}', `;\n queryText += `'${configuredQuery.configJson.replace(/'/g, \"''\")}', `;\n queryText += `'${configuredQuery.state}', `;\n queryText +=\n configuredQuery.trigerWhen !== undefined &&\n configuredQuery.trigerWhen !== null\n ? `'${configuredQuery.trigerWhen}', `\n : \"null, \";\n queryText +=\n configuredQuery.eventTypeDetailCode !== undefined &&\n configuredQuery.eventTypeDetailCode !== null\n ? `${configuredQuery.eventTypeDetailCode}, `\n : \"null, \";\n queryText += `'${configuredQuery.uuid}');\\n`;\n\n if (\n configuredQuery.eventType === \"TIMMER_BASED\" &&\n configuredQuery.state !== \"INACTIVE\"\n ) {\n let nextDate = moment();\n switch (configuredQuery.trigerWhen) {\n case \"MONTHLY\":\n nextDate.add(1, \"months\").set({\n date: configuredQuery.day,\n hour: configuredQuery.hour || 0,\n minute: configuredQuery.minute || 0,\n second: 0,\n });\n break;\n case \"DAILY\":\n nextDate.add(getNextDate(configuredQuery), \"days\").set({\n hour: configuredQuery.hour || 0,\n minute: configuredQuery.minute || 0,\n second: 0,\n });\n break;\n case \"HOURLY\":\n nextDate\n .add(1, \"hours\")\n .set({ minute: getNextDate(configuredQuery), second: 0 });\n break;\n case \"MINUTE\":\n nextDate.add(configuredQuery.minute, \"minutes\").set({ second: 0 });\n break;\n default:\n }\n\n queryText += `\\nDELETE FROM TIMER_EVENT WHERE event_config_uuid = '${configuredQuery.uuid}' AND status = 'NEW';\\n\\n`;\n queryText += `INSERT INTO timer_event (event_config_uuid, processed, status, type, system_trigger_on)\\nVALUES (\\n`;\n queryText += `'${configuredQuery.uuid}', false, 'NEW', 'TIMER_EVENT', '${nextDate.format(\"MM-DD-yyyy HH:mm:ss\")}');\\n`;\n }\n\n // Handle notification configurations\n if (configuredQuery.configJson !== null) {\n const notificationConfigs = JSON.parse(configuredQuery.configJson);\n let firstDelete = true;\n\n notificationConfigs.forEach((config) => {\n if (config.conditions !== null && config.conditions.length > 0) {\n config.conditions.forEach((condition) => {\n if (\n condition.notificaitonConfigsType !== null &&\n condition.notificaitonConfigsType.length > 0\n ) {\n if (firstDelete) {\n queryText += `\\nDELETE FROM EVENT_CONFIGURATION_TYPE WHERE event_config_uuid = '${configuredQuery.uuid}';\\n`;\n firstDelete = false;\n }\n condition.notificaitonConfigsType.forEach((configType) => {\n queryText += `\\nINSERT INTO EVENT_CONFIGURATION_TYPE (id, base_date_field_name, event_config_uuid, day, email_subject, email_subject_parameter, hour, minute, mobile_notification_type, template, template_parameter, triger_when, type, user_field_name, family_field_name, member_field_name, query_master_id, query_master_param_json, query_code, sms_config_json, push_notification_config_json)\\nVALUES (\\n`;\n queryText += `'${configType.id}', `;\n queryText += configType.baseDateFieldName\n ? `'${configType.baseDateFieldName}', `\n : \"null, \";\n queryText += `'${configuredQuery.uuid}', `;\n queryText +=\n configType.day !== undefined && configType.day !== null\n ? `${configType.day}, `\n : \"null, \";\n queryText += configType.emailSubject\n ? `'${configType.emailSubject.replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += configType.emailSubjectParameter\n ? `'${configType.emailSubjectParameter}', `\n : \"null, \";\n queryText +=\n configType.hour !== undefined && configType.hour !== null\n ? `${configType.hour}, `\n : \"null, \";\n queryText +=\n configType.miniute !== undefined &&\n configType.miniute !== null\n ? `${configType.miniute}, `\n : \"null, \";\n queryText +=\n configType.mobileNotificationType !== undefined &&\n configType.mobileNotificationType !== null\n ? `${configType.mobileNotificationType}, `\n : \"null, \";\n queryText += configType.template\n ? `'${configType.template.replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += configType.templateParameter\n ? `'${configType.templateParameter.replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += configType.trigerWhen\n ? `'${configType.trigerWhen}', `\n : \"null, \";\n queryText += configType.type\n ? `'${configType.type}', `\n : \"null, \";\n queryText += configType.userFieldName\n ? `'${configType.userFieldName}', `\n : \"null, \";\n queryText += configType.familyFieldName\n ? `'${configType.familyFieldName}', `\n : \"null, \";\n queryText += configType.memberFieldName\n ? `'${configType.memberFieldName}', `\n : \"null, \";\n queryText +=\n configType.queryMasterId !== undefined &&\n configType.queryMasterId !== null\n ? `${configType.queryMasterId}, `\n : \"null, \";\n queryText +=\n configType.queryMasterParamJson !== undefined &&\n configType.queryMasterParamJson !== null\n ? `'${JSON.stringify(configType.queryMasterParamJson).replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += configType.queryCode\n ? `'${configType.queryCode}', `\n : \"null, \";\n queryText +=\n configType.smsConfigJson !== undefined &&\n configType.smsConfigJson !== null\n ? `'${JSON.stringify(configType.smsConfigJson).replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText +=\n configType.pushNotificationConfigJson !== undefined &&\n configType.pushNotificationConfigJson !== null\n ? `'${JSON.stringify(configType.pushNotificationConfigJson).replace(/'/g, \"''\")}'`\n : \"null\";\n queryText += \");\\n\";\n\n // Handle mobile notification configs\n if (\n configType.mobileNotificationConfigs &&\n configType.mobileNotificationConfigs.length > 0\n ) {\n queryText += `\\nDELETE FROM EVENT_MOBILE_CONFIGURATION WHERE notification_type_config_id = '${configType.id}';\\n`;\n configType.mobileNotificationConfigs.forEach(\n (mobileConfig) => {\n queryText += `\\nINSERT INTO EVENT_MOBILE_CONFIGURATION (id, notification_code, notification_type_config_id, number_of_days_added_for_due_date, number_of_days_added_for_expiry_date, number_of_days_added_for_on_date)\\nVALUES (\\n`;\n queryText += `'${mobileConfig.id}', '${mobileConfig.notificationCode}', '${mobileConfig.notificationTypeConfigId}', ${mobileConfig.numberOfDaysAddedForDueDate}, ${mobileConfig.numberOfDaysAddedForExpiryDate}, ${mobileConfig.numberOfDaysAddedForOnDate});\\n`;\n }\n );\n }\n });\n }\n });\n }\n });\n }\n\n // Insert sync system configuration master\n let eventConfigObj = {\n id: configuredQuery.id,\n name: configuredQuery.name,\n description: configuredQuery.description,\n eventType: configuredQuery.eventType,\n eventTypeDetailId: configuredQuery.eventTypeDetailId,\n formTypeId: configuredQuery.formTypeId,\n eventTypeDetailCode: configuredQuery.eventTypeDetailCode,\n trigerWhen: configuredQuery.trigerWhen,\n day: configuredQuery.day,\n hour: configuredQuery.hour,\n minute: configuredQuery.minute,\n state: configuredQuery.state,\n createdBy: configuredQuery.createdBy,\n createdOn: moment().valueOf(),\n notificationConfigDetails: JSON.parse(configuredQuery.configJson),\n status: null,\n completionTime: null,\n configJson: null,\n uuid: configuredQuery.uuid,\n };\n\n queryText += `\\nINSERT INTO SYNC_SYSTEM_CONFIGURATION_MASTER (feature_type, config_json, created_on, created_by, feature_uuid, feature_name)\\nVALUES (\\n`;\n queryText += `'EVENT_BUILDER', '${JSON.stringify(eventConfigObj).replace(/'/g, \"''\")}', current_date, ${configuredQuery.createdBy}, '${configuredQuery.uuid}', '${configuredQuery.name}');\\n`;\n setText(queryText);\n }, [configuredQuery]);\n\n /**\n *\n * Copies the generated query text to the clipboard and displays a success message.\n * @function copyQuery\n * @returns {void}\n */\n\n const getNextDate = function (eventObj) {\n const now = new Date();\n const eventDate = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate(),\n eventObj.hour,\n eventObj.minute\n );\n\n if (eventDate > now) {\n return 0;\n } else {\n return 1;\n }\n };\n\n const copyQuery = () => {\n navigator?.clipboard?.writeText(text).then(() => {\n showToast({ message: \"Query Copied\", type: \"success\" });\n onClose();\n });\n };\n\n /**\n * Triggers a download operation and toggles the confirmation dialog visibility.\n * The function assumes that `download` and `setOpenConfirm` are available in the current scope.\n * @function askForConfirmation\n * @returns {void}\n */\n\n const askForConfirmation = () => {\n download();\n setOpenConfirm((cur) => !cur);\n };\n\n const trackEvent = useTrackEvent();\n\n /**\n * Creates and triggers a download of a text file containing the query text.\n *\n * @function download\n * @returns {void}\n */\n\n const download = async () => {\n if (window.showSaveFilePicker) {\n try {\n const options = {\n suggestedName: `V${new Date().getTime()}__CHANGE_IN_${configuredQuery.code}.sql`,\n types: [\n {\n description: \"SQL Files\",\n accept: { \"text/plain\": [\".sql\"] },\n },\n ],\n };\n const handle = await window.showSaveFilePicker(options);\n const writable = await handle.createWritable();\n await writable.write(text);\n await writable.close();\n const blobSizeInKB = (\n new Blob([text], { type: \"text/plain\" }).size / 1024\n ).toFixed(2);\n trackEvent(\"file_download\", {\n file_type: \"sql\",\n file_name: handle.name,\n file_size: `${blobSizeInKB} KB`,\n download_status: \"success\",\n });\n showToast({\n message: \"Query Downloaded SuccessFully\",\n type: \"success\",\n });\n onClose();\n } catch (err) {\n console.error(\"Something went wrong while downloading: \", err);\n }\n } else {\n // fallback for browsers that do not support showSaveFilePicker\n const blob = new Blob([text], { type: \"text/plain\" });\n const blobSizeInKB = (blob.size / 1024).toFixed(2);\n const url = URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `V${new Date().getTime()}__CHANGE_IN_${configuredQuery.code}.sql`;\n document.body.appendChild(a);\n a.click();\n trackEvent(\"file_download\", {\n file_type: \"sql\",\n file_name: a.download,\n file_size: `${blobSizeInKB} KB`,\n download_status: \"success\",\n });\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n showToast({ message: \"Query Downloaded SuccessFully\", type: \"success\" });\n onClose();\n }\n };\n\n /**\n *\n * Handles the download process based on the presence of a public keyword in the query text.\n * @function handleDownload\n * @returns {void}\n */\n\n const handleDownload = () => {\n if (isPublicKeyword) {\n setOpenConfirm((cur) => !cur);\n } else {\n download();\n }\n };\n\n /**\n * `useEffect` Hook to Generate Query Text\n *\n * This effect hook is used to generate the SQL query text whenever the `configuredQuery` dependency changes.\n *\n * @function useEffect\n * @param {Object} configuredQuery - The query configuration object used to generate the SQL query text.\n * @param {function} generateQueryText - A function that generates the query text based on `configuredQuery`.\n */\n\n useEffect(() => {\n if (configuredQuery) {\n generateQueryText();\n }\n }, [configuredQuery]);\n return (\n <>\n <CustomConfirmationModal\n description={\n \"This Flyway contains keyword 'public'. Are you sure you want to download?\"\n }\n title={\"CONFIRM ACTION\"}\n handleClick={askForConfirmation}\n open={openConfirm}\n handleClose={() => setOpenConfirm((cur) => !cur)}\n dataTestId=\"showflywayquery-customconfirmationmodal-confirmation-modal\"\n />\n <Dialog\n open={open}\n onClose={onClose}\n fullWidth\n maxWidth=\"md\"\n data-testid={dataTestId}\n >\n <DialogTitle className=\"font-medium text-lg border-b p-2.5 px-5\">\n {translate(\"Flyway Query\")}\n </DialogTitle>\n <DialogContent>\n <TextField\n multiline\n rows={10}\n variant=\"outlined\"\n fullWidth\n value={text}\n sx={{\n \"& .MuiInputBase-input\": {\n fontSize: \"14px\",\n },\n \"& .MuiOutlinedInput-root\": {\n // fontSize: '14px'\n borderRadius: \"5px\",\n },\n }}\n slotProps={{\n input: {\n readOnly: true,\n },\n }}\n data-testid=\"showflywayquery-textfield-query-display\"\n />\n </DialogContent>\n <DialogActions>\n <Button\n onClick={handleDownload}\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n data-testid=\"showflywayquery-button-download-action\"\n >\n {translate(\"Download\")}\n </Button>\n <Button\n onClick={copyQuery}\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n data-testid=\"showflywayquery-button-copyquery-action\"\n >\n {translate(\"Copy Query\")}\n </Button>\n <Button\n onClick={onClose}\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n data-testid=\"showflywayquery-button-cancel-action\"\n >\n {translate(\"Cancel\")}\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n\nShowFlywayQuery.propTypes = {\n configuredQuery: PropTypes.any,\n open: PropTypes.any,\n onClose: PropTypes.any,\n dataTestId: PropTypes.any,\n};\n\nexport default ShowFlywayQuery;\n"],"names":["ShowFlywayQuery","configuredQuery","open","onClose","dataTestId","text","setText","useState","isPublicKeyword","setIsPublicKeyword","translate","useTranslateProvider","openConfirm","setOpenConfirm","generateQueryText","useCallback","publicKeyword","_a","queryText","nextDate","moment","getNextDate","notificationConfigs","firstDelete","config","condition","configType","mobileConfig","eventConfigObj","eventObj","now","copyQuery","showToast","askForConfirmation","download","cur","trackEvent","useTrackEvent","options","handle","writable","blobSizeInKB","err","blob","url","a","handleDownload","useEffect","jsxs","Fragment","jsx","CustomConfirmationModal","Dialog","DialogTitle","DialogContent","TextField","DialogActions","Button","PropTypes"],"mappings":"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"}