@acorex/platform 20.5.0-next.0 → 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.
package/common/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import { AXPValueTransformerFunctions, AXPGridLayoutOptions, AXPValidationRules,
7
7
  import { AXPWidgetTypesMap, AXPWidgetNode, AXPMetaDataDefinition } from '@acorex/platform/layout/widget-core';
8
8
  import * as i5 from '@angular/router';
9
9
  import { Route, Routes } from '@angular/router';
10
+ import * as rxjs from 'rxjs';
10
11
  import { Subject } from 'rxjs';
11
12
  import * as i1 from '@acorex/platform/workflow';
12
13
  import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
@@ -1159,6 +1160,12 @@ declare class AXPMenuProviderService {
1159
1160
  private pendingRemovals;
1160
1161
  private pendingUpdates;
1161
1162
  private pendingAdditions;
1163
+ /**
1164
+ * Observable for menu reload events
1165
+ * Emits when menu cache is cleared and consumers should reload
1166
+ */
1167
+ private menuReloadSubject;
1168
+ readonly menuReload$: rxjs.Observable<void>;
1162
1169
  /**
1163
1170
  * Get menu items with middlewares applied (for end-user display)
1164
1171
  */
@@ -1170,6 +1177,7 @@ declare class AXPMenuProviderService {
1170
1177
  rawItems(): Promise<AXPMenuItem[]>;
1171
1178
  /**
1172
1179
  * Clear the cache to force reload of menu items
1180
+ * Notifies all subscribers to reload their menu data
1173
1181
  */
1174
1182
  clearCache(): void;
1175
1183
  /**
@@ -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) {