@argusoft/medplat-core 1.0.26 → 1.0.27

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 (63) hide show
  1. package/dist/{AccessRights-CupmTG3T.js → AccessRights-CHu27ZOw.js} +220 -217
  2. package/dist/AccessRights-CHu27ZOw.js.map +1 -0
  3. package/dist/{AddEditQueryBuilder-C8ZSkOF0.js → AddEditQueryBuilder-Brdnm6rQ.js} +2 -2
  4. package/dist/{AddEditQueryBuilder-C8ZSkOF0.js.map → AddEditQueryBuilder-Brdnm6rQ.js.map} +1 -1
  5. package/dist/{AddFeatures-CqE3v0BN.js → AddFeatures-C0Z29oSd.js} +2 -2
  6. package/dist/{AddFeatures-CqE3v0BN.js.map → AddFeatures-C0Z29oSd.js.map} +1 -1
  7. package/dist/{AddLabelModal-CB8E8cYG.js → AddLabelModal-DFllBVcd.js} +2 -2
  8. package/dist/{AddLabelModal-CB8E8cYG.js.map → AddLabelModal-DFllBVcd.js.map} +1 -1
  9. package/dist/{AppModal-BKgIwe1h.js → AppModal-CtG2GjD_.js} +2 -2
  10. package/dist/{AppModal-BKgIwe1h.js.map → AppModal-CtG2GjD_.js.map} +1 -1
  11. package/dist/{ChangePasswordModalCore-DTYWRTa-.js → ChangePasswordModalCore-CDxkeIIM.js} +2 -2
  12. package/dist/{ChangePasswordModalCore-DTYWRTa-.js.map → ChangePasswordModalCore-CDxkeIIM.js.map} +1 -1
  13. package/dist/{EventConfigurations-lPcZGpLi.js → EventConfigurations-kNtAj_WM.js} +76 -76
  14. package/dist/EventConfigurations-kNtAj_WM.js.map +1 -0
  15. package/dist/{FeatureMenu-DUZL32RI.js → FeatureMenu-jl7-Tk6y.js} +49 -49
  16. package/dist/FeatureMenu-jl7-Tk6y.js.map +1 -0
  17. package/dist/FileSaver.min-CN9EpL2h.js.map +1 -1
  18. package/dist/{ImmunizationConfigurationsList-K2ddBpPJ.js → ImmunizationConfigurationsList-DdSZicTP.js} +72 -73
  19. package/dist/{ImmunizationConfigurationsList-K2ddBpPJ.js.map → ImmunizationConfigurationsList-DdSZicTP.js.map} +1 -1
  20. package/dist/ImmunizationSkeleton-D2tdv5k-.js.map +1 -1
  21. package/dist/{LanguagesModal-CX3oS8rk.js → LanguagesModal-D6VfaGrl.js} +2 -2
  22. package/dist/{LanguagesModal-CX3oS8rk.js.map → LanguagesModal-D6VfaGrl.js.map} +1 -1
  23. package/dist/{ManageNotification-CSl02Wq7.js → ManageNotification-CaBAOhji.js} +2 -2
  24. package/dist/ManageNotification-CaBAOhji.js.map +1 -0
  25. package/dist/{ManageRole-B9bs_T00.js → ManageRole-CGYfglpo.js} +2 -2
  26. package/dist/{ManageRole-B9bs_T00.js.map → ManageRole-CGYfglpo.js.map} +1 -1
  27. package/dist/{ManageTranslation-D9IScGhk.js → ManageTranslation-B4C9-lWD.js} +74 -74
  28. package/dist/ManageTranslation-B4C9-lWD.js.map +1 -0
  29. package/dist/{ManageUser-AB3_Vfp_.js → ManageUser-AY1EUDLI.js} +600 -601
  30. package/dist/ManageUser-AY1EUDLI.js.map +1 -0
  31. package/dist/{NotificationList-D1U1LYnz.js → NotificationList-C3Vb_jKU.js} +73 -73
  32. package/dist/NotificationList-C3Vb_jKU.js.map +1 -0
  33. package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +1 -1
  34. package/dist/{QueryBuilder-DI0wCJbz.js → QueryBuilder-z7eqfd7D.js} +117 -119
  35. package/dist/QueryBuilder-z7eqfd7D.js.map +1 -0
  36. package/dist/{QueryManagement-CRykYGum.js → QueryManagement-BIhEDKuA.js} +114 -114
  37. package/dist/QueryManagement-BIhEDKuA.js.map +1 -0
  38. package/dist/{RoleManagement-BIiW9uTq.js → RoleManagement-BPl2cE27.js} +99 -99
  39. package/dist/RoleManagement-BPl2cE27.js.map +1 -0
  40. package/dist/{SubMenu-CM_4wNCR.js → SubMenu-DYxAPH2Z.js} +34 -34
  41. package/dist/SubMenu-DYxAPH2Z.js.map +1 -0
  42. package/dist/{UserList-2gGuDgNa.js → UserList-Bc8gYxRL.js} +397 -400
  43. package/dist/UserList-Bc8gYxRL.js.map +1 -0
  44. package/dist/{WidgetList-B7X8Awkg.js → WidgetList-Dw_FmbbE.js} +26 -26
  45. package/dist/WidgetList-Dw_FmbbE.js.map +1 -0
  46. package/dist/i18next-CTOWN_jH.js.map +1 -1
  47. package/dist/index.css +1 -1
  48. package/dist/index.js +10 -10
  49. package/dist/xlsx.min-D1LFqt_b.js.map +1 -1
  50. package/package.json +1 -1
  51. package/dist/AccessRights-CupmTG3T.js.map +0 -1
  52. package/dist/EventConfigurations-lPcZGpLi.js.map +0 -1
  53. package/dist/FeatureMenu-DUZL32RI.js.map +0 -1
  54. package/dist/ManageNotification-CSl02Wq7.js.map +0 -1
  55. package/dist/ManageTranslation-D9IScGhk.js.map +0 -1
  56. package/dist/ManageUser-AB3_Vfp_.js.map +0 -1
  57. package/dist/NotificationList-D1U1LYnz.js.map +0 -1
  58. package/dist/QueryBuilder-DI0wCJbz.js.map +0 -1
  59. package/dist/QueryManagement-CRykYGum.js.map +0 -1
  60. package/dist/RoleManagement-BIiW9uTq.js.map +0 -1
  61. package/dist/SubMenu-CM_4wNCR.js.map +0 -1
  62. package/dist/UserList-2gGuDgNa.js.map +0 -1
  63. package/dist/WidgetList-B7X8Awkg.js.map +0 -1
