@acorex/platform 20.4.2 → 20.5.0-next.1

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 (29) hide show
  1. package/common/index.d.ts +9 -1
  2. package/core/index.d.ts +405 -193
  3. package/fesm2022/acorex-platform-common.mjs +34 -11
  4. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-core.mjs +638 -244
  6. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-builder.mjs +417 -112
  8. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-components.mjs +614 -31
  10. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-entity.mjs +143 -511
  12. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-widget-core.mjs +70 -47
  14. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-widgets.mjs +2750 -1480
  16. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-rdKxuMC_.mjs → acorex-platform-themes-default-entity-master-list-view.component-ccqB5ShI.mjs} +7 -1
  18. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-rdKxuMC_.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-ccqB5ShI.mjs.map} +1 -1
  19. package/fesm2022/acorex-platform-themes-default.mjs +8 -3
  20. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-themes-shared.mjs +676 -271
  22. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  23. package/layout/builder/index.d.ts +127 -28
  24. package/layout/components/index.d.ts +245 -3
  25. package/layout/entity/index.d.ts +1 -59
  26. package/layout/widget-core/index.d.ts +20 -1
  27. package/layout/widgets/index.d.ts +396 -6
  28. package/package.json +6 -5
  29. package/themes/default/index.d.ts +1 -0
@@ -1434,8 +1434,8 @@ function createMenuItemFinder(rootItems, targetName) {
1434
1434
  oldParent.items.splice(oldIndex, 1);
1435
1435
  }
1436
1436
  // Add to new parent
1437
- if (parentName === null) {
1438
- // Move to root
1437
+ if (!parentName || parentName === '') {
1438
+ // Move to root (handles null, undefined, and empty string)
1439
1439
  rootItems.push(item);
1440
1440
  }
1441
1441
  else {
@@ -1639,6 +1639,12 @@ class AXPMenuProviderService {
1639
1639
  this.pendingRemovals = [];
1640
1640
  this.pendingUpdates = [];
1641
1641
  this.pendingAdditions = [];
1642
+ /**
1643
+ * Observable for menu reload events
1644
+ * Emits when menu cache is cleared and consumers should reload
1645
+ */
1646
+ this.menuReloadSubject = new Subject();
1647
+ this.menuReload$ = this.menuReloadSubject.asObservable();
1642
1648
  }
1643
1649
  //#endregion
1644
1650
  //#region ---- Public API ----
@@ -1691,6 +1697,7 @@ class AXPMenuProviderService {
1691
1697
  }
1692
1698
  /**
1693
1699
  * Clear the cache to force reload of menu items
1700
+ * Notifies all subscribers to reload their menu data
1694
1701
  */
1695
1702
  clearCache() {
1696
1703
  this.cache = null;
@@ -1698,6 +1705,8 @@ class AXPMenuProviderService {
1698
1705
  this.pendingRemovals = [];
1699
1706
  this.pendingUpdates = [];
1700
1707
  this.pendingAdditions = [];
1708
+ // Notify subscribers that menu should be reloaded
1709
+ this.menuReloadSubject.next();
1701
1710
  }
1702
1711
  //#endregion
1703
1712
  //#region ---- Private Methods ----
@@ -2018,15 +2027,29 @@ withMethods((store, router = inject(Router), workflow = inject(AXPWorkflowServic
2018
2027
  return item === selectedItem.item || findParent(item, selectedItem.item);
2019
2028
  },
2020
2029
  };
2021
- }), withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => ({
2022
- onInit() {
2023
- (async () => {
2024
- const items = await menuProviderService.items();
2025
- patchState(store, { items: items });
2026
- })();
2027
- },
2028
- onDestroy() { },
2029
- })));
2030
+ }), withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => {
2031
+ let reloadSubscription;
2032
+ return {
2033
+ onInit() {
2034
+ // Load initial menu items
2035
+ (async () => {
2036
+ const items = await menuProviderService.items();
2037
+ patchState(store, { items: items });
2038
+ })();
2039
+ // Subscribe to menu reload events
2040
+ reloadSubscription = menuProviderService.menuReload$.subscribe(async () => {
2041
+ const items = await menuProviderService.items();
2042
+ patchState(store, { items: items });
2043
+ });
2044
+ },
2045
+ onDestroy() {
2046
+ // Clean up subscription
2047
+ if (reloadSubscription) {
2048
+ reloadSubscription.unsubscribe();
2049
+ }
2050
+ },
2051
+ };
2052
+ }));
2030
2053
 
2031
2054
  class AXPMenuSearchDefinitionProvider {
2032
2055
  async provide(context) {