@acorex/platform 21.0.0-next.8 → 21.0.0-next.83

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 (133) hide show
  1. package/contracts/README.md +3 -0
  2. package/fesm2022/acorex-platform-auth.mjs +201 -81
  3. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs +177 -0
  5. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +1 -0
  6. package/fesm2022/acorex-platform-common.mjs +4490 -880
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-contracts.mjs +38 -0
  9. package/fesm2022/acorex-platform-contracts.mjs.map +1 -0
  10. package/fesm2022/acorex-platform-core.mjs +2612 -667
  11. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-domain.mjs +557 -826
  13. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-builder.mjs +1255 -209
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  17. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  18. package/fesm2022/acorex-platform-layout-components.mjs +6486 -1915
  19. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-designer.mjs +612 -287
  21. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs +376 -0
  23. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -0
  24. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs +100 -0
  25. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-layout-entity.mjs +22502 -9964
  27. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-layout-views.mjs +1360 -338
  29. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-layout-widget-core.mjs +2226 -524
  31. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  32. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  33. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  34. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  35. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  37. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +116 -0
  39. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +1 -0
  40. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs} +6 -6
  41. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs} +5 -5
  43. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs.map +1 -0
  44. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  45. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-layout-widgets.mjs +18742 -16715
  47. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  48. package/fesm2022/acorex-platform-native.mjs +8 -7
  49. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  50. package/fesm2022/acorex-platform-runtime.mjs +391 -166
  51. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  52. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs +160 -0
  53. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs.map +1 -0
  54. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs +120 -0
  55. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +1 -0
  56. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs} +21 -28
  57. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +1 -0
  58. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs +48 -0
  59. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs.map +1 -0
  60. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs +42 -0
  61. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs.map +1 -0
  62. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  63. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  64. package/fesm2022/acorex-platform-themes-default.mjs +2337 -94
  65. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  67. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  69. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  70. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs} +52 -33
  71. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -0
  72. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  73. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  74. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
  75. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  76. package/fesm2022/acorex-platform-themes-shared.mjs +793 -612
  77. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  78. package/fesm2022/acorex-platform-workflow.mjs +997 -274
  79. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  80. package/fesm2022/acorex-platform.mjs.map +1 -1
  81. package/package.json +41 -35
  82. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +40 -19
  83. package/types/acorex-platform-common.d.ts +3673 -0
  84. package/types/acorex-platform-contracts.d.ts +940 -0
  85. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +1029 -170
  86. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
  87. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +262 -55
  88. package/types/acorex-platform-layout-components.d.ts +3329 -0
  89. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
  90. package/types/acorex-platform-layout-entity.d.ts +4512 -0
  91. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +334 -91
  92. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +438 -162
  93. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +1152 -507
  94. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  95. package/types/acorex-platform-runtime.d.ts +571 -0
  96. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +268 -11
  97. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +30 -2
  98. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +436 -748
  99. package/common/index.d.ts +0 -2470
  100. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs +0 -71
  101. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs +0 -135
  104. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  111. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3qZa5fM.mjs +0 -1542
  113. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3qZa5fM.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  115. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs +0 -31
  118. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs +0 -25
  120. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  121. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  122. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  123. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  124. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  125. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  126. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Dz0cylyQ.mjs +0 -65
  127. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Dz0cylyQ.mjs.map +0 -1
  128. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs +0 -64
  129. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  130. package/layout/components/index.d.ts +0 -1670
  131. package/layout/entity/index.d.ts +0 -2294
  132. package/runtime/index.d.ts +0 -307
  133. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -3,12 +3,12 @@ import * as _angular_core from '@angular/core';
3
3
  import { EventEmitter, OnChanges, OnDestroy, WritableSignal, NgZone, ComponentRef, SimpleChanges } from '@angular/core';
4
4
  import { AXBasePageComponent } from '@acorex/components/page';
5
5
  import { AXTabStripChangedEvent } from '@acorex/components/tabs';
6
- import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
7
- import { AXPWidgetConfig, AXPWidgetCategory, AXPWidgetGroupEnum, AXPWidgetNode, AXPBaseWidgetComponent, AXPWidgetRegistryService, AXPLayoutBaseWidgetComponent, AXPWidgetCoreContextChangeEvent } from '@acorex/platform/layout/widget-core';
6
+ import { AXPMultiLanguageString, AXPDefinitionCategory, AXPBroadcastEventService, AXPContextChangeEvent } from '@acorex/platform/core';
8
7
  import { AXPWidgetItemData, AXPWidgetItemClickEvent } from '@acorex/platform/layout/components';
8
+ import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
9
+ import { AXPWidgetConfig, AXPWidgetGroupEnum, AXPWidgetNode, AXPBaseWidgetComponent, AXPWidgetRegistryService, AXPLayoutBaseWidgetComponent } from '@acorex/platform/layout/widget-core';
9
10
  import { AXMenuItem } from '@acorex/components/menu';
