@argusoft/medplat-core 1.0.14 → 1.0.15

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 (111) hide show
  1. package/dist/AccessRights-Bvd5Bm5K.js +1259 -0
  2. package/dist/AccessRights-Bvd5Bm5K.js.map +1 -0
  3. package/dist/{AddEditQueryBuilder-7JRplV5J.js → AddEditQueryBuilder-Bcjl5mXE.js} +2 -2
  4. package/dist/{AddEditQueryBuilder-7JRplV5J.js.map → AddEditQueryBuilder-Bcjl5mXE.js.map} +1 -1
  5. package/dist/{AddFeatures-CkTu7sOI.js → AddFeatures-CE5rBxEG.js} +2 -2
  6. package/dist/{AddFeatures-CkTu7sOI.js.map → AddFeatures-CE5rBxEG.js.map} +1 -1
  7. package/dist/{AddLabelModal-DE3ploGD.js → AddLabelModal-CB8E8cYG.js} +2 -2
  8. package/dist/{AddLabelModal-DE3ploGD.js.map → AddLabelModal-CB8E8cYG.js.map} +1 -1
  9. package/dist/{AddRoleDrawer-ZK1eejxI.js → AddRoleDrawer-SvntLdRu.js} +44 -43
  10. package/dist/AddRoleDrawer-SvntLdRu.js.map +1 -0
  11. package/dist/{AppModal-BgZyfrd-.js → AppModal-BKgIwe1h.js} +2 -2
  12. package/dist/{AppModal-BgZyfrd-.js.map → AppModal-BKgIwe1h.js.map} +1 -1
  13. package/dist/{ChangePasswordModalCore-DIe4rzW-.js → ChangePasswordModalCore-CTGy8Ttf.js} +2 -2
  14. package/dist/{ChangePasswordModalCore-DIe4rzW-.js.map → ChangePasswordModalCore-CTGy8Ttf.js.map} +1 -1
  15. package/dist/{ConditionConfig-GDCXIg3C.js → ConditionConfig-DB0FqwgG.js} +2 -2
  16. package/dist/{ConditionConfig-GDCXIg3C.js.map → ConditionConfig-DB0FqwgG.js.map} +1 -1
  17. package/dist/{EntityManagement-D-x6Qzal.js → EntityManagement-DQKXnEzz.js} +2 -2
  18. package/dist/{EntityManagement-D-x6Qzal.js.map → EntityManagement-DQKXnEzz.js.map} +1 -1
  19. package/dist/EventConfigurations-DZvSJ5EZ.js +395 -0
  20. package/dist/EventConfigurations-DZvSJ5EZ.js.map +1 -0
  21. package/dist/{EventsExceptionModal-BF6E1Np7.js → EventsExceptionModal-DsvngLi8.js} +2 -2
  22. package/dist/{EventsExceptionModal-BF6E1Np7.js.map → EventsExceptionModal-DsvngLi8.js.map} +1 -1
  23. package/dist/EventsSkeleton-DCXwwPbb.js +76 -0
  24. package/dist/EventsSkeleton-DCXwwPbb.js.map +1 -0
  25. package/dist/FeatureMenu-CLX8VNZ-.js +265 -0
  26. package/dist/FeatureMenu-CLX8VNZ-.js.map +1 -0
  27. package/dist/Features-Cpf1PDx0.js +13 -0
  28. package/dist/Features-Cpf1PDx0.js.map +1 -0
  29. package/dist/FileSaver.min-CN9EpL2h.js.map +1 -1
  30. package/dist/ImmunizationConfigurationsList-K2ddBpPJ.js +345 -0
  31. package/dist/ImmunizationConfigurationsList-K2ddBpPJ.js.map +1 -0
  32. package/dist/ImmunizationSkeleton-D2tdv5k-.js.map +1 -1
  33. package/dist/{LanguagesModal-rk6IGQwY.js → LanguagesModal-CX3oS8rk.js} +2 -2
  34. package/dist/{LanguagesModal-rk6IGQwY.js.map → LanguagesModal-CX3oS8rk.js.map} +1 -1
  35. package/dist/{ManageDynamicFeature-C2I7Ho7i.js → ManageDynamicFeature-CsIett5x.js} +2 -2
  36. package/dist/{ManageDynamicFeature-C2I7Ho7i.js.map → ManageDynamicFeature-CsIett5x.js.map} +1 -1
  37. package/dist/{ManageEventConfiguration-BJxS2Su0.js → ManageEventConfiguration-0YBDaxOI.js} +60 -60
  38. package/dist/ManageEventConfiguration-0YBDaxOI.js.map +1 -0
  39. package/dist/{ManageNotification-DMN2szWy.js → ManageNotification-EQgnOO0U.js} +632 -632
  40. package/dist/ManageNotification-EQgnOO0U.js.map +1 -0
  41. package/dist/{ManageRole-CuXmWQyp.js → ManageRole-Cbs9dUhc.js} +244 -191
  42. package/dist/ManageRole-Cbs9dUhc.js.map +1 -0
  43. package/dist/ManageTranslation-D9IScGhk.js +625 -0
  44. package/dist/ManageTranslation-D9IScGhk.js.map +1 -0
  45. package/dist/{ManageUser-Dr3ptCYp.js → ManageUser-C9uMe9av.js} +744 -735
  46. package/dist/ManageUser-C9uMe9av.js.map +1 -0
  47. package/dist/{MobileTypeEventConfigModal-ChhO_A4f.js → MobileTypeEventConfigModal-Ltm529jG.js} +2 -2
  48. package/dist/{MobileTypeEventConfigModal-ChhO_A4f.js.map → MobileTypeEventConfigModal-Ltm529jG.js.map} +1 -1
  49. package/dist/NotificationList-BZwvgsf6.js +402 -0
  50. package/dist/NotificationList-BZwvgsf6.js.map +1 -0
  51. package/dist/{OtherTypeEventConfigModal-ZnCGWm9v.js → OtherTypeEventConfigModal-dXt2qDg_.js} +2 -2
  52. package/dist/OtherTypeEventConfigModal-dXt2qDg_.js.map +1 -0
  53. package/dist/{QueryBuilder-BPfavHH9.js → QueryBuilder-DXexUIe8.js} +154 -148
  54. package/dist/QueryBuilder-DXexUIe8.js.map +1 -0
  55. package/dist/{QueryManagement-DXA73N2j.js → QueryManagement-BpIRH8hI.js} +228 -214
  56. package/dist/QueryManagement-BpIRH8hI.js.map +1 -0
  57. package/dist/RoleManagement-BThAL5LO.js +422 -0
  58. package/dist/RoleManagement-BThAL5LO.js.map +1 -0
  59. package/dist/SubMenu-BGznOP2a.js +191 -0
  60. package/dist/SubMenu-BGznOP2a.js.map +1 -0
  61. package/dist/TableDetails-DztbjsIA.js +2069 -0
  62. package/dist/TableDetails-DztbjsIA.js.map +1 -0
  63. package/dist/TableList-DYwotUDO.js +1425 -0
  64. package/dist/TableList-DYwotUDO.js.map +1 -0
  65. package/dist/{TypeConfiguration-C-lk8Szs.js → TypeConfiguration-DYbBG_hZ.js} +2 -2
  66. package/dist/{TypeConfiguration-C-lk8Szs.js.map → TypeConfiguration-DYbBG_hZ.js.map} +1 -1
  67. package/dist/{UserList-S5Q76wO7.js → UserList-BH6OpZvq.js} +410 -400
  68. package/dist/UserList-BH6OpZvq.js.map +1 -0
  69. package/dist/UserListSkeleton-cglK2SaU.js.map +1 -1
  70. package/dist/WidgetList-D-fIf3N2.js +200 -0
  71. package/dist/WidgetList-D-fIf3N2.js.map +1 -0
  72. package/dist/i18next-CTOWN_jH.js.map +1 -1
  73. package/dist/index.css +1 -1
  74. package/dist/index.js +13 -13
  75. package/dist/xlsx.min-D1LFqt_b.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/AccessRights-BMRM1u9S.js +0 -1228
  78. package/dist/AccessRights-BMRM1u9S.js.map +0 -1
  79. package/dist/AddRoleDrawer-ZK1eejxI.js.map +0 -1
  80. package/dist/EventConfigurations-jGCJ4LqP.js +0 -384
  81. package/dist/EventConfigurations-jGCJ4LqP.js.map +0 -1
  82. package/dist/EventsSkeleton-BN7_0IGs.js +0 -74
  83. package/dist/EventsSkeleton-BN7_0IGs.js.map +0 -1
  84. package/dist/FeatureMenu-Ds6lFg4w.js +0 -249
  85. package/dist/FeatureMenu-Ds6lFg4w.js.map +0 -1
  86. package/dist/Features-Cshdl06N.js +0 -12
  87. package/dist/Features-Cshdl06N.js.map +0 -1
  88. package/dist/ImmunizationConfigurationsList-CQnxWa09.js +0 -335
  89. package/dist/ImmunizationConfigurationsList-CQnxWa09.js.map +0 -1
  90. package/dist/ManageEventConfiguration-BJxS2Su0.js.map +0 -1
  91. package/dist/ManageNotification-DMN2szWy.js.map +0 -1
  92. package/dist/ManageRole-CuXmWQyp.js.map +0 -1
  93. package/dist/ManageTranslation-BTxvSYKb.js +0 -616
  94. package/dist/ManageTranslation-BTxvSYKb.js.map +0 -1
  95. package/dist/ManageUser-Dr3ptCYp.js.map +0 -1
  96. package/dist/NotificationList-BqibwMaM.js +0 -400
  97. package/dist/NotificationList-BqibwMaM.js.map +0 -1
  98. package/dist/OtherTypeEventConfigModal-ZnCGWm9v.js.map +0 -1
  99. package/dist/QueryBuilder-BPfavHH9.js.map +0 -1
  100. package/dist/QueryManagement-DXA73N2j.js.map +0 -1
  101. package/dist/RoleManagement-C0feJCuq.js +0 -410
  102. package/dist/RoleManagement-C0feJCuq.js.map +0 -1
  103. package/dist/SubMenu-DAfZC9Xi.js +0 -188
  104. package/dist/SubMenu-DAfZC9Xi.js.map +0 -1
  105. package/dist/TableDetails-DzREeJkm.js +0 -1508
  106. package/dist/TableDetails-DzREeJkm.js.map +0 -1
  107. package/dist/TableList-B9hr05Hs.js +0 -428
  108. package/dist/TableList-B9hr05Hs.js.map +0 -1
  109. package/dist/UserList-S5Q76wO7.js.map +0 -1
  110. package/dist/WidgetList-BSApErov.js +0 -188
  111. package/dist/WidgetList-BSApErov.js.map +0 -1