@@ -1,25 +1,25 @@
1
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 p, Suspense as _, lazy as k } from "react";
3
- import { useTranslateProvider as De } from "@/common/languageTranslator/TranslationContext";
4
- import { api as $ } from "@/common/interceptors/AxiosInterceptor";
5
- import { execute as N } from "@/common/services/GlobalApis";
6
- import Oe from "@/common/syncWithServer/SyncWithServerDialog";
7
- import { showToast as g } from "@/common/toaster/toaster";
8
- import Pe from "@/hooks/usePagination";
9
- import Re from "@/views/custom-components/CustomConfirmationModal";
10
- import { Box as Fe, Card as Be, Typography as J, TextField as He, Button as ze } from "@mui/material";
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
11
  import u from "@mui/material/Grid2";
12
12
  import Le from "@/hooks/useTrackEvent";
13
13
  import Me from "@/views/custom-components/CustomizedTable/CustomizedTableV2";
14
- import { FontAwesomeIcon as Y } from "@fortawesome/react-fontawesome";
15
- import { faBars as je, faPen as Ve } from "@fortawesome/free-solid-svg-icons";
16
- import W from "prop-types";
17
- import { useSelector as Ue } from "react-redux";
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
18
  import { getUseSkeleton as Je } from "@/store/reducers/SkeletonReducer";
19
19
  import { getAssignedFeatures as Ye } from "@/utils/feature";
20
20
  import We from "@/common/config/implementationConfig";
