@argusoft/medplat-core 1.0.28 → 1.0.29
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-Zm8Obm4N.js +1284 -0
- package/dist/AccessRights-Zm8Obm4N.js.map +1 -0
- package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-v3TmGQee.js} +2 -2
- package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-v3TmGQee.js.map} +1 -1
- package/dist/AddMenuConfiguration-Ce91MhnU.js +8547 -0
- package/dist/AddMenuConfiguration-Ce91MhnU.js.map +1 -0
- package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
- package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-DutQAZOx.js} +2 -2
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js.map → ChangePasswordModalCore-DutQAZOx.js.map} +1 -1
- package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-B4Ffpgj3.js} +2 -2
- package/dist/ConditionConfig-B4Ffpgj3.js.map +1 -0
- package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
- package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
- package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-BJcURufo.js} +3 -3
- package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-BJcURufo.js.map} +1 -1
- package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-BlZtBQoR.js} +2 -2
- package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-BlZtBQoR.js.map} +1 -1
- package/dist/{EventsSkeleton-8iiETGcf.js → EventsSkeleton-DK6JDKAK.js} +26 -19
- package/dist/EventsSkeleton-DK6JDKAK.js.map +1 -0
- package/dist/{FeatureMenu-jl7-Tk6y.js → FeatureMenu-C3503UIX.js} +3 -3
- package/dist/{FeatureMenu-jl7-Tk6y.js.map → FeatureMenu-C3503UIX.js.map} +1 -1
- package/dist/Features-Dne21RWu.js +14 -0
- package/dist/Features-Dne21RWu.js.map +1 -0
- package/dist/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
- package/dist/{ManageNotification-CaBAOhji.js.map → Google-DQxMfbaL.js.map} +1 -1
- package/dist/ImmunizationConfigurationBase-DLQVSNnt.js +5895 -0
- package/dist/ImmunizationConfigurationBase-DLQVSNnt.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/{ManageDynamicFeature-BhONvfC_.js → ManageDynamicFeature-dt096fyj.js} +2 -2
- package/dist/{ManageDynamicFeature-BhONvfC_.js.map → ManageDynamicFeature-dt096fyj.js.map} +1 -1
- package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-BpSJszSX.js} +5 -5
- package/dist/{ManageEventConfiguration-DV3I5POA.js.map → ManageEventConfiguration-BpSJszSX.js.map} +1 -1
- package/dist/ManageNotification-CfhHlfxA.js +934 -0
- package/dist/ManageNotification-CfhHlfxA.js.map +1 -0
- package/dist/{ManageRole-CGYfglpo.js → ManageRole-4Y2PP4dQ.js} +32 -30
- package/dist/ManageRole-4Y2PP4dQ.js.map +1 -0
- package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DDzyd9jm.js} +1728 -1592
- package/dist/ManageUser-DDzyd9jm.js.map +1 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
- package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-DUkUYACe.js} +2 -2
- package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +1 -0
- package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-BMFpNUJG.js} +109 -110
- package/dist/NotificationList-BMFpNUJG.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CYBfr2XE.js} +570 -478
- package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +1 -0
- package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-DEiBNfT8.js} +100 -101
- package/dist/RoleManagement-DEiBNfT8.js.map +1 -0
- package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
- package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
- package/dist/{SubMenu-DYxAPH2Z.js → SubMenu-B072oEGb.js} +3 -3
- package/dist/{SubMenu-DYxAPH2Z.js.map → SubMenu-B072oEGb.js.map} +1 -1
- package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
- package/dist/TableDetails-BtafRxXb.js.map +1 -0
- package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
- package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
- package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-C3xoP2Nb.js} +2 -2
- package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-C3xoP2Nb.js.map} +1 -1
- package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
- package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
- package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
- package/dist/index.js +4 -752
- package/dist/index.js.map +1 -1
- package/dist/index.lib-C3fwoM3y.js +820 -0
- package/dist/index.lib-C3fwoM3y.js.map +1 -0
- package/package.json +2 -2
- package/dist/AccessRights-CHu27ZOw.js +0 -1262
- package/dist/AccessRights-CHu27ZOw.js.map +0 -1
- package/dist/AddMenuConfiguration-BSQLl88V.js +0 -6570
- package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
- package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
- package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
- package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
- package/dist/Features-CObdzJp_.js +0 -13
- package/dist/Features-CObdzJp_.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
- package/dist/ManageRole-CGYfglpo.js.map +0 -1
- package/dist/ManageUser-AY1EUDLI.js.map +0 -1
- package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
- package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
- package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
- package/dist/RoleManagement-BPl2cE27.js.map +0 -1
- package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
- package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
- package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
- package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +0 -1
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
import { generateUUID as d } from "@/utils/UUIDgenerator";
|
|
2
|
-
import { DASHBOARD_COMPONENT_TYPES as s, DASHBOARD_ROOT_DROP_ZONE as A, DASHBOARD_ALLOWED_CHILDREN as F, DASHBOARD_LAYOUT_STYLE_DEFAULTS as p } from "@/utils/FormConstants";
|
|
3
|
-
const N = (e, t = {}) => ({
|
|
4
|
-
id: `node-${d()}`,
|
|
5
|
-
type: e,
|
|
6
|
-
children: [],
|
|
7
|
-
...p[e] || {},
|
|
8
|
-
...t
|
|
9
|
-
}), K = (e, t) => ({
|
|
10
|
-
id: e.id,
|
|
11
|
-
name: e.name,
|
|
12
|
-
type: s.FEATURE,
|
|
13
|
-
instanceId: `${t || "DASHBOARD"}_${e.id}_${d()}`,
|
|
14
|
-
icon: {
|
|
15
|
-
id: `svg-icon-${e.id}`,
|
|
16
|
-
content: e.icon,
|
|
17
|
-
type: "svg"
|
|
18
|
-
}
|
|
19
|
-
}), b = (e, t) => {
|
|
20
|
-
var n, i;
|
|
21
|
-
return !e || e.type !== s.FEATURE_CARD || !t ? e : {
|
|
22
|
-
...e,
|
|
23
|
-
content: {
|
|
24
|
-
...e.content || {},
|
|
25
|
-
title: t.name || "",
|
|
26
|
-
subTitle: ""
|
|
27
|
-
},
|
|
28
|
-
icon: {
|
|
29
|
-
icon: "",
|
|
30
|
-
iconsvg: ((n = t.icon) == null ? void 0 : n.content) || ((i = t.icon) == null ? void 0 : i.svg) || ""
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
}, v = (e) => !e || e.type !== s.FEATURE_CARD ? e : {
|
|
34
|
-
...e,
|
|
35
|
-
content: {
|
|
36
|
-
...e.content || {},
|
|
37
|
-
title: "",
|
|
38
|
-
subTitle: ""
|
|
39
|
-
},
|
|
40
|
-
icon: {
|
|
41
|
-
icon: "",
|
|
42
|
-
iconsvg: ""
|
|
43
|
-
}
|
|
44
|
-
}, Z = (e, t, n = null) => {
|
|
45
|
-
var r;
|
|
46
|
-
return (F[e] || []).includes(t) ? e === s.FEATURE_CARD && t === s.FEATURE && ((r = n == null ? void 0 : n.children) != null && r.some(
|
|
47
|
-
(o) => o.type === s.FEATURE
|
|
48
|
-
)) ? "FEATURE_CARD can contain only one FEATURE." : e === s.ROW && t === s.FEATURE_CARD && ((n == null ? void 0 : n.children) || []).filter(
|
|
49
|
-
(o) => o.type === s.FEATURE_CARD
|
|
50
|
-
).length >= 4 ? "ROW can contain a maximum of 4 FEATURE_CARD components." : e === s.COLUMN && t === s.COLUMN && ((n == null ? void 0 : n.children) || []).filter(
|
|
51
|
-
(o) => o.type === s.COLUMN
|
|
52
|
-
).length >= 4 ? "COLUMN can contain a maximum of 4 COLUMN components." : "" : t === s.SECTION ? "SECTION can only be dropped directly inside Home." : t === s.DIVIDER ? "DIVIDER can only be dropped inside Home, SECTION, ROW, or COLUMN." : t === s.CAROUSEL ? "CAROUSEL can only be dropped directly inside Home." : t === s.SEARCH_BAR ? "SEARCH_BAR can only be dropped directly inside Home." : t === s.FEATURE_CARD ? "FEATURE_CARD can only be dropped inside ROW or COLUMN." : t === s.ROW ? "ROW can only be dropped inside SECTION or COLUMN." : t === s.COLUMN ? "COLUMN can only be dropped inside SECTION or ROW." : t === s.FEATURE ? "FEATURE can only be dropped inside SECTION, COLUMN, or FEATURE_CARD." : t === s.TEXT ? "TEXT can only be dropped inside Home, SECTION, ROW, or COLUMN." : `${t} cannot be dropped inside ${e}.`;
|
|
53
|
-
}, R = (e, t) => {
|
|
54
|
-
for (const n of e || []) {
|
|
55
|
-
if (n.id === t || n.instanceId === t) return n;
|
|
56
|
-
const i = R(n.children, t);
|
|
57
|
-
if (i) return i;
|
|
58
|
-
}
|
|
59
|
-
return null;
|
|
60
|
-
}, L = (e, t, n = { id: A, type: "HOME", node: null }) => {
|
|
61
|
-
for (const i of e || []) {
|
|
62
|
-
if (i.id === t || i.instanceId === t) return n;
|
|
63
|
-
const r = L(i.children || [], t, {
|
|
64
|
-
id: i.instanceId || i.id,
|
|
65
|
-
type: i.type,
|
|
66
|
-
node: i
|
|
67
|
-
});
|
|
68
|
-
if (r) return r;
|
|
69
|
-
}
|
|
70
|
-
return null;
|
|
71
|
-
}, m = (e, t) => (e || []).map((n) => {
|
|
72
|
-
const i = t(n);
|
|
73
|
-
return i.children ? {
|
|
74
|
-
...i,
|
|
75
|
-
children: m(i.children, t)
|
|
76
|
-
} : i;
|
|
77
|
-
}), _ = (e, t, n) => t === A ? [...e || [], n] : m(e, (i) => {
|
|
78
|
-
if (i.id === t || i.instanceId === t) {
|
|
79
|
-
let r = {
|
|
80
|
-
...i,
|
|
81
|
-
children: [...i.children || [], n]
|
|
82
|
-
};
|
|
83
|
-
return r.type === s.FEATURE_CARD && n.type === s.FEATURE && (r = b(r, n)), r;
|
|
84
|
-
}
|
|
85
|
-
return i;
|
|
86
|
-
}), I = (e, t) => (e || []).filter((n) => n.id !== t && n.instanceId !== t).map((n) => {
|
|
87
|
-
const i = (n.children || []).some(
|
|
88
|
-
(o) => o.id === t || o.instanceId === t
|
|
89
|
-
);
|
|
90
|
-
let r = n;
|
|
91
|
-
return n.type === s.FEATURE_CARD && i && (r = v(n)), {
|
|
92
|
-
...r,
|
|
93
|
-
children: I(r.children, t)
|
|
94
|
-
};
|
|
95
|
-
}), q = (e, t, n) => m(
|
|
96
|
-
e,
|
|
97
|
-
(i) => i.id === t || i.instanceId === t ? n(i) : i
|
|
98
|
-
), M = (e) => (e == null ? void 0 : e.instanceId) || (e == null ? void 0 : e.id), C = (e, t) => {
|
|
99
|
-
let n = null;
|
|
100
|
-
return { nodes: (e || []).reduce((r, o) => {
|
|
101
|
-
if (o.id === t || o.instanceId === t)
|
|
102
|
-
return n = o, r;
|
|
103
|
-
const l = C(o.children || [], t);
|
|
104
|
-
return l.removedNode ? (n = l.removedNode, r.push({ ...o, children: l.nodes }), r) : (r.push(o), r);
|
|
105
|
-
}, []), removedNode: n };
|
|
106
|
-
}, f = (e, t, n) => {
|
|
107
|
-
let i = !1;
|
|
108
|
-
return { nodes: (e || []).reduce((o, l) => {
|
|
109
|
-
if (l.id === t || l.instanceId === t)
|
|
110
|
-
return o.push(n, l), i = !0, o;
|
|
111
|
-
const a = f(
|
|
112
|
-
l.children || [],
|
|
113
|
-
t,
|
|
114
|
-
n
|
|
115
|
-
);
|
|
116
|
-
return a.didInsert ? (i = !0, o.push({ ...l, children: a.nodes }), o) : (o.push(l), o);
|
|
117
|
-
}, []), didInsert: i };
|
|
118
|
-
}, O = (e, t) => e ? e.id === t || e.instanceId === t ? !0 : (e.children || []).some((n) => O(n, t)) : !1, B = (e, t) => {
|
|
119
|
-
const n = M(t);
|
|
120
|
-
return m(
|
|
121
|
-
e,
|
|
122
|
-
(i) => i.id === n || i.instanceId === n ? t : i
|
|
123
|
-
);
|
|
124
|
-
}, J = (e, t, n) => {
|
|
125
|
-
const i = f(e, t, n);
|
|
126
|
-
return i.didInsert ? i.nodes : e;
|
|
127
|
-
}, Q = (e, t, n) => {
|
|
128
|
-
const { nodes: i, removedNode: r } = C(
|
|
129
|
-
e,
|
|
130
|
-
t
|
|
131
|
-
);
|
|
132
|
-
return !r || n !== A && O(r, n) ? e : _(i, n, r);
|
|
133
|
-
}, tt = (e, t, n) => {
|
|
134
|
-
if (t === n) return e;
|
|
135
|
-
const i = R(e, t), r = R(e, n);
|
|
136
|
-
if (!i || !r || O(i, n))
|
|
137
|
-
return e;
|
|
138
|
-
const { nodes: o, removedNode: l } = C(
|
|
139
|
-
e,
|
|
140
|
-
t
|
|
141
|
-
);
|
|
142
|
-
if (!l) return e;
|
|
143
|
-
const a = f(o, n, l);
|
|
144
|
-
return a.didInsert ? a.nodes : B(o, i);
|
|
145
|
-
}, H = (e, t) => Array.isArray(e) ? e.map((n) => {
|
|
146
|
-
if (n.type === s.SECTION && Array.isArray(n.features)) {
|
|
147
|
-
const r = `node-${d()}`;
|
|
148
|
-
return N(s.SECTION, {
|
|
149
|
-
id: r,
|
|
150
|
-
title: n.title || "Section",
|
|
151
|
-
header: {
|
|
152
|
-
...p[s.SECTION].header,
|
|
153
|
-
title: n.title || "Section"
|
|
154
|
-
},
|
|
155
|
-
children: n.features.map((o) => t(o, r)).filter(Boolean)
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
if (n.type === s.FEATURE)
|
|
159
|
-
return t(n, "DASHBOARD");
|
|
160
|
-
if (!n.type) return null;
|
|
161
|
-
const i = H(
|
|
162
|
-
n.children || [],
|
|
163
|
-
t
|
|
164
|
-
);
|
|
165
|
-
return N(n.type, {
|
|
166
|
-
...n,
|
|
167
|
-
id: n.id || `node-${d()}`,
|
|
168
|
-
children: i
|
|
169
|
-
});
|
|
170
|
-
}).filter(Boolean) : [], W = (e) => ({
|
|
171
|
-
type: s.FEATURE,
|
|
172
|
-
id: e.id,
|
|
173
|
-
menuName: e.name
|
|
174
|
-
}), P = (e) => (e.children || []).find(
|
|
175
|
-
(t) => t.type === s.FEATURE
|
|
176
|
-
), $ = (e, t) => String(t || "").trim() || (e == null ? void 0 : e.name) || (e == null ? void 0 : e.menuName) || "", k = (e, t) => String(t || "").trim() || (e == null ? void 0 : e.subTitle) || (e == null ? void 0 : e.subtitle) || "", x = (e, t) => {
|
|
177
|
-
var o, l, a, u;
|
|
178
|
-
const n = ((o = e.icon) == null ? void 0 : o.icon) || ((l = e.icon) == null ? void 0 : l.iconName) || "", i = ((a = e.icon) == null ? void 0 : a.iconsvg) || ((u = e.icon) == null ? void 0 : u.svg) || "";
|
|
179
|
-
if (n) return { icon: n, iconsvg: "" };
|
|
180
|
-
if (i) return { icon: "", iconsvg: i };
|
|
181
|
-
const r = t == null ? void 0 : t.icon;
|
|
182
|
-
if (typeof r == "string") {
|
|
183
|
-
const c = r.trim();
|
|
184
|
-
return c.startsWith("<svg") ? { icon: "", iconsvg: c } : { icon: c, iconsvg: "" };
|
|
185
|
-
}
|
|
186
|
-
return r != null && r.content || r != null && r.iconsvg || r != null && r.svg ? {
|
|
187
|
-
icon: "",
|
|
188
|
-
iconsvg: r.content || r.iconsvg || r.svg
|
|
189
|
-
} : {
|
|
190
|
-
icon: (r == null ? void 0 : r.icon) || (r == null ? void 0 : r.iconName) || "",
|
|
191
|
-
iconsvg: ""
|
|
192
|
-
};
|
|
193
|
-
}, V = (e) => {
|
|
194
|
-
const t = typeof e == "object" && e !== null ? e.action : e;
|
|
195
|
-
if (t === "" || t === null || t === void 0) return "";
|
|
196
|
-
const n = Number(t);
|
|
197
|
-
return Number.isNaN(n) ? t : n;
|
|
198
|
-
}, D = (e = {}) => {
|
|
199
|
-
const t = { ...e };
|
|
200
|
-
return t.type === "GRADIENT" ? (delete t.solidLightModeColor, delete t.solidDarkModeColor, delete t.solidColor) : (delete t.gradientStartColor, delete t.gradientEndColor, delete t.gradientType, delete t.direction, delete t.gradientStartOpacity, delete t.gradientEndOpacity, delete t.solidColor), t;
|
|
201
|
-
}, z = (e) => (e || []).map((t) => {
|
|
202
|
-
var T, g, y, h, U;
|
|
203
|
-
if (t.type === s.FEATURE)
|
|
204
|
-
return W(t);
|
|
205
|
-
const { id: n, instanceId: i, icon: r, name: o, features: l, title: a, ...u } = t, c = {
|
|
206
|
-
...u,
|
|
207
|
-
children: z(t.children || [])
|
|
208
|
-
};
|
|
209
|
-
if (t.type === s.SECTION && (c.background = D(
|
|
210
|
-
u.background
|
|
211
|
-
), (T = c.header) != null && T.color)) {
|
|
212
|
-
const { color: E, ...S } = c.header;
|
|
213
|
-
c.header = S;
|
|
214
|
-
}
|
|
215
|
-
if (t.type === s.FEATURE_CARD) {
|
|
216
|
-
const E = P(t);
|
|
217
|
-
c.content = {
|
|
218
|
-
...u.content || {},
|
|
219
|
-
title: $(
|
|
220
|
-
E,
|
|
221
|
-
((g = u.content) == null ? void 0 : g.title) || ((y = u.content) == null ? void 0 : y.customTitle)
|
|
222
|
-
),
|
|
223
|
-
subTitle: k(
|
|
224
|
-
E,
|
|
225
|
-
((h = u.content) == null ? void 0 : h.subTitle) || ((U = u.content) == null ? void 0 : U.customSubtitle)
|
|
226
|
-
)
|
|
227
|
-
}, c.icon = x(t, E), c.background = D(
|
|
228
|
-
u.background
|
|
229
|
-
), c.style && delete c.style.flex, delete c.content.customTitle, delete c.content.customSubtitle, delete c.navigation;
|
|
230
|
-
}
|
|
231
|
-
return t.type === s.CAROUSEL && (delete c.children, delete c.navigation, c.images = (t.images || []).map((E) => ({
|
|
232
|
-
...E,
|
|
233
|
-
navigation: V(E.navigation)
|
|
234
|
-
}))), t.type === s.TEXT && delete c.children, [
|
|
235
|
-
s.SEARCH_BAR,
|
|
236
|
-
s.DIVIDER
|
|
237
|
-
].includes(t.type) && delete c.children, t.type === s.DIVIDER && c.style && (delete c.style.color, delete c.style.marginVertical), [
|
|
238
|
-
s.ROW,
|
|
239
|
-
s.COLUMN
|
|
240
|
-
].includes(t.type) && delete c.style, c;
|
|
241
|
-
}), w = (e) => (e || []).flatMap((t) => t.type === s.FEATURE ? t.menuName || t.name ? [t.menuName || t.name] : [] : w(t.children || t.features || [])), Y = /* @__PURE__ */ new Set([
|
|
242
|
-
s.SECTION,
|
|
243
|
-
s.ROW,
|
|
244
|
-
s.COLUMN
|
|
245
|
-
]), X = (e) => (e || []).some((t) => Y.has(t.type) && !(t.children || []).length ? !0 : t.type === s.FEATURE_CARD ? !(t.children || []).some(
|
|
246
|
-
(n) => n.type === s.FEATURE
|
|
247
|
-
) : t.type === s.CAROUSEL ? !(t.images || []).length : X(t.children || []));
|
|
248
|
-
export {
|
|
249
|
-
L as a,
|
|
250
|
-
Q as b,
|
|
251
|
-
w as c,
|
|
252
|
-
J as d,
|
|
253
|
-
K as e,
|
|
254
|
-
R as f,
|
|
255
|
-
Z as g,
|
|
256
|
-
H as h,
|
|
257
|
-
N as i,
|
|
258
|
-
_ as j,
|
|
259
|
-
X as k,
|
|
260
|
-
tt as m,
|
|
261
|
-
I as r,
|
|
262
|
-
z as s,
|
|
263
|
-
q as u
|
|
264
|
-
};
|
|
265
|
-
//# sourceMappingURL=dashboardLayoutUtils-Bt5HA96J.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboardLayoutUtils-Bt5HA96J.js","sources":["../src/views/MobileMenuManagement/dashboardLayoutUtils.js"],"sourcesContent":["import { generateUUID } from \"@/utils/UUIDgenerator\";\nimport {\n DASHBOARD_ALLOWED_CHILDREN as ALLOWED_CHILDREN,\n DASHBOARD_COMPONENT_TYPES,\n DASHBOARD_LAYOUT_STYLE_DEFAULTS as styleDefaults,\n DASHBOARD_NODE_DROP_ZONE as NODE_DROP_ZONE,\n DASHBOARD_ROOT_DROP_ZONE as ROOT_DROP_ZONE,\n DEFAULT_DASHBOARD_APP_BAR_CONFIG as defaultAppBarConfig,\n DEFAULT_DASHBOARD_BOTTOM_NAVIGATION_CONFIG as defaultBottomNavigationConfig,\n} from \"@/utils/FormConstants\";\n\nexport {\n ALLOWED_CHILDREN,\n DASHBOARD_COMPONENT_TYPES,\n NODE_DROP_ZONE,\n ROOT_DROP_ZONE,\n defaultAppBarConfig,\n defaultBottomNavigationConfig,\n};\n\nexport const createLayoutNode = (type, overrides = {}) => ({\n id: `node-${generateUUID()}`,\n type,\n children: [],\n ...(styleDefaults[type] || {}),\n ...overrides,\n});\n\nexport const createFeatureNode = (feature, parentId) => ({\n id: feature.id,\n name: feature.name,\n type: DASHBOARD_COMPONENT_TYPES.FEATURE,\n instanceId: `${parentId || \"DASHBOARD\"}_${feature.id}_${generateUUID()}`,\n icon: {\n id: `svg-icon-${feature.id}`,\n content: feature.icon,\n type: \"svg\",\n },\n});\n\nexport const autoConfigureFeatureCardFromChild = (cardNode, featureNode) => {\n if (\n !cardNode ||\n cardNode.type !== DASHBOARD_COMPONENT_TYPES.FEATURE_CARD ||\n !featureNode\n ) {\n return cardNode;\n }\n return {\n ...cardNode,\n content: {\n ...(cardNode.content || {}),\n title: featureNode.name || \"\",\n subTitle: \"\",\n },\n icon: {\n icon: \"\",\n iconsvg: featureNode.icon?.content || featureNode.icon?.svg || \"\",\n },\n };\n};\n\nexport const clearFeatureCardConfig = (cardNode) => {\n if (!cardNode || cardNode.type !== DASHBOARD_COMPONENT_TYPES.FEATURE_CARD) {\n return cardNode;\n }\n return {\n ...cardNode,\n content: {\n ...(cardNode.content || {}),\n title: \"\",\n subTitle: \"\",\n },\n icon: {\n icon: \"\",\n iconsvg: \"\",\n },\n };\n};\n\nexport const getDashboardDropValidationMessage = (\n parentType,\n childType,\n parentNode = null,\n) => {\n const allowed = ALLOWED_CHILDREN[parentType] || [];\n\n if (!allowed.includes(childType)) {\n if (childType === DASHBOARD_COMPONENT_TYPES.SECTION)\n return \"SECTION can only be dropped directly inside Home.\";\n if (childType === DASHBOARD_COMPONENT_TYPES.DIVIDER)\n return \"DIVIDER can only be dropped inside Home, SECTION, ROW, or COLUMN.\";\n if (childType === DASHBOARD_COMPONENT_TYPES.CAROUSEL)\n return \"CAROUSEL can only be dropped directly inside Home.\";\n if (childType === DASHBOARD_COMPONENT_TYPES.SEARCH_BAR)\n return \"SEARCH_BAR can only be dropped directly inside Home.\";\n if (childType === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD)\n return \"FEATURE_CARD can only be dropped inside ROW or COLUMN.\";\n if (childType === DASHBOARD_COMPONENT_TYPES.ROW)\n return \"ROW can only be dropped inside SECTION or COLUMN.\";\n if (childType === DASHBOARD_COMPONENT_TYPES.COLUMN)\n return \"COLUMN can only be dropped inside SECTION or ROW.\";\n if (childType === DASHBOARD_COMPONENT_TYPES.FEATURE)\n return \"FEATURE can only be dropped inside SECTION, COLUMN, or FEATURE_CARD.\";\n if (childType === DASHBOARD_COMPONENT_TYPES.TEXT)\n return \"TEXT can only be dropped inside Home, SECTION, ROW, or COLUMN.\";\n return `${childType} cannot be dropped inside ${parentType}.`;\n }\n\n if (\n parentType === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD &&\n childType === DASHBOARD_COMPONENT_TYPES.FEATURE &&\n parentNode?.children?.some(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.FEATURE,\n )\n ) {\n return \"FEATURE_CARD can contain only one FEATURE.\";\n }\n\n if (\n parentType === DASHBOARD_COMPONENT_TYPES.ROW &&\n childType === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD &&\n (parentNode?.children || []).filter(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD,\n ).length >= 4\n ) {\n return \"ROW can contain a maximum of 4 FEATURE_CARD components.\";\n }\n\n if (\n parentType === DASHBOARD_COMPONENT_TYPES.COLUMN &&\n childType === DASHBOARD_COMPONENT_TYPES.COLUMN &&\n (parentNode?.children || []).filter(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.COLUMN,\n ).length >= 4\n ) {\n return \"COLUMN can contain a maximum of 4 COLUMN components.\";\n }\n\n return \"\";\n};\n\nexport const findNodeById = (nodes, id) => {\n for (const node of nodes || []) {\n if (node.id === id || node.instanceId === id) return node;\n const child = findNodeById(node.children, id);\n if (child) return child;\n }\n return null;\n};\n\nexport const findParentNodeInfo = (\n nodes,\n id,\n parentInfo = { id: ROOT_DROP_ZONE, type: \"HOME\", node: null },\n) => {\n for (const node of nodes || []) {\n if (node.id === id || node.instanceId === id) return parentInfo;\n const childParent = findParentNodeInfo(node.children || [], id, {\n id: node.instanceId || node.id,\n type: node.type,\n node,\n });\n if (childParent) return childParent;\n }\n return null;\n};\n\nexport const mapLayoutTree = (nodes, updater) =>\n (nodes || []).map((node) => {\n const updatedNode = updater(node);\n if (updatedNode.children) {\n return {\n ...updatedNode,\n children: mapLayoutTree(updatedNode.children, updater),\n };\n }\n return updatedNode;\n });\n\nexport const addChildToParent = (nodes, parentId, childNode) => {\n if (parentId === ROOT_DROP_ZONE) {\n return [...(nodes || []), childNode];\n }\n return mapLayoutTree(nodes, (node) => {\n if (node.id === parentId || node.instanceId === parentId) {\n let updatedNode = {\n ...node,\n children: [...(node.children || []), childNode],\n };\n if (\n updatedNode.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD &&\n childNode.type === DASHBOARD_COMPONENT_TYPES.FEATURE\n ) {\n updatedNode = autoConfigureFeatureCardFromChild(updatedNode, childNode);\n }\n return updatedNode;\n }\n return node;\n });\n};\n\nexport const removeNodeById = (nodes, nodeId) =>\n (nodes || [])\n .filter((node) => node.id !== nodeId && node.instanceId !== nodeId)\n .map((node) => {\n // If we are keeping a FEATURE_CARD, and its child is being removed, clear its config\n const hasChildToRemove = (node.children || []).some(\n (child) => child.id === nodeId || child.instanceId === nodeId,\n );\n let updatedNode = node;\n if (\n node.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD &&\n hasChildToRemove\n ) {\n updatedNode = clearFeatureCardConfig(node);\n }\n return {\n ...updatedNode,\n children: removeNodeById(updatedNode.children, nodeId),\n };\n });\n\nexport const updateNodeById = (nodes, nodeId, updater) =>\n mapLayoutTree(nodes, (node) =>\n node.id === nodeId || node.instanceId === nodeId ? updater(node) : node,\n );\n\nconst getNodeKey = (node) => node?.instanceId || node?.id;\n\nconst removeNodeWithResult = (nodes, nodeId) => {\n let removedNode = null;\n\n const nextNodes = (nodes || []).reduce((acc, node) => {\n if (node.id === nodeId || node.instanceId === nodeId) {\n removedNode = node;\n return acc;\n }\n\n const childResult = removeNodeWithResult(node.children || [], nodeId);\n if (childResult.removedNode) {\n removedNode = childResult.removedNode;\n acc.push({ ...node, children: childResult.nodes });\n return acc;\n }\n\n acc.push(node);\n return acc;\n }, []);\n\n return { nodes: nextNodes, removedNode };\n};\n\nconst insertNodeBeforeTarget = (nodes, targetId, nodeToInsert) => {\n let didInsert = false;\n\n const nextNodes = (nodes || []).reduce((acc, node) => {\n if (node.id === targetId || node.instanceId === targetId) {\n acc.push(nodeToInsert, node);\n didInsert = true;\n return acc;\n }\n\n const childResult = insertNodeBeforeTarget(\n node.children || [],\n targetId,\n nodeToInsert,\n );\n if (childResult.didInsert) {\n didInsert = true;\n acc.push({ ...node, children: childResult.nodes });\n return acc;\n }\n\n acc.push(node);\n return acc;\n }, []);\n\n return { nodes: nextNodes, didInsert };\n};\n\nconst hasNodeInTree = (node, targetId) => {\n if (!node) return false;\n if (node.id === targetId || node.instanceId === targetId) return true;\n return (node.children || []).some((child) => hasNodeInTree(child, targetId));\n};\n\nconst replaceNodeInTree = (nodes, replacementNode) => {\n const replacementId = getNodeKey(replacementNode);\n return mapLayoutTree(nodes, (node) =>\n node.id === replacementId || node.instanceId === replacementId\n ? replacementNode\n : node,\n );\n};\n\nexport const addNodeBeforeTarget = (nodes, targetId, nodeToInsert) => {\n const result = insertNodeBeforeTarget(nodes, targetId, nodeToInsert);\n return result.didInsert ? result.nodes : nodes;\n};\n\nexport const moveNodeToParent = (nodes, nodeId, parentId) => {\n const { nodes: withoutNode, removedNode } = removeNodeWithResult(\n nodes,\n nodeId,\n );\n if (!removedNode) return nodes;\n if (parentId !== ROOT_DROP_ZONE && hasNodeInTree(removedNode, parentId))\n return nodes;\n return addChildToParent(withoutNode, parentId, removedNode);\n};\n\nexport const moveNodeBeforeTarget = (nodes, nodeId, targetId) => {\n if (nodeId === targetId) return nodes;\n const sourceNode = findNodeById(nodes, nodeId);\n const targetNode = findNodeById(nodes, targetId);\n if (!sourceNode || !targetNode || hasNodeInTree(sourceNode, targetId))\n return nodes;\n\n const { nodes: withoutNode, removedNode } = removeNodeWithResult(\n nodes,\n nodeId,\n );\n if (!removedNode) return nodes;\n\n const result = insertNodeBeforeTarget(withoutNode, targetId, removedNode);\n if (result.didInsert) return result.nodes;\n\n return replaceNodeInTree(withoutNode, sourceNode);\n};\n\nexport const hydrateDashboardLayout = (layout, hydrateFeature) => {\n if (!Array.isArray(layout)) return [];\n return layout\n .map((node) => {\n if (\n node.type === DASHBOARD_COMPONENT_TYPES.SECTION &&\n Array.isArray(node.features)\n ) {\n const sectionId = `node-${generateUUID()}`;\n return createLayoutNode(DASHBOARD_COMPONENT_TYPES.SECTION, {\n id: sectionId,\n title: node.title || \"Section\",\n header: {\n ...styleDefaults[DASHBOARD_COMPONENT_TYPES.SECTION].header,\n title: node.title || \"Section\",\n },\n children: node.features\n .map((feature) => hydrateFeature(feature, sectionId))\n .filter(Boolean),\n });\n }\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE) {\n return hydrateFeature(node, \"DASHBOARD\");\n }\n if (!node.type) return null;\n const hydratedChildren = hydrateDashboardLayout(\n node.children || [],\n hydrateFeature,\n );\n return createLayoutNode(node.type, {\n ...node,\n id: node.id || `node-${generateUUID()}`,\n children: hydratedChildren,\n });\n })\n .filter(Boolean);\n};\n\nconst stripRuntimeFeature = (feature) => ({\n type: DASHBOARD_COMPONENT_TYPES.FEATURE,\n id: feature.id,\n menuName: feature.name,\n});\n\nconst getFeatureChild = (node) =>\n (node.children || []).find(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.FEATURE,\n );\n\nconst getFeatureTitle = (feature, contentTitle) => {\n const title = String(contentTitle || \"\").trim();\n return title || feature?.name || feature?.menuName || \"\";\n};\n\nconst getFeatureSubTitle = (feature, contentSubTitle) => {\n const subTitle = String(contentSubTitle || \"\").trim();\n return subTitle || feature?.subTitle || feature?.subtitle || \"\";\n};\n\nconst normalizeFeatureCardIcon = (node, feature) => {\n const configuredIcon = node.icon?.icon || node.icon?.iconName || \"\";\n const configuredSvg = node.icon?.iconsvg || node.icon?.svg || \"\";\n\n if (configuredIcon) return { icon: configuredIcon, iconsvg: \"\" };\n if (configuredSvg) return { icon: \"\", iconsvg: configuredSvg };\n\n const featureIcon = feature?.icon;\n if (typeof featureIcon === \"string\") {\n const trimmedIcon = featureIcon.trim();\n return trimmedIcon.startsWith(\"<svg\")\n ? { icon: \"\", iconsvg: trimmedIcon }\n : { icon: trimmedIcon, iconsvg: \"\" };\n }\n\n if (featureIcon?.content || featureIcon?.iconsvg || featureIcon?.svg) {\n return {\n icon: \"\",\n iconsvg: featureIcon.content || featureIcon.iconsvg || featureIcon.svg,\n };\n }\n\n return {\n icon: featureIcon?.icon || featureIcon?.iconName || \"\",\n iconsvg: \"\",\n };\n};\n\nconst normalizeNavigationFeatureId = (navigation) => {\n const value =\n typeof navigation === \"object\" && navigation !== null\n ? navigation.action\n : navigation;\n if (value === \"\" || value === null || value === undefined) return \"\";\n const numericValue = Number(value);\n return Number.isNaN(numericValue) ? value : numericValue;\n};\n\nconst normalizeFeatureCardBackground = (background = {}) => {\n const normalizedBackground = { ...background };\n\n if (normalizedBackground.type === \"GRADIENT\") {\n delete normalizedBackground.solidLightModeColor;\n delete normalizedBackground.solidDarkModeColor;\n delete normalizedBackground.solidColor;\n } else {\n delete normalizedBackground.gradientStartColor;\n delete normalizedBackground.gradientEndColor;\n delete normalizedBackground.gradientType;\n delete normalizedBackground.direction;\n delete normalizedBackground.gradientStartOpacity;\n delete normalizedBackground.gradientEndOpacity;\n delete normalizedBackground.solidColor;\n }\n\n return normalizedBackground;\n};\n\nexport const sanitizeDashboardLayout = (nodes) =>\n (nodes || []).map((node) => {\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE) {\n return stripRuntimeFeature(node);\n }\n\n const { id, instanceId, icon, name, features, title, ...config } = node;\n const sanitizedNode = {\n ...config,\n children: sanitizeDashboardLayout(node.children || []),\n };\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.SECTION) {\n // title is stripped above via destructuring; only header.title is kept\n sanitizedNode.background = normalizeFeatureCardBackground(\n config.background,\n );\n // clean up any legacy color field from header\n if (sanitizedNode.header?.color) {\n const { color, ...restHeader } = sanitizedNode.header;\n sanitizedNode.header = restHeader;\n }\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD) {\n const feature = getFeatureChild(node);\n sanitizedNode.content = {\n ...(config.content || {}),\n title: getFeatureTitle(\n feature,\n config.content?.title || config.content?.customTitle,\n ),\n subTitle: getFeatureSubTitle(\n feature,\n config.content?.subTitle || config.content?.customSubtitle,\n ),\n };\n sanitizedNode.icon = normalizeFeatureCardIcon(node, feature);\n sanitizedNode.background = normalizeFeatureCardBackground(\n config.background,\n );\n if (sanitizedNode.style) {\n delete sanitizedNode.style.flex;\n }\n delete sanitizedNode.content.customTitle;\n delete sanitizedNode.content.customSubtitle;\n delete sanitizedNode.navigation;\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.CAROUSEL) {\n delete sanitizedNode.children;\n delete sanitizedNode.navigation;\n sanitizedNode.images = (node.images || []).map((image) => ({\n ...image,\n navigation: normalizeNavigationFeatureId(image.navigation),\n }));\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.TEXT) {\n delete sanitizedNode.children;\n }\n\n if (\n [\n DASHBOARD_COMPONENT_TYPES.SEARCH_BAR,\n DASHBOARD_COMPONENT_TYPES.DIVIDER,\n ].includes(node.type)\n ) {\n delete sanitizedNode.children;\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.DIVIDER) {\n if (sanitizedNode.style) {\n delete sanitizedNode.style.color;\n delete sanitizedNode.style.marginVertical;\n }\n }\n\n if (\n [\n DASHBOARD_COMPONENT_TYPES.ROW,\n DASHBOARD_COMPONENT_TYPES.COLUMN,\n ].includes(node.type)\n ) {\n delete sanitizedNode.style;\n }\n\n return sanitizedNode;\n });\n\nexport const collectFeatureNamesFromLayout = (nodes) =>\n (nodes || []).flatMap((node) => {\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE) {\n return node.menuName || node.name ? [node.menuName || node.name] : [];\n }\n return collectFeatureNamesFromLayout(node.children || node.features || []);\n });\n\nconst EMPTY_CHILD_CONTAINER_TYPES = new Set([\n DASHBOARD_COMPONENT_TYPES.SECTION,\n DASHBOARD_COMPONENT_TYPES.ROW,\n DASHBOARD_COMPONENT_TYPES.COLUMN,\n]);\n\nexport const hasEmptyDashboardLayoutNode = (nodes) =>\n (nodes || []).some((node) => {\n if (\n EMPTY_CHILD_CONTAINER_TYPES.has(node.type) &&\n !(node.children || []).length\n ) {\n return true;\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD) {\n return !(node.children || []).some(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.FEATURE,\n );\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.CAROUSEL) {\n return !(node.images || []).length;\n }\n\n return hasEmptyDashboardLayoutNode(node.children || []);\n });\n"],"names":["createLayoutNode","type","overrides","generateUUID","styleDefaults","createFeatureNode","feature","parentId","DASHBOARD_COMPONENT_TYPES","autoConfigureFeatureCardFromChild","cardNode","featureNode","_a","_b","clearFeatureCardConfig","getDashboardDropValidationMessage","parentType","childType","parentNode","ALLOWED_CHILDREN","child","findNodeById","nodes","id","node","findParentNodeInfo","parentInfo","ROOT_DROP_ZONE","childParent","mapLayoutTree","updater","updatedNode","addChildToParent","childNode","removeNodeById","nodeId","hasChildToRemove","updateNodeById","getNodeKey","removeNodeWithResult","removedNode","acc","childResult","insertNodeBeforeTarget","targetId","nodeToInsert","didInsert","hasNodeInTree","replaceNodeInTree","replacementNode","replacementId","addNodeBeforeTarget","result","moveNodeToParent","withoutNode","moveNodeBeforeTarget","sourceNode","targetNode","hydrateDashboardLayout","layout","hydrateFeature","sectionId","hydratedChildren","stripRuntimeFeature","getFeatureChild","getFeatureTitle","contentTitle","getFeatureSubTitle","contentSubTitle","normalizeFeatureCardIcon","configuredIcon","configuredSvg","_c","_d","featureIcon","trimmedIcon","normalizeNavigationFeatureId","navigation","value","numericValue","normalizeFeatureCardBackground","background","normalizedBackground","sanitizeDashboardLayout","instanceId","icon","name","features","title","config","sanitizedNode","color","restHeader","_e","image","collectFeatureNamesFromLayout","EMPTY_CHILD_CONTAINER_TYPES","hasEmptyDashboardLayoutNode"],"mappings":"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"}
|