@acorex/components 20.7.49 → 20.7.52

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/menu/index.d.ts CHANGED
@@ -17,6 +17,8 @@ declare abstract class AXRootMenu {
17
17
  }
18
18
  declare abstract class AXMenuItemComponentBase {
19
19
  parent?: AXMenuItemComponentBase | null;
20
+ /** Resolves the parent item, including for `ngTemplateOutlet`-created nested items. */
21
+ getParentMenuItem?(): AXMenuItemComponentBase | null | undefined;
20
22
  }
21
23
  /** Shared tree item shape for `ax-menu`, `ax-context-menu`, and `ax-side-menu`. */
22
24
  interface AXMenuItem {
@@ -153,11 +155,19 @@ type AXMenuItemClickEvent = AXMenuItemClickBaseEvent<AXMenuItemComponent>;
153
155
  */
154
156
  declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
155
157
  protected isOpen: _angular_core.WritableSignal<boolean>;
156
- protected submenuRendered: _angular_core.WritableSignal<boolean>;
157
158
  readonly parent: AXMenuItemComponent;
158
- protected isRoot: _angular_core.Signal<boolean>;
159
159
  protected isFirstLevel: _angular_core.Signal<boolean>;
160
160
  private readonly childMenuItems;
161
+ private readonly submenuSlot;
162
+ private readonly platformId;
163
+ private readonly destroyRef;
164
+ private childObserver;
165
+ private childRefreshScheduled;
166
+ /**
167
+ * Nested items from the data model. Required for recursive `ngTemplateOutlet` templates
168
+ * because `contentChildren` does not traverse those embedded views.
169
+ */
170
+ subItems: _angular_core.InputSignal<readonly unknown[]>;
161
171
  protected hasSubItems: _angular_core.Signal<boolean>;
162
172
  protected root: AXRootMenu;
163
173
  private service;
@@ -174,6 +184,11 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
174
184
  color: _angular_core.InputSignal<AXStyleColorType>;
175
185
  constructor();
176
186
  private getText;
187
+ /**
188
+ * Resolves the parent menu item. Items rendered via recursive `ngTemplateOutlet` do not
189
+ * receive a DI parent, so we fall back to the DOM tree after reparenting.
190
+ */
191
+ getParentMenuItem(): AXMenuItemComponent | null;
177
192
  /**
178
193
  * Opens the submenu of this menu item if it has sub-items and is not disabled.
179
194
  */
@@ -192,17 +207,29 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
192
207
  private calculatePosition;
193
208
  /** Measures submenu size using the same flex layout as the rendered menu. */
194
209
  private measureSubmenuRect;
210
+ /**
211
+ * Moves nested `ax-menu-item` nodes rendered by recursive `ngTemplateOutlet` templates
212
+ * into the submenu slot. Angular content queries do not traverse those embedded views.
213
+ */
214
+ private reparentOrphanedChildren;
215
+ /** Direct nested `ax-menu-item` hosts for this item only. */
216
+ private getDirectChildElements;
217
+ private scheduleChildRefresh;
218
+ private hasRelevantChildMutation;
219
+ private nodeListContainsMenuStructuralNode;
195
220
  /** Keeps the submenu fully inside the viewport vertically. */
196
221
  private clampVerticalPosition;
197
222
  private handleClick;
198
223
  private handleMouseEnter;
199
224
  private mouseLeaveTimeout;
200
225
  private handleMouseLeave;
226
+ /** True when the pointer moved into this item's submenu panel or a nested open submenu. */
227
+ private containsSubmenuPointer;
201
228
  ngOnDestroy(): void;
202
229
  /** @ignore */
203
230
  get __hostClass(): string[];
204
231
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMenuItemComponent, never>;
205
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMenuItemComponent, "ax-menu-item", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, ["childMenuItems"], ["ax-prefix", "ax-text", "ax-suffix", "ax-menu-item,ax-title,ax-divider,ng-container"], true, never>;
232
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMenuItemComponent, "ax-menu-item", never, { "subItems": { "alias": "subItems"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, ["childMenuItems"], ["ax-prefix", "ax-text", "ax-suffix", "ax-menu-item,ax-title,ax-divider,ng-container,[ngTemplateOutlet]"], true, never>;
206
233
  }
207
234
 
208
235
  declare class AXMenuService {
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "20.7.49",
3
+ "version": "20.7.52",
4
4
  "peerDependencies": {
5
- "@acorex/core": "20.7.49",
6
- "@acorex/cdk": "20.7.49",
5
+ "@acorex/core": "20.7.52",
6
+ "@acorex/cdk": "20.7.52",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "gridstack": ">=12.0.0",
@@ -120,14 +120,14 @@
120
120
  "types": "./circular-progress/index.d.ts",
121
121
  "default": "./fesm2022/acorex-components-circular-progress.mjs"
122
122
  },
123
- "./collapse": {
124
- "types": "./collapse/index.d.ts",
125
- "default": "./fesm2022/acorex-components-collapse.mjs"
126
- },
127
123
  "./code-editor": {
128
124
  "types": "./code-editor/index.d.ts",
129
125
  "default": "./fesm2022/acorex-components-code-editor.mjs"
130
126
  },
127
+ "./collapse": {
128
+ "types": "./collapse/index.d.ts",
129
+ "default": "./fesm2022/acorex-components-collapse.mjs"
130
+ },
131
131
  "./color-box": {
132
132
  "types": "./color-box/index.d.ts",
133
133
  "default": "./fesm2022/acorex-components-color-box.mjs"
@@ -172,14 +172,14 @@
172
172
  "types": "./datetime-box/index.d.ts",
173
173
  "default": "./fesm2022/acorex-components-datetime-box.mjs"
174
174
  },
175
- "./datetime-picker": {
176
- "types": "./datetime-picker/index.d.ts",
177
- "default": "./fesm2022/acorex-components-datetime-picker.mjs"
178
- },
179
175
  "./datetime-input": {
180
176
  "types": "./datetime-input/index.d.ts",
181
177
  "default": "./fesm2022/acorex-components-datetime-input.mjs"
182
178
  },
179
+ "./datetime-picker": {
180
+ "types": "./datetime-picker/index.d.ts",
181
+ "default": "./fesm2022/acorex-components-datetime-picker.mjs"
182
+ },
183
183
  "./decorators": {
184
184
  "types": "./decorators/index.d.ts",
185
185
  "default": "./fesm2022/acorex-components-decorators.mjs"