21
- import "@/common/services/util/GeneralUtil";
22
- import './QueryBuilder.css';const $e = (l) => $.put("/resource", l), St = (l) => $.post("/resource", l), G = ({ children: l, isLoading: b }) => !Ue(Je) || !b ? l : /* @__PURE__ */ d("div", { className: "flex flex-col gap-2", children: [
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
23
  /* @__PURE__ */ d("div", { className: "w-full justify-between flex-wrap flex flex-row pt-6", children: [
24
24
  /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t("div", { className: "bg-gray-300 animate-pulse rounded-sm h-[36px] w-[64px]" }) }),
25
25
  /* @__PURE__ */ d("div", { className: "flex", children: [
@@ -29,16 +29,15 @@ import './QueryBuilder.css';const $e = (l) => $.put("/resource", l), St = (l) =>
29
29
  ] }),
30
30
  /* @__PURE__ */ t("div", { className: "bg-gray-300 animate-pulse rounded-sm w-full h-100" })
31
31
  ] });
32
- G.propTypes = {
33
- children: W.any,
34
- isLoading: W.any
32
+ $.propTypes = {
33
+ children: Y.any,
34
+ isLoading: Y.any
35
35
  };
36
- const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => import("./ShowFlywayQuery-tj42YQAS.js")), Xe = k(() => import("./ShowQueryHistory-BDN0tzHg.js")), Ze = () => {
37
- var U;
38
- const l = Le(), [b, E] = s([]), [K, X] = s(!1), [A, Z] = s([]), [m, D] = s(1), [ee, te] = s(""), [re, se] = s(""), [oe, ae] = s({}), [ne, O] = s(!1), [ie, le] = s(""), [ce, P] = s(!1), [R, w] = s(null), [c, F] = s(null), [B, ue] = s(null), [n, de] = s({}), [ye, H] = s(!1), [he, z] = s({}), [fe, C] = s(!1), [L, M] = s(!1), [me, pe] = s(0), { translate: S } = De(), [i, ge] = s({}), v = Ae(i);
39
- p(() => {
40
- v.current = i;
41
- }, [i]);
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]);
42
41
  const be = We.queryBuilder.showClickhouseOption, T = [
43
42
  { field: "code", label: "Code", align: "left" },
44
43
  {
@@ -54,9 +53,9 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
54
53
  field: "isClickhouseQuery",
55
54
  label: "Is Clickhouse Query"
56
55
  }), T.push({ field: "Actions", label: "Actions" });