10
11
  import { Subject } from 'rxjs';
11
- import { AXPBroadcastEventService } from '@acorex/platform/core';
12
12
  import { AXUnsubscriber } from '@acorex/core/utils';
13
13
  import { AXPClipBoardService, AXPSettingsService } from '@acorex/platform/common';
14
14
 
@@ -72,47 +72,93 @@ declare class AXPDesignerGridDrawerComponent {
72
72
  interface AXPDisplayWidgetConfig extends AXPWidgetConfig {
73
73
  pinned: boolean;
74
74
  }
75
+ interface AXPWidgetPickerSection {
76
+ trackKey: string;
77
+ title: AXPMultiLanguageString | null;
78
+ widgetItems: AXPWidgetItemData[];
79
+ }
75
80
  declare class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
81
+ private readonly injector;
76
82
  private settingsService;
83
+ private readonly mlResolver;
77
84
  private readonly pinnedSettingKey;
85
+ /** Keeps the line indicator in sync when the selected index is set programmatically (e.g. restored tab). */
86
+ private readonly tabsHost;
87
+ constructor();
88
+ protected readonly i18n: {
89
+ readonly searchPlaceholder: "@form-template-management:designer.components.widget-picker.search-placeholder";
90
+ readonly selectedCount: "@form-template-management:designer.components.widget-picker.selected-count";
91
+ readonly tabAll: "@form-template-management:designer.components.widget-picker.tab-all";
92
+ readonly pinnedSectionTitle: "@form-template-management:designer.components.widget-picker.pinned-section-title";
93
+ };
78
94
  protected searchTerm: _angular_core.ModelSignal<string>;
95
+ /** Populated by popup `data.tabPersistenceContext` (optional for tests). */
96
+ tabPersistenceContext?: string;
79
97
  private widgets;
80
98
  private allWidgets;
81
99
  private pinnedWidgets;
82
- private displayWidgets;
83
100
  protected selectedWidgets: _angular_core.WritableSignal<AXPDisplayWidgetConfig[]>;
101
+ protected currentTabIndex: _angular_core.WritableSignal<number>;
102
+ /** Avoid persisting spurious tab events before restore + first paint complete. */
103
+ private allowTabPersistence;
104
+ private displayWidgets;
84
105
  private orderedList;
85
106
  protected pinnedList: _angular_core.Signal<AXPDisplayWidgetConfig[]>;
86
107
  protected regularList: _angular_core.Signal<AXPDisplayWidgetConfig[]>;
87
108
  protected pinnedWidgetItems: _angular_core.Signal<AXPWidgetItemData[]>;
88
- protected regularWidgetItems: _angular_core.Signal<AXPWidgetItemData[]>;
89
- protected categories: _angular_core.Signal<AXPWidgetCategory[]>;
90
- protected tabs: _angular_core.Signal<AXPWidgetCategory[]>;
109
+ protected regularGroupedSections: _angular_core.Signal<AXPWidgetPickerSection[]>;
110
+ protected categories: _angular_core.Signal<AXPDefinitionCategory[]>;
111
+ protected tabs: _angular_core.Signal<AXPDefinitionCategory[]>;
91
112
  protected maxVisibleWidgets: _angular_core.Signal<number>;
92
- protected currentTabIndex: _angular_core.WritableSignal<number>;
93
- protected selectedTab: _angular_core.Signal<AXPWidgetCategory>;
113
+ protected selectedTab: _angular_core.Signal<AXPDefinitionCategory>;
114
+ protected pickerShellClass: _angular_core.Signal<string>;
94
115
  protected ngOnInit(): Promise<void>;
95
- protected handleTabChange(event: AXTabStripChangedEvent): void;
116
+ private lastTabSettingKey;
117
+ private restoreLastTabFromSettings;
118
+ /**
119
+ * `ax-tab-item` [active] updates labels, but `ax-tabs` keeps the underline from its own index until `select` runs.
120
+ */
121
+ private syncTabsStripToIndex;
122
+ private persistTabSelection;
123
+ /**
124
+ * Picks the primary parent category for the "All" tab (lowest `order` wins).
125
+ */
126
+ private primaryCategory;
127
+ private buildAllTabSections;
128
+ private buildCategoryTabSections;
129
+ protected handleTabChange(event: AXTabStripChangedEvent): Promise<void>;
96
130
  protected handleWidgetClick(clickEvent: AXPWidgetItemClickEvent): void;
97
131
  protected handleWidgetPinClick(clickEvent: AXPWidgetItemClickEvent): Promise<void>;
132
+ protected handleConfirmSelection(): void;
98
133
  protected isWidgetSelected(widget: AXPDisplayWidgetConfig): boolean;
99
134
  protected isWidgetItemSelected(widgetItem: AXPWidgetItemData): boolean;
100
- protected handleConfirmSelection(): void;
101
135
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDesignerWidgetPickerComponent, never>;
102
136
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDesignerWidgetPickerComponent, "ng-component", never, { "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; }, { "searchTerm": "searchTermChange"; }, never, never, true, never>;
103
137
  }
104
138
 
139
+ interface AXPWidgetPickerShowOptions {
140
+ groups: AXPWidgetGroupEnum[];
141
+ /** User-scoped last tab; unique per picker host (use `AXP_WIDGET_PICKER_TAB_CONTEXT`). */
142
+ tabPersistenceContext: string;
143
+ }
105
144
  declare class AXPWidgetPickerService {
106
145
  private popupService;
107
146
  private widgetRegistryService;
108
147
  private translationService;
109
- showPicker(options: {
110
- groups: AXPWidgetGroupEnum[];
111
- }): Promise<AXPWidgetNode[]>;
148
+ showPicker(options: AXPWidgetPickerShowOptions): Promise<AXPWidgetNode[]>;
112
149
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetPickerService, never>;
113
150
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetPickerService>;
114
151
  }
115
152
 
153
+ /**
154
+ * Suffixes for `forms:widgets:picker:last-tab:{id}` user settings keys.
155
+ * Use one id per distinct widget-picker host (different tab strips / widget sets).
156
+ */
157
+ declare const AXP_WIDGET_PICKER_TAB_CONTEXT: {
158
+ readonly layoutDesignerFormElements: "layout-designer-form-elements";
159
+ readonly dashboardHome: "dashboard-home";
160
+ };
161
+
116
162
  type AXPDesignerMode = {
117
163
  id: 'designer';
118
164
  title: 'Designer';
@@ -242,7 +288,7 @@ declare class AXPDesignerService {
242
288
  readonly onRefresh: Subject<AXPDesignerRefreshEvent>;
243
289
  readonly onUpdate: Subject<AXPDesignerUpdateEvent>;
244
290
  readonly onFocused: Subject<AXPDesignerFocusEvent>;
245
- private templateId;
291
+ readonly templateId: _angular_core.WritableSignal<string | null>;
246
292
  private loadingStrategy;
247
293
  constructor();
248
294
  private can;
@@ -328,6 +374,38 @@ declare abstract class AXPDesignerConnector<T = string> {
328
374
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDesignerConnector<any>>;
329
375
  }
330
376
 
377
+ /**
378
+ * Distributed hooks for extending the layout designer header menu without coupling the designer library to feature modules.
379
+ *
380
+ * - {@link AXPLayoutDesignerHeaderMenuHookKeys.root}: top-level bar items (siblings of File, Edit, …).
381
+ * - {@link AXPLayoutDesignerHeaderMenuHookKeys.submenu}: extra items inside a top-level menu (`file`, `edit`, `run`, `help`).
382
+ */
383
+ declare const AXPLayoutDesignerHeaderMenuHookKeys: {
384
+ readonly root: "layout-designer.header-menu.root";
385
+ readonly submenu: "layout-designer.header-menu.submenu";
386
+ };
387
+ type AXPLayoutDesignerHeaderParentMenuId = 'file' | 'edit' | 'run' | 'help';
388
+ interface AXPLayoutDesignerHeaderMenuEntry {
389
+ id: string;
390
+ priority?: number;
391
+ /** i18n key (resolved by the menu host when set). */
392
+ labelKey?: string;
393
+ /** Plain label when no translation key is used. */
394
+ label?: string;
395
+ iconClass?: string;
396
+ run: () => void | Promise<void>;
397
+ }
398
+ interface AXPLayoutDesignerHeaderMenuRootPayload {
399
+ /** Current designer instance (typed as unknown to avoid circular imports in consumers). */
400
+ designer: unknown;
401
+ items: AXPLayoutDesignerHeaderMenuEntry[];
402
+ }
403
+ interface AXPLayoutDesignerHeaderMenuSubmenuPayload {
404
+ designer: unknown;
405
+ parentMenuId: AXPLayoutDesignerHeaderParentMenuId;
406
+ items: AXPLayoutDesignerHeaderMenuEntry[];
407
+ }
408
+
331
409
  declare const AXP_DESIGNER_COPY_MENU: AXMenuItem;
332
410
  declare const AXP_DESIGNER_CLONE_MENU: AXMenuItem;
333
411
  declare const AXP_DESIGNER_CUT_MENU: AXMenuItem;
@@ -392,7 +470,7 @@ declare class AXPLayoutDesignerPreviewViewerComponent {
392
470
  protected readonly currentPage: _angular_core.Signal<AXPWidgetNode>;
393
471
  constructor();
394
472
  ngAfterViewInit(): void;
395
- protected handleContextChanged(e: AXPWidgetCoreContextChangeEvent): void;
473
+ protected handleContextChanged(e: AXPContextChangeEvent): void;
396
474
  ngOnDestroy(): void;
397
475
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutDesignerPreviewViewerComponent, never>;
398
476
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutDesignerPreviewViewerComponent, "axp-layout-builder-viewer", never, {}, {}, never, never, true, never>;
@@ -418,5 +496,5 @@ declare class AXPLayoutDesignerPreviewComponent extends AXBasePageComponent {
418
496
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutDesignerPreviewComponent, "axp-layout-preview", never, {}, {}, never, never, true, never>;
419
497
  }
420
498
 
421
- export { AXPDesignerAddWidgetButtonComponent, AXPDesignerAddWidgetLineButtonComponent, AXPDesignerAddWidgetMiniButtonComponent, AXPDesignerConnector, AXPDesignerFlexDrawerComponent, AXPDesignerGridDrawerComponent, AXPDesignerMessageKeys, AXPDesignerModes, AXPDesignerService, AXPDesignerWidgetPickerComponent, AXPLayoutDesignerComponent, AXPLayoutDesignerPreviewComponent, AXPLayoutDesignerPreviewViewerComponent, AXPTemplateLoadingStrategy, AXPWidgetDesignerRendererDirective, AXPWidgetPickerService, AXP_DESIGNER_ADD_WIDGET_MENU, AXP_DESIGNER_CLONE_MENU, AXP_DESIGNER_COPY_MENU, AXP_DESIGNER_CUT_MENU, AXP_DESIGNER_DELETE_WIDGET_MENU, AXP_DESIGNER_PASTE_MENU, AXP_DESIGNER_SAVE_AS_WIDGET_MENU, AXP_DESIGNER_SELECT_WIDGET_MENU, cloneWidgetMenu };
422
- export type { AXPDesignerAddNodeCommand, AXPDesignerAddNodeEvent, AXPDesignerContent, AXPDesignerFocusCommand, AXPDesignerFocusEvent, AXPDesignerMode, AXPDesignerPreviewMessage, AXPDesignerPreviewSize, AXPDesignerRefreshCommand, AXPDesignerRefreshEvent, AXPDesignerRegisterCommand, AXPDesignerSaveFormMessage, AXPDesignerSelectCommand, AXPDesignerSelectEvent, AXPDesignerUpdateCommand, AXPDesignerUpdateEvent, AXPDesignerWidgetComponent, AXPDisplayWidgetConfig };
499
+ export { AXPDesignerAddWidgetButtonComponent, AXPDesignerAddWidgetLineButtonComponent, AXPDesignerAddWidgetMiniButtonComponent, AXPDesignerConnector, AXPDesignerFlexDrawerComponent, AXPDesignerGridDrawerComponent, AXPDesignerMessageKeys, AXPDesignerModes, AXPDesignerService, AXPDesignerWidgetPickerComponent, AXPLayoutDesignerComponent, AXPLayoutDesignerHeaderMenuHookKeys, AXPLayoutDesignerPreviewComponent, AXPLayoutDesignerPreviewViewerComponent, AXPTemplateLoadingStrategy, AXPWidgetDesignerRendererDirective, AXPWidgetPickerService, AXP_DESIGNER_ADD_WIDGET_MENU, AXP_DESIGNER_CLONE_MENU, AXP_DESIGNER_COPY_MENU, AXP_DESIGNER_CUT_MENU, AXP_DESIGNER_DELETE_WIDGET_MENU, AXP_DESIGNER_PASTE_MENU, AXP_DESIGNER_SAVE_AS_WIDGET_MENU, AXP_DESIGNER_SELECT_WIDGET_MENU, AXP_WIDGET_PICKER_TAB_CONTEXT, cloneWidgetMenu };
500
+ export type { AXPDesignerAddNodeCommand, AXPDesignerAddNodeEvent, AXPDesignerContent, AXPDesignerFocusCommand, AXPDesignerFocusEvent, AXPDesignerMode, AXPDesignerPreviewMessage, AXPDesignerPreviewSize, AXPDesignerRefreshCommand, AXPDesignerRefreshEvent, AXPDesignerRegisterCommand, AXPDesignerSaveFormMessage, AXPDesignerSelectCommand, AXPDesignerSelectEvent, AXPDesignerUpdateCommand, AXPDesignerUpdateEvent, AXPDesignerWidgetComponent, AXPDisplayWidgetConfig, AXPLayoutDesignerHeaderMenuEntry, AXPLayoutDesignerHeaderMenuRootPayload, AXPLayoutDesignerHeaderMenuSubmenuPayload, AXPLayoutDesignerHeaderParentMenuId, AXPWidgetPickerShowOptions };