@acorex/components 21.0.2-next.2 → 21.0.2-next.20

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 (55) hide show
  1. package/conversation2/README.md +8 -6
  2. package/fesm2022/acorex-components-button-group.mjs +26 -6
  3. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  4. package/fesm2022/acorex-components-color-palette.mjs +50 -9
  5. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  6. package/fesm2022/acorex-components-conversation2.mjs +5958 -3866
  7. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  8. package/fesm2022/acorex-components-data-pager.mjs +19 -3
  9. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  10. package/fesm2022/acorex-components-data-table.mjs +14 -14
  11. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  12. package/fesm2022/acorex-components-dialog.mjs +2 -2
  13. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  14. package/fesm2022/acorex-components-flow-chart.mjs +42 -25
  15. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  16. package/fesm2022/acorex-components-menu.mjs +5 -5
  17. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  18. package/fesm2022/{acorex-components-modal-acorex-components-modal-DWNqU6or.mjs → acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs} +3 -3
  19. package/fesm2022/{acorex-components-modal-acorex-components-modal-DWNqU6or.mjs.map → acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs.map} +1 -1
  20. package/fesm2022/{acorex-components-modal-modal-content.component-DplJbJyk.mjs → acorex-components-modal-modal-content.component-DTZu2zbU.mjs} +2 -2
  21. package/fesm2022/{acorex-components-modal-modal-content.component-DplJbJyk.mjs.map → acorex-components-modal-modal-content.component-DTZu2zbU.mjs.map} +1 -1
  22. package/fesm2022/acorex-components-modal.mjs +1 -1
  23. package/fesm2022/acorex-components-number-box.mjs +43 -5
  24. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  25. package/fesm2022/acorex-components-popup.mjs +25 -1
  26. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  27. package/fesm2022/acorex-components-qrcode.mjs +19 -2
  28. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  29. package/fesm2022/acorex-components-query-builder.mjs +3 -2
  30. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  31. package/fesm2022/acorex-components-scheduler.mjs +1 -0
  32. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  33. package/fesm2022/acorex-components-select-box.mjs +3 -7
  34. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  35. package/fesm2022/acorex-components-side-menu.mjs +336 -56
  36. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  37. package/fesm2022/acorex-components-switch.mjs +2 -2
  38. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  39. package/fesm2022/acorex-components-time-duration.mjs +3 -5
  40. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  41. package/fesm2022/acorex-components-toast.mjs +19 -6
  42. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  43. package/package.json +3 -3
  44. package/types/acorex-components-button-group.d.ts +9 -3
  45. package/types/acorex-components-color-palette.d.ts +2 -0
  46. package/types/acorex-components-conversation2.d.ts +2473 -2447
  47. package/types/acorex-components-data-pager.d.ts +2 -0
  48. package/types/acorex-components-data-table.d.ts +8 -8
  49. package/types/acorex-components-flow-chart.d.ts +4 -0
  50. package/types/acorex-components-number-box.d.ts +9 -0
  51. package/types/acorex-components-popup.d.ts +10 -0
  52. package/types/acorex-components-qrcode.d.ts +1 -0
  53. package/types/acorex-components-query-builder.d.ts +1 -1
  54. package/types/acorex-components-side-menu.d.ts +85 -6
  55. package/types/acorex-components-toast.d.ts +5 -1
@@ -164,6 +164,8 @@ declare class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
164
164
  protected _currentPage: number;
165
165
  protected _lastPage: number;
166
166
  protected _loading: boolean;
167
+ private localeService;
168
+ protected rtlstatus: i0.Signal<boolean>;
167
169
  /**
168
170
  * @ignore
169
171
  */
