@argusoft/medplat-core 1.0.0
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.
- package/dist/AccessRights-sgIhYR30.js +1238 -0
- package/dist/AccessRights-sgIhYR30.js.map +1 -0
- package/dist/AddEditQueryBuilder-BaZxS2Cm.js +289 -0
- package/dist/AddEditQueryBuilder-BaZxS2Cm.js.map +1 -0
- package/dist/AddEditQueryBuilder.css +1 -0
- package/dist/AddFeatures-BxXCC6ex.js +212 -0
- package/dist/AddFeatures-BxXCC6ex.js.map +1 -0
- package/dist/AddLabelModal-DE3ploGD.js +734 -0
- package/dist/AddLabelModal-DE3ploGD.js.map +1 -0
- package/dist/AddMenuConfiguration-QWfpcnuP.js +2237 -0
- package/dist/AddMenuConfiguration-QWfpcnuP.js.map +1 -0
- package/dist/AddMenuConfiguration.css +1 -0
- package/dist/AddRoleDrawer-ZK1eejxI.js +453 -0
- package/dist/AddRoleDrawer-ZK1eejxI.js.map +1 -0
- package/dist/AppModal-BgZyfrd-.js +428 -0
- package/dist/AppModal-BgZyfrd-.js.map +1 -0
- package/dist/ChangePasswordModal-MV7g8tkA.js +176 -0
- package/dist/ChangePasswordModal-MV7g8tkA.js.map +1 -0
- package/dist/ConditionConfig-BqWe0NKO.js +395 -0
- package/dist/ConditionConfig-BqWe0NKO.js.map +1 -0
- package/dist/ConditionConfig.css +1 -0
- package/dist/EntityManagement-D-x6Qzal.js +50 -0
- package/dist/EntityManagement-D-x6Qzal.js.map +1 -0
- package/dist/EventConfigurations-jGCJ4LqP.js +384 -0
- package/dist/EventConfigurations-jGCJ4LqP.js.map +1 -0
- package/dist/EventConfigurations.css +1 -0
- package/dist/EventsExceptionModal-BF6E1Np7.js +200 -0
- package/dist/EventsExceptionModal-BF6E1Np7.js.map +1 -0
- package/dist/EventsSkeleton-BN7_0IGs.js +74 -0
- package/dist/EventsSkeleton-BN7_0IGs.js.map +1 -0
- package/dist/FeatureMenu-BYSRoNm0.js +249 -0
- package/dist/FeatureMenu-BYSRoNm0.js.map +1 -0
- package/dist/Features-CKMmuqcs.js +11 -0
- package/dist/Features-CKMmuqcs.js.map +1 -0
- package/dist/FlywayQuery-Cx2sly6g.js +169 -0
- package/dist/FlywayQuery-Cx2sly6g.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-CdCgDaAl.js +5299 -0
- package/dist/ImmunizationConfigurationBase-CdCgDaAl.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -0
- package/dist/ImmunizationConfigurationsList-CQnxWa09.js +335 -0
- package/dist/ImmunizationConfigurationsList-CQnxWa09.js.map +1 -0
- package/dist/ImmunizationSkeleton-D2tdv5k-.js +186 -0
- package/dist/ImmunizationSkeleton-D2tdv5k-.js.map +1 -0
- package/dist/LanguagesModal-rk6IGQwY.js +394 -0
- package/dist/LanguagesModal-rk6IGQwY.js.map +1 -0
- package/dist/ManageDynamicFeature-CeeqiS3K.js +4189 -0
- package/dist/ManageDynamicFeature-CeeqiS3K.js.map +1 -0
- package/dist/ManageEventConfiguration-BRXh51fc.js +1017 -0
- package/dist/ManageEventConfiguration-BRXh51fc.js.map +1 -0
- package/dist/ManageEventConfiguration.css +1 -0
- package/dist/ManageNotification-B4prX-9Z.js +6819 -0
- package/dist/ManageNotification-B4prX-9Z.js.map +1 -0
- package/dist/ManageRole-ByqBmjuc.js +699 -0
- package/dist/ManageRole-ByqBmjuc.js.map +1 -0
- package/dist/ManageTranslation-BTxvSYKb.js +616 -0
- package/dist/ManageTranslation-BTxvSYKb.js.map +1 -0
- package/dist/ManageTranslation.css +1 -0
- package/dist/ManageUser-PHiTNyF8.js +2160 -0
- package/dist/ManageUser-PHiTNyF8.js.map +1 -0
- package/dist/ManageUser.css +1 -0
- package/dist/MobileMenuManagement-DmQU5TTo.js +108 -0
- package/dist/MobileMenuManagement-DmQU5TTo.js.map +1 -0
- package/dist/MobileTypeEventConfigModal-BCp-SF4-.js +783 -0
- package/dist/MobileTypeEventConfigModal-BCp-SF4-.js.map +1 -0
- package/dist/NewServerManagement-5YcAtF-g.js +1002 -0
- package/dist/NewServerManagement-5YcAtF-g.js.map +1 -0
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +244 -0
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +1 -0
- package/dist/NotificationList-BkpOrCpM.js +400 -0
- package/dist/NotificationList-BkpOrCpM.js.map +1 -0
- package/dist/OtherTypeEventConfigModal-DPB8IYzj.js +2001 -0
- package/dist/OtherTypeEventConfigModal-DPB8IYzj.js.map +1 -0
- package/dist/QueryBuilder-Cus_mRwZ.js +378 -0
- package/dist/QueryBuilder-Cus_mRwZ.js.map +1 -0
- package/dist/QueryBuilder.css +1 -0
- package/dist/QueryManagement-DXA73N2j.js +671 -0
- package/dist/QueryManagement-DXA73N2j.js.map +1 -0
- package/dist/QueryManagement.css +1 -0
- package/dist/RoleManagement-CLaEJ90J.js +410 -0
- package/dist/RoleManagement-CLaEJ90J.js.map +1 -0
- package/dist/ServerSyncModal-uNjGCQJz.js +869 -0
- package/dist/ServerSyncModal-uNjGCQJz.js.map +1 -0
- package/dist/ShowFlywayQuery-DMsAbtOW.js +130 -0
- package/dist/ShowFlywayQuery-DMsAbtOW.js.map +1 -0
- package/dist/ShowFlywayQuery-DVRCd384.js +259 -0
- package/dist/ShowFlywayQuery-DVRCd384.js.map +1 -0
- package/dist/ShowQueryHistory-BDN0tzHg.js +190 -0
- package/dist/ShowQueryHistory-BDN0tzHg.js.map +1 -0
- package/dist/SubMenu-BHcSNSUF.js +187 -0
- package/dist/SubMenu-BHcSNSUF.js.map +1 -0
- package/dist/TableDetails-DzREeJkm.js +1508 -0
- package/dist/TableDetails-DzREeJkm.js.map +1 -0
- package/dist/TableList-B9hr05Hs.js +428 -0
- package/dist/TableList-B9hr05Hs.js.map +1 -0
- package/dist/TypeConfiguration-BYM8PjV9.js +117 -0
- package/dist/TypeConfiguration-BYM8PjV9.js.map +1 -0
- package/dist/UserList-BxB1tCwM.js +13042 -0
- package/dist/UserList-BxB1tCwM.js.map +1 -0
- package/dist/UserList.css +1 -0
- package/dist/UserListSkeleton-cglK2SaU.js +184 -0
- package/dist/UserListSkeleton-cglK2SaU.js.map +1 -0
- package/dist/WidgetList-BSApErov.js +188 -0
- package/dist/WidgetList-BSApErov.js.map +1 -0
- package/dist/_commonjsHelpers-BItOPCY9.js +29 -0
- package/dist/_commonjsHelpers-BItOPCY9.js.map +1 -0
- package/dist/i18next-CTOWN_jH.js +1394 -0
- package/dist/i18next-CTOWN_jH.js.map +1 -0
- package/dist/index.js +481 -0
- package/dist/index.js.map +1 -0
- package/dist/manageImmunization-B4swS745.js +1204 -0
- package/dist/manageImmunization-B4swS745.js.map +1 -0
- package/dist/manageImmunization.css +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,428 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { jsxs as o, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
import { useForm as S, Controller as g } from "react-hook-form";
|
|
4
|
+
import * as m from "yup";
|
|
5
|
+
import { yupResolver as C } from "@hookform/resolvers/yup";
|
|
6
|
+
import { FormControl as b, Typography as p, Select as E, MenuItem as a, Box as T, Button as d } from "@mui/material";
|
|
7
|
+
import u from "prop-types";
|
|
8
|
+
import "./ManageEventConfiguration-BRXh51fc.js";
|
|
9
|
+
import { useTranslateProvider as F } from "@/common/languageTranslator/TranslationContext";
|
|
10
|
+
import h from "@/common/services/util/GeneralUtil";
|
|
11
|
+
const I = ({ setType: i, onSubmit: y }) => {
|
|
12
|
+
var l;
|
|
13
|
+
const { translate: t } = F(), f = m.object().shape({
|
|
14
|
+
type: m.string().required("Type is Required")
|
|
15
|
+
}), {
|
|
16
|
+
control: x,
|
|
17
|
+
handleSubmit: N,
|
|
18
|
+
reset: n,
|
|
19
|
+
formState: { errors: r }
|
|
20
|
+
} = S({
|
|
21
|
+
resolver: C(f),
|
|
22
|
+
mode: "onChange"
|
|
23
|
+
}), v = () => {
|
|
24
|
+
y(), n(), i(null);
|
|
25
|
+
};
|
|
26
|
+
return /* @__PURE__ */ o("div", { children: [
|
|
27
|
+
/* @__PURE__ */ o(
|
|
28
|
+
b,
|
|
29
|
+
{
|
|
30
|
+
fullWidth: !0,
|
|
31
|
+
error: !!r.type,
|
|
32
|
+
className: "mb-2",
|
|
33
|
+
"data-testid": "typeconfigurationform-formcontrol-type",
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ o(p, { variant: "body2", className: "m-1", children: [
|
|
36
|
+
t("Type"),
|
|
37
|
+
/* @__PURE__ */ e("span", { className: "text-red-500 ml-1", children: "*" })
|
|
38
|
+
] }),
|
|
39
|
+
/* @__PURE__ */ e(
|
|
40
|
+
g,
|
|
41
|
+
{
|
|
42
|
+
name: "type",
|
|
43
|
+
control: x,
|
|
44
|
+
defaultValue: "",
|
|
45
|
+
render: ({ field: c }) => /* @__PURE__ */ o(
|
|
46
|
+
E,
|
|
47
|
+
{
|
|
48
|
+
...c,
|
|
49
|
+
size: "small",
|
|
50
|
+
displayEmpty: !0,
|
|
51
|
+
onChange: (s) => {
|
|
52
|
+
c.onChange(s.target.value), i(s.target.value);
|
|
53
|
+
},
|
|
54
|
+
"data-testid": "typeconfigurationform-select-type",
|
|
55
|
+
children: [
|
|
56
|
+
/* @__PURE__ */ e(a, { value: "", children: /* @__PURE__ */ e(p, { variant: "body2", children: t("Select") }) }),
|
|
57
|
+
/* @__PURE__ */ e(a, { className: "text-[14px] ", value: "SMS", children: t("SMS Notification") }),
|
|
58
|
+
/* @__PURE__ */ e(a, { className: "text-[14px]", value: "EMAIL", children: t("Email Notification") }),
|
|
59
|
+
/* @__PURE__ */ e(a, { className: "text-[14px]", value: "QUERY", children: t("Query") }),
|
|
60
|
+
/* @__PURE__ */ e(a, { className: "text-[14px]", value: "MOBILE", children: t("Mobile Notification") }),
|
|
61
|
+
/* @__PURE__ */ e(a, { className: "text-[14px]", value: "EXCEPTION", children: t("Exception") }),
|
|
62
|
+
/* @__PURE__ */ e(a, { className: "text-[14px]", value: "SYSTEM_FUNCTION", children: t("System Function") }),
|
|
63
|
+
/* @__PURE__ */ e(a, { className: "text-[14px]", value: "PUSH_NOTIFICATION", children: t("Push Notification") }),
|
|
64
|
+
(h.isEkavach || h.isPhmp) && /* @__PURE__ */ e(a, { className: "text-[14px]", value: "KAFKA_SYNC", children: t("Kafka Sync") })
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
),
|
|
70
|
+
(r == null ? void 0 : r.type) && /* @__PURE__ */ e(
|
|
71
|
+
"p",
|
|
72
|
+
{
|
|
73
|
+
className: "error-helper",
|
|
74
|
+
"data-testid": "typeconfigurationform-error-helper-type",
|
|
75
|
+
children: (l = r == null ? void 0 : r.type) == null ? void 0 : l.message
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
),
|
|
81
|
+
/* @__PURE__ */ o(T, { className: "flex items-center gap-1", children: [
|
|
82
|
+
/* @__PURE__ */ e(
|
|
83
|
+
d,
|
|
84
|
+
{
|
|
85
|
+
type: "button",
|
|
86
|
+
variant: "outlined",
|
|
87
|
+
color: "secondary",
|
|
88
|
+
onClick: () => {
|
|
89
|
+
i(null), n(), i(null);
|
|
90
|
+
},
|
|
91
|
+
"data-testid": "typeconfigurationform-button-clear",
|
|
92
|
+
children: t("Clear")
|
|
93
|
+
}
|
|
94
|
+
),
|
|
95
|
+
/* @__PURE__ */ e(
|
|
96
|
+
d,
|
|
97
|
+
{
|
|
98
|
+
variant: "contained",
|
|
99
|
+
color: "primary",
|
|
100
|
+
onClick: N(v),
|
|
101
|
+
"data-testid": "typeconfigurationform-button-add",
|
|
102
|
+
children: t("Add")
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
] })
|
|
106
|
+
] });
|
|
107
|
+
};
|
|
108
|
+
I.propTypes = {
|
|
109
|
+
setType: u.any,
|
|
110
|
+
// or PropTypes.shape({...}) for specific shape
|
|
111
|
+
onSubmit: u.any
|
|
112
|
+
// or PropTypes.shape({...}) for specific shape
|
|
113
|
+
};
|
|
114
|
+
export {
|
|
115
|
+
I as default
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=TypeConfiguration-BYM8PjV9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeConfiguration-BYM8PjV9.js","sources":["../src/views/Events/TypeConfiguration.jsx"],"sourcesContent":["import React from \"react\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport * as Yup from \"yup\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport {\n FormControl,\n Select,\n MenuItem,\n Button,\n Box,\n Typography,\n} from \"@mui/material\";\nimport PropTypes from \"prop-types\";\nimport \"./Styles/ManageEventConfiguration.scss\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\n\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\n/**\n * A form component for configuring event types.\n * @module TypeConfigurationForm\n * @param {Object} props - The props for the component.\n * @param {Function} props.setType - Function to set the selected type.\n * @param {Function} props.onSubmit - Function to handle form submission.\n * @returns {JSX.Element} The rendered form component.\n */\nconst TypeConfigurationForm = ({ setType, onSubmit }) => {\n const { translate } = useTranslateProvider();\n const validationSchema = Yup.object().shape({\n type: Yup.string().required(\"Type is Required\"),\n });\n\n const {\n control,\n handleSubmit,\n reset,\n formState: { errors },\n } = useForm({\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n /**\n * @function onFormSubmit\n * Handles form submission.\n * Calls the onSubmit function and resets the form.\n */\n const onFormSubmit = () => {\n onSubmit();\n reset();\n setType(null);\n };\n\n return (\n <div>\n <FormControl\n fullWidth\n error={!!errors.type}\n className=\"mb-2\"\n data-testid=\"typeconfigurationform-formcontrol-type\"\n >\n <Typography variant=\"body2\" className=\"m-1\">\n {translate(\"Type\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n\n <Controller\n name=\"type\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n size=\"small\"\n displayEmpty\n onChange={(e) => {\n field.onChange(e.target.value);\n setType(e.target.value);\n }}\n data-testid=\"typeconfigurationform-select-type\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">{translate(\"Select\")}</Typography>\n </MenuItem>\n <MenuItem className=\"text-[14px] \" value=\"SMS\">\n {translate(\"SMS Notification\")}\n </MenuItem>\n <MenuItem className=\"text-[14px]\" value=\"EMAIL\">\n {translate(\"Email Notification\")}\n </MenuItem>\n <MenuItem className=\"text-[14px]\" value=\"QUERY\">\n {translate(\"Query\")}\n </MenuItem>\n <MenuItem className=\"text-[14px]\" value=\"MOBILE\">\n {translate(\"Mobile Notification\")}\n </MenuItem>\n <MenuItem className=\"text-[14px]\" value=\"EXCEPTION\">\n {translate(\"Exception\")}\n </MenuItem>\n <MenuItem className=\"text-[14px]\" value=\"SYSTEM_FUNCTION\">\n {translate(\"System Function\")}\n </MenuItem>\n <MenuItem className=\"text-[14px]\" value=\"PUSH_NOTIFICATION\">\n {translate(\"Push Notification\")}\n </MenuItem>\n {(GeneralUtil.isEkavach || GeneralUtil.isPhmp) && (\n <MenuItem className=\"text-[14px]\" value=\"KAFKA_SYNC\">\n {translate(\"Kafka Sync\")}\n </MenuItem>\n )}\n </Select>\n )}\n />\n {errors?.type && (\n <p\n className=\"error-helper\"\n data-testid=\"typeconfigurationform-error-helper-type\"\n >\n {errors?.type?.message}\n </p>\n )}\n </FormControl>\n\n <Box className=\"flex items-center gap-1\">\n <Button\n type=\"button\"\n variant=\"outlined\"\n color=\"secondary\"\n onClick={() => {\n setType(null);\n reset();\n setType(null);\n }} // Clear form\n data-testid=\"typeconfigurationform-button-clear\"\n >\n {translate(\"Clear\")}\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSubmit(onFormSubmit)} // Handle submission without form reload\n data-testid=\"typeconfigurationform-button-add\"\n >\n {translate(\"Add\")}\n </Button>\n </Box>\n </div>\n );\n};\n\nexport default TypeConfigurationForm;\n\nTypeConfigurationForm.propTypes = {\n setType: PropTypes.any, // or PropTypes.shape({...}) for specific shape\n onSubmit: PropTypes.any, // or PropTypes.shape({...}) for specific shape\n};\n"],"names":["TypeConfigurationForm","setType","onSubmit","translate","useTranslateProvider","validationSchema","Yup","control","handleSubmit","reset","errors","useForm","yupResolver","onFormSubmit","jsxs","FormControl","Typography","jsx","Controller","field","Select","e","MenuItem","GeneralUtil","Box","Button","PropTypes"],"mappings":"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"}
|