@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,130 +0,0 @@
1
- import { jsxs as d, Fragment as q, jsx as a } from "react/jsx-runtime";
2
- import { useTranslateProvider as R } from "@/common/languageTranslator/TranslationContext";
3
- import { showToast as v } from "@/common/toaster/toaster";
4
- import I from "@/hooks/useTrackEvent";
5
- import O from "@/views/custom-components/CustomConfirmationModal";
6
- import { Dialog as S, DialogTitle as D, DialogContent as F, TextField as A, DialogActions as B, Button as c } from "@mui/material";
7
- import p from "prop-types";
8
- import { useState as m, useCallback as M, useEffect as z } from "react";
9
- import N from "@/common/config/implementationConfig";
10
- const U = ({ configuredQuery: t, open: b, onClose: s }) => {
11
- const [n, C] = m(""), [_, T] = m(!1), [E, r] = m(!1), x = I(), { translate: i } = R(), y = N.queryBuilder.showClickhouseOption, w = M(() => {
12
- const o = t.query.includes("public");
13
- T(o);
14
- let e = `DELETE FROM QUERY_MASTER WHERE CODE='${t.code}';
15
-
16
- `;
17
- e += `INSERT INTO QUERY_MASTER (uuid, created_by, created_on, modified_by, modified_on, code, params, query, description, returns_result_set, state, is_mobile_query, is_public ${y ? ", is_clickhouse_query" : ""})
18
- VALUES (
19
- `, e += `'${t.uuid}', ${t.createdBy}, current_date, ${t.createdBy}, current_date, `, e += `'${t.code}',
20
- `, e += t.params ? `'${t.params}',
21
- ` : `null,
22
- `, e += `'${t.query.replace(/'/g, "''")}',
23
- `, e += t.description ? `'${t.description}',
24
- ` : `null,
25
- `, e += t.returnsResultSet !== void 0 ? `${t.returnsResultSet}, ` : "false, ", e += t.state ? `'${t.state}', ` : "'ACTIVE', ", e += ` ${t == null ? void 0 : t.isMobileQuery},`, e += `${t == null ? void 0 : t.isPublic}`, y && (e += `,${t.isClickhouseQuery || !1}`), e += ");", C(e);
26
- }, [t]), $ = () => {
27
- navigator.clipboard.writeText(n).then(() => {
28
- v({ message: "Query Copied", type: "success" }), s();
29
- });
30
- }, f = () => {
31
- u(), r((o) => !o);
32
- }, u = () => {
33
- const o = new Blob([n], { type: "text/plain" }), e = (o.size / 1024).toFixed(2), h = URL.createObjectURL(o), l = document.createElement("a");
34
- l.href = h, l.download = `V${(/* @__PURE__ */ new Date()).getTime()}__CHANGE_IN_${t.code}.sql`, document.body.appendChild(l), l.click(), x("file_download", {
35
- file_type: "sql",
36
- file_name: l.download,
37
- file_size: `${e} KB`,
38
- download_status: "success"
39
- }), document.body.removeChild(l), URL.revokeObjectURL(h), s();
40
- }, k = () => {
41
- _ ? r((o) => !o) : u();
42
- };
43
- return z(() => {
44
- t && w();
45
- }, [t, w]), /* @__PURE__ */ d(q, { children: [
46
- /* @__PURE__ */ a(
47
- O,
48
- {
49
- description: "This Flyway contains keyword 'public'. Are you sure you want to download?",
50
- title: "CONFIRM ACTION",
51
- handleClick: f,
52
- open: E,
53
- handleClose: () => r((o) => !o),
54
- dataTestId: "showflywayquery-customconfirmationmodal"
55
- }
56
- ),
57
- /* @__PURE__ */ d(S, { open: b, onClose: s, fullWidth: !0, maxWidth: "md", children: [
58
- /* @__PURE__ */ a(D, { className: "p-2.5 px-5 flex border-b font-medium text-lg", children: i("Flyway Query") }),
59
- /* @__PURE__ */ a(F, { children: /* @__PURE__ */ a(
60
- A,
61
- {
62
- multiline: !0,
63
- rows: 10,
64
- variant: "outlined",
65
- fullWidth: !0,
66
- value: n,
67
- sx: {
68
- "& .MuiInputBase-input": {
69
- fontSize: "14px"
70
- },
71
- "& .MuiOutlinedInput-root": {
72
- // fontSize: '14px'
73
- borderRadius: "5px"
74
- }
75
- },
76
- slotProps: {
77
- input: {
78
- readOnly: !0
79
- }
80
- },
81
- "data-testid": "showflywayquery-textfield"
82
- }
83
- ) }),
84
- /* @__PURE__ */ d(B, { children: [
85
- /* @__PURE__ */ a(
86
- c,
87
- {
88
- onClick: k,
89
- variant: "contained",
90
- size: "small",
91
- color: "primary",
92
- "data-testid": "showflywayquery-button-download",
93
- children: i("Download")
94
- }
95
- ),
96
- /* @__PURE__ */ a(
97
- c,
98
- {
99
- onClick: $,
100
- variant: "contained",
101
- size: "small",
102
- color: "primary",
103
- "data-testid": "showflywayquery-button-copyquery",
104
- children: i("Copy Query")
105
- }
106
- ),
107
- /* @__PURE__ */ a(
108
- c,
109
- {
110
- onClick: s,
111
- variant: "contained",
112
- color: "secondary",
113
- size: "small",
114
- "data-testid": "showflywayquery-button-cancel",
115
- children: i("Cancel")
116
- }
117
- )
118
- ] })
119
- ] })
120
- ] });
121
- };
122
- U.propTypes = {
123
- configuredQuery: p.any,
124
- open: p.any,
125
- onClose: p.any
126
- };
127
- export {
128
- U as default
129
- };
130
- //# sourceMappingURL=ShowFlywayQuery-tj42YQAS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShowFlywayQuery-tj42YQAS.js","sources":["../src/views/QueryBuilder/ShowFlywayQuery.jsx"],"sourcesContent":["import { useTranslateProvider } from '@/common/languageTranslator/TranslationContext';\nimport { showToast } from '@/common/toaster/toaster';\nimport useTrackEvent from '@/hooks/useTrackEvent';\nimport CustomConfirmationModal from '@/views/custom-components/CustomConfirmationModal';\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from '@mui/material';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport implementationConfig from \"@/common/config/implementationConfig\";\n\n/**\n * A React functional component that displays a configured Flyway query.\n * @mdoule 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 }) => {\n const [text, setText] = useState('');\n const [isPublicKeyword, setIsPublicKeyword] = useState(false);\n const [openConfirm, setOpenConfirm] = useState(false);\n const trackEvent = useTrackEvent();\n const { translate } = useTranslateProvider();\n const isClickhouseEnabledEnv = implementationConfig.queryBuilder.showClickhouseOption;\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.query.includes('public');\n setIsPublicKeyword(publicKeyword);\n\n let queryText = `DELETE FROM QUERY_MASTER WHERE CODE='${configuredQuery.code}';\\n\\n`;\n queryText += `INSERT INTO QUERY_MASTER (uuid, created_by, created_on, modified_by, modified_on, code, params, query, description, returns_result_set, state, is_mobile_query, is_public ${isClickhouseEnabledEnv ? ', is_clickhouse_query' : ''}) \\nVALUES ( \\n`;\n queryText += `'${configuredQuery.uuid}', ${configuredQuery.createdBy}, current_date, ${configuredQuery.createdBy}, current_date, `;\n queryText += `'${configuredQuery.code}', \\n`;\n\n queryText += configuredQuery.params ? `'${configuredQuery.params}', \\n` : 'null, \\n';\n queryText += `'${configuredQuery.query.replace(/'/g, \"''\")}', \\n`;\n queryText += configuredQuery.description ? `'${configuredQuery.description}', \\n` : 'null, \\n';\n queryText += configuredQuery.returnsResultSet !== undefined ? `${configuredQuery.returnsResultSet}, ` : 'false, ';\n queryText += configuredQuery.state ? `'${configuredQuery.state}', ` : `'ACTIVE', `;\n queryText += ` ${configuredQuery?.isMobileQuery},`;\n queryText += `${configuredQuery?.isPublic}`;\n if (isClickhouseEnabledEnv) queryText += `,${configuredQuery.isClickhouseQuery || false}`;\n queryText += ');';\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 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 /**\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 = () => {\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\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 onClose();\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, generateQueryText]);\n return (\n <>\n <CustomConfirmationModal\n description={\"This Flyway contains keyword 'public'. Are you sure you want to download?\"}\n title={'CONFIRM ACTION'}\n handleClick={askForConfirmation}\n open={openConfirm}\n handleClose={() => setOpenConfirm((cur) => !cur)}\n dataTestId=\"showflywayquery-customconfirmationmodal\"\n />\n <Dialog open={open} onClose={onClose} fullWidth maxWidth=\"md\">\n <DialogTitle className=\"p-2.5 px-5 flex border-b font-medium text-lg\">{translate('Flyway Query')}</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\"\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\"\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\"\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\"\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};\n\nexport default ShowFlywayQuery;\n"],"names":["ShowFlywayQuery","configuredQuery","open","onClose","text","setText","useState","isPublicKeyword","setIsPublicKeyword","openConfirm","setOpenConfirm","trackEvent","useTrackEvent","translate","useTranslateProvider","isClickhouseEnabledEnv","implementationConfig","generateQueryText","useCallback","publicKeyword","queryText","copyQuery","showToast","askForConfirmation","download","cur","blob","blobSizeInKB","url","a","handleDownload","useEffect","jsxs","Fragment","jsx","CustomConfirmationModal","Dialog","DialogTitle","DialogContent","TextField","DialogActions","Button","PropTypes"],"mappings":"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"}
@@ -1,190 +0,0 @@
1
- import { jsx as r, jsxs as e } from "react/jsx-runtime";
2
- import "react";
3
- import c from "prop-types";
4
- import { Modal as w, Box as s, TableContainer as f, Paper as N, Table as v, TableHead as q, TableRow as d, TableCell as l, TableBody as T, Typography as n, Button as y, Stack as C } from "@mui/material";
5
- import { showToast as u } from "@/common/toaster/toaster";
6
- import { useTranslateProvider as x } from "@/common/languageTranslator/TranslationContext";
7
- const D = ({ historyList: i, open: m, handleClose: h }) => {
8
- const p = (t) => t ? "Yes" : "No", g = (t) => {
9
- try {
10
- navigator.clipboard.writeText(t), u({
11
- message: "Query Copied",
12
- type: "success"
13
- });
14
- } catch (o) {
15
- console.error(o), u({
16
- message: "Error in copying query",
17
- type: "error"
18
- });
19
- }
20
- }, b = (t) => {
21
- const o = {
22
- year: "numeric",
23
- month: "2-digit",
24
- day: "2-digit",
25
- hour: "2-digit",
26
- minute: "2-digit",
27
- second: "2-digit",
28
- hour12: !0
29
- };
30
- return new Date(t).toLocaleDateString("en-GB", o);
31
- }, { translate: a } = x();
32
- return /* @__PURE__ */ r(w, { open: m, onClose: h, "data-testid": "showqueryhistory-modal", className: "z-[1301]", children: /* @__PURE__ */ e(s, { className: "absolute top-[10%] left-1/2 transform -translate-x-1/2 w-3/5 bg-white container-fluid", children: [
33
- /* @__PURE__ */ e(s, { className: "max-h-[360px] w-full overflow-y-auto overflow-x-hidden row", children: [
34
- /* @__PURE__ */ r(s, { className: "col-12 padding-left-right-0", children: /* @__PURE__ */ r(f, { component: N, children: /* @__PURE__ */ e(v, { "aria-label": "query history table", children: [
35
- /* @__PURE__ */ r(q, { children: /* @__PURE__ */ e(d, { children: [
36
- /* @__PURE__ */ r(l, { className: "w-[5%] text-left align-top", children: a("Version") }),
37
- /* @__PURE__ */ r(l, { className: "w-[30%] text-left align-top", children: a("Description") }),
38
- /* @__PURE__ */ r(l, { className: "w-[65%] text-left align-top", children: a("Query") })
39
- ] }) }),
40
- /* @__PURE__ */ r(T, { children: i && i.length > 0 ? i.map((t, o) => /* @__PURE__ */ e(d, { "data-testid": `showqueryhistory-tablerow-${o}`, children: [
41
- /* @__PURE__ */ r(
42
- l,
43
- {
44
- className: " text-left align-top",
45
- "data-testid": `showqueryhistory-tablecell-version-${o}`,
46
- children: i.length - o
47
- }
48
- ),
49
- /* @__PURE__ */ e(
50
- l,
51
- {
52
- className: " text-left align-top",
53
- "data-testid": `showqueryhistory-tablecell-description-${o}`,
54
- children: [
55
- /* @__PURE__ */ e(n, { variant: "body2", children: [
56
- /* @__PURE__ */ e("strong", { children: [
57
- a("Code"),
58
- ":"
59
- ] }),
60
- " ",
61
- t.oldCode || "N/A"
62
- ] }),
63
- /* @__PURE__ */ e(n, { variant: "body2", children: [
64
- /* @__PURE__ */ e("strong", { children: [
65
- a("Date Time"),
66
- ":"
67
- ] }),
68
- " ",
69
- b(t.action_tstamp_tx)
70
- ] }),
71
- /* @__PURE__ */ e(n, { variant: "body2", children: [
72
- /* @__PURE__ */ e("strong", { children: [
73
- a("description"),
74
- ":"
75
- ] }),
76
- " ",
77
- t.oldDescription || "N/A"
78
- ] }),
79
- /* @__PURE__ */ e(n, { variant: "body2", children: [
80
- /* @__PURE__ */ e("strong", { children: [
81
- a("Status"),
82
- ":"
83
- ] }),
84
- " ",
85
- t.oldState || "N/A"
86
- ] }),
87
- /* @__PURE__ */ e(n, { variant: "body2", children: [
88
- /* @__PURE__ */ e("strong", { children: [
89
- a("Parameters"),
90
- ":"
91
- ] }),
92
- " ",
93
- t.oldParams || "N/A"
94
- ] }),
95
- /* @__PURE__ */ e(n, { variant: "body2", children: [
96
- /* @__PURE__ */ e("strong", { children: [
97
- a("Returns Result Set"),
98
- ":"
99
- ] }),
100
- " ",
101
- p(t.oldReturnsResultSet)
102
- ] }),
103
- /* @__PURE__ */ e(n, { variant: "body2", children: [
104
- /* @__PURE__ */ e("strong", { children: [
105
- a("Is Public"),
106
- ":"
107
- ] }),
108
- " ",
109
- p(t.oldIsPublic)
110
- ] }),
111
- /* @__PURE__ */ e(n, { variant: "body2", children: [
112
- /* @__PURE__ */ e("strong", { children: [
113
- a("CRUD Op"),
114
- ":"
115
- ] }),
116
- t.action === "I" && "Insert",
117
- t.action === "U" && "Update",
118
- t.action === "D" && "Delete",
119
- t.action === "T" && "Truncate",
120
- !t.action && "N/A"
121
- ] })
122
- ]
123
- }
124
- ),
125
- /* @__PURE__ */ e(
126
- l,
127
- {
128
- className: " text-left align-top",
129
- "data-testid": `showqueryhistory-tablecell-query-${o}`,
130
- children: [
131
- /* @__PURE__ */ r(
132
- y,
133
- {
134
- variant: "contained",
135
- color: "primary",
136
- size: "small",
137
- onClick: () => g(t.oldQuery),
138
- "data-testid": `showqueryhistory-button-copyquery-${o}`,
139
- children: a("Copy Query")
140
- }
141
- ),
142
- /* @__PURE__ */ r(
143
- n,
144
- {
145
- variant: "body2",
146
- className: "whitespace-pre-wrap",
147
- "data-testid": `showqueryhistory-typography-query-${o}`,
148
- children: t.oldQuery
149
- }
150
- )
151
- ]
152
- }
153
- )
154
- ] }, o + 1)) : /* @__PURE__ */ r(d, { children: /* @__PURE__ */ r(l, { colSpan: 3, align: "center", children: a("No queries History") }) }) })
155
- ] }) }) }),
156
- /* @__PURE__ */ r(s, { className: "col-12 padding-left-right-0 flex justify-end p-2" })
157
- ] }),
158
- /* @__PURE__ */ r(
159
- C,
160
- {
161
- direction: "row",
162
- spacing: 2,
163
- justifyContent: "flex-end",
164
- mt: 1,
165
- mr: 2,
166
- mb: 1,
167
- "data-testid": "showqueryhistory-stack",
168
- children: /* @__PURE__ */ r(
169
- y,
170
- {
171
- variant: "contained",
172
- color: "secondary",
173
- onClick: h,
174
- "data-testid": "showqueryhistory-button-close",
175
- children: /* @__PURE__ */ r(n, { variant: "body2", children: a("Close") })
176
- }
177
- )
178
- }
179
- )
180
- ] }) });
181
- };
182
- D.propTypes = {
183
- historyList: c.any,
184
- open: c.any,
185
- handleClose: c.any
186
- };
187
- export {
188
- D as default
189
- };
190
- //# sourceMappingURL=ShowQueryHistory-BDN0tzHg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShowQueryHistory-BDN0tzHg.js","sources":["../src/views/QueryBuilder/ShowQueryHistory.jsx"],"sourcesContent":["import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Paper,\n Button,\n Typography,\n Box,\n Stack,\n Modal,\n} from '@mui/material';\nimport { showToast } from '@/common/toaster/toaster';\nimport { useTranslateProvider } from '@/common/languageTranslator/TranslationContext';\n\n/**\n * This component displays the query history in a modal or dialog format. It is designed to show a list of historical queries\n * that have been executed, providing users with the ability to view past queries.\n * @module ShowQueryHistory\n * @param {Object[]} historyList - An array of objects representing the history of queries. Each object should include details\n * about individual queries, such as query text, execution time, or any other relevant metadata.\n * @param {boolean} open - A boolean that determines whether the component/modal is currently open or closed.\n * @param {function} handleClose - A callback function to close the modal or dialog. It is triggered when the user performs\n * an action that requires closing the component.\n * @returns {JSX.Element}\n *\n */\n\nconst ShowQueryHistory = ({ historyList, open, handleClose }) => {\n /**\n * Converts a boolean value to a 'Yes' or 'No' string.\n *@function yesOrNo\n * @param {boolean} value - The boolean value to be converted.\n * @returns {string} Returns 'Yes' if the input value is true, and 'No' if the\n */\n\n const yesOrNo = (value) => (value ? 'Yes' : 'No');\n\n /**\n * Copies a given text value to the clipboard and shows a toast notification.\n * @function onCopyQuery\n * @param {string} value - The text value to be copied to the clipboard.\n * It should be a valid string that you want to copy.\n * @returns {void} This function does not return any value.\n */\n\n const onCopyQuery = (value) => {\n try {\n navigator.clipboard.writeText(value);\n showToast({\n message: 'Query Copied',\n type: 'success',\n });\n } catch (error) {\n console.error(error);\n showToast({\n message: 'Error in copying query',\n type: 'error',\n });\n }\n };\n\n /**\n * Formats a date string into a human-readable format.\n * @function formatDate\n * @param {string | Date} dateString - The date string or Date object to format.\n * It should be a valid date string or a Date object that can be parsed by JavaScript's Date constructor.\n * @returns {string} The formatted date string in the format \"dd/mm/yyyy, hh:mm:ss AM/PM\".\n */\n\n const formatDate = (dateString) => {\n const options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: true,\n };\n return new Date(dateString).toLocaleDateString('en-GB', options);\n };\n const { translate } = useTranslateProvider();\n\n return (\n <Modal open={open} onClose={handleClose} data-testid=\"showqueryhistory-modal\" className=\"z-[1301]\">\n <Box className=\"absolute top-[10%] left-1/2 transform -translate-x-1/2 w-3/5 bg-white container-fluid\">\n <Box className=\"max-h-[360px] w-full overflow-y-auto overflow-x-hidden row\">\n <Box className=\"col-12 padding-left-right-0\">\n <TableContainer component={Paper}>\n <Table aria-label=\"query history table\">\n <TableHead>\n <TableRow>\n <TableCell className=\"w-[5%] text-left align-top\">{translate('Version')}</TableCell>\n <TableCell className=\"w-[30%] text-left align-top\">{translate('Description')}</TableCell>\n <TableCell className=\"w-[65%] text-left align-top\">{translate('Query')}</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {historyList && historyList.length > 0 ? (\n historyList.map((history, index) => (\n <TableRow key={index + 1} data-testid={`showqueryhistory-tablerow-${index}`}>\n <TableCell\n className=\" text-left align-top\"\n data-testid={`showqueryhistory-tablecell-version-${index}`}\n >\n {historyList.length - index}\n </TableCell>\n <TableCell\n className=\" text-left align-top\"\n data-testid={`showqueryhistory-tablecell-description-${index}`}\n >\n <Typography variant=\"body2\">\n <strong>{translate('Code')}:</strong> {history.oldCode || 'N/A'}\n </Typography>\n <Typography variant=\"body2\">\n <strong>{translate('Date Time')}:</strong> {formatDate(history.action_tstamp_tx)}\n </Typography>\n <Typography variant=\"body2\">\n <strong>{translate('description')}:</strong> {history.oldDescription || 'N/A'}\n </Typography>\n <Typography variant=\"body2\">\n <strong>{translate('Status')}:</strong> {history.oldState || 'N/A'}\n </Typography>\n <Typography variant=\"body2\">\n <strong>{translate('Parameters')}:</strong> {history.oldParams || 'N/A'}\n </Typography>\n <Typography variant=\"body2\">\n <strong>{translate('Returns Result Set')}:</strong> {yesOrNo(history.oldReturnsResultSet)}\n </Typography>\n <Typography variant=\"body2\">\n <strong>{translate('Is Public')}:</strong> {yesOrNo(history.oldIsPublic)}\n </Typography>\n <Typography variant=\"body2\">\n <strong>{translate('CRUD Op')}:</strong>\n {history.action === 'I' && 'Insert'}\n {history.action === 'U' && 'Update'}\n {history.action === 'D' && 'Delete'}\n {history.action === 'T' && 'Truncate'}\n {!history.action && 'N/A'}\n </Typography>\n </TableCell>\n <TableCell\n className=\" text-left align-top\"\n data-testid={`showqueryhistory-tablecell-query-${index}`}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={() => onCopyQuery(history.oldQuery)}\n data-testid={`showqueryhistory-button-copyquery-${index}`}\n >\n {translate('Copy Query')}\n </Button>\n <Typography\n variant=\"body2\"\n className=\"whitespace-pre-wrap\"\n data-testid={`showqueryhistory-typography-query-${index}`}\n >\n {history.oldQuery}\n </Typography>\n </TableCell>\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={3} align=\"center\">\n {translate('No queries History')}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </TableContainer>\n </Box>\n <Box className=\"col-12 padding-left-right-0 flex justify-end p-2\"></Box>\n </Box>\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={1}\n mr={2}\n mb={1}\n data-testid=\"showqueryhistory-stack\"\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={handleClose}\n data-testid=\"showqueryhistory-button-close\"\n >\n <Typography variant=\"body2\">{translate('Close')}</Typography>\n </Button>\n </Stack>\n </Box>\n </Modal>\n );\n};\n\nShowQueryHistory.propTypes = {\n historyList: PropTypes.any,\n open: PropTypes.any,\n handleClose: PropTypes.any,\n};\nexport default ShowQueryHistory;\n"],"names":["ShowQueryHistory","historyList","open","handleClose","yesOrNo","value","onCopyQuery","showToast","error","formatDate","dateString","options","translate","useTranslateProvider","jsx","Modal","jsxs","Box","TableContainer","Paper","Table","TableHead","TableRow","TableCell","TableBody","history","index","Typography","Button","Stack","PropTypes"],"mappings":"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"}
@@ -1,191 +0,0 @@
1
- import { jsxs as u, Fragment as X, jsx as a } from "react/jsx-runtime";
2
- import { useState as n, Suspense as I, lazy as L } from "react";
3
- import { useSelector as Z } from "react-redux";
4
- import "@/assets/scss/scrollBar.scss";
5
- import { useTranslateProvider as _ } from "@/common/languageTranslator/TranslationContext";
6
- import { useTheme as ee, Typography as y, TextField as ae, TableContainer as te, Table as oe, TableBody as re, TableRow as ne, TableCell as le, List as M, ListItem as $, darken as se } from "@mui/material";
7
- import s from "@mui/material/Grid2";
8
- import t from "prop-types";
9
- import { useNavigate as ce } from "react-router-dom";
10
- import { FontAwesomeIcon as f } from "@fortawesome/react-fontawesome";
11
- import { faArrowsRotate as de, faPen as ie, faFloppyDisk as ue } from "@fortawesome/free-solid-svg-icons";
12
- import { S as me } from "./FeatureMenu-C3503UIX.js";
13
- import h from "@/common/services/util/GeneralUtil";
14
- const pe = L(() => import("./FlywayQuery-Cx2sly6g.js")), ye = L(() => import("./ServerSyncModal-92U3xtqI.js"));
15
- function fe({
16
- data: b,
17
- subMenuId: d,
18
- setSubMenuId: A,
19
- setSubMenuGroupName: D,
20
- setSubMenuFeatureVal: P,
21
- type: S,
22
- isLoading: R,
23
- isNewAPI: z,
24
- subMenuGroupName: q,
25
- rights: o
26
- }) {
27
- const [x, B] = n(""), [N, v] = n(!1), [C, g] = n(null), [w, G] = n(""), [k, F] = n(!1), [j, O] = n(), [Q, E] = n({}), [H, U] = n(""), m = ee().palette.divider, i = b.filter(
28
- (e) => e.name.toLowerCase().includes(x.toLowerCase())
29
- ), { translate: T } = _(), { user: l } = Z((e) => e.Authenticate), V = (l == null ? void 0 : l.roleCode) === "argusadmin" || (l == null ? void 0 : l.roleCode) === "medplatadmin", Y = ce(), J = (e, r, c) => {
30
- const p = r ? "DYNAMIC" : "STATIC", W = `addDynamicFeature?${new URLSearchParams({
31
- featureId: e,
32
- featureType: c,
33
- subMenuGroupName: q,
34
- staticOrDynamic: p
35
- }).toString()}`;
36
- Y(W, { state: { isNew: z } });
37
- }, K = (e, r, c) => {
38
- O(e), U(r), E(c), F(!0);
39
- };
40
- return /* @__PURE__ */ u(X, { children: [
41
- /* @__PURE__ */ a(me, { isLoading: R, children: /* @__PURE__ */ u(s, { container: !0, className: "flex flex-col w-full", children: [
42
- /* @__PURE__ */ a(s, { className: "p-2.5 flex-0", sx: { borderBottom: `1px solid ${m}` }, children: /* @__PURE__ */ a(y, { variant: "body2", className: "pl-1.5 font-bold pt-0.5", children: T("List of Sub Menus") }) }),
43
- /* @__PURE__ */ a(s, { className: "px-2 py-1 flex-0", sx: { borderBottom: `1px solid ${m}` }, children: /* @__PURE__ */ a(
44
- ae,
45
- {
46
- placeholder: "Search Features",
47
- variant: "outlined",
48
- size: "small",
49
- value: x,
50
- onChange: (e) => B(e.target.value),
51
- sx: {
52
- width: "100%",
53
- backgroundColor: (e) => e.palette.background.paper
54
- },
55
- "data-testid": "submenu-search-input"
56
- }
57
- ) }),
58
- /* @__PURE__ */ a(s, { width: "100%", className: "flex-1 ", children: /* @__PURE__ */ a(
59
- te,
60
- {
61
- className: "",
62
- style: { maxHeight: "calc(100vh - 300px)" },
63
- children: /* @__PURE__ */ a(oe, { children: /* @__PURE__ */ a(re, { children: /* @__PURE__ */ a(
64
- ne,
65
- {
66
- sx: {
67
- backgroundColor: (e) => e.palette.background.main
68
- },
69
- children: /* @__PURE__ */ a(le, { className: "p-0 h-full align-top", children: /* @__PURE__ */ a(s, { children: i.length ? /* @__PURE__ */ a(M, { className: "p-0 m-0", children: i == null ? void 0 : i.map(
70
- (e, r, c) => /* @__PURE__ */ u(
71
- $,
72
- {
73
- className: "flex justify-between px-4 py-2 transition-colors duration-300",
74
- onMouseEnter: () => g(r),
75
- onMouseLeave: () => g(null),
76
- onClick: () => {
77
- A(e.id), D(e.groupName), P(e.isNewFeature);
78
- },
79
- "data-testid": `submenu-list-item-${e.id}`,
80
- sx: {
81
- borderBottom: r === c.length - 1 ? "none" : `1px solid ${m}`,
82
- backgroundColor: (p) => d === e.id ? se(
83
- p.palette.background.default,
84
- 0.1
85
- ) : "inherit"
86
- },
87
- children: [
88
- /* @__PURE__ */ a(
89
- y,
90
- {
91
- variant: "body2",
92
- className: `m-0 ${d === e.id || C === r ? "font-bold" : "font-normal"} ${C === r ? "cursor-pointer" : "cursor-default"}`,
93
- children: e.name
94
- }
95
- ),
96
- e.isDynamicReport !== !0 && V && /* @__PURE__ */ u(s, { className: "flex flex-row", children: [
97
- e.isDynamicFeature && h.hasCheckRights(o == null ? void 0 : o["update.manage.featurelist"]) && /* @__PURE__ */ a(
98
- f,
99
- {
100
- size: "lg",
101
- icon: de,
102
- rotation: 90,
103
- onClick: () => K(
104
- e.id,
105
- e.navigationState,
106
- e
107
- ),
108
- className: "mr-2 text-[var(--color-primary)]"
109
- }
110
- ),
111
- h.hasCheckRights(o == null ? void 0 : o["update.manage.featurelist"]) && /* @__PURE__ */ a(
112
- "button",
113
- {
114
- onClick: () => J(
115
- e.id,
116
- e.isDynamicFeature,
117
- S
118
- ),
119
- disabled: e.id !== d,
120
- className: `mr-2 ${e.id !== d ? "text-gray-400 cursor-not-allowed" : "text-[var(--color-primary)]"}`,
121
- children: /* @__PURE__ */ a(
122
- f,
123
- {
124
- size: "lg",
125
- icon: ie,
126
- "data-testid": `submenu-edit-button-${e.id}`
127
- }
128
- )
129
- }
130
- ),
131
- h.hasCheckRights(o == null ? void 0 : o["update.manage.featurelist"]) && /* @__PURE__ */ a(
132
- f,
133
- {
134
- icon: ue,
135
- size: "lg",
136
- onClick: () => {
137
- v(!0), G(e.id);
138
- },
139
- "data-testid": `submenu-save-button-${e.id}`,
140
- className: "mr-1 text-[var(--color-primary)] cursor-pointer"
141
- }
142
- )
143
- ] })
144
- ]
145
- },
146
- e == null ? void 0 : e.id
147
- )
148
- ) }) : /* @__PURE__ */ a(M, { className: "p-0 m-0", children: /* @__PURE__ */ a($, { children: /* @__PURE__ */ a(y, { variant: "body2", className: " m-0", children: T("No features for search query") }) }) }) }) })
149
- }
150
- ) }) })
151
- }
152
- ) })
153
- ] }) }),
154
- N === !0 && /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a(
155
- pe,
156
- {
157
- "data-testid": "submenu-flywayquery",
158
- open: N,
159
- data: w ? b.find((e) => e.id === w) : {},
160
- type: S,
161
- handleClose: () => v(!1)
162
- }
163
- ) }),
164
- /* @__PURE__ */ a(I, { children: k && /* @__PURE__ */ a(
165
- ye,
166
- {
167
- id: j,
168
- selectedFeature: Q,
169
- navigationState: H,
170
- openServerSyncModal: k,
171
- openModalFunc: F
172
- }
173
- ) })
174
- ] });
175
- }
176
- fe.propTypes = {
177
- data: t.any,
178
- subMenuId: t.any,
179
- setSubMenuId: t.any,
180
- setSubMenuGroupName: t.any,
181
- setSubMenuFeatureVal: t.any,
182
- type: t.any,
183
- isLoading: t.any,
184
- isNewAPI: t.any,
185
- subMenuGroupName: t.any,
186
- rights: t.any
187
- };
188
- export {
189
- fe as default
190
- };
191
- //# sourceMappingURL=SubMenu-B072oEGb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubMenu-B072oEGb.js","sources":["../src/views/Features/SubMenu.jsx"],"sourcesContent":["import React, { lazy, Suspense, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport \"@/assets/scss/scrollBar.scss\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nconst FlywayQuery = lazy(() => import(\"./FlywayQuery\"));\nimport {\n darken,\n List,\n ListItem,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableRow,\n TextField,\n Typography,\n useTheme,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport PropTypes from \"prop-types\";\nimport { useNavigate } from \"react-router-dom\";\nconst ServerSyncModal = lazy(() => import(\"./ServerSyncModal\"));\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n faArrowsRotate,\n faFloppyDisk,\n faPen,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { SubMenuSkeleton } from \"./Skeletons/FeatureSkeletons\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\n\n/**\n * A component that renders a submenu interface.\n * @module SubMenu\n * @param {Object} props - The props object.\n * @param {Object} props.data - The data to be used or displayed within the submenu.\n * @param {string} props.subMenuId - The ID of the current submenu to display.\n * @param {Function} props.setSubMenuId - Function to update the submenu ID.\n * @param {Function} props.setSubMenuGroupName - Function to update the submenu Group name.\n * @param {Function} props.setSubMenuFeatureVal - Function to update the submenu state.\n * @param {string} props.type - The type of submenu or functionality to render.\n * @returns {JSX.Element} The rendered submenu component.\n */\nexport default function SubMenu({\n data,\n subMenuId,\n setSubMenuId,\n setSubMenuGroupName,\n setSubMenuFeatureVal,\n type,\n isLoading,\n isNewAPI,\n subMenuGroupName,\n rights,\n}) {\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [open, setOpen] = useState(false);\n const [hoveredIndex, setHoveredIndex] = useState(null);\n const [itemId, setItemId] = useState(\"\");\n const [openServerSyncModal, setOpenServerSyncModal] = useState(false);\n const [selectedFeatureId, setSelectedFeatureId] = useState();\n const [selectedFeature, setSelectedFeature] = useState({});\n const [navigationState, setNavigationState] = useState(\"\");\n const theme = useTheme();\n const borderColor = theme.palette.divider;\n const sortedFilteredFeatures = data.filter((feature) =>\n feature.name.toLowerCase().includes(searchQuery.toLowerCase()),\n );\n const { translate } = useTranslateProvider();\n const { user } = useSelector((state) => state.Authenticate);\n const isAdmin =\n user?.roleCode === \"argusadmin\" || user?.roleCode === \"medplatadmin\";\n\n const navigate = useNavigate();\n\n /**\n * Navigates to the edit feature page with the specified feature ID and type.\n * @function handleEdit\n * @param {string|number} id - The ID of the feature to be edited.\n * @param {string} type - The type of the feature to be edited.\n * @returns {void}\n */\n\n const handleEdit = (id, isDynamicFeature, type) => {\n const staticOrDynamic = isDynamicFeature ? \"DYNAMIC\" : \"STATIC\";\n const queryParams = new URLSearchParams({\n featureId: id,\n featureType: type,\n subMenuGroupName: subMenuGroupName,\n staticOrDynamic,\n }).toString();\n\n const url = `addDynamicFeature?${queryParams}`;\n\n navigate(url, { state: { isNew: isNewAPI } });\n };\n\n const handleServerSync = (id, navigationState, feature) => {\n setSelectedFeatureId(id);\n setNavigationState(navigationState);\n setSelectedFeature(feature);\n setOpenServerSyncModal(true);\n };\n\n return (\n <>\n <SubMenuSkeleton isLoading={isLoading}>\n <Grid container className=\"flex flex-col w-full\">\n <Grid className=\"p-2.5 flex-0\" sx={{ borderBottom: `1px solid ${borderColor}` }}>\n <Typography variant=\"body2\" className=\"pl-1.5 font-bold pt-0.5\">\n {translate(\"List of Sub Menus\")}\n </Typography>\n </Grid>\n\n <Grid className=\"px-2 py-1 flex-0\" sx={{ borderBottom: `1px solid ${borderColor}` }}>\n <TextField\n placeholder=\"Search Features\"\n variant=\"outlined\"\n size=\"small\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n sx={{\n width: \"100%\",\n backgroundColor: (theme) => theme.palette.background.paper,\n }}\n data-testid=\"submenu-search-input\"\n />\n </Grid>\n\n <Grid width={\"100%\"} className=\"flex-1 \">\n <TableContainer\n className=\"\"\n style={{ maxHeight: \"calc(100vh - 300px)\" }}\n >\n <Table>\n <TableBody>\n <TableRow\n sx={{\n backgroundColor: (theme) => theme.palette.background.main,\n }}\n >\n <TableCell className=\"p-0 h-full align-top\">\n <Grid>\n {sortedFilteredFeatures.length ? (\n <List className=\"p-0 m-0\">\n {sortedFilteredFeatures?.map(\n (item, index, array) => {\n return (\n <ListItem\n key={item?.id}\n className=\"flex justify-between px-4 py-2 transition-colors duration-300\"\n onMouseEnter={() => setHoveredIndex(index)}\n onMouseLeave={() => setHoveredIndex(null)}\n onClick={() => {\n setSubMenuId(item.id);\n setSubMenuGroupName(item.groupName);\n setSubMenuFeatureVal(item.isNewFeature);\n }}\n data-testid={`submenu-list-item-${item.id}`}\n sx={{\n borderBottom:\n index === array.length - 1 ? \"none\" : `1px solid ${borderColor}`,\n backgroundColor: (theme) =>\n subMenuId === item.id\n ? darken(\n theme.palette.background.default,\n 0.1,\n )\n : \"inherit\",\n }}\n >\n <Typography\n variant=\"body2\"\n className={`m-0 ${\n subMenuId === item.id ||\n hoveredIndex === index\n ? \"font-bold\"\n : \"font-normal\"\n } ${hoveredIndex === index ? \"cursor-pointer\" : \"cursor-default\"}`}\n >\n {item.name}\n </Typography>\n {item.isDynamicReport !== true && isAdmin && (\n <Grid className=\"flex flex-row\">\n {item.isDynamicFeature && GeneralUtil.hasCheckRights(rights?.['update.manage.featurelist']) && (\n <FontAwesomeIcon\n size=\"lg\"\n icon={faArrowsRotate}\n rotation={90}\n onClick={() =>\n handleServerSync(\n item.id,\n item.navigationState,\n item,\n )\n }\n className=\"mr-2 text-[var(--color-primary)]\"\n />\n )}\n {GeneralUtil.hasCheckRights(rights?.['update.manage.featurelist']) && (\n <button\n onClick={() =>\n handleEdit(\n item.id,\n item.isDynamicFeature,\n type,\n )\n }\n disabled={item.id !== subMenuId}\n className={`mr-2 ${\n item.id !== subMenuId\n ? \"text-gray-400 cursor-not-allowed\"\n : \"text-[var(--color-primary)]\"\n }`}\n >\n <FontAwesomeIcon\n size=\"lg\"\n icon={faPen}\n data-testid={`submenu-edit-button-${item.id}`}\n />\n </button>\n )}\n {GeneralUtil.hasCheckRights(rights?.['update.manage.featurelist']) && (\n <FontAwesomeIcon\n icon={faFloppyDisk}\n size=\"lg\"\n onClick={() => {\n setOpen(true);\n setItemId(item.id);\n }}\n data-testid={`submenu-save-button-${item.id}`}\n className=\"mr-1 text-[var(--color-primary)] cursor-pointer\"\n />\n )}\n </Grid>\n )}\n </ListItem>\n );\n },\n )}\n </List>\n ) : (\n <List className=\"p-0 m-0\">\n <ListItem>\n <Typography variant=\"body2\" className=\" m-0\">\n {translate(\"No features for search query\")}\n </Typography>\n </ListItem>\n </List>\n )}\n </Grid>\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </TableContainer>\n </Grid>\n </Grid>\n </SubMenuSkeleton>\n\n {open === true && (\n <Suspense>\n <FlywayQuery\n data-testid=\"submenu-flywayquery\"\n open={open}\n data={itemId ? data.find((data) => data.id === itemId) : {}}\n type={type}\n handleClose={() => setOpen(false)}\n />\n </Suspense>\n )}\n <Suspense>\n {openServerSyncModal && (\n <ServerSyncModal\n id={selectedFeatureId}\n selectedFeature={selectedFeature}\n navigationState={navigationState}\n openServerSyncModal={openServerSyncModal}\n openModalFunc={setOpenServerSyncModal}\n />\n )}\n </Suspense>\n </>\n );\n}\n\nSubMenu.propTypes = {\n data: PropTypes.any,\n subMenuId: PropTypes.any,\n setSubMenuId: PropTypes.any,\n setSubMenuGroupName: PropTypes.any,\n setSubMenuFeatureVal: PropTypes.any,\n type: PropTypes.any,\n isLoading: PropTypes.any,\n isNewAPI: PropTypes.any,\n subMenuGroupName: PropTypes.any,\n rights: PropTypes.any,\n};\n"],"names":["FlywayQuery","lazy","ServerSyncModal","SubMenu","data","subMenuId","setSubMenuId","setSubMenuGroupName","setSubMenuFeatureVal","type","isLoading","isNewAPI","subMenuGroupName","rights","searchQuery","setSearchQuery","useState","open","setOpen","hoveredIndex","setHoveredIndex","itemId","setItemId","openServerSyncModal","setOpenServerSyncModal","selectedFeatureId","setSelectedFeatureId","selectedFeature","setSelectedFeature","navigationState","setNavigationState","borderColor","useTheme","sortedFilteredFeatures","feature","translate","useTranslateProvider","user","useSelector","state","isAdmin","navigate","useNavigate","handleEdit","id","isDynamicFeature","staticOrDynamic","url","handleServerSync","jsxs","Fragment","jsx","SubMenuSkeleton","Grid","Typography","TextField","theme","TableContainer","Table","TableBody","TableRow","TableCell","List","item","index","array","ListItem","darken","GeneralUtil","FontAwesomeIcon","faArrowsRotate","faPen","faFloppyDisk","Suspense","PropTypes"],"mappings":"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"}