@@ -108,6 +108,10 @@ declare abstract class AXDataTableColumnComponent {
108
108
  fixed: 'start' | 'end' | undefined;
109
109
  allowSorting: boolean;
110
110
  allowResizing: boolean;
111
+ /**
112
+ * When true, shows the cell content as tooltip on hover (via `axTooltip`).
113
+ */
114
+ hasTitle: boolean;
111
115
  sortIndex: number | undefined;
112
116
  sortOrder: AXSortOrder | undefined;
113
117
  abstract get renderCellTemplate(): TemplateRef<unknown>;
@@ -247,7 +251,7 @@ declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent
247
251
  */
248
252
  get name(): string;
249
253
  /**
250
- * Returns the display text for a row cell. Used for cell tooltip when title is enabled on the table.
254
+ * Returns the display text for a row cell. Used for cell tooltip when the column has `hasTitle`.
251
255
  */
252
256
  getCellDisplayText(rowData: unknown): string;
253
257
  /**
@@ -264,7 +268,7 @@ declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent
264
268
  */
265
269
  formatOptions: AXFormatOptions;
266
270
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDataTableTextColumnComponent, never>;
267
- static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableTextColumnComponent, "ax-text-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "dataField": { "alias": "dataField"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; }, {}, never, never, true, never>;
271
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableTextColumnComponent, "ax-text-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "hasTitle": { "alias": "hasTitle"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "dataField": { "alias": "dataField"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; }, {}, never, never, true, never>;
268
272
  }
269
273
 