@@ -1,428 +0,0 @@
1
- import { jsxs as a, Fragment as ie, jsx as e } from "react/jsx-runtime";
2
- import { useTranslateProvider as se } from "@/common/languageTranslator/TranslationContext";
3
- import p from "@/common/fontAwesomeIcons/FontAwesomeIcons";
4
- import { Paper as N, Box as i, Typography as s, Button as b, Chip as j, TextField as F, InputAdornment as de, Divider as ce, List as pe, ListItem as ue, ListItemButton as fe, ListItemText as he, Tooltip as G, IconButton as K, Dialog as me, DialogTitle as xe, DialogContent as ye, Autocomplete as be, DialogActions as ge } from "@mui/material";
5
- import J from "@mui/material/Grid2";
6
- import u from "prop-types";
7
- import { useState as l, useEffect as X, Suspense as Ce, lazy as ve } from "react";
8
- import { useForm as Te } from "react-hook-form";
9
- const Ie = ve(() => import("./TableDetails-DzREeJkm.js"));
10
- function Se({
11
- tableList: t,
12
- tablesInfo: w,
13
- allTableList: x,
14
- allTablesInfo: D,
15
- formSubmitted: $,
16
- reloadComponents: H
17
- }) {
18
- const [W, V] = l(""), [g, C] = l(""), [v, Y] = l({}), [z, T] = l({}), [f, _] = l({}), [q, I] = l({}), y = t ? t.filter((o) => o.toLowerCase().includes(W.toLowerCase())) : [], [U, h] = l(!1), [Z, S] = l(!1), [d, M] = l(), [R, m] = l(!1), [L, O] = l(!1), [ee, P] = l(!1), { translate: A } = se();
19
- Te({
20
- defaultValues: {
21
- field1: "",
22
- field2: "",
23
- field3: ""
24
- }
25
- }), X(() => {
26
- let o = {}, n = {};
27
- C(t[0]), o = B(w), Y((r) => ({ ...r, ...o })), n = B(D), _((r) => ({ ...r, ...n }));
28
- }, [w, D]), X(() => {
29
- T(() => v[t[0]]), I(() => f[t[0]]);
30
- }, [v, f]);
31
- const oe = (o) => {
32
- const n = o.toLowerCase();
33
- return n.includes("int") || n.includes("timestamp") || n === "boolean" || n.includes("serial") || n.includes("date") ? "INTEGER" : (n.includes("char") || n.includes("text") || n.includes("varchar"), "TEXT");
34
- }, B = (o) => {
35
- const n = {};
36
- return o.forEach((r) => {
37
- const c = JSON.parse(r.columnInfo), te = Object.keys(c).map((Q) => ({
38
- name: Q,
39
- type: oe(c[Q])
40
- })), le = r.mediaConfiguration !== void 0 ? JSON.parse(r.mediaConfiguration) : null;
41
- n[r.tableName] = {
42
- columnInfo: te,
43
- modifiedOnQuery: r.modifiedOnQuery ? r.modifiedOnQuery : null,
44
- primaryKey: r.primaryKey ? r.primaryKey : null,
45
- selectQuery: r.selectQuery ? r.selectQuery : null,
46
- userData: r.userData !== void 0 ? r.userData : null,
47
- hasMedia: r.hasMedia !== void 0 ? r.hasMedia : null,
48
- mediaConfiguration: le,
49
- syncByDefault: r.syncByDefault ? r.syncByDefault : !1
50
- };
51
- }), n;
52
- }, re = () => {
53
- m(!1), S(!0), M();
54
- }, ne = () => {
55
- h(!1), m(!0);
56
- }, E = () => {
57
- S(!1);
58
- }, ae = () => {
59
- if (d) {
60
- const o = { ...f[d] };
61
- o && (o.columnInfo = []), C(d), T(() => o), I(() => f[d]), O(!0), m(!1), h(!0);
62
- }
63
- S(!1), M(() => "");
64
- }, k = (o) => {
65
- C(o), T(() => v[o]), I(() => f[o]), h(!1), m(!1), O(!1);
66
- };
67
- return /* @__PURE__ */ a(ie, { children: [
68
- /* @__PURE__ */ a(
69
- N,
70
- {
71
- elevation: 0,
72
- sx: {
73
- p: { xs: 2.5, md: 3 },
74
- mt: 2,
75
- mb: 3,
76
- border: "1px solid",
77
- borderColor: "divider",
78
- borderRadius: 3,
79
- backgroundColor: "background.paper"
80
- },
81
- children: [
82
- /* @__PURE__ */ a(i, { sx: { display: "flex", flexDirection: "column", gap: 3 }, children: [
83
- /* @__PURE__ */ a(
84
- i,
85
- {
86
- sx: {
87
- display: "flex",
88
- justifyContent: "space-between",
89
- alignItems: "flex-start",
90
- flexWrap: "wrap",
91
- gap: 2
92
- },
93
- children: [
94
- /* @__PURE__ */ a(i, { sx: { minWidth: { xs: "100%", lg: "40%" } }, children: [
95
- /* @__PURE__ */ e(s, { variant: "h5", sx: { fontWeight: 800, color: "text.primary", mb: 0.5 }, children: A("Database Management") }),
96
- /* @__PURE__ */ e(s, { variant: "body2", color: "text.secondary", children: "Manage synced tables, create new entities, and configure mobile database schemas." })
97
- ] }),
98
- /* @__PURE__ */ a(i, { sx: { display: "flex", alignItems: "center", gap: 1.5, flexWrap: "wrap" }, children: [
99
- /* @__PURE__ */ e(
100
- b,
101
- {
102
- variant: "outlined",
103
- size: "small",
104
- sx: {
105
- borderRadius: 2,
106
- fontWeight: 600,
107
- px: 2,
108
- textTransform: "none",
109
- borderColor: "divider",
110
- color: "text.primary",
111
- "&:hover": { backgroundColor: "action.hover", borderColor: "text.disabled" }
112
- },
113
- startIcon: /* @__PURE__ */ e(p, { iconName: "faRotate" }),
114
- onClick: () => re(),
115
- children: "Sync Table"
116
- }
117
- ),
118
- /* @__PURE__ */ e(
119
- b,
120
- {
121
- size: "small",
122
- variant: "contained",
123
- sx: {
124
- borderRadius: 2,
125
- fontWeight: 600,
126
- px: 2,
127
- boxShadow: "none",
128
- textTransform: "none"
129
- },
130
- startIcon: /* @__PURE__ */ e(p, { iconName: "faPlus" }),
131
- onClick: () => ne(),
132
- children: "Create Table"
133
- }
134
- )
135
- ] })
136
- ]
137
- }
138
- ),
139
- /* @__PURE__ */ a(
140
- i,
141
- {
142
- sx: {
143
- display: "flex",
144
- justifyContent: "space-between",
145
- alignItems: "center",
146
- flexWrap: "wrap",
147
- gap: 2,
148
- backgroundColor: "action.hover",
149
- p: 1.5,
150
- borderRadius: 2.5,
151
- border: "1px solid",
152
- borderColor: "divider"
153
- },
154
- children: [
155
- /* @__PURE__ */ a(i, { sx: { display: "flex", alignItems: "center", gap: 1.5 }, children: [
156
- /* @__PURE__ */ e(
157
- j,
158
- {
159
- label: `${(t == null ? void 0 : t.length) || 0} Synced`,
160
- size: "small",
161
- color: "primary",
162
- variant: "filled",
163
- sx: { fontWeight: 700, borderRadius: 2, px: 0.5 }
164
- }
165
- ),
166
- /* @__PURE__ */ e(
167
- j,
168
- {
169
- label: `${(x == null ? void 0 : x.length) || 0} Total`,
170
- size: "small",
171
- variant: "outlined",
172
- sx: { fontWeight: 600, borderRadius: 2, px: 0.5, borderColor: "divider" }
173
- }
174
- )
175
- ] }),
176
- /* @__PURE__ */ e(
177
- F,
178
- {
179
- value: W,
180
- size: "small",
181
- placeholder: "Search synced tables...",
182
- onChange: (o) => V(o.target.value),
183
- InputProps: {
184
- startAdornment: /* @__PURE__ */ e(de, { position: "start", children: /* @__PURE__ */ e(p, { iconName: "faMagnifyingGlass" }) }),
185
- sx: {
186
- backgroundColor: "background.paper",
187
- borderRadius: 2,
188
- minWidth: 260
189
- }
190
- }
191
- }
192
- )
193
- ]
194
- }
195
- )
196
- ] }),
197
- /* @__PURE__ */ e(ce, { sx: { my: 3 } }),
198
- /* @__PURE__ */ a(J, { container: !0, spacing: 2.5, children: [
199
- /* @__PURE__ */ e(J, { size: 3, children: /* @__PURE__ */ a(
200
- N,
201
- {
202
- variant: "outlined",
203
- sx: {
204
- borderRadius: 2.5,
205
- overflow: "hidden",
206
- maxHeight: "72vh",
207
- display: "flex",
208
- flexDirection: "column"
209
- },
210
- children: [
211
- /* @__PURE__ */ a(
212
- i,
213
- {
214
- sx: {
215
- px: 2,
216
- py: 1.5,
217
- backgroundColor: "action.hover",
218
- borderBottom: "1px solid",
219
- borderColor: "divider"
220
- },
221
- children: [
222
- /* @__PURE__ */ e(s, { variant: "subtitle2", sx: { fontWeight: 700, color: "text.primary" }, children: A("Synced Tables") }),
223
- /* @__PURE__ */ a(s, { variant: "caption", color: "text.secondary", children: [
224
- y.length,
225
- " of ",
226
- (t == null ? void 0 : t.length) || 0,
227
- " tables"
228
- ] })
229
- ]
230
- }
231
- ),
232
- /* @__PURE__ */ e(i, { sx: { overflowY: "auto", flex: 1 }, children: y.length ? /* @__PURE__ */ e(pe, { disablePadding: !0, children: y.map((o, n) => {
233
- const r = g === o;
234
- return /* @__PURE__ */ e(
235
- ue,
236
- {
237
- disablePadding: !0,
238
- secondaryAction: /* @__PURE__ */ a(
239
- i,
240
- {
241
- sx: {
242
- display: "flex",
243
- gap: 0.25,
244
- opacity: r ? 1 : 0,
245
- transition: "opacity 0.2s"
246
- },
247
- children: [
248
- /* @__PURE__ */ e(G, { title: "Edit table", arrow: !0, placement: "top", children: /* @__PURE__ */ e(
249
- K,
250
- {
251
- size: "small",
252
- onClick: (c) => {
253
- c.stopPropagation(), k(o), h(!0);
254
- },
255
- sx: {
256
- color: "primary.main",
257
- "&:hover": { backgroundColor: "primary.50" }
258
- },
259
- children: /* @__PURE__ */ e(p, { iconName: "faPen", className: "text-[0.75rem]" })
260
- }
261
- ) }),
262
- /* @__PURE__ */ e(G, { title: "Delete table", arrow: !0, placement: "top", children: /* @__PURE__ */ e(
263
- K,
264
- {
265
- size: "small",
266
- onClick: (c) => {
267
- c.stopPropagation(), k(o), P(!0);
268
- },
269
- sx: {
270
- color: "error.main",
271
- "&:hover": { backgroundColor: "error.50" }
272
- },
273
- children: /* @__PURE__ */ e(p, { iconName: "faTrash", className: "text-[0.75rem]" })
274
- }
275
- ) })
276
- ]
277
- }
278
- ),
279
- sx: {
280
- borderBottom: n === y.length - 1 ? "none" : "1px solid",
281
- borderColor: "divider",
282
- "&:hover .MuiBox-root": { opacity: "1 !important" }
283
- },
284
- children: /* @__PURE__ */ e(
285
- fe,
286
- {
287
- selected: r,
288
- onClick: () => k(o),
289
- sx: {
290
- py: 1,
291
- px: 2,
292
- transition: "all 0.15s ease",
293
- "&.Mui-selected": {
294
- backgroundColor: "primary.50",
295
- borderLeft: "3px solid",
296
- borderLeftColor: "primary.main",
297
- "&:hover": { backgroundColor: "primary.100" }
298
- },
299
- "&:hover": { backgroundColor: "action.hover" }
300
- },
301
- children: /* @__PURE__ */ e(
302
- he,
303
- {
304
- primary: /* @__PURE__ */ e(
305
- s,
306
- {
307
- variant: "body2",
308
- sx: {
309
- fontWeight: r ? 600 : 400,
310
- color: r ? "primary.dark" : "text.primary",
311
- fontSize: "0.82rem",
312
- overflow: "hidden",
313
- textOverflow: "ellipsis",
314
- whiteSpace: "nowrap",
315
- maxWidth: "160px"
316
- },
317
- children: o
318
- }
319
- )
320
- }
321
- )
322
- }
323
- )
324
- },
325
- n + 1
326
- );
327
- }) }) : /* @__PURE__ */ a(i, { sx: { p: 3, textAlign: "center" }, children: [
328
- /* @__PURE__ */ e(p, { iconName: "faInbox", className: "text-[2rem] text-gray-300" }),
329
- /* @__PURE__ */ e(s, { variant: "body2", color: "text.secondary", sx: { mt: 1 }, children: t.length < 1 ? "No tables synced" : "No tables match your search." })
330
- ] }) })
331
- ]
332
- }
333
- ) }),
334
- /* @__PURE__ */ e(Ce, { children: (!!g && !!z || R) && /* @__PURE__ */ e(
335
- Ie,
336
- {
337
- tableInfo: z,
338
- table: g,
339
- isEditMode: U,
340
- updateEditMode: h,
341
- tableCompleteInfo: q,
342
- formSubmitted: $,
343
- reloadComponents: H,
344
- isCreateTableMode: R,
345
- isSyncTableMode: L,
346
- updateCreateTableMode: m,
347
- openDeleteModal: ee,
348
- setOpenDeleteModal: P
349
- }
350
- ) })
351
- ] })
352
- ]
353
- }
354
- ),
355
- /* @__PURE__ */ a(
356
- me,
357
- {
358
- open: Z,
359
- onClose: E,
360
- maxWidth: "sm",
361
- fullWidth: !0,
362
- PaperProps: {
363
- sx: { borderRadius: 3, p: 1 }
364
- },
365
- children: [
366
- /* @__PURE__ */ a(xe, { sx: { fontWeight: 700, pb: 1 }, children: [
367
- "Sync a Table",
368
- /* @__PURE__ */ e(s, { variant: "body2", color: "text.secondary", children: "Select an existing database table to sync with the mobile app." })
369
- ] }),
370
- /* @__PURE__ */ e(ye, { children: /* @__PURE__ */ e(
371
- be,
372
- {
373
- options: x.filter((o) => !t.includes(o)),
374
- getOptionLabel: (o) => o,
375
- value: d,
376
- onChange: (o, n) => M(n),
377
- renderInput: (o) => /* @__PURE__ */ e(
378
- F,
379
- {
380
- ...o,
381
- label: "Table",
382
- placeholder: "Search and select a table...",
383
- size: "small",
384
- sx: { mt: 1 }
385
- }
386
- )
387
- }
388
- ) }),
389
- /* @__PURE__ */ a(ge, { sx: { px: 3, pb: 2 }, children: [
390
- /* @__PURE__ */ e(
391
- b,
392
- {
393
- onClick: E,
394
- variant: "outlined",
395
- size: "small",
396
- sx: { borderRadius: 2, textTransform: "none" },
397
- children: "Cancel"
398
- }
399
- ),
400
- /* @__PURE__ */ e(
401
- b,
402
- {
403
- variant: "contained",
404
- size: "small",
405
- onClick: () => ae(),
406
- disabled: !d,
407
- sx: { borderRadius: 2, textTransform: "none", boxShadow: "none" },
408
- children: "Sync Table"
409
- }
410
- )
411
- ] })
412
- ]
413
- }
414
- )
415
- ] });
416
- }
417
- Se.propTypes = {
418
- tableList: u.any,
419
- tablesInfo: u.any,
420
- allTableList: u.any,
421
- allTablesInfo: u.any,
422
- formSubmitted: u.bool,
423
- reloadComponents: u.any
424
- };
425
- export {
426
- Se as default
427
- };
428
- //# sourceMappingURL=TableList-B9hr05Hs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableList-B9hr05Hs.js","sources":["../src/views/Mobile/EntityManagement/TableList.jsx"],"sourcesContent":["import { useTranslateProvider } from '@/common/languageTranslator/TranslationContext';\nimport FontAwesomeIcons from '@/common/fontAwesomeIcons/FontAwesomeIcons';\nimport {\n Autocomplete,\n Box,\n Button,\n Chip,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n IconButton,\n InputAdornment,\n List,\n ListItem,\n ListItemButton,\n ListItemText,\n Paper,\n TextField,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport Grid from '@mui/material/Grid2';\nimport PropTypes from 'prop-types';\nimport React, { lazy, Suspense, useEffect, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nconst TableDetails = lazy(() => import('./TableDetails'));\n\nexport default function TableList({\n tableList,\n tablesInfo,\n allTableList,\n allTablesInfo,\n formSubmitted,\n reloadComponents,\n}) {\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedTable, setSelectedTable] = useState('');\n const [syncedTableInfo, setSyncedTableInfo] = useState({});\n const [tableInfo, setTableInfo] = useState({});\n const [allTableInfo, setAllTableInfo] = useState({});\n const [tableCompleteInfo, setTableCompleteInfo] = useState({});\n const filteredList = tableList\n ? tableList.filter((tableName) => tableName.toLowerCase().includes(searchQuery.toLowerCase()))\n : [];\n const [editMode, setEditMode] = useState(false);\n const [modalOpen, setModalOpen] = useState(false);\n const [tableForModal, setTableForModal] = useState();\n const [isCreateTableMode, setIsCreateTableMode] = useState(false);\n const [isSyncTableMode, setIsSyncTableMode] = useState(false);\n const [openDeleteModal, setOpenDeleteModal] = useState(false);\n const { translate } = useTranslateProvider();\n\n const {\n formState: { },\n } = useForm({\n defaultValues: {\n field1: '',\n field2: '',\n field3: '',\n },\n });\n\n useEffect(() => {\n let info1 = {};\n let info2 = {};\n setSelectedTable(tableList[0]);\n info1 = createTableObject(tablesInfo);\n setSyncedTableInfo((syncedTableInfo) => ({ ...syncedTableInfo, ...info1 }));\n info2 = createTableObject(allTablesInfo);\n setAllTableInfo((allTableInfo) => ({ ...allTableInfo, ...info2 }));\n }, [tablesInfo, allTablesInfo]);\n\n useEffect(() => {\n setTableInfo(() => syncedTableInfo[tableList[0]]);\n setTableCompleteInfo(() => allTableInfo[tableList[0]]);\n }, [syncedTableInfo, allTableInfo]);\n\n const mapToSQLiteType = (sqlType) => {\n const type = sqlType.toLowerCase();\n if (\n type.includes('int') ||\n type.includes('timestamp') ||\n type === 'boolean' ||\n type.includes('serial') ||\n type.includes('date')\n ) {\n return 'INTEGER';\n } else if (type.includes('char') || type.includes('text') || type.includes('varchar')) {\n return 'TEXT';\n }\n return 'TEXT';\n };\n\n const createTableObject = (tbInfo) => {\n const info = {};\n tbInfo.forEach((item) => {\n const parsedColumns = JSON.parse(item.columnInfo);\n const columnArray = Object.keys(parsedColumns).map((columnName) => ({\n name: columnName,\n type: mapToSQLiteType(parsedColumns[columnName]),\n }));\n\n const media = item.mediaConfiguration !== undefined ? JSON.parse(item.mediaConfiguration) : null;\n info[item.tableName] = {\n columnInfo: columnArray,\n modifiedOnQuery: item.modifiedOnQuery ? item.modifiedOnQuery : null,\n primaryKey: item.primaryKey ? item.primaryKey : null,\n selectQuery: item.selectQuery ? item.selectQuery : null,\n userData: item.userData !== undefined ? item.userData : null,\n hasMedia: item.hasMedia !== undefined ? item.hasMedia : null,\n mediaConfiguration: media,\n syncByDefault: item.syncByDefault ? item.syncByDefault : false,\n };\n });\n return info;\n };\n\n const handleAddTable = () => {\n setIsCreateTableMode(false);\n setModalOpen(true);\n setTableForModal();\n };\n\n const handleCreateTable = () => {\n setEditMode(false);\n setIsCreateTableMode(true);\n };\n\n const handleModalClose = () => {\n setModalOpen(false);\n };\n\n const handleTableSelect = () => {\n if (tableForModal) {\n const tableInfo = { ...allTableInfo[tableForModal] };\n if (tableInfo) {\n tableInfo.columnInfo = [];\n }\n setSelectedTable(tableForModal);\n setTableInfo(() => tableInfo);\n setTableCompleteInfo(() => allTableInfo[tableForModal]);\n setIsSyncTableMode(true);\n setIsCreateTableMode(false);\n setEditMode(true);\n }\n setModalOpen(false);\n setTableForModal(() => '');\n };\n\n const onTableChange = (tableName) => {\n setSelectedTable(tableName);\n setTableInfo(() => syncedTableInfo[tableName]);\n setTableCompleteInfo(() => allTableInfo[tableName]);\n setEditMode(false);\n setIsCreateTableMode(false);\n setIsSyncTableMode(false);\n };\n\n return (\n <>\n {/* ── Main Container with Paper wrapper (matching ManageAllForms) ── */}\n <Paper\n elevation={0}\n sx={{\n p: { xs: 2.5, md: 3 },\n mt: 2,\n mb: 3,\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: 3,\n backgroundColor: 'background.paper',\n }}\n >\n {/* ── Header Section ── */}\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n flexWrap: 'wrap',\n gap: 2,\n }}\n >\n <Box sx={{ minWidth: { xs: '100%', lg: '40%' } }}>\n <Typography variant=\"h5\" sx={{ fontWeight: 800, color: 'text.primary', mb: 0.5 }}>\n {translate('Database Management')}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Manage synced tables, create new entities, and configure mobile database schemas.\n </Typography>\n </Box>\n\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5, flexWrap: 'wrap' }}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n px: 2,\n textTransform: 'none',\n borderColor: 'divider',\n color: 'text.primary',\n '&:hover': { backgroundColor: 'action.hover', borderColor: 'text.disabled' },\n }}\n startIcon={<FontAwesomeIcons iconName={'faRotate'} />}\n onClick={() => handleAddTable()}\n >\n Sync Table\n </Button>\n <Button\n size=\"small\"\n variant=\"contained\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n px: 2,\n boxShadow: 'none',\n textTransform: 'none',\n }}\n startIcon={<FontAwesomeIcons iconName={'faPlus'} />}\n onClick={() => handleCreateTable()}\n >\n Create Table\n </Button>\n </Box>\n </Box>\n\n {/* ── Search & Stats Bar ── */}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: 2,\n backgroundColor: 'action.hover',\n p: 1.5,\n borderRadius: 2.5,\n border: '1px solid',\n borderColor: 'divider',\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>\n <Chip\n label={`${tableList?.length || 0} Synced`}\n size=\"small\"\n color=\"primary\"\n variant=\"filled\"\n sx={{ fontWeight: 700, borderRadius: 2, px: 0.5 }}\n />\n <Chip\n label={`${allTableList?.length || 0} Total`}\n size=\"small\"\n variant=\"outlined\"\n sx={{ fontWeight: 600, borderRadius: 2, px: 0.5, borderColor: 'divider' }}\n />\n </Box>\n\n <TextField\n value={searchQuery}\n size=\"small\"\n placeholder=\"Search synced tables...\"\n onChange={(e) => setSearchQuery(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <FontAwesomeIcons iconName=\"faMagnifyingGlass\" />\n </InputAdornment>\n ),\n sx: {\n backgroundColor: 'background.paper',\n borderRadius: 2,\n minWidth: 260,\n },\n }}\n />\n </Box>\n </Box>\n\n <Divider sx={{ my: 3 }} />\n\n {/* ── Content: List + Details Layout ── */}\n <Grid container spacing={2.5}>\n {/* ── Left Panel: Table List ── */}\n <Grid size={3}>\n <Paper\n variant=\"outlined\"\n sx={{\n borderRadius: 2.5,\n overflow: 'hidden',\n maxHeight: '72vh',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {/* List Header */}\n <Box\n sx={{\n px: 2,\n py: 1.5,\n backgroundColor: 'action.hover',\n borderBottom: '1px solid',\n borderColor: 'divider',\n }}\n >\n <Typography variant=\"subtitle2\" sx={{ fontWeight: 700, color: 'text.primary' }}>\n {translate('Synced Tables')}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {filteredList.length} of {tableList?.length || 0} tables\n </Typography>\n </Box>\n\n {/* Table List */}\n <Box sx={{ overflowY: 'auto', flex: 1 }}>\n {filteredList.length ? (\n <List disablePadding>\n {filteredList.map((tableName, index) => {\n const isSelected = selectedTable === tableName;\n return (\n <ListItem\n key={index + 1}\n disablePadding\n secondaryAction={\n <Box\n sx={{\n display: 'flex',\n gap: 0.25,\n opacity: isSelected ? 1 : 0,\n transition: 'opacity 0.2s',\n }}\n >\n <Tooltip title=\"Edit table\" arrow placement=\"top\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n onTableChange(tableName);\n setEditMode(true);\n }}\n sx={{\n color: 'primary.main',\n '&:hover': { backgroundColor: 'primary.50' },\n }}\n >\n <FontAwesomeIcons iconName={'faPen'} className=\"text-[0.75rem]\" />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Delete table\" arrow placement=\"top\">\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n onTableChange(tableName);\n setOpenDeleteModal(true);\n }}\n sx={{\n color: 'error.main',\n '&:hover': { backgroundColor: 'error.50' },\n }}\n >\n <FontAwesomeIcons iconName={'faTrash'} className=\"text-[0.75rem]\" />\n </IconButton>\n </Tooltip>\n </Box>\n }\n sx={{\n borderBottom: index === filteredList.length - 1 ? 'none' : '1px solid',\n borderColor: 'divider',\n '&:hover .MuiBox-root': { opacity: '1 !important' },\n }}\n >\n <ListItemButton\n selected={isSelected}\n onClick={() => onTableChange(tableName)}\n sx={{\n py: 1,\n px: 2,\n transition: 'all 0.15s ease',\n '&.Mui-selected': {\n backgroundColor: 'primary.50',\n borderLeft: '3px solid',\n borderLeftColor: 'primary.main',\n '&:hover': { backgroundColor: 'primary.100' },\n },\n '&:hover': { backgroundColor: 'action.hover' },\n }}\n >\n <ListItemText\n primary={\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: isSelected ? 600 : 400,\n color: isSelected ? 'primary.dark' : 'text.primary',\n fontSize: '0.82rem',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n maxWidth: '160px',\n }}\n >\n {tableName}\n </Typography>\n }\n />\n </ListItemButton>\n </ListItem>\n );\n })}\n </List>\n ) : (\n <Box sx={{ p: 3, textAlign: 'center' }}>\n <FontAwesomeIcons iconName=\"faInbox\" className=\"text-[2rem] text-gray-300\" />\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mt: 1 }}>\n {tableList.length < 1 ? 'No tables synced' : 'No tables match your search.'}\n </Typography>\n </Box>\n )}\n </Box>\n </Paper>\n </Grid>\n\n {/* ── Right Panel: Table Details ── */}\n <Suspense>\n {((!!selectedTable && !!tableInfo) || isCreateTableMode) && (\n <TableDetails\n tableInfo={tableInfo}\n table={selectedTable}\n isEditMode={editMode}\n updateEditMode={setEditMode}\n tableCompleteInfo={tableCompleteInfo}\n formSubmitted={formSubmitted}\n reloadComponents={reloadComponents}\n isCreateTableMode={isCreateTableMode}\n isSyncTableMode={isSyncTableMode}\n updateCreateTableMode={setIsCreateTableMode}\n openDeleteModal={openDeleteModal}\n setOpenDeleteModal={setOpenDeleteModal}\n ></TableDetails>\n )}\n </Suspense>\n </Grid>\n </Paper>\n\n {/* ── Sync Table Dialog (replacing raw Modal) ── */}\n <Dialog\n open={modalOpen}\n onClose={handleModalClose}\n maxWidth=\"sm\"\n fullWidth\n PaperProps={{\n sx: { borderRadius: 3, p: 1 },\n }}\n >\n <DialogTitle sx={{ fontWeight: 700, pb: 1 }}>\n Sync a Table\n <Typography variant=\"body2\" color=\"text.secondary\">\n Select an existing database table to sync with the mobile app.\n </Typography>\n </DialogTitle>\n <DialogContent>\n <Autocomplete\n options={allTableList.filter((x) => {\n return !tableList.includes(x);\n })}\n getOptionLabel={(option) => option}\n value={tableForModal}\n onChange={(_, newValue) => setTableForModal(newValue)}\n renderInput={(params) => (\n <TextField\n {...params}\n label=\"Table\"\n placeholder=\"Search and select a table...\"\n size=\"small\"\n sx={{ mt: 1 }}\n />\n )}\n />\n </DialogContent>\n <DialogActions sx={{ px: 3, pb: 2 }}>\n <Button\n onClick={handleModalClose}\n variant=\"outlined\"\n size=\"small\"\n sx={{ borderRadius: 2, textTransform: 'none' }}\n >\n Cancel\n </Button>\n <Button\n variant=\"contained\"\n size=\"small\"\n onClick={() => handleTableSelect()}\n disabled={!tableForModal}\n sx={{ borderRadius: 2, textTransform: 'none', boxShadow: 'none' }}\n >\n Sync Table\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n\nTableList.propTypes = {\n tableList: PropTypes.any,\n tablesInfo: PropTypes.any,\n allTableList: PropTypes.any,\n allTablesInfo: PropTypes.any,\n formSubmitted: PropTypes.bool,\n reloadComponents: PropTypes.any,\n};\n"],"names":["TableDetails","lazy","TableList","tableList","tablesInfo","allTableList","allTablesInfo","formSubmitted","reloadComponents","searchQuery","setSearchQuery","useState","selectedTable","setSelectedTable","syncedTableInfo","setSyncedTableInfo","tableInfo","setTableInfo","allTableInfo","setAllTableInfo","tableCompleteInfo","setTableCompleteInfo","filteredList","tableName","editMode","setEditMode","modalOpen","setModalOpen","tableForModal","setTableForModal","isCreateTableMode","setIsCreateTableMode","isSyncTableMode","setIsSyncTableMode","openDeleteModal","setOpenDeleteModal","translate","useTranslateProvider","useForm","useEffect","info1","info2","createTableObject","mapToSQLiteType","sqlType","type","tbInfo","info","item","parsedColumns","columnArray","columnName","media","handleAddTable","handleCreateTable","handleModalClose","handleTableSelect","onTableChange","jsxs","Fragment","Paper","Box","jsx","Typography","Button","FontAwesomeIcons","Chip","TextField","e","InputAdornment","Divider","Grid","List","index","isSelected","ListItem","Tooltip","IconButton","ListItemButton","ListItemText","Suspense","Dialog","DialogTitle","DialogContent","Autocomplete","x","option","_","newValue","params","DialogActions","PropTypes"],"mappings":"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"}