@acorex/components 20.7.19 → 20.7.21

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/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "20.7.19",
3
+ "version": "20.7.21",
4
4
  "peerDependencies": {
5
- "@acorex/core": "20.7.19",
6
- "@acorex/cdk": "20.7.19",
5
+ "@acorex/core": "20.7.21",
6
+ "@acorex/cdk": "20.7.21",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "gridstack": ">=12.0.0",
@@ -240,14 +240,6 @@
240
240
  "types": "./json-viewer/index.d.ts",
241
241
  "default": "./fesm2022/acorex-components-json-viewer.mjs"
242
242
  },
243
- "./kanban": {
244
- "types": "./kanban/index.d.ts",
245
- "default": "./fesm2022/acorex-components-kanban.mjs"
246
- },
247
- "./kbd": {
248
- "types": "./kbd/index.d.ts",
249
- "default": "./fesm2022/acorex-components-kbd.mjs"
250
- },
251
243
  "./label": {
252
244
  "types": "./label/index.d.ts",
253
245
  "default": "./fesm2022/acorex-components-label.mjs"
@@ -256,6 +248,14 @@
256
248
  "types": "./list/index.d.ts",
257
249
  "default": "./fesm2022/acorex-components-list.mjs"
258
250
  },
251
+ "./kbd": {
252
+ "types": "./kbd/index.d.ts",
253
+ "default": "./fesm2022/acorex-components-kbd.mjs"
254
+ },
255
+ "./kanban": {
256
+ "types": "./kanban/index.d.ts",
257
+ "default": "./fesm2022/acorex-components-kanban.mjs"
258
+ },
259
259
  "./loading": {
260
260
  "types": "./loading/index.d.ts",
261
261
  "default": "./fesm2022/acorex-components-loading.mjs"
@@ -440,6 +440,10 @@
440
440
  "types": "./tag-box/index.d.ts",
441
441
  "default": "./fesm2022/acorex-components-tag-box.mjs"
442
442
  },
443
+ "./text-area": {
444
+ "types": "./text-area/index.d.ts",
445
+ "default": "./fesm2022/acorex-components-text-area.mjs"
446
+ },
443
447
  "./text-box": {
444
448
  "types": "./text-box/index.d.ts",
445
449
  "default": "./fesm2022/acorex-components-text-box.mjs"
@@ -448,18 +452,22 @@
448
452
  "types": "./time-duration/index.d.ts",
449
453
  "default": "./fesm2022/acorex-components-time-duration.mjs"
450
454
  },
451
- "./text-area": {
452
- "types": "./text-area/index.d.ts",
453
- "default": "./fesm2022/acorex-components-text-area.mjs"
454
- },
455
455
  "./time-line": {
456
456
  "types": "./time-line/index.d.ts",
457
457
  "default": "./fesm2022/acorex-components-time-line.mjs"
458
458
  },
459
+ "./toast": {
460
+ "types": "./toast/index.d.ts",
461
+ "default": "./fesm2022/acorex-components-toast.mjs"
462
+ },
459
463
  "./toolbar": {
460
464
  "types": "./toolbar/index.d.ts",
461
465
  "default": "./fesm2022/acorex-components-toolbar.mjs"
462
466
  },
467
+ "./tooltip": {
468
+ "types": "./tooltip/index.d.ts",
469
+ "default": "./fesm2022/acorex-components-tooltip.mjs"
470
+ },
463
471
  "./tree-view": {
464
472
  "types": "./tree-view/index.d.ts",
465
473
  "default": "./fesm2022/acorex-components-tree-view.mjs"
@@ -468,13 +476,9 @@
468
476
  "types": "./tree-view-legacy/index.d.ts",
469
477
  "default": "./fesm2022/acorex-components-tree-view-legacy.mjs"
470
478
  },