270
274
  type AXRowCommandItem = AXButtonItemListItem & {
@@ -621,10 +625,6 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
621
625
  * @ignore
622
626
  */
623
627
  customDataPager: AXDataPagerComponent;
624
- /**
625
- * When true, shows the cell content as tooltip (title attribute) on hover.
626
- */
627
- title: boolean;
628
628
  /**
629
629
  * @ignore
630
630
  */
@@ -860,7 +860,7 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
860
860
  ngAfterViewInit(): void;
861
861
  private captureAutoFitIntentColumns;
862
862
  /**
863
- * Returns the display text for a cell. Used for the native title (tooltip) on each cell.
863
+ * Returns the display text for a cell. Used for the cell tooltip when the column has `hasTitle`.
864
864
  */
865
865
  protected getCellTooltipText(column: AXDataTableColumnComponent, rowData: unknown): string;
866
866
  /**
@@ -992,7 +992,7 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
992
992
  headerOnly?: boolean;
993
993
  }): void;
994
994
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDataTableComponent, never>;
995
- static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableComponent, "ax-data-table", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "parentField": { "alias": "parentField"; "required": false; }; "hasChildrenField": { "alias": "hasChildrenField"; "required": false; }; "rowDetailsTemplate": { "alias": "rowDetailsTemplate"; "required": false; }; "title": { "alias": "title"; "required": false; }; "rowTemplate": { "alias": "rowTemplate"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "noDataTemplate": { "alias": "noDataTemplate"; "required": false; }; "alternative": { "alias": "alternative"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "fixedHeader": { "alias": "fixedHeader"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "fixedFooter": { "alias": "fixedFooter"; "required": false; }; "itemHeight": { "alias": "itemHeight"; "required": false; }; "allowReordering": { "alias": "allowReordering"; "required": false; }; "paging": { "alias": "paging"; "required": false; }; "fetchDataMode": { "alias": "fetchDataMode"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "focusedRow": { "alias": "focusedRow"; "required": false; }; }, { "selectedRowsChange": "selectedRowsChange"; "focusedRowChange": "focusedRowChange"; "onRowClick": "onRowClick"; "onRowDbClick": "onRowDbClick"; "onColumnsOrderChanged": "onColumnsOrderChanged"; "onColumnSizeChanged": "onColumnSizeChanged"; "onPageChanged": "onPageChanged"; }, ["customDataPager", "columns"], ["ax-header", "ax-data-pager", "ax-footer"], true, never>;
995
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableComponent, "ax-data-table", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "parentField": { "alias": "parentField"; "required": false; }; "hasChildrenField": { "alias": "hasChildrenField"; "required": false; }; "rowDetailsTemplate": { "alias": "rowDetailsTemplate"; "required": false; }; "rowTemplate": { "alias": "rowTemplate"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "noDataTemplate": { "alias": "noDataTemplate"; "required": false; }; "alternative": { "alias": "alternative"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "fixedHeader": { "alias": "fixedHeader"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "fixedFooter": { "alias": "fixedFooter"; "required": false; }; "itemHeight": { "alias": "itemHeight"; "required": false; }; "allowReordering": { "alias": "allowReordering"; "required": false; }; "paging": { "alias": "paging"; "required": false; }; "fetchDataMode": { "alias": "fetchDataMode"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "focusedRow": { "alias": "focusedRow"; "required": false; }; }, { "selectedRowsChange": "selectedRowsChange"; "focusedRowChange": "focusedRowChange"; "onRowClick": "onRowClick"; "onRowDbClick": "onRowDbClick"; "onColumnsOrderChanged": "onColumnsOrderChanged"; "onColumnSizeChanged": "onColumnSizeChanged"; "onPageChanged": "onPageChanged"; }, ["customDataPager", "columns"], ["ax-header", "ax-data-pager", "ax-footer"], true, never>;
996
996
  }
997
997
 
998
998
  declare class AXDataTableModule {
@@ -45,6 +45,8 @@ type AXLineClickEvent = {
45
45
  declare class AXFlowChartService {
46
46
  #private;
47
47
  private zone;
48
+ private platformId;
49
+ private document;
48
50
  initialFlowChartEdge: _angular_core.WritableSignal<any[]>;
49
51
  initialFlowChartNode: _angular_core.WritableSignal<any[]>;
50
52
  selectedNode: _angular_core.WritableSignal<AXFlowChartNodes>;
@@ -113,6 +115,8 @@ declare class AXFlowChartRendererComponent extends NXComponent implements OnDest
113
115
  private canvas;
114
116
  private svg;
115
117
  private service;
118
+ private document;
119
+ private platformId;
116
120
  readonly onLineClick: _angular_core.OutputEmitterRef<AXLineClickEvent>;
117
121
  readonly onLineDbClick: _angular_core.OutputEmitterRef<AXLineClickEvent>;
118
122
  readonly onNodeClick: _angular_core.OutputEmitterRef<AXNodeClickEvent>;
@@ -29,11 +29,20 @@ declare class AXNumberBoxComponent extends AXNumberBoxComponent_base {
29
29
  protected mode: _angular_core.WritableSignal<"digits" | "thousandsSeparator" | "decimal">;
30
30
  private input;
31
31
  protected stringValue: _angular_core.WritableSignal<string>;
32
+ private translationService;
33
+ protected validateFn: (val: number) => Promise<{
34
+ result: boolean;
35
+ message: string;
36
+ } | {
37
+ result: boolean;
38
+ message?: undefined;
39
+ }>;
32
40
  protected internalValueChanged(value: number | undefined): void;
33
41
  private plusValue;
34
42
  private minusValue;
35
43
  private getNumericValue;
36
44
  private getSteppedValue;
45
+ private clampToRange;
37
46
  private getFractionDigits;
38
47
  protected handleOnKeydownEvent(e: KeyboardEvent): void;
39
48
  protected handleUpClick(): void;
@@ -23,6 +23,7 @@ interface AXPopupConfig {
23
23
  hasBackdrop?: boolean;
24
24
  backdropClass?: string;
25
25
  closeOnBackdropClick?: boolean;
26
+ closeOnNavigation?: boolean;
26
27
  viewContainerRef?: ViewContainerRef;
27
28
  providers?: StaticProvider[];
28
29
  panelClass?: string[];
@@ -67,6 +68,8 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
67
68
  private loadingService;
68
69
  private _platform;
69
70
  private componentService;
71
+ private _router;
72
+ private _destroyRef;
70
73
  private contentContainerRef;
71
74
  private contentContainerEl;
72
75
  readonly __content__: i0.InputSignal<AXPopupContentType>;
@@ -97,6 +100,13 @@ declare class AXPopupComponent extends MXBaseComponent implements OnInit, OnDest
97
100
  private elementStartPos;
98
101
  /** @ignore */
99
102
  ngOnInit(): void;
103
+ /**
104
+ * Subscribes to router navigation events so the popup is closed automatically
105
+ * when the user navigates to another route. Enabled by default; disable via
106
+ * `closeOnNavigation: false` in the popup config.
107
+ * @ignore
108
+ */
109
+ private _setupCloseOnNavigation;
100
110
  /** @ignore */
101
111
  private renderContent;
102
112
  /** @ignore */
@@ -7,6 +7,7 @@ type AXQrcodeLevel = 'L' | 'M' | 'Q' | 'H';
7
7
  declare function debounce(func: (...args: any) => void, delayMS: number): (...args: any[]) => void;
8
8
 
9
9
  declare class AXQrcodeComponent implements AfterViewInit {
10
+ private platformId;
10
11
  /**
11
12
  * @description Value of QR code
12
13
  */
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';
3
2
  import * as i1 from '@acorex/components/button-group';
4
3
  import { AXButtonGroupItemComponent } from '@acorex/components/button-group';
4
+ import { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';
5
5
  import * as i3 from '@acorex/components/select-box';
6
6
  import { AXSelectBoxComponent } from '@acorex/components/select-box';
7
7
  import * as i2 from '@acorex/components/decorators';
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { Signal, ElementRef } from '@angular/core';
2
3
  import * as i2 from '@acorex/cdk/common';
3
4
  import { MXInteractiveComponent, AXClickEvent, NXComponent } from '@acorex/cdk/common';
4
5
  import * as i5 from '@angular/router';
@@ -8,6 +9,15 @@ import * as i3 from '@acorex/components/loading';
8
9
  import * as i4 from '@acorex/core/translation';
9
10
  import * as i6 from '@acorex/components/decorators';
10
11
 
12
+ /**
13
+ * DI token for the parent `ax-side-menu`. Child `ax-side-menu-item`s inject this
14
+ * to read shared state (e.g. the current display mode) without creating a
15
+ * circular import on the concrete `AXSideMenuComponent` class.
16
+ */
17
+ declare abstract class AXSideMenuBase {
18
+ abstract readonly mode: Signal<'full' | 'compact'>;
19
+ }
20
+
11
21
  declare class AXSideMenuItemClickEvent extends AXClickEvent {
12
22
  handled: boolean;
13
23
  }
@@ -21,6 +31,20 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
21
31
  tooltipStatus: _angular_core.WritableSignal<boolean>;
22
32
  tooltipText: _angular_core.InputSignal<string>;
23
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>;
24
48
  readonly toggleOnClick: _angular_core.InputSignal<boolean>;
25
49
  readonly href: _angular_core.InputSignal<string>;
26
50
  readonly routerLink: _angular_core.InputSignal<string | any[] | UrlTree>;
@@ -30,14 +54,43 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
30
54
  } | IsActiveMatchOptions>;
31
55
  readonly target: _angular_core.InputSignal<"_blank" | "_self" | "_parent" | "_top">;
32
56
  private childItems;
57
+ private childrenSlot;
58
+ private popoverSlot;
33
59
  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
+ /** Closes other top-level compact flyouts when a rail item is opened. */
79
+ private closeSiblingCompactPopovers;
80
+ /**
81
+ * Moves projected submenu nodes into the popover panel when opening in compact mode.
82
+ * They are not moved back to the inline slot on close (that caused a full-mode flash below the rail).
83
+ */
84
+ private relocateChildren;
85
+ protected _handlePopoverClosed(): void;
34
86
  private checkForChildren;
87
+ private hasNestedMenuItems;
35
88
  protected _handleClickEvent(e: MouseEvent): void;
36
89
  toggle(): void;
37
90
  open(): void;
38
91
  close(): void;
39
92
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSideMenuItemComponent, never>;
40
- 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", "ax-divider", "ax-prefix", "ax-text", "*", "ax-suffix"], true, never>;
93
+ 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>;
41
94
  }
42
95
 
43
96
  type AXSideMenuLook = 'pills' | 'with-line' | 'with-line-color' | 'default';
@@ -66,19 +119,45 @@ type AXSideMenuItem = {
66
119
  * @category
67
120
  * A component for displaying a side menu with customizable content.
68
121
  */
69
- declare class AXSideMenuComponent extends NXComponent {
122
+ declare class AXSideMenuComponent extends NXComponent implements AXSideMenuBase {
70
123
  #private;
71
124
  items: _angular_core.ModelSignal<AXSideMenuItem[]>;
72
125
  readonly look: _angular_core.InputSignal<AXSideMenuLook>;
73
126
  readonly location: _angular_core.InputSignal<AXSideMenuLocation>;
74
127
  readonly mode: _angular_core.InputSignal<"full" | "compact">;
75
- children: _angular_core.Signal<readonly AXSideMenuItemComponent[]>;
76
128
  private elementRef;
77
- private firstLevelItems;
129
+ /**
130
+ * All `ax-side-menu-item` instances discovered by walking the host DOM.
131
+ *
132
+ * We use DOM discovery (instead of `contentChildren`) because Angular content
133
+ * queries do **not** traverse embedded views created by `ngTemplateOutlet`,
134
+ * and the `AXSideMenuBase` DI token is not reachable from inside those views
135
+ * either (they inherit injection from the template's declaration site, not
136
+ * the insertion site). Walking the DOM works for direct projection,
137
+ * structural directives, and recursive `ngTemplateOutlet`-based templates
138
+ * uniformly.
139
+ */
140
+ private _items;
141
+ /** Read-only signal exposing every discovered `ax-side-menu-item` instance. */
142
+ readonly children: _angular_core.Signal<AXSideMenuItemComponent[]>;
143
+ private platformId;
144
+ private destroyRef;
145
+ hostElement: HTMLElement;
146
+ /**
147
+ * Walks the host DOM to discover every nested `ax-side-menu-item`, looks up
148
+ * the component instance through the `__axContext__` property that
149
+ * `MXBaseComponent.ngOnInit` attaches to each host element, and updates the
150
+ * internal items signal and `.first-level` CSS class accordingly.
151
+ *
152
+ * Triggered both initially and from a `MutationObserver` so recursive
153
+ * templates that add/remove items at runtime stay in sync.
154
+ */
155
+ private refreshItemsFromDom;
156
+ private addFirstLevelClass;
78
157
  /** @ignore */
79
158
  private get __hostClass();
80
159
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSideMenuComponent, never>;
81
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSideMenuComponent, "ax-side-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "location": { "alias": "location"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "items": "itemsChange"; }, ["children"], ["ax-side-menu-item,ax-title,ng-container,ng-content"], true, never>;
160
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSideMenuComponent, "ax-side-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "location": { "alias": "location"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "items": "itemsChange"; }, never, ["ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]"], true, never>;
82
161
  }
83
162
 
84
163
  declare class AXOutlineSideMenuDirective {
@@ -107,5 +186,5 @@ declare class AXSideMenuModule {
107
186
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXSideMenuModule>;
108
187
  }
109
188
 
110
- export { AXOutlineSideMenuDirective, AXSideMenuComponent, AXSideMenuItemClickEvent, AXSideMenuItemComponent, AXSideMenuModule };
189
+ export { AXOutlineSideMenuDirective, AXSideMenuBase, AXSideMenuComponent, AXSideMenuItemClickEvent, AXSideMenuItemComponent, AXSideMenuModule };
111
190
  export type { AXSideMenuItem, AXSideMenuLocation, AXSideMenuLook };
@@ -1,4 +1,4 @@
1
- import { AXLocation, AXStyleColorType, MXBaseComponent } from '@acorex/cdk/common';
1
+ import { AXLocation, AXStyleColorType, AXStyleLookType, MXBaseComponent } from '@acorex/cdk/common';
2
2
  import { AXOverlayRef } from '@acorex/cdk/overlay';
3
3
  import * as i0 from '@angular/core';
4
4
  import { OnInit, InjectionToken } from '@angular/core';
@@ -16,6 +16,7 @@ interface AXToastDisplayConfig {
16
16
  closeButton?: boolean;
17
17
  location?: AXLocation;
18
18
  color: AXStyleColorType;
19
+ look?: AXStyleLookType;
19
20
  timeOut?: number;
20
21
  timeOutProgress?: boolean;
21
22
  pauseOnHover?: boolean;
@@ -27,6 +28,7 @@ interface AXToastData {
27
28
  location: AXLocation;
28
29
  closeButton: boolean;
29
30
  color: AXStyleColorType;
31
+ look: AXStyleLookType;
30
32
  timeOut?: number;
31
33
  timeOutProgress: boolean;
32
34
  closeAllButton?: boolean;
@@ -123,6 +125,7 @@ declare class AXToastService {
123
125
  declare class AXToastComponent extends MXBaseComponent implements OnInit {
124
126
  /** Toast configuration data */
125
127
  config: i0.InputSignal<AXToastData>;
128
+ protected hostClass: i0.Signal<string>;
126
129
  /** @internal Callback function to close the toast */
127
130
  onClose: i0.InputSignal<() => void>;
128
131
  toastService: AXToastService;
@@ -161,6 +164,7 @@ interface AXToastConfig {
161
164
  location: AXLocation;
162
165
  limit: number;
163
166
  pauseOnHover: boolean;
167
+ look: AXStyleLookType;
164
168
  }
165
169
  declare const AX_TOAST_CONFIG: InjectionToken<AXToastConfig>;
166
170
  declare const AXToastDefaultConfig: AXToastConfig;