@argusoft/medplat-core 1.0.29 → 1.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/dist/AccessRights-DUgY6ewy.js +1031 -0
  2. package/dist/AccessRights-DUgY6ewy.js.map +1 -0
  3. package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
  4. package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
  5. package/dist/{AddFeatures-v3TmGQee.js → AddFeatures-D1sU8RjY.js} +2 -2
  6. package/dist/{AddFeatures-v3TmGQee.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
  7. package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
  8. package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
  9. package/dist/AddMenuConfiguration-c6ZKiN0i.js +8898 -0
  10. package/dist/AddMenuConfiguration-c6ZKiN0i.js.map +1 -0
  11. package/dist/AppModal-CCtrQ5Tr.js +394 -0
  12. package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
  13. package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js +387 -0
  14. package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js.map +1 -0
  15. package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js +398 -0
  16. package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js.map +1 -0
  17. package/dist/{ChangePasswordModalCore-DutQAZOx.js → ChangePasswordModalCore-lQ9GamH1.js} +1605 -1610
  18. package/dist/ChangePasswordModalCore-lQ9GamH1.js.map +1 -0
  19. package/dist/ConditionConfig-BQBmBHaM.js +408 -0
  20. package/dist/ConditionConfig-BQBmBHaM.js.map +1 -0
  21. package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js +435 -0
  22. package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js.map +1 -0
  23. package/dist/EventConfig-BY2cgGyx.js +27 -0
  24. package/dist/EventConfig-BY2cgGyx.js.map +1 -0
  25. package/dist/EventConfigurations-CUPEN5BV.js +544 -0
  26. package/dist/EventConfigurations-CUPEN5BV.js.map +1 -0
  27. package/dist/EventConfigurations.css +1 -1
  28. package/dist/EventsExceptionModal-BX-ArkBE.js +188 -0
  29. package/dist/EventsExceptionModal-BX-ArkBE.js.map +1 -0
  30. package/dist/EventsUi-D6O9S7BK.js +258 -0
  31. package/dist/EventsUi-D6O9S7BK.js.map +1 -0
  32. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js +79 -0
  33. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js.map +1 -0
  34. package/dist/FeatureMenu-CHsBbw3W.js +525 -0
  35. package/dist/FeatureMenu-CHsBbw3W.js.map +1 -0
  36. package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-iXBPkRVF.js} +22 -22
  37. package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-iXBPkRVF.js.map} +1 -1
  38. package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
  39. package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
  40. package/dist/FlywayQuery-CQygj51V.js +179 -0
  41. package/dist/FlywayQuery-CQygj51V.js.map +1 -0
  42. package/dist/GrantPermissionModal-D7iNZd0M.js +239 -0
  43. package/dist/GrantPermissionModal-D7iNZd0M.js.map +1 -0
  44. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js +8019 -0
  45. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js.map +1 -0
  46. package/dist/ImmunizationConfigurationBase.css +1 -1
  47. package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
  48. package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
  49. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js +665 -0
  50. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js.map +1 -0
  51. package/dist/LanguagesModal-B3NTebYT.js +352 -0
  52. package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
  53. package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
  54. package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
  55. package/dist/ManageEventConfiguration-DqW3krT6.js +1216 -0
  56. package/dist/ManageEventConfiguration-DqW3krT6.js.map +1 -0
  57. package/dist/ManageEventConfiguration.css +1 -1
  58. package/dist/{ManageNotification-CfhHlfxA.js → ManageNotification-C5MhV77Q.js} +2 -2
  59. package/dist/{ManageNotification-CfhHlfxA.js.map → ManageNotification-C5MhV77Q.js.map} +1 -1
  60. package/dist/{ManageRole-4Y2PP4dQ.js → ManageRole-CNZBRKGU.js} +2 -2
  61. package/dist/{ManageRole-4Y2PP4dQ.js.map → ManageRole-CNZBRKGU.js.map} +1 -1
  62. package/dist/ManageTranslation-vRiptUAP.js +833 -0
  63. package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
  64. package/dist/ManageTranslation.css +1 -1
  65. package/dist/{ManageUser-DDzyd9jm.js → ManageUser-DZltBina.js} +224 -224
  66. package/dist/{ManageUser-DDzyd9jm.js.map → ManageUser-DZltBina.js.map} +1 -1
  67. package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js +272 -0
  68. package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js.map +1 -0
  69. package/dist/MobileAnalytics-BLOionG_.js +17301 -0
  70. package/dist/MobileAnalytics-BLOionG_.js.map +1 -0
  71. package/dist/MobileMenuManagement-68Wijb0X.js +220 -0
  72. package/dist/MobileMenuManagement-68Wijb0X.js.map +1 -0
  73. package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js +752 -0
  74. package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js.map +1 -0
  75. package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
  76. package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
  77. package/dist/{NotificationList-BMFpNUJG.js → NotificationList-DEyRZEuM.js} +2 -2
  78. package/dist/{NotificationList-BMFpNUJG.js.map → NotificationList-DEyRZEuM.js.map} +1 -1
  79. package/dist/OtherTypeEventConfigModal-stNmuSv_.js +1812 -0
  80. package/dist/OtherTypeEventConfigModal-stNmuSv_.js.map +1 -0
  81. package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js +482 -0
  82. package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js.map +1 -0
  83. package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js +157 -0
  84. package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js.map +1 -0
  85. package/dist/PermissionsModal-CCYkcKlC.js +151 -0
  86. package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
  87. package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js +119 -0
  88. package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js.map +1 -0
  89. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js +783 -0
  90. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js.map +1 -0
  91. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js +818 -0
  92. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js.map +1 -0
  93. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js +599 -0
  94. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js.map +1 -0
  95. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js +1305 -0
  96. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js.map +1 -0
  97. package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js +253 -0
  98. package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js.map +1 -0
  99. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js +675 -0
  100. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js.map +1 -0
  101. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js +1577 -0
  102. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js.map +1 -0
  103. package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js +279 -0
  104. package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js.map +1 -0
  105. package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js +293 -0
  106. package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js.map +1 -0
  107. package/dist/QueryBuilder-CXaBe6sr.js +478 -0
  108. package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
  109. package/dist/{RoleManagement-DEiBNfT8.js → RoleManagement-s8iNx2Mu.js} +145 -155
  110. package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
  111. package/dist/Roles-BIyiic67.js +14 -0
  112. package/dist/Roles-BIyiic67.js.map +1 -0
  113. package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js +544 -0
  114. package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js.map +1 -0
  115. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js +315 -0
  116. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js.map +1 -0
  117. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js +676 -0
  118. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js.map +1 -0
  119. package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
  120. package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
  121. package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-DIOUdYfG.js} +170 -123
  122. package/dist/ShowFlywayQuery-DIOUdYfG.js.map +1 -0
  123. package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
  124. package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
  125. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js +728 -0
  126. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js.map +1 -0
  127. package/dist/SubMenu-BdMTYtC1.js +319 -0
  128. package/dist/SubMenu-BdMTYtC1.js.map +1 -0
  129. package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js +746 -0
  130. package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js.map +1 -0
  131. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js +315 -0
  132. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js.map +1 -0
  133. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js +476 -0
  134. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js.map +1 -0
  135. package/dist/TypeConfiguration-JbRCN6GR.js +114 -0
  136. package/dist/TypeConfiguration-JbRCN6GR.js.map +1 -0
  137. package/dist/{UserList-Bc8gYxRL.js → UserList-L41Xw0Q6.js} +253 -236
  138. package/dist/{UserList-Bc8gYxRL.js.map → UserList-L41Xw0Q6.js.map} +1 -1
  139. package/dist/Users-CsJ08Kjm.js.map +1 -1
  140. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js +321 -0
  141. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js.map +1 -0
  142. package/dist/constants-DpXnLsAB-D6lN5cjK.js +445 -0
  143. package/dist/constants-DpXnLsAB-D6lN5cjK.js.map +1 -0
  144. package/dist/{dashboardLayoutUtils-D1xCAxp3.js → dashboardLayoutUtils-CJivzaU1.js} +95 -92
  145. package/dist/dashboardLayoutUtils-CJivzaU1.js.map +1 -0
  146. package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
  147. package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
  148. package/dist/index.css +1 -1
  149. package/dist/index.js +1 -1
  150. package/dist/index.lib-ETRQOzvE.js +894 -0
  151. package/dist/index.lib-ETRQOzvE.js.map +1 -0
  152. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js +36 -0
  153. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js.map +1 -0
  154. package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
  155. package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
  156. package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
  157. package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
  158. package/package.json +4 -3
  159. package/dist/AccessRights-Zm8Obm4N.js +0 -1284
  160. package/dist/AccessRights-Zm8Obm4N.js.map +0 -1
  161. package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
  162. package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
  163. package/dist/AddLabelModal-DFllBVcd.js +0 -734
  164. package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
  165. package/dist/AddMenuConfiguration-Ce91MhnU.js +0 -8547
  166. package/dist/AddMenuConfiguration-Ce91MhnU.js.map +0 -1
  167. package/dist/AppModal-CtG2GjD_.js +0 -428
  168. package/dist/AppModal-CtG2GjD_.js.map +0 -1
  169. package/dist/ChangePasswordModalCore-DutQAZOx.js.map +0 -1
  170. package/dist/ConditionConfig-B4Ffpgj3.js +0 -395
  171. package/dist/ConditionConfig-B4Ffpgj3.js.map +0 -1
  172. package/dist/ConditionConfig.css +0 -1
  173. package/dist/EventConfigurations-BJcURufo.js +0 -449
  174. package/dist/EventConfigurations-BJcURufo.js.map +0 -1
  175. package/dist/EventsExceptionModal-BlZtBQoR.js +0 -200
  176. package/dist/EventsExceptionModal-BlZtBQoR.js.map +0 -1
  177. package/dist/EventsSkeleton-DK6JDKAK.js +0 -83
  178. package/dist/EventsSkeleton-DK6JDKAK.js.map +0 -1
  179. package/dist/FeatureMenu-C3503UIX.js +0 -265
  180. package/dist/FeatureMenu-C3503UIX.js.map +0 -1
  181. package/dist/FlywayQuery-Cx2sly6g.js +0 -169
  182. package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
  183. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js +0 -5895
  184. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js.map +0 -1
  185. package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
  186. package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
  187. package/dist/LanguagesModal-D6VfaGrl.js +0 -394
  188. package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
  189. package/dist/ManageDynamicFeature-dt096fyj.js +0 -4189
  190. package/dist/ManageDynamicFeature-dt096fyj.js.map +0 -1
  191. package/dist/ManageEventConfiguration-BpSJszSX.js +0 -1017
  192. package/dist/ManageEventConfiguration-BpSJszSX.js.map +0 -1
  193. package/dist/ManageTranslation-B4C9-lWD.js +0 -625
  194. package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
  195. package/dist/MobileMenuManagement-Cf8IZlla.js +0 -108
  196. package/dist/MobileMenuManagement-Cf8IZlla.js.map +0 -1
  197. package/dist/MobileTypeEventConfigModal-DUkUYACe.js +0 -783
  198. package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +0 -1
  199. package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
  200. package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
  201. package/dist/OtherTypeEventConfigModal-CYBfr2XE.js +0 -2046
  202. package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +0 -1
  203. package/dist/QueryBuilder-z7eqfd7D.js +0 -383
  204. package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
  205. package/dist/RoleManagement-DEiBNfT8.js.map +0 -1
  206. package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
  207. package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
  208. package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
  209. package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
  210. package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
  211. package/dist/SubMenu-B072oEGb.js +0 -191
  212. package/dist/SubMenu-B072oEGb.js.map +0 -1
  213. package/dist/TypeConfiguration-C3xoP2Nb.js +0 -117
  214. package/dist/TypeConfiguration-C3xoP2Nb.js.map +0 -1
  215. package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +0 -1
  216. package/dist/index.lib-C3fwoM3y.js +0 -820
  217. package/dist/index.lib-C3fwoM3y.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { generateUUID as R } from "@/utils/UUIDgenerator";