471
- "./tooltip": {
472
- "types": "./tooltip/index.d.ts",
473
- "default": "./fesm2022/acorex-components-tooltip.mjs"
474
- },
475
- "./toast": {
476
- "types": "./toast/index.d.ts",
477
- "default": "./fesm2022/acorex-components-toast.mjs"
479
+ "./uploader": {
480
+ "types": "./uploader/index.d.ts",
481
+ "default": "./fesm2022/acorex-components-uploader.mjs"
478
482
  },
479
483
  "./video-player": {
480
484
  "types": "./video-player/index.d.ts",
@@ -483,10 +487,6 @@
483
487
  "./wysiwyg": {
484
488
  "types": "./wysiwyg/index.d.ts",
485
489
  "default": "./fesm2022/acorex-components-wysiwyg.mjs"
486
- },
487
- "./uploader": {
488
- "types": "./uploader/index.d.ts",
489
- "default": "./fesm2022/acorex-components-uploader.mjs"
490
490
  }
491
491
  }
492
492
  }
@@ -2,6 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import { Signal, ElementRef } from '@angular/core';
3
3
  import * as i2 from '@acorex/cdk/common';
4
4
  import { MXInteractiveComponent, AXClickEvent, NXComponent } from '@acorex/cdk/common';
5
+ import { AXMenuItem, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
5
6
  import * as i5 from '@angular/router';
6
7
  import { UrlTree, IsActiveMatchOptions } from '@angular/router';
7
8
  import * as i1 from '@angular/common';
@@ -21,6 +22,10 @@ declare abstract class AXSideMenuBase {
21
22
  declare class AXSideMenuItemClickEvent extends AXClickEvent {
22
23
  handled: boolean;
23
24
  }
25
+ /** Routes context-menu clicks back to the matching `ax-side-menu-item`. */
26
+ interface AXSideMenuContextMenuItemData {
27
+ sideMenuItem: AXSideMenuItemComponent;
28
+ }
24
29
  declare class AXSideMenuItemComponent extends MXInteractiveComponent {
25
30
  #private;
26
31
  text: _angular_core.ModelSignal<string>;
@@ -30,21 +35,6 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
30
35
  onClick: _angular_core.OutputEmitterRef<AXSideMenuItemClickEvent>;
31
36
  tooltipStatus: _angular_core.WritableSignal<boolean>;
32
37
  tooltipText: _angular_core.InputSignal<string>;
33
- private elem;
34
- private document;
35
- private platformId;
36
- private destroyRef;
37
- private childObserver;
38
- private childrenPopover;
39
- protected menuItemTrigger: _angular_core.Signal<ElementRef<HTMLElement>>;
40
- /** Synced from the parent `ax-side-menu` (source of truth for full vs compact). */
41
- private menuMode;
42
- /** True when this item should use compact flyout popovers (rail or inside a flyout). */
43
- protected isCompactMode: _angular_core.Signal<boolean>;
44
- /** Called by `ax-side-menu` so items always know the current display mode. */
45
- syncMenuMode(mode: 'full' | 'compact'): void;
46
- /** Top-level rail button in compact mode (icon only, opens flyout). */
47
- protected isFirstLevel: _angular_core.Signal<boolean>;
48
38
  readonly toggleOnClick: _angular_core.InputSignal<boolean>;
49
39
  readonly href: _angular_core.InputSignal<string>;
50
40
  readonly routerLink: _angular_core.InputSignal<string | any[] | UrlTree>;
@@ -53,49 +43,44 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
53
43
  exact: boolean;
54
44
  } | IsActiveMatchOptions>;
55
45
  readonly target: _angular_core.InputSignal<"_blank" | "_self" | "_parent" | "_top">;
56
- private childItems;
57
- private childrenSlot;
58
- private popoverSlot;
46
+ protected menuItemTrigger: _angular_core.Signal<ElementRef<HTMLElement>>;
59
47
  protected hasChild: _angular_core.WritableSignal<boolean>;
60
- /**
61
- * Walks up the DOM to find the enclosing `<ax-side-menu>` host element and
62
- * reads its component instance from `__axContext__`. Needed because items
63
- * rendered inside `ngTemplateOutlet` embedded views cannot inject the
64
- * `AXSideMenuBase` token (DI scope is the template's declaration site).
65
- */
66
- private resolveMenuHostElement;
67
- /**
68
- * Moves any `<ax-side-menu-item>` that belongs to this item (its nearest
69
- * `<ax-side-menu-item>` ancestor in the projected DOM is this host) but is
70
- * NOT inside our own `.ax-side-children-content` container. Without this
71
- * step a content-projection edge case in Angular 21+ leaves recursive items
72
- * stranded inside `.ax-inside-text` (the catch-all `<ng-content>` slot) and
73
- * the submenu cannot expand.
74
- */
75
- private getActiveChildrenSlot;
76
- private reparentOrphanedChildren;
77
- private syncCompactPopover;
78
- /** Restores submenu nodes to the inline slot before the overlay is disposed. */
79
- private closeCompactFlyout;
80
- /** Closes other top-level compact flyouts when a rail item is opened. */
81
- private closeSiblingCompactPopovers;
82
- /**
83
- * Moves projected submenu nodes into the popover panel when opening in compact mode.
84
- * They are not moved back to the inline slot on close (that caused a full-mode flash below the rail).
85
- */
86
- private relocateChildren;
87
- /**
88
- * Pulls direct submenu nodes back into the inline slot from the popover host and
89
- * from any open flyout overlay panel so they are not destroyed on overlay dispose.
90
- */
91
- private moveChildrenToInlineSlot;
92
- protected _handlePopoverClosed(): void;
93
- private checkForChildren;
94
- private hasNestedMenuItems;
95
- protected _handleClickEvent(e: MouseEvent): void;
48
+ protected isCompactMode: _angular_core.Signal<boolean>;
49
+ /** Top-level rail entry in compact mode (opens the flyout context menu). */
50
+ protected isFirstLevel: _angular_core.Signal<boolean>;
51
+ private readonly elem;
52
+ private readonly platformId;
53
+ private readonly destroyRef;
54
+ private readonly menuMode;
55
+ private childObserver;
56
+ private readonly childItems;
57
+ private readonly childrenSlot;
58
+ private readonly childrenContextMenu;
59
+ private get hostElement();
60
+ syncMenuMode(mode: 'full' | 'compact'): void;
61
+ /** Builds the cascading `AXMenuItem` tree used by the compact-mode context menu. */
62
+ buildMenuItemsFromChildren(): AXMenuItem[];
63
+ activateFromContextMenu(nativeEvent: MouseEvent): void;
96
64
  toggle(): void;
97
65
  open(): void;
98
66
  close(): void;
67
+ protected handleContextMenuItemClick(event: AXContextMenuItemsClickEvent): void;
68
+ protected _handleContextMenuClosed(): void;
69
+ protected _handleClickEvent(e: MouseEvent): void;
70
+ private openCompactContextMenu;
71
+ private getContextMenuAnchorPoint;
72
+ private mapSlotChildrenToMenuItems;
73
+ private toMenuItem;
74
+ private hasNestedChildren;
75
+ /** Direct `ax-side-menu-item` children of `menuHost` (defaults to this item). */
76
+ private getDirectChildElements;
77
+ private reparentOrphanedChildren;
78
+ private getItemLabel;
79
+ private getItemIcon;
80
+ private getItemSuffix;
81
+ private getInstanceFromElement;
82
+ private closeSiblingCompactMenus;
83
+ private updateHasChild;
99
84
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSideMenuItemComponent, never>;
100
85
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSideMenuItemComponent, "ax-side-menu-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; "isSignal": true; }; "tooltipText": { "alias": "tooltipText"; "required": false; "isSignal": true; }; "toggleOnClick": { "alias": "toggleOnClick"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "routerLinkActive": { "alias": "routerLinkActive"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, { "text": "textChange"; "active": "activeChange"; "isLoading": "isLoadingChange"; "isCollapsed": "isCollapsedChange"; "onClick": "onClick"; }, ["childItems"], ["ax-title", "ax-side-menu-item, ng-container, [ngTemplateOutlet]", "ax-divider", "ax-prefix", "*", "ax-suffix"], true, never>;
101
86
  }
@@ -194,4 +179,4 @@ declare class AXSideMenuModule {
194
179
  }
195
180
 
196
181
  export { AXOutlineSideMenuDirective, AXSideMenuBase, AXSideMenuComponent, AXSideMenuItemClickEvent, AXSideMenuItemComponent, AXSideMenuModule };
197
- export type { AXSideMenuItem, AXSideMenuLocation, AXSideMenuLook };
182
+ export type { AXSideMenuContextMenuItemData, AXSideMenuItem, AXSideMenuLocation, AXSideMenuLook };