@argusoft/medplat-core 1.0.28 → 1.0.30
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-xrday-L1.js +1023 -0
- package/dist/AccessRights-xrday-L1.js.map +1 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
- package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-D1sU8RjY.js} +2 -2
- package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
- package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
- package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js +8547 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js.map +1 -0
- package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
- package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
- package/dist/AppModal-CCtrQ5Tr.js +394 -0
- package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js +387 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js.map +1 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js +391 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +1 -0
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-BPsJquTS.js} +1606 -1611
- package/dist/ChangePasswordModalCore-BPsJquTS.js.map +1 -0
- package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-Ddz9halE.js} +2 -2
- package/dist/ConditionConfig-Ddz9halE.js.map +1 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js +435 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.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/EventConfig-BmLemzX3.js +26 -0
- package/dist/EventConfig-BmLemzX3.js.map +1 -0
- package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-Bzh1qWXU.js} +31 -30
- package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-Bzh1qWXU.js.map} +1 -1
- package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-B2SRrnB1.js} +2 -2
- package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-B2SRrnB1.js.map} +1 -1
- package/dist/EventsSkeleton-BIcPks4T.js +61 -0
- package/dist/EventsSkeleton-BIcPks4T.js.map +1 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js +79 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js.map +1 -0
- package/dist/FeatureMenu-DYJmDt7q.js +521 -0
- package/dist/FeatureMenu-DYJmDt7q.js.map +1 -0
- package/dist/Features-Dne21RWu.js +14 -0
- package/dist/Features-Dne21RWu.js.map +1 -0
- package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-DuTwnngN.js} +19 -19
- package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-DuTwnngN.js.map} +1 -1
- package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
- package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
- package/dist/FlywayQuery-CQygj51V.js +179 -0
- package/dist/FlywayQuery-CQygj51V.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/GrantPermissionModal-BDN66Atn.js +236 -0
- package/dist/GrantPermissionModal-BDN66Atn.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js +7639 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js +665 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js.map +1 -0
- package/dist/LanguagesModal-B3NTebYT.js +352 -0
- package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
- package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-CoYcpjR9.js} +465 -397
- package/dist/ManageEventConfiguration-CoYcpjR9.js.map +1 -0
- package/dist/ManageNotification-C5MhV77Q.js +934 -0
- package/dist/ManageNotification-C5MhV77Q.js.map +1 -0
- package/dist/{ManageRole-CGYfglpo.js → ManageRole-CNZBRKGU.js} +32 -30
- package/dist/ManageRole-CNZBRKGU.js.map +1 -0
- package/dist/ManageTranslation-vRiptUAP.js +833 -0
- package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
- package/dist/ManageTranslation.css +1 -1
- package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DCFkUMV9.js} +1722 -1586
- package/dist/ManageUser-DCFkUMV9.js.map +1 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js +272 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js.map +1 -0
- package/dist/MobileAnalytics-pQoE8cG1.js +16888 -0
- package/dist/MobileAnalytics-pQoE8cG1.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-BeveaX0C.js} +2 -2
- package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +1 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
- package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-DEyRZEuM.js} +109 -110
- package/dist/NotificationList-DEyRZEuM.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CM6VkdmY.js} +570 -478
- package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +1 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js +482 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map +1 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js +157 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js.map +1 -0
- package/dist/PermissionsModal-CCYkcKlC.js +151 -0
- package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js +119 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map +1 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js +783 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map +1 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js +818 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +1 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js +599 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js.map +1 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js +1302 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +1 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js +252 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +1 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js +648 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +1 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js +1577 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +1 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js +279 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map +1 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js +293 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js.map +1 -0
- package/dist/QueryBuilder-CXaBe6sr.js +478 -0
- package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
- package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-s8iNx2Mu.js} +131 -142
- package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
- package/dist/Roles-BIyiic67.js +14 -0
- package/dist/Roles-BIyiic67.js.map +1 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js +544 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map +1 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js +315 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.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/SettingsPage-VsxI-ano-DcmtUUEj.js +747 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js.map +1 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
- package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-D1y_4A1u.js} +161 -121
- package/dist/ShowFlywayQuery-D1y_4A1u.js.map +1 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js +721 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +1 -0
- package/dist/SubMenu-eEDhZUvh.js +317 -0
- package/dist/SubMenu-eEDhZUvh.js.map +1 -0
- 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/TransactionsPage-DrH53pVS-BkhIGB6C.js +746 -0
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js.map +1 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js +315 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map +1 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js +476 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +1 -0
- package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-3O6ABrK-.js} +2 -2
- package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-3O6ABrK-.js.map} +1 -1
- package/dist/{UserList-Bc8gYxRL.js → UserList-DgPxsnj2.js} +253 -236
- package/dist/{UserList-Bc8gYxRL.js.map → UserList-DgPxsnj2.js.map} +1 -1
- package/dist/Users-Bpc4Sazd.js +41 -0
- package/dist/Users-Bpc4Sazd.js.map +1 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js +321 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js.map +1 -0
- 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/constants-ClZJY2x1-MkSWn6TZ.js +434 -0
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +1 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +4 -752
- package/dist/index.js.map +1 -1
- package/dist/index.lib-Dn8PMkeD.js +862 -0
- package/dist/index.lib-Dn8PMkeD.js.map +1 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
- package/package.json +5 -4
- package/dist/AccessRights-CHu27ZOw.js +0 -1262
- package/dist/AccessRights-CHu27ZOw.js.map +0 -1
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
- package/dist/AddLabelModal-DFllBVcd.js +0 -734
- package/dist/AddLabelModal-DFllBVcd.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/AppModal-CtG2GjD_.js +0 -428
- package/dist/AppModal-CtG2GjD_.js.map +0 -1
- package/dist/ChangePasswordModalCore-CDxkeIIM.js.map +0 -1
- package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
- package/dist/EventsSkeleton-8iiETGcf.js +0 -76
- package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
- package/dist/FeatureMenu-jl7-Tk6y.js +0 -265
- package/dist/FeatureMenu-jl7-Tk6y.js.map +0 -1
- package/dist/Features-CObdzJp_.js +0 -13
- package/dist/Features-CObdzJp_.js.map +0 -1
- package/dist/FlywayQuery-Cx2sly6g.js +0 -169
- package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
- package/dist/LanguagesModal-D6VfaGrl.js +0 -394
- package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
- package/dist/ManageDynamicFeature-BhONvfC_.js +0 -4189
- package/dist/ManageDynamicFeature-BhONvfC_.js.map +0 -1
- package/dist/ManageEventConfiguration-DV3I5POA.js.map +0 -1
- package/dist/ManageRole-CGYfglpo.js.map +0 -1
- package/dist/ManageTranslation-B4C9-lWD.js +0 -625
- package/dist/ManageTranslation-B4C9-lWD.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/NotificationFlywayQuery-BY8Zzml_.js +0 -244
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
- package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
- package/dist/QueryBuilder-z7eqfd7D.js +0 -383
- package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
- package/dist/RoleManagement-BPl2cE27.js.map +0 -1
- package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
- package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
- package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
- package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
- package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
- package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
- package/dist/SubMenu-DYxAPH2Z.js +0 -191
- package/dist/SubMenu-DYxAPH2Z.js.map +0 -1
- package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
- package/dist/Users-CsJ08Kjm.js +0 -40
- package/dist/Users-CsJ08Kjm.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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"}
|