2
- import { DASHBOARD_COMPONENT_TYPES as l, DASHBOARD_ROOT_DROP_ZONE as g, DASHBOARD_ALLOWED_CHILDREN as I, DASHBOARD_LAYOUT_STYLE_DEFAULTS as U } from "@/utils/FormConstants";
2
+ import { DASHBOARD_COMPONENT_TYPES as l, DASHBOARD_ROOT_DROP_ZONE as C, DASHBOARD_ALLOWED_CHILDREN as I, DASHBOARD_LAYOUT_STYLE_DEFAULTS as U } from "@/utils/FormConstants";
3
3
  const S = (e, t = {}) => ({
4
4
  id: `node-${R()}`,
5
5
  type: e,
@@ -17,7 +17,7 @@ const S = (e, t = {}) => ({
17
17
  type: "svg"
18
18
  }
19
19
  }), F = (e, t) => {
20
- var i, r, o, s;
20
+ var i, r, o, c;
21
21
  if (!e || e.type !== l.FEATURE_CARD || !t)
22
22
  return e;
23
23
  const n = t.name || t.menuName || t.title || ((i = t.content) == null ? void 0 : i.title) || "";
@@ -30,7 +30,7 @@ const S = (e, t = {}) => ({
30
30
  },
31
31
  icon: {
32
32
  icon: "",
33
- iconsvg: ((r = t.icon) == null ? void 0 : r.content) || ((o = t.icon) == null ? void 0 : o.svg) || ((s = t.icon) == null ? void 0 : s.iconsvg) || ""
33
+ iconsvg: ((r = t.icon) == null ? void 0 : r.content) || ((o = t.icon) == null ? void 0 : o.svg) || ((c = t.icon) == null ? void 0 : c.iconsvg) || ""
34
34
  }
35
35
  };
36
36
  }, K = (e) => {
@@ -52,27 +52,27 @@ const S = (e, t = {}) => ({
52
52
  ...t ? { cta: t } : {}
53
53
  };
54
54
  }, J = (e, t, n = null, i = null) => {
55
- var c, u, a;
56
- const r = I[e] || [], o = i || t, s = o === "FEATURE_CARD" ? "Feature Card" : o === "SECTION" ? "Section" : o === "ROW" || o === "COLUMN" ? "Card Stack" : o === "FEATURE" ? "Feature" : o === "SEARCH_BAR" ? "Search Bar" : o === "CAROUSEL" ? "Image Carousel" : o === "DIVIDER" ? "Divider" : o === "TEXT" ? "Text Heading" : o;
55
+ var s, u, a;
56
+ const r = I[e] || [], o = i || t, c = o === "FEATURE_CARD" ? "Feature Card" : o === "SECTION" ? "Section" : o === "ROW" || o === "COLUMN" ? "Card Stack" : o === "FEATURE" ? "Feature" : o === "SEARCH_BAR" ? "Search Bar" : o === "CAROUSEL" ? "Image Carousel" : o === "DIVIDER" ? "Divider" : o === "TEXT" ? "Text Heading" : o;
57
57
  if (n) {
58
- if (e === l.ROW && ((c = n.style) != null && c.height))
59
- return `Cannot place ${s} inside a horizontal spacer.`;
58
+ if (e === l.ROW && ((s = n.style) != null && s.height))
59
+ return `Cannot place ${c} inside a horizontal spacer.`;
60
60
  if (e === l.COLUMN && ((u = n.style) != null && u.width))
61
- return `Cannot place ${s} inside a vertical spacer.`;
61
+ return `Cannot place ${c} inside a vertical spacer.`;
62
62
  }
63
63
  return r.includes(t) ? e === l.FEATURE_CARD && t === l.FEATURE && ((a = n == null ? void 0 : n.children) != null && a.some(
64
64
  (E) => E.type === l.FEATURE
65
65
  )) ? "A Feature Card can only contain one feature." : e === l.ROW && ((n == null ? void 0 : n.children) || []).length >= 4 ? "This card stack can contain a maximum of 4 items." : e === l.COLUMN && t === l.COLUMN && ((n == null ? void 0 : n.children) || []).filter(
66
66
  (E) => E.type === l.COLUMN
67
- ).length >= 4 ? "This container can contain a maximum of 4 items." : "" : t === l.SECTION ? `${s} can only be placed directly inside the layout.` : t === l.DIVIDER ? `${s} can only be placed inside a Section or Card Stack or direcly inside the layout.` : t === l.CAROUSEL ? `${s} can only be placed directly inside the layout.` : t === l.SEARCH_BAR ? `${s} can only be placed directly inside the layout.` : t === l.FEATURE_CARD ? `${s} can only be placed inside a Section or Card Stack.` : t === l.ROW ? `${s} can only be placed inside a Section or directly inside the layout.` : t === l.COLUMN ? `${s} can only be placed inside a Section or directly inside the layout.` : t === l.FEATURE ? `${s} can only be assigned to a Feature Card or Section or card stack.` : t === l.TEXT ? `${s} can only be placed inside a Section or directly inside the layout.` : `${s} cannot be placed in this container.`;
68
- }, C = (e, t) => {
67
+ ).length >= 4 ? "This container can contain a maximum of 4 items." : "" : t === l.SECTION ? `${c} can only be placed directly inside the layout.` : t === l.DIVIDER ? `${c} can only be placed inside a Section or Card Stack or direcly inside the layout.` : t === l.CAROUSEL ? `${c} can only be placed directly inside the layout.` : t === l.SEARCH_BAR ? `${c} can only be placed directly inside the layout.` : t === l.FEATURE_CARD ? `${c} can only be placed inside a Section or Card Stack.` : t === l.ROW ? `${c} can only be placed inside a Section or directly inside the layout.` : t === l.COLUMN ? `${c} can only be placed inside a Section or directly inside the layout.` : t === l.FEATURE ? `${c} can only be assigned to a Feature Card or Section or card stack.` : t === l.TEXT ? `${c} can only be placed inside a Section or directly inside the layout.` : `${c} cannot be placed in this container.`;
68
+ }, g = (e, t) => {
69
69
  for (const n of e || []) {
70
70
  if (n.id === t || n.instanceId === t) return n;
71
- const i = C(n.children, t);
71
+ const i = g(n.children, t);
72
72
  if (i) return i;
73
73
  }
74
74
  return null;
75
- }, b = (e, t, n = { id: g, type: "HOME", node: null }) => {
75
+ }, b = (e, t, n = { id: C, type: "HOME", node: null }) => {
76
76
  for (const i of e || []) {
77
77
  if (i.id === t || i.instanceId === t) return n;
78
78
  const r = b(i.children || [], t, {
@@ -89,7 +89,7 @@ const S = (e, t = {}) => ({
89
89
  ...i,
90
90
  children: A(i.children, t)
91
91
  } : i;
92
- }), _ = (e, t, n) => t === g ? [...e || [], n] : A(e, (i) => {
92
+ }), _ = (e, t, n) => t === C ? [...e || [], n] : A(e, (i) => {
93
93
  if (i.id === t || i.instanceId === t) {
94
94
  let r = {
95
95
  ...i,
@@ -109,59 +109,59 @@ const S = (e, t = {}) => ({
109
109
  (i) => i.id === t || i.instanceId === t ? n(i) : i
110
110
  ), tt = (e, t) => {
111
111
  const n = (o) => {
112
- const s = { ...o, id: `node-${R()}` };
113
- return s.instanceId && (s.instanceId = `DASHBOARD_DUP_${R()}`), s.children && (s.children = s.children.map(n)), s;
112
+ const c = { ...o, id: `node-${R()}` };
113
+ return c.instanceId && (c.instanceId = `DASHBOARD_DUP_${R()}`), c.children && (c.children = c.children.map(n)), c;
114
114
  };
115
115
  let i = !1;
116
116
  const r = (o) => {
117
- let s = !1;
118
- const c = [];
117
+ let c = !1;
118
+ const s = [];
119
119
  for (const u of o)
120
- if (c.push(u), !i && (u.id === t || u.instanceId === t))
121
- i = !0, s = !0, c.push(n(u));
120
+ if (s.push(u), !i && (u.id === t || u.instanceId === t))
121
+ i = !0, c = !0, s.push(n(u));
122
122
  else if (u.children) {
123
123
  const a = r(u.children);
124
- a !== u.children && (s = !0, c[c.length - 1] = { ...u, children: a });
124
+ a !== u.children && (c = !0, s[s.length - 1] = { ...u, children: a });
125
125
  }
126
- return s ? c : o;
126
+ return c ? s : o;
127
127
  };
128
128
  return r(e || []);
129
129
  }, et = (e, t) => {
130
130
  const n = (i) => {
131
- const r = i.findIndex((c) => c.id === t || c.instanceId === t);
131
+ const r = i.findIndex((s) => s.id === t || s.instanceId === t);
132
132
  if (r > 0) {
133
- const c = [...i];
134
- return [c[r - 1], c[r]] = [c[r], c[r - 1]], c;
133
+ const s = [...i];
134
+ return [s[r - 1], s[r]] = [s[r], s[r - 1]], s;
135
135
  }
136
136
  let o = !1;
137
- const s = i.map((c) => {
138
- if (c.children) {
139
- const u = n(c.children);
140
- if (u !== c.children)
141
- return o = !0, { ...c, children: u };
137
+ const c = i.map((s) => {
138
+ if (s.children) {
139
+ const u = n(s.children);
140
+ if (u !== s.children)
141
+ return o = !0, { ...s, children: u };
142
142
  }
143
- return c;
143
+ return s;
144
144
  });
145
- return o ? s : i;
145
+ return o ? c : i;
146
146
  };
147
147
  return n(e || []);
148
148
  }, nt = (e, t) => {
149
149
  const n = (i) => {
150
- const r = i.findIndex((c) => c.id === t || c.instanceId === t);
150
+ const r = i.findIndex((s) => s.id === t || s.instanceId === t);
151
151
  if (r >= 0 && r < i.length - 1) {
152
- const c = [...i];
153
- return [c[r], c[r + 1]] = [c[r + 1], c[r]], c;
152
+ const s = [...i];
153
+ return [s[r], s[r + 1]] = [s[r + 1], s[r]], s;
154
154
  }
155
155
  let o = !1;
156
- const s = i.map((c) => {
157
- if (c.children) {
158
- const u = n(c.children);
159
- if (u !== c.children)
160
- return o = !0, { ...c, children: u };
156
+ const c = i.map((s) => {
157
+ if (s.children) {
158
+ const u = n(s.children);
159
+ if (u !== s.children)
160
+ return o = !0, { ...s, children: u };
161
161
  }
162
- return c;
162
+ return s;
163
163
  });
164
- return o ? s : i;
164
+ return o ? c : i;
165
165
  };
166
166
  return n(e || []);
167
167
  }, H = (e) => (e == null ? void 0 : e.instanceId) || (e == null ? void 0 : e.id), p = (e, t) => {
@@ -169,25 +169,25 @@ const S = (e, t = {}) => ({
169
169
  return { nodes: (e || []).reduce((r, o) => {
170
170
  if (o.id === t || o.instanceId === t)
171
171
  return n = o, r;
172
- const s = p(o.children || [], t);
173
- if (s.removedNode) {
174
- n = s.removedNode;
175
- let c = { ...o, children: s.nodes };
176
- return r.push(c), r;
172
+ const c = p(o.children || [], t);
173
+ if (c.removedNode) {
174
+ n = c.removedNode;
175
+ let s = { ...o, children: c.nodes };
176
+ return r.push(s), r;
177
177
  }
178
178
  return r.push(o), r;
179
179
  }, []), removedNode: n };
180
180
  }, O = (e, t, n) => {
181
181
  let i = !1;
182
- return { nodes: (e || []).reduce((o, s) => {
183
- if (s.id === t || s.instanceId === t)
184
- return o.push(n, s), i = !0, o;
185
- const c = O(
186
- s.children || [],
182
+ return { nodes: (e || []).reduce((o, c) => {
183
+ if (c.id === t || c.instanceId === t)
184
+ return o.push(n, c), i = !0, o;
185
+ const s = O(
186
+ c.children || [],
187
187
  t,
188
188
  n
189
189
  );
190
- return c.didInsert ? (i = !0, o.push({ ...s, children: c.nodes }), o) : (o.push(s), o);
190
+ return s.didInsert ? (i = !0, o.push({ ...c, children: s.nodes }), o) : (o.push(c), o);
191
191
  }, []), didInsert: i };
192
192
  }, D = (e, t) => e ? e.id === t || e.instanceId === t ? !0 : (e.children || []).some((n) => D(n, t)) : !1, $ = (e, t) => {
193
193
  const n = H(t);
@@ -203,52 +203,52 @@ const S = (e, t = {}) => ({
203
203
  e,
204
204
  t
205
205
  );
206
- return !r || n !== g && D(r, n) ? e : _(i, n, r);
207
- }, ct = (e, t, n) => {
206
+ return !r || n !== C && D(r, n) ? e : _(i, n, r);
207
+ }, st = (e, t, n) => {
208
208
  if (t === n) return e;
209
- const i = C(e, t), r = C(e, n);
209
+ const i = g(e, t), r = g(e, n);
210
210
  if (!i || !r || D(i, n))
211
211
  return e;
212
- const { nodes: o, removedNode: s } = p(
212
+ const { nodes: o, removedNode: c } = p(
213
213
  e,
214
214
  t
215
215
  );
216
- if (!s) return e;
217
- const c = O(o, n, s);
218
- return c.didInsert ? c.nodes : $(o, i);
216
+ if (!c) return e;
217
+ const s = O(o, n, c);
218
+ return s.didInsert ? s.nodes : $(o, i);
219
219
  }, M = (e) => {
220
220
  var E, f, d;
221
221
  if (e.contentLayout) return e;
222
- const t = ((f = (E = e.style) == null ? void 0 : E.contentAlignment) == null ? void 0 : f.toUpperCase()) || "LEFT", n = ((d = e.style) == null ? void 0 : d.layoutType) === "HORIZONTAL", i = t, r = i === "START" ? "LEFT" : i === "END" ? "RIGHT" : i === "CENTER" ? "CENTER" : "LEFT", o = "MIDDLE", s = {
222
+ const t = ((f = (E = e.style) == null ? void 0 : E.contentAlignment) == null ? void 0 : f.toUpperCase()) || "LEFT", n = ((d = e.style) == null ? void 0 : d.layoutType) === "HORIZONTAL", i = t, r = i === "START" ? "LEFT" : i === "END" ? "RIGHT" : i === "CENTER" ? "CENTER" : "LEFT", o = "MIDDLE", c = {
223
223
  ICON: i === "CENTER" || i === "RIGHT" ? { horizontal: r, vertical: o } : { horizontal: "LEFT", vertical: "MIDDLE" },
224
224
  TITLE: i === "CENTER" || i === "RIGHT" ? { horizontal: r, vertical: o } : { horizontal: "CENTER", vertical: "MIDDLE" },
225
225
  SUBTITLE: i === "CENTER" || i === "RIGHT" ? { horizontal: r, vertical: o } : { horizontal: "LEFT", vertical: "BOTTOM" },
226
226
  BUTTON: { horizontal: "RIGHT", vertical: "MIDDLE" }
227
- }, c = {};
227
+ }, s = {};
228
228
  ["ICON", "TITLE", "SUBTITLE", "BUTTON"].forEach((h) => {
229
- const m = s[h], y = `${m.horizontal}_${m.vertical}`;
230
- c[y] || (c[y] = {
229
+ const m = c[h], y = `${m.horizontal}_${m.vertical}`;
230
+ s[y] || (s[y] = {
231
231
  position: m,
232
232
  items: []
233
- }), c[y].items.push(h);
233
+ }), s[y].items.push(h);
234
234
  });
235
- const a = Object.values(c).filter((h) => h.items.length > 0).map((h) => (h.items.length > 1 && (h.alignment = n ? "HORIZONTAL" : "VERTICAL", h.spacing = n ? 12 : 4), h));
235
+ const a = Object.values(s).filter((h) => h.items.length > 0).map((h) => (h.items.length > 1 && (h.alignment = n ? "HORIZONTAL" : "VERTICAL", h.spacing = n ? 12 : 4), h));
236
236
  return {
237
237
  ...e,
238
238
  contentLayout: a
239
239
  };
240
240
  }, z = (e, t) => Array.isArray(e) ? e.map((n) => {
241
- var o, s;
241
+ var o, c;
242
242
  if (n.type === l.SECTION && Array.isArray(n.features)) {
243
- const c = `node-${R()}`;
243
+ const s = `node-${R()}`;
244
244
  return S(l.SECTION, {
245
- id: c,
245
+ id: s,
246
246
  title: n.title || "Section",
247
247
  header: {
248
248
  ...U[l.SECTION].header,
249
249
  title: n.title || "Section"
250
250
  },
251
- children: n.features.map((u) => t(u, c)).filter(Boolean)
251
+ children: n.features.map((u) => t(u, s)).filter(Boolean)
252
252
  });
253
253
  }
254
254
  if (n.type === l.FEATURE)
@@ -264,21 +264,24 @@ const S = (e, t = {}) => ({
264
264
  children: i
265
265
  });
266
266
  if (n.type === l.FEATURE_CARD) {
267
- const c = (i || []).find(
267
+ const s = (i || []).find(
268
268
  (u) => u.type === l.FEATURE
269
269
  );
270
- c && !((o = r.content) != null && o.title) && !((s = r.content) != null && s.customTitle) && (r = F(r, c)), r = M(r);
270
+ s && !((o = r.content) != null && o.title) && !((c = r.content) != null && c.customTitle) && (r = F(r, s)), r = M(r);
271
271
  }
272
272
  return r;
273
- }).filter(Boolean) : [], w = (e) => ({
274
- type: l.FEATURE,
275
- id: e.id,
276
- menuName: e.name
277
- }), k = (e) => (e.children || []).find(
273
+ }).filter(Boolean) : [], w = (e) => {
274
+ const t = {
275
+ type: l.FEATURE,
276
+ id: e.id,
277
+ menuName: e.name
278
+ };
279
+ return Array.isArray(e.pageParams) && e.pageParams.length > 0 && (t.navigationAction = e.navigationAction || "", t.pageParams = e.pageParams), t;
280
+ }, P = (e) => (e.children || []).find(
278
281
  (t) => t.type === l.FEATURE
279
- ), x = (e, t) => String(t || "").trim() || (e == null ? void 0 : e.name) || (e == null ? void 0 : e.menuName) || "", P = (e, t) => String(t || "").trim() || (e == null ? void 0 : e.subTitle) || (e == null ? void 0 : e.subtitle) || "", V = (e, t) => {
280
- var o, s, c, u;
281
- const n = ((o = e.icon) == null ? void 0 : o.icon) || ((s = e.icon) == null ? void 0 : s.iconName) || "", i = ((c = e.icon) == null ? void 0 : c.iconsvg) || ((u = e.icon) == null ? void 0 : u.svg) || "";
282
+ ), k = (e, t) => String(t || "").trim() || (e == null ? void 0 : e.name) || (e == null ? void 0 : e.menuName) || "", x = (e, t) => String(t || "").trim() || (e == null ? void 0 : e.subTitle) || (e == null ? void 0 : e.subtitle) || "", V = (e, t) => {
283
+ var o, c, s, u;
284
+ const n = ((o = e.icon) == null ? void 0 : o.icon) || ((c = e.icon) == null ? void 0 : c.iconName) || "", i = ((s = e.icon) == null ? void 0 : s.iconsvg) || ((u = e.icon) == null ? void 0 : u.svg) || "";
282
285
  if (n) return { icon: n, iconsvg: "" };
283
286
  if (i) return { icon: "", iconsvg: i };
284
287
  const r = t == null ? void 0 : t.icon;
@@ -305,7 +308,7 @@ const S = (e, t = {}) => ({
305
308
  var E, f, d, h, m, y, N;
306
309
  if (t.type === l.FEATURE)
307
310
  return w(t);
308
- const { id: n, instanceId: i, icon: r, name: o, features: s, title: c, ...u } = t, a = {
311
+ const { id: n, instanceId: i, icon: r, name: o, features: c, title: s, ...u } = t, a = {
309
312
  ...u,
310
313
  children: j(t.children || [])
311
314
  };
@@ -316,14 +319,14 @@ const S = (e, t = {}) => ({
316
319
  a.header = L;
317
320
  }
318
321
  if (t.type === l.FEATURE_CARD) {
319
- const T = k(t);
322
+ const T = P(t);
320
323
  a.content = {
321
324
  ...u.content || {},
322
- title: x(
325
+ title: k(
323
326
  T,
324
327
  ((f = u.content) == null ? void 0 : f.title) || ((d = u.content) == null ? void 0 : d.customTitle)
325
328
  ),
326
- subTitle: P(
329
+ subTitle: x(
327
330
  T,
328
331
  ((h = u.content) == null ? void 0 : h.subTitle) || ((m = u.content) == null ? void 0 : m.customSubtitle)
329
332
  )
@@ -344,8 +347,8 @@ const S = (e, t = {}) => ({
344
347
  var o;
345
348
  if (!n || typeof n != "object") return [];
346
349
  if (n.type === l.FEATURE) {
347
- const s = n.menuName || n.name || n.title || ((o = n.content) == null ? void 0 : o.title);
348
- return s ? [s] : [];
350
+ const c = n.menuName || n.name || n.title || ((o = n.content) == null ? void 0 : o.title);
351
+ return c ? [c] : [];
349
352
  }
350
353
  const i = n.children || n.features || n.layout || n.tabs || n.menus || (n.type ? [] : Object.values(n)), r = G(i);
351
354
  return n.menuName ? [n.menuName, ...r] : r;
@@ -353,9 +356,9 @@ const S = (e, t = {}) => ({
353
356
  l.SECTION,
354
357
  l.ROW,
355
358
  l.COLUMN
356
- ]), st = (e) => {
359
+ ]), ct = (e) => {
357
360
  const t = [], n = (i) => {
358
- var r, o, s, c, u, a, E, f;
361
+ var r, o, c, s, u, a, E, f;
359
362
  for (const d of i || []) {
360
363
  if (Y.has(d.type) && !(d.children || []).length) {
361
364
  const h = d.type === l.ROW && ((r = d.style) == null ? void 0 : r.height), m = d.type === l.COLUMN && ((o = d.style) == null ? void 0 : o.width);
@@ -365,7 +368,7 @@ const S = (e, t = {}) => ({
365
368
  if (d.type === l.FEATURE_CARD) {
366
369
  const h = (d.children || []).some(
367
370
  (y) => y.type === l.FEATURE
368
- ), m = ((s = d.content) == null ? void 0 : s.customTitle) || ((c = d.content) == null ? void 0 : c.customSubtitle) || ((u = d.content) == null ? void 0 : u.title) || ((a = d.content) == null ? void 0 : a.subTitle) || ((E = d.icon) == null ? void 0 : E.iconsvg) || ((f = d.icon) == null ? void 0 : f.icon);
371
+ ), m = ((c = d.content) == null ? void 0 : c.customTitle) || ((s = d.content) == null ? void 0 : s.customSubtitle) || ((u = d.content) == null ? void 0 : u.title) || ((a = d.content) == null ? void 0 : a.subTitle) || ((E = d.icon) == null ? void 0 : E.iconsvg) || ((f = d.icon) == null ? void 0 : f.icon);
369
372
  if (!h && !m) {
370
373
  t.push(d);
371
374
  continue;
@@ -386,14 +389,14 @@ export {
386
389
  G as c,
387
390
  rt as d,
388
391
  it as e,
389
- C as f,
392
+ g as f,
390
393
  J as g,
391
394
  z as h,
392
- st as i,
395
+ ct as i,
393
396
  tt as j,
394
397
  et as k,
395
398
  nt as l,
396
- ct as m,
399
+ st as m,
397
400
  _ as n,
398
401
  q as o,
399
402
  K as p,
@@ -402,4 +405,4 @@ export {
402
405
  j as s,
403
406
  Q as u
404
407
  };
405
- //# sourceMappingURL=dashboardLayoutUtils-D1xCAxp3.js.map
408
+ //# sourceMappingURL=dashboardLayoutUtils-CJivzaU1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardLayoutUtils-CJivzaU1.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 const featureTitle =\n featureNode.name ||\n featureNode.menuName ||\n featureNode.title ||\n featureNode.content?.title ||\n \"\";\n return {\n ...cardNode,\n content: {\n ...(cardNode.content || {}),\n title: featureTitle,\n subTitle: \"\",\n },\n icon: {\n icon: \"\",\n iconsvg: featureNode.icon?.content || featureNode.icon?.svg || featureNode.icon?.iconsvg || \"\",\n },\n };\n};\n\nexport const clearFeatureCardConfig = (cardNode) => {\n if (!cardNode || cardNode.type !== DASHBOARD_COMPONENT_TYPES.FEATURE_CARD) {\n return cardNode;\n }\n const cleanedCta = cardNode.cta?.type === \"BUTTON\" \n ? cardNode.cta \n : cardNode.cta?.type ? { type: cardNode.cta.type } : undefined;\n\n return {\n ...cardNode,\n content: {\n ...(cardNode.content || {}),\n title: \"\",\n subTitle: \"\",\n },\n icon: {\n icon: \"\",\n iconsvg: \"\",\n },\n ...(cleanedCta ? { cta: cleanedCta } : {}),\n };\n};\n\nexport const getDashboardDropValidationMessage = (\n parentType,\n childType,\n parentNode = null,\n childName = null\n) => {\n const allowed = ALLOWED_CHILDREN[parentType] || [];\n const rawDisplayName = childName || childType;\n const displayName =\n rawDisplayName === \"FEATURE_CARD\"\n ? \"Feature Card\"\n : rawDisplayName === \"SECTION\"\n ? \"Section\"\n : rawDisplayName === \"ROW\" || rawDisplayName === \"COLUMN\"\n ? \"Card Stack\"\n : rawDisplayName === \"FEATURE\"\n ? \"Feature\"\n : rawDisplayName === \"SEARCH_BAR\"\n ? \"Search Bar\"\n : rawDisplayName === \"CAROUSEL\"\n ? \"Image Carousel\"\n : rawDisplayName === \"DIVIDER\"\n ? \"Divider\"\n : rawDisplayName === \"TEXT\"\n ? \"Text Heading\"\n : rawDisplayName;\n\n if (parentNode) {\n if (parentType === DASHBOARD_COMPONENT_TYPES.ROW && parentNode.style?.height) {\n return `Cannot place ${displayName} inside a horizontal spacer.`;\n }\n if (parentType === DASHBOARD_COMPONENT_TYPES.COLUMN && parentNode.style?.width) {\n return `Cannot place ${displayName} inside a vertical spacer.`;\n }\n }\n\n if (!allowed.includes(childType)) {\n if (childType === DASHBOARD_COMPONENT_TYPES.SECTION)\n return `${displayName} can only be placed directly inside the layout.`;\n if (childType === DASHBOARD_COMPONENT_TYPES.DIVIDER)\n return `${displayName} can only be placed inside a Section or Card Stack or direcly inside the layout.`;\n if (childType === DASHBOARD_COMPONENT_TYPES.CAROUSEL)\n return `${displayName} can only be placed directly inside the layout.`;\n if (childType === DASHBOARD_COMPONENT_TYPES.SEARCH_BAR)\n return `${displayName} can only be placed directly inside the layout.`;\n if (childType === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD)\n return `${displayName} can only be placed inside a Section or Card Stack.`;\n if (childType === DASHBOARD_COMPONENT_TYPES.ROW)\n return `${displayName} can only be placed inside a Section or directly inside the layout.`;\n if (childType === DASHBOARD_COMPONENT_TYPES.COLUMN)\n return `${displayName} can only be placed inside a Section or directly inside the layout.`;\n if (childType === DASHBOARD_COMPONENT_TYPES.FEATURE)\n return `${displayName} can only be assigned to a Feature Card or Section or card stack.`;\n if (childType === DASHBOARD_COMPONENT_TYPES.TEXT)\n return `${displayName} can only be placed inside a Section or directly inside the layout.`;\n return `${displayName} cannot be placed in this container.`;\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 \"A Feature Card can only contain one feature.\";\n }\n\n if (\n parentType === DASHBOARD_COMPONENT_TYPES.ROW &&\n (parentNode?.children || []).length >= 4\n ) {\n return \"This card stack can contain a maximum of 4 items.\";\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 \"This container can contain a maximum of 4 items.\";\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 const nextChildren = removeNodeById(node.children, nodeId);\n let updatedNode = {\n ...node,\n children: nextChildren,\n };\n return updatedNode;\n });\n\nexport const updateNodeById = (nodes, nodeId, updater) =>\n mapLayoutTree(nodes, (node) =>\n node.id === nodeId || node.instanceId === nodeId ? updater(node) : node,\n );\n\nexport const duplicateNode = (nodes, nodeId) => {\n const cloneNode = (node) => {\n const newNode = { ...node, id: `node-${generateUUID()}` };\n if (newNode.instanceId) {\n newNode.instanceId = `DASHBOARD_DUP_${generateUUID()}`;\n }\n if (newNode.children) {\n newNode.children = newNode.children.map(cloneNode);\n }\n return newNode;\n };\n\n let found = false;\n const processNodesPure = (currentNodes) => {\n let changed = false;\n const result = [];\n for (const node of currentNodes) {\n result.push(node);\n if (!found && (node.id === nodeId || node.instanceId === nodeId)) {\n found = true;\n changed = true;\n result.push(cloneNode(node));\n } else if (node.children) {\n const newChildren = processNodesPure(node.children);\n if (newChildren !== node.children) {\n changed = true;\n result[result.length - 1] = { ...node, children: newChildren };\n }\n }\n }\n return changed ? result : currentNodes;\n };\n return processNodesPure(nodes || []);\n};\n\nexport const moveNodeUp = (nodes, nodeId) => {\n const processNodes = (currentNodes) => {\n const index = currentNodes.findIndex(n => n.id === nodeId || n.instanceId === nodeId);\n if (index > 0) {\n const result = [...currentNodes];\n [result[index - 1], result[index]] = [result[index], result[index - 1]];\n return result;\n }\n\n let changed = false;\n const newNodes = currentNodes.map(node => {\n if (node.children) {\n const newChildren = processNodes(node.children);\n if (newChildren !== node.children) {\n changed = true;\n return { ...node, children: newChildren };\n }\n }\n return node;\n });\n return changed ? newNodes : currentNodes;\n };\n return processNodes(nodes || []);\n};\n\nexport const moveNodeDown = (nodes, nodeId) => {\n const processNodes = (currentNodes) => {\n const index = currentNodes.findIndex(n => n.id === nodeId || n.instanceId === nodeId);\n if (index >= 0 && index < currentNodes.length - 1) {\n const result = [...currentNodes];\n [result[index], result[index + 1]] = [result[index + 1], result[index]];\n return result;\n }\n\n let changed = false;\n const newNodes = currentNodes.map(node => {\n if (node.children) {\n const newChildren = processNodes(node.children);\n if (newChildren !== node.children) {\n changed = true;\n return { ...node, children: newChildren };\n }\n }\n return node;\n });\n return changed ? newNodes : currentNodes;\n };\n return processNodes(nodes || []);\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 let updatedNode = { ...node, children: childResult.nodes };\n acc.push(updatedNode);\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\nconst migrateFeatureCardLayout = (node) => {\n if (node.contentLayout) return node;\n\n const contentAlignment = node.style?.contentAlignment?.toUpperCase() || 'LEFT';\n const isHorizontal = node.style?.layoutType === 'HORIZONTAL';\n const oldAlign = contentAlignment;\n const defaultHorizontal = oldAlign === 'START' ? 'LEFT' : oldAlign === 'END' ? 'RIGHT' : (oldAlign === 'CENTER' ? 'CENTER' : 'LEFT');\n const defaultVertical = 'MIDDLE';\n\n const positions = {\n ICON: (oldAlign === 'CENTER' || oldAlign === 'RIGHT' ? { horizontal: defaultHorizontal, vertical: defaultVertical } : { horizontal: 'LEFT', vertical: 'MIDDLE' }),\n TITLE: (oldAlign === 'CENTER' || oldAlign === 'RIGHT' ? { horizontal: defaultHorizontal, vertical: defaultVertical } : { horizontal: 'CENTER', vertical: 'MIDDLE' }),\n SUBTITLE: (oldAlign === 'CENTER' || oldAlign === 'RIGHT' ? { horizontal: defaultHorizontal, vertical: defaultVertical } : { horizontal: 'LEFT', vertical: 'BOTTOM' }),\n BUTTON: { horizontal: 'RIGHT', vertical: 'MIDDLE' }\n };\n\n const layoutMap = {};\n const orderedElements = [\"ICON\", \"TITLE\", \"SUBTITLE\", \"BUTTON\"];\n orderedElements.forEach(el => {\n const pos = positions[el];\n const key = `${pos.horizontal}_${pos.vertical}`;\n if (!layoutMap[key]) {\n layoutMap[key] = {\n position: pos,\n items: []\n };\n }\n layoutMap[key].items.push(el);\n });\n\n const contentLayout = Object.values(layoutMap).filter(group => group.items.length > 0).map(group => {\n if (group.items.length > 1) {\n group.alignment = isHorizontal ? \"HORIZONTAL\" : \"VERTICAL\";\n group.spacing = isHorizontal ? 12 : 4;\n }\n return group;\n });\n\n return {\n ...node,\n contentLayout\n };\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 let updatedNode = createLayoutNode(node.type, {\n ...node,\n id: node.id || `node-${generateUUID()}`,\n children: hydratedChildren,\n });\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD) {\n const childFeature = (hydratedChildren || []).find(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.FEATURE,\n );\n if (childFeature) {\n if (!updatedNode.content?.title && !updatedNode.content?.customTitle) {\n updatedNode = autoConfigureFeatureCardFromChild(updatedNode, childFeature);\n }\n }\n updatedNode = migrateFeatureCardLayout(updatedNode);\n }\n return updatedNode;\n })\n .filter(Boolean);\n};\n\nconst stripRuntimeFeature = (feature) => {\n const stripped = {\n type: DASHBOARD_COMPONENT_TYPES.FEATURE,\n id: feature.id,\n menuName: feature.name,\n };\n if (Array.isArray(feature.pageParams) && feature.pageParams.length > 0) {\n stripped.navigationAction = feature.navigationAction || \"\";\n stripped.pageParams = feature.pageParams;\n }\n return stripped;\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 delete sanitizedNode.style.layoutType;\n delete sanitizedNode.style.contentAlignment;\n\n }\n delete sanitizedNode.content.customTitle;\n delete sanitizedNode.content.customSubtitle;\n delete sanitizedNode.navigation;\n\n if (sanitizedNode.cta?.type !== 'BUTTON') {\n sanitizedNode.cta = { \n type: sanitizedNode.cta?.type || (sanitizedNode.showLeadingArrow ? 'ARROW' : 'NONE') \n };\n }\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\n return sanitizedNode;\n });\n\nexport const collectFeatureNamesFromLayout = (nodes) => {\n if (!nodes) return [];\n const list = Array.isArray(nodes)\n ? nodes\n : typeof nodes === \"object\"\n ? [nodes]\n : [];\n return list.flatMap((node) => {\n if (!node || typeof node !== \"object\") return [];\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE) {\n const name =\n node.menuName || node.name || node.title || node.content?.title;\n return name ? [name] : [];\n }\n const children =\n node.children ||\n node.features ||\n node.layout ||\n node.tabs ||\n node.menus ||\n (node.type ? [] : Object.values(node));\n const childNames = collectFeatureNamesFromLayout(children);\n if (node.menuName) {\n return [node.menuName, ...childNames];\n }\n return childNames;\n });\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 findEmptyDashboardLayoutNode = (nodes) => {\n for (const node of nodes || []) {\n if (\n EMPTY_CHILD_CONTAINER_TYPES.has(node.type) &&\n !(node.children || []).length\n ) {\n const isHorizontalSpacer = node.type === DASHBOARD_COMPONENT_TYPES.ROW && node.style?.height;\n const isVerticalSpacer = node.type === DASHBOARD_COMPONENT_TYPES.COLUMN && node.style?.width;\n if (!isHorizontalSpacer && !isVerticalSpacer) {\n return node;\n }\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD) {\n const hasFeature = (node.children || []).some(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.FEATURE,\n );\n const hasCustomContent = node.content?.customTitle || node.content?.customSubtitle || node.content?.title || node.content?.subTitle || node.icon?.iconsvg || node.icon?.icon;\n if (!hasFeature && !hasCustomContent) return node;\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.CAROUSEL) {\n if (!(node.images || []).length) return node;\n }\n\n const emptyChild = findEmptyDashboardLayoutNode(node.children || []);\n if (emptyChild) return emptyChild;\n }\n return null;\n};\n\nexport const findAllEmptyDashboardLayoutNodes = (nodes) => {\n const emptyNodes = [];\n const traverse = (items) => {\n for (const node of items || []) {\n if (\n EMPTY_CHILD_CONTAINER_TYPES.has(node.type) &&\n !(node.children || []).length\n ) {\n const isHorizontalSpacer = node.type === DASHBOARD_COMPONENT_TYPES.ROW && node.style?.height;\n const isVerticalSpacer = node.type === DASHBOARD_COMPONENT_TYPES.COLUMN && node.style?.width;\n if (!isHorizontalSpacer && !isVerticalSpacer) {\n emptyNodes.push(node);\n }\n continue;\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD) {\n const hasFeature = (node.children || []).some(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.FEATURE,\n );\n const hasCustomContent = node.content?.customTitle || node.content?.customSubtitle || node.content?.title || node.content?.subTitle || node.icon?.iconsvg || node.icon?.icon;\n if (!hasFeature && !hasCustomContent) {\n emptyNodes.push(node);\n continue;\n }\n }\n\n if (node.type === DASHBOARD_COMPONENT_TYPES.CAROUSEL) {\n if (!(node.images || []).length) {\n emptyNodes.push(node);\n continue;\n }\n }\n\n traverse(node.children || []);\n }\n };\n traverse(nodes);\n return emptyNodes;\n};\n\nexport const isSelfEmptyNode = (node) => {\n if (!node) return false;\n if (\n EMPTY_CHILD_CONTAINER_TYPES.has(node.type) &&\n !(node.children || []).length\n ) {\n const isHorizontalSpacer = node.type === DASHBOARD_COMPONENT_TYPES.ROW && node.style?.height;\n const isVerticalSpacer = node.type === DASHBOARD_COMPONENT_TYPES.COLUMN && node.style?.width;\n if (!isHorizontalSpacer && !isVerticalSpacer) {\n return true;\n }\n }\n if (node.type === DASHBOARD_COMPONENT_TYPES.FEATURE_CARD) {\n const hasFeature = (node.children || []).some(\n (child) => child.type === DASHBOARD_COMPONENT_TYPES.FEATURE,\n );\n const hasCustomContent = node.content?.customTitle || node.content?.customSubtitle || node.content?.title || node.content?.subTitle || node.icon?.iconsvg || node.icon?.icon;\n if (!hasFeature && !hasCustomContent) return true;\n }\n if (node.type === DASHBOARD_COMPONENT_TYPES.CAROUSEL) {\n if (!(node.images || []).length) return true;\n }\n return false;\n};\n\nexport const hasEmptyDashboardLayoutNode = (nodes) =>\n Boolean(findEmptyDashboardLayoutNode(nodes));\n\nexport const getComponentLabel = (node) => {\n if (!node) return 'Block';\n\n if (node.blockName) {\n return node.blockName;\n }\n\n const typeNames = {\n SECTION: 'Empty Section',\n ROW: 'Horizontal Card Stack',\n COLUMN: 'Vertical Card Stack',\n FEATURE_CARD: 'Feature Card',\n CAROUSEL: 'Image Carousel',\n SEARCH_BAR: 'Search Bar',\n TEXT: 'Text Heading',\n DIVIDER: 'Divider',\n };\n\n const typeName = typeNames[node.type] || node.type || 'Block';\n const title = node.title || node.content?.text || node.name;\n if (title && typeof title === 'string' && title.trim()) {\n return `${typeName} (\"${title.trim()}\")`;\n }\n return typeName;\n};\n"],"names":["createLayoutNode","type","overrides","generateUUID","styleDefaults","createFeatureNode","feature","parentId","DASHBOARD_COMPONENT_TYPES","autoConfigureFeatureCardFromChild","cardNode","featureNode","featureTitle","_a","_b","_c","_d","clearFeatureCardConfig","cleanedCta","getDashboardDropValidationMessage","parentType","childType","parentNode","childName","allowed","ALLOWED_CHILDREN","rawDisplayName","displayName","child","findNodeById","nodes","id","node","findParentNodeInfo","parentInfo","ROOT_DROP_ZONE","childParent","mapLayoutTree","updater","updatedNode","addChildToParent","childNode","removeNodeById","nodeId","nextChildren","updateNodeById","duplicateNode","cloneNode","newNode","found","processNodesPure","currentNodes","changed","result","newChildren","moveNodeUp","processNodes","index","n","newNodes","moveNodeDown","getNodeKey","removeNodeWithResult","removedNode","acc","childResult","insertNodeBeforeTarget","targetId","nodeToInsert","didInsert","hasNodeInTree","replaceNodeInTree","replacementNode","replacementId","addNodeBeforeTarget","moveNodeToParent","withoutNode","moveNodeBeforeTarget","sourceNode","targetNode","migrateFeatureCardLayout","contentAlignment","isHorizontal","oldAlign","defaultHorizontal","defaultVertical","positions","layoutMap","el","pos","key","contentLayout","group","hydrateDashboardLayout","layout","hydrateFeature","sectionId","hydratedChildren","childFeature","stripRuntimeFeature","stripped","getFeatureChild","getFeatureTitle","contentTitle","getFeatureSubTitle","contentSubTitle","normalizeFeatureCardIcon","configuredIcon","configuredSvg","featureIcon","trimmedIcon","normalizeNavigationFeatureId","navigation","value","numericValue","normalizeFeatureCardBackground","background","normalizedBackground","sanitizeDashboardLayout","instanceId","icon","name","features","title","config","sanitizedNode","color","restHeader","_e","_f","_g","image","collectFeatureNamesFromLayout","children","childNames","EMPTY_CHILD_CONTAINER_TYPES","findAllEmptyDashboardLayoutNodes","emptyNodes","traverse","items","isHorizontalSpacer","isVerticalSpacer","hasFeature","hasCustomContent","_h"],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ function r(e) {
2
+ return String(e).padStart(2, "0");
3
+ }
4
+ function u(e) {
5
+ if (!e) return "-";
6
+ let t = new Date(e);
7
+ return Number.isNaN(t.getTime()) ? "-" : `${t.getFullYear()}-${r(t.getMonth() + 1)}-${r(t.getDate())}`;
8
+ }
9
+ function l(e) {
10
+ if (!e) return "-";
11
+ let t = new Date(e);
12
+ return Number.isNaN(t.getTime()) ? "-" : `${u(t)} ${r(t.getHours())}:${r(t.getMinutes())}`;
13
+ }
14
+ function a(e) {
15
+ if (e == null || e === "") return null;
16
+ if (typeof e == "string") {
17
+ let n = e.match(/^(\d{4})-(\d{2})-(\d{2})/);
18
+ if (n) return `${n[1]}-${n[2]}-${n[3]}`;
19
+ }
20
+ let t = e instanceof Date ? e : new Date(e);
21
+ return Number.isNaN(t.getTime()) ? null : `${t.getFullYear()}-${r(t.getMonth() + 1)}-${r(t.getDate())}`;
22
+ }
23
+ function i() {
24
+ let e = /* @__PURE__ */ new Date();
25
+ return `${e.getFullYear()}-${r(e.getMonth() + 1)}-${r(e.getDate())}`;
26
+ }
27
+ function f(e) {
28
+ let t = a(e);
29
+ return t ? t < i() : !1;
30
+ }
31
+ function o(e, t = 2) {
32
+ if (e == null || e === "") return "-";
33
+ let n = Number(e);
34
+ return Number.isNaN(n) ? "-" : n.toFixed(t);
35
+ }
36
+ function s(e) {
37
+ switch (e) {
38
+ case "ACTIVE":
39
+ return "success";
40
+ case "IN_USE":
41
+ return "info";
42
+ case "EXHAUSTED":
43
+ return "warning";
44
+ case "EXPIRED":
45
+ return "error";
46
+ case "QUARANTINED":
47
+ return "error";
48
+ case "OPEN":
49
+ return "info";
50
+ case "DISCARDED":
51
+ return "default";
52
+ default:
53
+ return "default";
54
+ }
55
+ }
56
+ export {
57
+ f as a,
58
+ l as n,
59
+ o,
60
+ s,
61
+ u as t
62
+ };
63
+ //# sourceMappingURL=format-UOyOu75i-D0GyylyQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-UOyOu75i-D0GyylyQ.js","sources":["../../productManagement/dist/format-UOyOu75i.js"],"sourcesContent":["//#region src/utils/format.js\nfunction e(e) {\n\treturn String(e).padStart(2, \"0\");\n}\nfunction t(t) {\n\tif (!t) return \"-\";\n\tlet n = new Date(t);\n\treturn Number.isNaN(n.getTime()) ? \"-\" : `${n.getFullYear()}-${e(n.getMonth() + 1)}-${e(n.getDate())}`;\n}\nfunction n(n) {\n\tif (!n) return \"-\";\n\tlet r = new Date(n);\n\treturn Number.isNaN(r.getTime()) ? \"-\" : `${t(r)} ${e(r.getHours())}:${e(r.getMinutes())}`;\n}\nfunction r(t) {\n\tif (t == null || t === \"\") return null;\n\tif (typeof t == \"string\") {\n\t\tlet e = t.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n\t\tif (e) return `${e[1]}-${e[2]}-${e[3]}`;\n\t}\n\tlet n = t instanceof Date ? t : new Date(t);\n\treturn Number.isNaN(n.getTime()) ? null : `${n.getFullYear()}-${e(n.getMonth() + 1)}-${e(n.getDate())}`;\n}\nfunction i() {\n\tlet t = /* @__PURE__ */ new Date();\n\treturn `${t.getFullYear()}-${e(t.getMonth() + 1)}-${e(t.getDate())}`;\n}\nfunction a(e) {\n\tlet t = r(e);\n\treturn t ? t < i() : !1;\n}\nfunction o(e, t = 2) {\n\tif (e == null || e === \"\") return \"-\";\n\tlet n = Number(e);\n\treturn Number.isNaN(n) ? \"-\" : n.toFixed(t);\n}\nfunction s(e) {\n\tswitch (e) {\n\t\tcase \"ACTIVE\": return \"success\";\n\t\tcase \"IN_USE\": return \"info\";\n\t\tcase \"EXHAUSTED\": return \"warning\";\n\t\tcase \"EXPIRED\": return \"error\";\n\t\tcase \"QUARANTINED\": return \"error\";\n\t\tcase \"OPEN\": return \"info\";\n\t\tcase \"DISCARDED\": return \"default\";\n\t\tdefault: return \"default\";\n\t}\n}\n//#endregion\nexport { s as a, a as i, n, o as r, t };\n\n//# sourceMappingURL=format-UOyOu75i.js.map"],"names":["e","t","n","r","a"],"mappings":"AACA,SAASA,EAAE,GAAG;AACb,SAAO,OAAO,CAAC,EAAE,SAAS,GAAG,GAAG;AACjC;AACA,SAASC,EAAEA,GAAG;AACb,MAAI,CAACA,EAAG,QAAO;AACf,MAAIC,IAAI,IAAI,KAAKD,CAAC;AAClB,SAAO,OAAO,MAAMC,EAAE,QAAO,CAAE,IAAI,MAAM,GAAGA,EAAE,aAAa,IAAIF,EAAEE,EAAE,SAAQ,IAAK,CAAC,CAAC,IAAIF,EAAEE,EAAE,QAAO,CAAE,CAAC;AACrG;AACA,SAASA,EAAEA,GAAG;AACb,MAAI,CAACA,EAAG,QAAO;AACf,MAAIC,IAAI,IAAI,KAAKD,CAAC;AAClB,SAAO,OAAO,MAAMC,EAAE,QAAO,CAAE,IAAI,MAAM,GAAGF,EAAEE,CAAC,CAAC,IAAIH,EAAEG,EAAE,SAAQ,CAAE,CAAC,IAAIH,EAAEG,EAAE,WAAU,CAAE,CAAC;AACzF;AACA,SAASA,EAAEF,GAAG;AACb,MAAIA,KAAK,QAAQA,MAAM,GAAI,QAAO;AAClC,MAAI,OAAOA,KAAK,UAAU;AACzB,QAAID,IAAIC,EAAE,MAAM,0BAA0B;AAC1C,QAAID,EAAG,QAAO,GAAGA,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,CAAC;AAAA,EACtC;AACA,MAAIE,IAAID,aAAa,OAAOA,IAAI,IAAI,KAAKA,CAAC;AAC1C,SAAO,OAAO,MAAMC,EAAE,QAAO,CAAE,IAAI,OAAO,GAAGA,EAAE,aAAa,IAAIF,EAAEE,EAAE,SAAQ,IAAK,CAAC,CAAC,IAAIF,EAAEE,EAAE,QAAO,CAAE,CAAC;AACtG;AACA,SAAS,IAAI;AACZ,MAAID,IAAoB,oBAAI,KAAI;AAChC,SAAO,GAAGA,EAAE,YAAW,CAAE,IAAID,EAAEC,EAAE,SAAQ,IAAK,CAAC,CAAC,IAAID,EAAEC,EAAE,QAAO,CAAE,CAAC;AACnE;AACA,SAASG,EAAE,GAAG;AACb,MAAI,IAAID,EAAE,CAAC;AACX,SAAO,IAAI,IAAI,EAAC,IAAK;AACtB;AACA,SAAS,EAAE,GAAG,IAAI,GAAG;AACpB,MAAI,KAAK,QAAQ,MAAM,GAAI,QAAO;AAClC,MAAI,IAAI,OAAO,CAAC;AAChB,SAAO,OAAO,MAAM,CAAC,IAAI,MAAM,EAAE,QAAQ,CAAC;AAC3C;AACA,SAAS,EAAE,GAAG;AACb,UAAQ,GAAC;AAAA,IACR,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAa,aAAO;AAAA,IACzB,KAAK;AAAW,aAAO;AAAA,IACvB,KAAK;AAAe,aAAO;AAAA,IAC3B,KAAK;AAAQ,aAAO;AAAA,IACpB,KAAK;AAAa,aAAO;AAAA,IACzB;AAAS,aAAO;AAAA,EAClB;AACA;"}