57
- const [q, y] = s(!1), h = 50, { data: j } = Pe({
58
- key: ["queries", B, m, K, i],
59
- queryFn: (e) => Q(e),
56
+ const [q, y] = s(!1), h = 50, { data: j } = Oe({
57
+ key: ["queries", B, m, G, a],
58
+ queryFn: (e) => I(e),
60
59
  currentPage: m,
61
60
  limit: h,
62
61
  searchString: B || null,
@@ -65,60 +64,59 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
65
64
  const r = A.filter((o) => o.uuid === e.uuid);
66
65
  z(r[0]), M((o) => !o), H(!0);
67
66
  }, Ce = (e) => {
68
- te(
67
+ ee(
69
68
  (e == null ? void 0 : e.state) === "ACTIVE" ? "Mark as Inactive" : "Mark as Active"
70
- ), se(
69
+ ), re(
71
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?"
72
71
  );
73
72
  const r = A.filter((o) => o.uuid === e.uuid);
74
- de(r[0]);
75
- }, Se = async () => {
76
- C((e) => !e);
73
+ ue(r[0]);
77
74
  }, ve = async () => {
75
+ v((e) => !e);
76
+ }, Se = async () => {
78
77
  try {
79
- let e = JSON.parse(JSON.stringify(n));
80
- e.state = (n == null ? void 0 : n.state) === "ACTIVE" ? "INACTIVE" : "ACTIVE", await $e(e), await I();
81
- const r = await Q({
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({
82
81
  limit: h,
83
82
  offset: (m - 1) * h,
84
83
  searchString: c || ""
85
84
  });
86
- x(r), X(n), C((o) => !o);
85
+ p({ message: "Query state changed successfully!!", type: "success" }), k(r), K(i), v((o) => !o);
87
86
  } catch (e) {
88
- console.error(e), g({ message: "Error in toggle state", type: "error" });
87
+ console.error(e), p({ message: "Error in toggle state", type: "error" });
89
88
  }
90
89
  }, Te = async () => {
91
90
  var e, r, o;
92
91
  try {
93
- const a = {
92
+ const n = {
94
93
  code: "retrieve_logged_actions_by_table_name_query_code",
95
94
  parameters: {
96
95
  tableName: "query_master",
97
- queryCode: n.code
96
+ queryCode: i.code
98
97
  }
99
- }, f = await N(a);
100
- ((r = (e = f == null ? void 0 : f.data) == null ? void 0 : e.result) == null ? void 0 : r.length) === 0 ? g({
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({
101
100
  message: "No Query History found for Query code",
102
101
  type: "warn"
103
- }) : (ae((o = f == null ? void 0 : f.data) == null ? void 0 : o.result), O((ke) => !ke));
104
- } catch (a) {
105
- console.error(a), g({ message: "Error in loading Query History", type: "error" });
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" });
106
105
  }
107
106
  }, qe = () => {
108
- le(n), P((e) => !e);
109
- }, Ie = () => {
110
- w(n == null ? void 0 : n.uuid);
111
- }, Qe = () => w(() => null), xe = () => {
112
- var r;
107
+ ie(i), O((e) => !e);
108
+ }, Qe = () => {
109
+ C(i == null ? void 0 : i.uuid);
110
+ }, Ie = () => C(() => null), ke = () => {
113
111
  const e = [
114
112
  {
115
113
  label: "",
116
- icon: /* @__PURE__ */ t(Y, { icon: je, size: "lg" }),
114
+ icon: /* @__PURE__ */ t(J, { icon: je, size: "lg" }),
117
115
  menuClick: Ce,
118
116
  menuItems: [
119
117
  {
120
- label: S(ee),
121
- onClick: Se
118
+ label: S(Z),
119
+ onClick: ve
122
120
  },
123
121
  {
124
122
  label: "Show Flyway Query",
@@ -130,28 +128,28 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
130
128
  },
131
129
  {
132
130
  label: "Sync With Server",
133
- onClick: Ie
131
+ onClick: Qe
134
132
  }
135
133
  ],
136
134
  dataTestId: "MenuIcon"
137
135
  }
138
136
  ];
139
- return (r = v.current) != null && r["update.admin.query"] && e.unshift({
137
+ return b.hasCheckRights(a == null ? void 0 : a["update.admin.query"], void 0, !0) && e.unshift({
140
138
  label: "",
141
- icon: /* @__PURE__ */ t(Y, { icon: Ve, size: "lg" }),
139
+ icon: /* @__PURE__ */ t(J, { icon: Ue, size: "lg" }),
142
140
  onClick: we,
143
141
  dataTestId: "EditIcon"
144
142
  }), e;
145
143
  };
146
- p(() => {
144
+ g(() => {
147
145
  const e = setTimeout(async () => {
148
- await I(), D(1), ue(c);
146
+ await Q(), R(1), ce(c);
149
147
  }, 1e3);
150
148
  return () => clearTimeout(e);
151
149
  }, [c]);
152
- const I = async () => {
150
+ const Q = async () => {
153
151
  try {
154
- const { data: e } = await N(
152
+ const { data: e } = await _(
155
153
  {
156
154
  code: "fetch_total_count_for_query_builder",
157
155
  parameters: {
@@ -161,15 +159,15 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
161
159
  },
162
160
  { showLoader: !1 }
163
161
  );
164
- pe(e.result[0].count);
162
+ me(e.result[0].count);
165
163
  } catch (e) {
166
164
  console.error(e);
167
165
  }
168
- }, Q = async (e) => {
166
+ }, I = async (e) => {
169
167
  try {
170
- if (i != null && i["view.admin.query"]) {
168
+ if (b.hasCheckRights(a == null ? void 0 : a["view.admin.query"], void 0, !0)) {
171
169
  y((o) => !o);
172
- const { data: r } = await N(
170
+ const { data: r } = await _(
173
171
  {
174
172
  code: "fetch_queries_for_query_builder",
175
173
  parameters: {
@@ -188,113 +186,113 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
188
186
  }), y((o) => !o), r.result;
189
187
  }
190
188
  } catch (r) {
191
- g({ message: `error ${r}`, type: "error" }), y((o) => !o);
189
+ p({ message: `error ${r}`, type: "error" }), y((o) => !o);
192
190
  }
193
- }, _e = async () => {
191
+ }, xe = async () => {
194
192
  try {
195
193
  y(!0);
196
194
  const { data: e } = await Ye("techo.manage.query");
197
- ge(JSON.parse(e)), y(!1);
195
+ pe(JSON.parse(e)), y(!1);
198
196
  } catch (e) {
199
197
  console.error("Error loading rights:", e), y(!1);
200
198
  }
201
199
  };
202
- p(() => {
203
- _e();
200
+ g(() => {
201
+ xe();
204
202
  }, []);
205
- const x = (e) => {
203
+ const k = (e) => {
206
204
  const r = (e == null ? void 0 : e.flat()) || [];
207
- Z(r);
208
- const o = r.map((a) => ({
209
- ...a,
210
- query: `${a == null ? void 0 : a.query.slice(0, 50)}...`,
211
- returnsResultSet: a != null && a.returnsResultSet ? "Yes" : "No",
212
- isPublic: a != null && a.isPublic ? "Yes" : "No",
213
- isClickhouseQuery: a != null && a.isClickhouseQuery ? "Yes" : "No"
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"
214
212
  }));
215
213
  E(o);
216
214
  };
217
- p(() => {
218
- x(j);
215
+ g(() => {
216
+ k(j);
219
217
  }, [j]);
220
- const V = () => {
218
+ const U = () => {
221
219
  l("button_click", {
222
220
  button_name: "querybuilder-add-button",
223
221
  button_type: "navigate",
224
222
  button_id: "querybuilder-add-button"
225
223
  }), M((e) => !e), H(!1), z({});
226
- }, Ne = async () => {
224
+ }, _e = async () => {
227
225
  try {
228
226
  if (c !== "")
229
227
  F("");
230
228
  else {
231
- await I();
232
- const e = await Q({
229
+ await Q();
230
+ const e = await I({
233
231
  limit: h,
234
232
  offset: (m - 1) * h,
235
233
  searchString: c || ""
236
234
  });
237
- x(e);
235
+ k(e);
238
236
  }
239
237
  } catch (e) {
240
238
  console.error(e);
241
239
  }
242
240
  };
243
- return !q && !((U = v.current) != null && U["view.admin.query"]) ? /* @__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(J, { 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: [
244
- /* @__PURE__ */ t(_, { children: L && /* @__PURE__ */ t(
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(
245
243
  Ge,
246
244
  {
247
- loadInitialState: Ne,
248
- isEditMode: ye,
249
- editRow: he,
245
+ loadInitialState: _e,
246
+ isEditMode: de,
247
+ editRow: ye,
250
248
  open: L,
251
- close: V,
249
+ close: U,
252
250
  "data-testid": "querybuilder-addeditquerybuilder"
253
251
  }
254
252
  ) }),
255
- R && /* @__PURE__ */ t(
256
- Oe,
253
+ P && /* @__PURE__ */ t(
254
+ De,
257
255
  {
258
- isOpen: !!w,
259
- handleClose: Qe,
260
- featureUUID: R,
256
+ isOpen: !!C,
257
+ handleClose: Ie,
258
+ featureUUID: P,
261
259
  dataTestId: "querybuilder-syncwithserverdialog"
262
260
  }
263
261
  ),
264
- /* @__PURE__ */ t(_, { children: /* @__PURE__ */ t(
262
+ /* @__PURE__ */ t(x, { children: /* @__PURE__ */ t(
265
263
  Ke,
266
264
  {
267
- configuredQuery: ie,
268
- open: ce,
265
+ configuredQuery: ne,
266
+ open: le,
269
267
  onClose: () => {
270
- P((e) => !e);
268
+ O((e) => !e);
271
269
  },
272
270
  "data-testid": "querybuilder-showflywayquery"
273
271
  }
274
272
  ) }),
275
- /* @__PURE__ */ t(_, { children: /* @__PURE__ */ t(
273
+ /* @__PURE__ */ t(x, { children: /* @__PURE__ */ t(
276
274
  Xe,
277
275
  {
278
- historyList: oe,
279
- open: ne,
276
+ historyList: se,
277
+ open: ae,
280
278
  handleClose: () => {
281
- O((e) => !e);
279
+ D((e) => !e);
282
280
  },
283
281
  "data-testid": "querybuilder-showqueryhistory"
284
282
  }
285
283
  ) }),
286
284
  /* @__PURE__ */ t(
287
- Re,
285
+ Pe,
288
286
  {
289
- description: re,
287
+ description: te,
290
288
  title: "CONFIRM ACTION",
291
- handleClick: ve,
292
- open: fe,
293
- handleClose: () => C((e) => !e),
289
+ handleClick: Se,
290
+ open: he,
291
+ handleClose: () => v((e) => !e),
294
292
  dataTestId: "querybuilder-customconfirmationmodal"
295
293
  }
296
294
  ),
297
- /* @__PURE__ */ t(u, { children: /* @__PURE__ */ t(G, { isLoading: q, children: /* @__PURE__ */ d(Ee, { children: [
295
+ /* @__PURE__ */ t(u, { children: /* @__PURE__ */ t($, { isLoading: q, children: /* @__PURE__ */ d(Ee, { children: [
298
296
  /* @__PURE__ */ d(
299
297
  u,
300
298
  {
@@ -304,7 +302,7 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
304
302
  alignItems: "center",
305
303
  children: [
306
304
  /* @__PURE__ */ t(u, { item: "true", mt: 1, children: /* @__PURE__ */ t(
307
- J,
305
+ V,
308
306
  {
309
307
  variant: "body2",
310
308
  className: "font-bold font-sans text-lg uppercase text-customBlue",
@@ -338,12 +336,12 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
338
336
  "data-testid": "querybuilder-search-textfield"
339
337
  }
340
338
  ) }),
341
- (i == null ? void 0 : i["create.admin.query"]) && /* @__PURE__ */ t(u, { item: "true", className: "flex items-center", children: /* @__PURE__ */ t(
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(
342
340
  ze,
343
341
  {
344
342
  size: "small",
345
343
  variant: "contained",
346
- onClick: V,
344
+ onClick: U,
347
345
  "data-testid": "querybuilder-add-button",
348
346
  children: S("Add")
349
347
  }
@@ -356,16 +354,16 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
356
354
  Me,
357
355
  {
358
356
  columns: T,
359
- tableData: b,
360
- actions: xe(),
357
+ tableData: w,
358
+ actions: ke(),
361
359
  paginationConfig: {
362
360
  pagination: !0,
363
361
  rowsPerPageInTable: h,
364
362
  onPageChange: (e) => {
365
- D(e);
363
+ R(e);
366
364
  },
367
365
  currentPage: m,
368
- totalRows: me
366
+ totalRows: fe
369
367
  },
370
368
  dataTestId: "querybuilder-customizedtable",
371
369
  styleConfig: { tableStyle: { maxHeight: 65 } },
@@ -374,12 +372,12 @@ const Ge = k(() => import("./AddEditQueryBuilder-C8ZSkOF0.js")), Ke = k(() => im
374
372
  ) })
375
373
  ] }) }) })
376
374
  ] });
377
- }, vt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
375
+ }, St = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
378
376
  __proto__: null,
379
377
  default: Ze
380
378
  }, Symbol.toStringTag, { value: "Module" }));
381
379
  export {
382
- vt as Q,
383
- St as s
380
+ St as Q,
381
+ vt as s
384
382
  };
385
- //# sourceMappingURL=QueryBuilder-DI0wCJbz.js.map
383
+ //# sourceMappingURL=QueryBuilder-z7eqfd7D.js.map
@@ -0,0 +1 @@
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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"}