@fundamental-ngx/core 0.65.0-rc.9 → 0.65.0

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 (28) hide show
  1. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +118 -39
  2. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-combobox.mjs +165 -21
  4. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-date-picker.mjs +1 -4
  6. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +21 -0
  8. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
  10. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-menu.mjs +63 -2
  12. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +20 -35
  14. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-popover.mjs +22 -40
  16. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-table.mjs +373 -499
  18. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  19. package/package.json +3 -3
  20. package/schematics/package.json +1 -1
  21. package/types/fundamental-ngx-core-avatar-group.d.ts +52 -19
  22. package/types/fundamental-ngx-core-combobox.d.ts +44 -6
  23. package/types/fundamental-ngx-core-datetime-picker.d.ts +3 -1
  24. package/types/fundamental-ngx-core-menu.d.ts +8 -1
  25. package/types/fundamental-ngx-core-mobile-mode.d.ts +2 -0
  26. package/types/fundamental-ngx-core-multi-combobox.d.ts +1 -1
  27. package/types/fundamental-ngx-core-popover.d.ts +11 -16
  28. package/types/fundamental-ngx-core-table.d.ts +133 -164
@@ -486,6 +486,8 @@ declare class MenuService implements OnDestroy {
486
486
  private _emitActivePath;
487
487
  /** @hidden Depending on direction returns closest enabled sibling of given node */
488
488
  private _closestEnabled;
489
+ /** @hidden Returns first/last enabled sibling for Home/End keyboard support */
490
+ private _boundaryEnabled;
489
491
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuService, never>;
490
492
  static ɵprov: i0.ɵɵInjectableDeclaration<MenuService>;
491
493
  }
@@ -701,12 +703,17 @@ declare class MenuKeyboardService {
701
703
  focusEscapeAfterList: () => void;
702
704
  /** Function that should be called every time, keydown event is used on some menu item,
703
705
  * it provides whole functionality for handling
704
- * ArrowDown - focus, ArrowUp - focus, Space bar - simulate click, Enter key - simulate click.
706
+ * ArrowDown - focus, ArrowUp - focus, Home - focus first enabled item, End - focus last enabled item,
707
+ * Space bar - simulate click, Enter key - simulate click.
705
708
  * @param event KeyboardEvent
706
709
  * @param index index of items starts from 0
707
710
  * @param menuItems array of menu item directives
708
711
  * */
709
712
  keyDownHandler(event: KeyboardEvent, index: number, menuItems: DefaultMenuItem[] | ListItemComponent[]): void;
713
+ /** @hidden Returns index of first/last enabled item. Falls back to first/last if disabled state is unavailable. */
714
+ private _findBoundaryEnabledIndex;
715
+ /** @hidden Detects disabled state if supported by the item implementation. */
716
+ private _isItemDisabled;
710
717
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuKeyboardService, never>;
711
718
  static ɵprov: i0.ɵɵInjectableDeclaration<MenuKeyboardService>;
712
719
  }
@@ -5,6 +5,8 @@ import { InjectionToken, DestroyRef, ElementRef } from '@angular/core';
5
5
  interface MobileModeConfig {
6
6
  /** Dialog Title */
7
7
  title?: string;
8
+ /** Short instruction text rendered below the dialog title to guide the user. */
9
+ instruction?: string;
8
10
  /** Approve Button Label. If empty, button will not appear */
9
11
  approveButtonText?: string;
10
12
  /** Cancel Button Label. If empty, button will not appear */
@@ -341,7 +341,7 @@ declare abstract class BaseMultiCombobox<T = any> {
341
341
  */
342
342
  protected _emitChangeEvent(): void;
343
343
  /** @hidden */
344
- protected _setSelectedSuggestions(): void;
344
+ protected _setSelectedSuggestions(selectedItems?: T[]): void;
345
345
  /**
346
346
  * Convert original data to SelectableOptionItems Interface
347
347
  * @hidden
@@ -923,23 +923,18 @@ declare class PopoverService {
923
923
  private _focusLastActiveElementBeforeOpen;
924
924
  /**
925
925
  * @hidden
926
- * Starts a MutationObserver on the nearest scrollable ancestor of the trigger element (falling
927
- * back to document.body) to detect layout shifts that would invalidate the overlay position.
928
- * Two mutation types are observed within the subtree:
929
- * - `childList`: catches elements being added to or removed from the DOM (e.g. a banner/toast
930
- * that is fully removed after its timer expires).
931
- * - `attributes` with `attributeFilter: ['style', 'class']`: catches visibility toggling via
932
- * CSS (e.g. `display: none` applied inline or through a utility class, as the
933
- * `fd-message-strip` autoDismiss directive does).
934
- * The callback is debounced through `requestAnimationFrame` so that rapid batched mutations
935
- * (Angular rendering a whole subtree at once) only trigger a single `updatePosition()` call.
936
- */
937
- private _startAncestorResizeObserver;
938
- /**
939
- * @hidden
940
- * Returns the nearest scrollable ancestor, or document.body when none is found.
926
+ * Starts a MutationObserver on document.body to detect any layout shift that could
927
+ * invalidate the overlay position — including mutations in elements outside the trigger's
928
+ * nearest scroll container (e.g. a collapsible header above a table pushing the trigger down).
929
+ *
930
+ * Observed mutation types:
931
+ * - `childList`: elements added/removed from the DOM (Angular `@if`, ngIf, toast dismissed).
932
+ * - `attributes` with `attributeFilter: ['style', 'class']`: visibility toggled via CSS.
933
+ *
934
+ * The callback is debounced through `requestAnimationFrame` so rapid batched mutations
935
+ * only trigger a single `updatePosition()` call per frame.
941
936
  */
942
- private _findScrollableAncestor;
937
+ private _startLayoutShiftObserver;
943
938
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverService, never>;
944
939
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<PopoverService>;
945
940
  }
@@ -1,163 +1,141 @@
1
- import * as i0 from '@angular/core';
2
- import { AfterContentInit, QueryList, OnDestroy, ElementRef, OnChanges, OnInit, AfterViewInit, DestroyRef, NgZone } from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { AfterContentInit, ElementRef, OnInit, AfterViewInit } from '@angular/core';
3
3
  import * as i1 from '@fundamental-ngx/cdk/utils';
4
- import { FocusableItemDirective, ResizeObserverService, CssClassBuilder, FocusableListDirective, Nullable } from '@fundamental-ngx/cdk/utils';
5
- import { CheckboxComponent } from '@fundamental-ngx/core/checkbox';
4
+ import { FocusableItemDirective, ResizeObserverService, FocusableListDirective } from '@fundamental-ngx/cdk/utils';
6
5
  import { IconFont } from '@fundamental-ngx/core/icon';
7
- import { ContentDensityObserver, ContentDensityMode } from '@fundamental-ngx/core/content-density';
6
+ import { ContentDensityMode } from '@fundamental-ngx/core/content-density';
8
7
 
9
8
  declare class TableBodyDirective {
10
- /** @hidden */
11
- fdTableBodyClass: boolean;
9
+ /** ARIA role for the table body */
10
+ readonly role: _angular_core.InputSignal<string>;
12
11
  /** Whether to show the table body's horizontal borders */
13
- noBorderX: boolean;
12
+ readonly noBorderX: _angular_core.InputSignalWithTransform<boolean, unknown>;
14
13
  /** Whether to show the table body's vertical borders */
15
- noBorderY: boolean;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyDirective, never>;
17
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableBodyDirective, "[fdTableBody], [fd-table-body]", never, { "noBorderX": { "alias": "noBorderX"; "required": false; }; "noBorderY": { "alias": "noBorderY"; "required": false; }; }, {}, never, never, true, never>;
14
+ readonly noBorderY: _angular_core.InputSignalWithTransform<boolean, unknown>;
15
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableBodyDirective, never>;
16
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableBodyDirective, "[fdTableBody], [fd-table-body]", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "noBorderX": { "alias": "noBorderX"; "required": false; "isSignal": true; }; "noBorderY": { "alias": "noBorderY"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
17
  }
19
18
 
20
19
  declare class TableCellDirective extends FocusableItemDirective implements AfterContentInit {
20
+ /** ARIA role for the table cell (only used if explicitly provided) */
21
+ readonly role: _angular_core.InputSignal<string | undefined>;
21
22
  /** Whether to show the table cell's horizontal borders */
22
- noBorderX: boolean;
23
+ readonly noBorderX: _angular_core.InputSignalWithTransform<boolean, unknown>;
23
24
  /** Whether to show the table cell's vertical borders */
24
- noBorderY: boolean;
25
+ readonly noBorderY: _angular_core.InputSignalWithTransform<boolean, unknown>;
25
26
  /** Whether the table cell is activable */
26
- activable: boolean;
27
- /** @hidden */
28
- set focusable(value: boolean);
29
- get focusable(): boolean;
27
+ readonly activable: _angular_core.InputSignalWithTransform<boolean, unknown>;
28
+ /**
29
+ * Whether the table cell is focusable.
30
+ * This input syncs with the parent FocusableItemDirective's focusable state.
31
+ */
32
+ readonly focusable: _angular_core.InputSignalWithTransform<boolean, unknown>;
30
33
  /** Whether the table cell is hoverable */
31
- hoverable: boolean;
34
+ readonly hoverable: _angular_core.InputSignalWithTransform<boolean, unknown>;
32
35
  /** Whether the table cell's width should fit to content */
33
- fitContent: boolean;
36
+ readonly fitContent: _angular_core.InputSignalWithTransform<boolean, unknown>;
34
37
  /** Whether the table cell shouldn't have padding on sides */
35
- noPadding: boolean;
38
+ readonly noPadding: _angular_core.InputSignalWithTransform<boolean, unknown>;
36
39
  /** Whether the table cell indicates that there is no data */
37
- noData: boolean;
40
+ readonly noData: _angular_core.InputSignalWithTransform<boolean, unknown>;
38
41
  /** Whether the table cell inside table header should be non-interactive */
39
- nonInteractive: boolean;
42
+ readonly nonInteractive: _angular_core.InputSignalWithTransform<boolean, unknown>;
40
43
  /** Key of a cell element, it's used to identify this cell with certain column */
41
- key: string;
44
+ readonly key: _angular_core.InputSignal<string | undefined>;
42
45
  /** @hidden */
43
- _checkboxes: QueryList<CheckboxComponent>;
44
- /** @hidden */
45
- _fdTableCellClass: boolean;
46
+ readonly _checkboxes: _angular_core.Signal<readonly unknown[]>;
47
+ /** @hidden Computed scope attribute for th elements in tbody */
48
+ protected readonly scope: _angular_core.Signal<"row" | null>;
49
+ /** @hidden Computed role based on element type and parent context */
50
+ protected readonly computedRole: _angular_core.Signal<string>;
46
51
  /** @hidden */
47
52
  private _parentPreviousTabIndex;
48
53
  /** @hidden */
49
54
  constructor();
50
55
  /** @hidden */
56
+ ngAfterContentInit(): void;
57
+ /** @hidden */
51
58
  protected _focusIn(): void;
52
59
  /** @hidden */
53
60
  protected _focusOut(): void;
54
- /** @hidden */
55
- ngAfterContentInit(): void;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<TableCellDirective, never>;
57
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableCellDirective, "[fdTableCell], [fd-table-cell]", never, { "noBorderX": { "alias": "noBorderX"; "required": false; }; "noBorderY": { "alias": "noBorderY"; "required": false; }; "activable": { "alias": "activable"; "required": false; }; "focusable": { "alias": "focusable"; "required": false; }; "hoverable": { "alias": "hoverable"; "required": false; }; "fitContent": { "alias": "fitContent"; "required": false; }; "noPadding": { "alias": "noPadding"; "required": false; }; "noData": { "alias": "noData"; "required": false; }; "nonInteractive": { "alias": "nonInteractive"; "required": false; }; "key": { "alias": "key"; "required": false; }; }, {}, ["_checkboxes"], never, true, never>;
58
- static ngAcceptInputType_focusable: unknown;
61
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableCellDirective, never>;
62
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableCellDirective, "[fdTableCell], [fd-table-cell]", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "noBorderX": { "alias": "noBorderX"; "required": false; "isSignal": true; }; "noBorderY": { "alias": "noBorderY"; "required": false; "isSignal": true; }; "activable": { "alias": "activable"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "fitContent": { "alias": "fitContent"; "required": false; "isSignal": true; }; "noPadding": { "alias": "noPadding"; "required": false; "isSignal": true; }; "noData": { "alias": "noData"; "required": false; "isSignal": true; }; "nonInteractive": { "alias": "nonInteractive"; "required": false; "isSignal": true; }; "key": { "alias": "key"; "required": false; "isSignal": true; }; }, {}, ["_checkboxes"], never, true, never>;
59
63
  }
60
64
 
61
- declare class TableContainerDirective implements OnDestroy {
65
+ declare class TableContainerDirective {
62
66
  /** Whether the scroll is applied on the page and not on the table */
63
- outerScroll: boolean;
67
+ readonly outerScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
64
68
  /** @hidden */
65
- set toolbar(toolbarElRef: ElementRef);
69
+ readonly toolbar: _angular_core.Signal<ElementRef<any> | undefined>;
66
70
  /** @hidden */
67
- set tableHeader(tableHeaderEl: ElementRef);
71
+ readonly tableHeader: _angular_core.Signal<ElementRef<any> | undefined>;
68
72
  /** @hidden */
69
73
  readonly resizeObserverService: ResizeObserverService;
70
74
  /** @hidden */
71
75
  private readonly _renderer;
72
76
  /** @hidden */
73
- private _tableHeaderEl;
74
- /** @hidden */
75
- private _resizeSubscription;
77
+ private readonly _destroyRef;
76
78
  /** @hidden */
77
- ngOnDestroy(): void;
78
- static ɵfac: i0.ɵɵFactoryDeclaration<TableContainerDirective, never>;
79
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableContainerDirective, "[fdTableContainer], [fd-table-container]", never, { "outerScroll": { "alias": "outerScroll"; "required": false; }; }, {}, ["toolbar", "tableHeader"], never, true, never>;
80
- static ngAcceptInputType_outerScroll: unknown;
79
+ constructor();
80
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableContainerDirective, never>;
81
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableContainerDirective, "[fdTableContainer], [fd-table-container]", never, { "outerScroll": { "alias": "outerScroll"; "required": false; "isSignal": true; }; }, {}, ["toolbar", "tableHeader"], never, true, never>;
81
82
  }
82
83
 
83
84
  declare class TableFixedDirective {
84
- /** @hidden */
85
- fdTableFixedClass: boolean;
86
- static ɵfac: i0.ɵɵFactoryDeclaration<TableFixedDirective, never>;
87
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableFixedDirective, "[fdTableFixed], [fd-table-fixed]", never, {}, {}, never, never, true, never>;
85
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableFixedDirective, never>;
86
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableFixedDirective, "[fdTableFixed], [fd-table-fixed]", never, {}, {}, never, never, true, never>;
88
87
  }
89
88
 
90
89
  declare class TableFooterDirective {
91
- /** @hidden */
92
- fdTableFooterClass: boolean;
93
- static ɵfac: i0.ɵɵFactoryDeclaration<TableFooterDirective, never>;
94
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableFooterDirective, "[fdTableFooter], [fd-table-footer]", never, {}, {}, never, never, true, never>;
90
+ /** ARIA role for the table footer */
91
+ readonly role: _angular_core.InputSignal<string>;
92
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableFooterDirective, never>;
93
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableFooterDirective, "[fdTableFooter], [fd-table-footer]", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
95
94
  }
96
95
 
97
96
  declare class TableHeaderDirective {
98
- /** @hidden */
99
- fdTableHeaderClass: boolean;
97
+ /** ARIA role for the table header */
98
+ readonly role: _angular_core.InputSignal<string>;
100
99
  /** Whether or not to show the table header's horizontal borders */
101
- noBorderX: boolean;
100
+ readonly noBorderX: _angular_core.InputSignalWithTransform<boolean, unknown>;
102
101
  /** Whether or not to show the table header's vertical borders */
103
- noBorderY: boolean;
102
+ readonly noBorderY: _angular_core.InputSignalWithTransform<boolean, unknown>;
104
103
  /**
105
104
  * Whether or not the header cells should be interactive
106
105
  * (have hover and active states)
107
106
  * default: false
108
107
  */
109
- nonInteractive: boolean;
110
- static ɵfac: i0.ɵɵFactoryDeclaration<TableHeaderDirective, never>;
111
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableHeaderDirective, "[fdTableHeader], [fd-table-header]", never, { "noBorderX": { "alias": "noBorderX"; "required": false; }; "noBorderY": { "alias": "noBorderY"; "required": false; }; "nonInteractive": { "alias": "nonInteractive"; "required": false; }; }, {}, never, never, true, never>;
108
+ readonly nonInteractive: _angular_core.InputSignalWithTransform<boolean, unknown>;
109
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableHeaderDirective, never>;
110
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableHeaderDirective, "[fdTableHeader], [fd-table-header]", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "noBorderX": { "alias": "noBorderX"; "required": false; "isSignal": true; }; "noBorderY": { "alias": "noBorderY"; "required": false; "isSignal": true; }; "nonInteractive": { "alias": "nonInteractive"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
112
111
  }
113
112
 
114
- declare class TableIconDirective implements OnChanges, CssClassBuilder, OnInit {
115
- /** @hidden */
116
- fdTableIconClass: boolean;
117
- /** The property allows user to pass additional css classes
118
- */
119
- class: string;
113
+ declare class TableIconDirective {
120
114
  /** The icon to include in the button. See the icon page for the list of icons.
121
115
  * Setter is used to control when css class have to be rebuilded.
122
116
  * Default value is set to ''.
123
117
  */
124
- glyph: string;
118
+ readonly glyph: _angular_core.InputSignal<string>;
125
119
  /** Glyph font family */
126
- glyphFont: IconFont;
120
+ readonly glyphFont: _angular_core.InputSignal<IconFont>;
127
121
  /** Whether or no icon is used as navigation */
128
- navigation: boolean;
122
+ readonly navigation: _angular_core.InputSignalWithTransform<boolean, unknown>;
129
123
  /** @hidden */
130
124
  readonly elementRef: ElementRef<any>;
131
- /**
132
- * @hidden
133
- * CssClassBuilder interface implementation
134
- * function must return single string
135
- * function is responsible for order which css classes are applied
136
- */
137
- buildComponentCssClass(): string[];
138
- /** Function runs when component is initialized
139
- * function should build component css class
140
- * function should build css style
141
- */
142
- ngOnChanges(): void;
143
125
  /** @hidden */
144
- ngOnInit(): void;
145
- static ɵfac: i0.ɵɵFactoryDeclaration<TableIconDirective, never>;
146
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableIconDirective, "[fdTableIcon], [fd-table-icon]", never, { "class": { "alias": "class"; "required": false; }; "glyph": { "alias": "glyph"; "required": false; }; "glyphFont": { "alias": "glyphFont"; "required": false; }; "navigation": { "alias": "navigation"; "required": false; }; }, {}, never, never, true, never>;
126
+ protected readonly cssClass: _angular_core.Signal<string>;
127
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableIconDirective, never>;
128
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableIconDirective, "[fdTableIcon], [fd-table-icon]", never, { "glyph": { "alias": "glyph"; "required": false; "isSignal": true; }; "glyphFont": { "alias": "glyphFont"; "required": false; "isSignal": true; }; "navigation": { "alias": "navigation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
147
129
  }
148
130
 
149
131
  declare class TableInnerDirective {
150
- /** @hidden */
151
- fdTableInnerClass: boolean;
152
- static ɵfac: i0.ɵɵFactoryDeclaration<TableInnerDirective, never>;
153
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableInnerDirective, "[fdTableInner], [fd-table-inner]", never, {}, {}, never, never, true, never>;
132
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableInnerDirective, never>;
133
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableInnerDirective, "[fdTableInner], [fd-table-inner]", never, {}, {}, never, never, true, never>;
154
134
  }
155
135
 
156
136
  declare class TablePopoverDirective {
157
- /** @hidden */
158
- fdTablePopoverClass: string;
159
- static ɵfac: i0.ɵɵFactoryDeclaration<TablePopoverDirective, never>;
160
- static ɵdir: i0.ɵɵDirectiveDeclaration<TablePopoverDirective, "[fdTablePopover], [fd-table-popover]", never, {}, {}, never, never, true, never>;
137
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TablePopoverDirective, never>;
138
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TablePopoverDirective, "[fdTablePopover], [fd-table-popover]", never, {}, {}, never, never, true, never>;
161
139
  }
162
140
 
163
141
  /**
@@ -171,32 +149,29 @@ declare class TablePopoverDirective {
171
149
  * ```
172
150
  */
173
151
  declare class TableResponsiveWrapperDirective {
174
- static ɵfac: i0.ɵɵFactoryDeclaration<TableResponsiveWrapperDirective, never>;
175
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableResponsiveWrapperDirective, "[fd-table-responsive-wrapper]", never, {}, {}, never, never, true, never>;
152
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableResponsiveWrapperDirective, never>;
153
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableResponsiveWrapperDirective, "[fd-table-responsive-wrapper]", never, {}, {}, never, never, true, never>;
176
154
  }
177
155
 
178
156
  declare const HIDDEN_CLASS_NAME = "fd-table--hidden";
179
- declare class TableRowDirective extends FocusableListDirective implements AfterViewInit, OnInit {
157
+ declare class TableRowDirective extends FocusableListDirective implements OnInit, AfterViewInit {
158
+ /** ARIA role for the table row */
159
+ readonly role: _angular_core.InputSignal<string>;
180
160
  /** @hidden */
181
- cells: QueryList<TableCellDirective>;
182
- /** @hidden */
183
- fdTableRowClass: boolean;
161
+ readonly cells: _angular_core.Signal<readonly TableCellDirective[]>;
184
162
  /** Whether the table row is activable */
185
- activable: boolean;
163
+ readonly activable: _angular_core.InputSignalWithTransform<boolean, unknown>;
186
164
  /** Whether the table row is hoverable */
187
165
  /** Whether to highlight active row when clicked. */
188
- highlightActive: boolean;
166
+ readonly highlightActive: _angular_core.InputSignalWithTransform<boolean, unknown>;
189
167
  /** Whether the table row is hoverable */
190
- hoverable: boolean;
191
- /** Whether the table row is focusable */
192
- set focusable(value: boolean);
193
- get focusable(): boolean;
168
+ readonly hoverable: _angular_core.InputSignalWithTransform<boolean, unknown>;
194
169
  /** Whether the table row is main row, it's concerned only on pop in mode */
195
- main: boolean;
170
+ readonly main: _angular_core.InputSignalWithTransform<boolean, unknown>;
196
171
  /** Whether the table row is secondary row, it's concerned only on pop in mode */
197
- secondary: boolean;
172
+ readonly secondary: _angular_core.InputSignalWithTransform<boolean, unknown>;
198
173
  /** Whether the table row is active. */
199
- active: boolean;
174
+ readonly active: _angular_core.InputSignalWithTransform<boolean, unknown>;
200
175
  /** @hidden */
201
176
  elementRef: ElementRef<HTMLTableRowElement>;
202
177
  /** @hidden */
@@ -219,32 +194,31 @@ declare class TableRowDirective extends FocusableListDirective implements AfterV
219
194
  private _changeVisibility;
220
195
  /** @hidden */
221
196
  private _hideElement;
222
- /** @hidden */
223
- private _setupCellsSubscription;
224
- static ɵfac: i0.ɵɵFactoryDeclaration<TableRowDirective, never>;
225
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableRowDirective, "[fdTableRow], [fd-table-row]", never, { "activable": { "alias": "activable"; "required": false; }; "highlightActive": { "alias": "highlightActive"; "required": false; }; "hoverable": { "alias": "hoverable"; "required": false; }; "focusable": { "alias": "focusable"; "required": false; }; "main": { "alias": "main"; "required": false; }; "secondary": { "alias": "secondary"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, {}, ["cells"], never, true, never>;
226
- static ngAcceptInputType_focusable: unknown;
197
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableRowDirective, never>;
198
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableRowDirective, "[fdTableRow], [fd-table-row]", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "activable": { "alias": "activable"; "required": false; "isSignal": true; }; "highlightActive": { "alias": "highlightActive"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "main": { "alias": "main"; "required": false; "isSignal": true; }; "secondary": { "alias": "secondary"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, {}, ["cells"], never, true, never>;
227
199
  }
228
200
 
229
201
  type TableStatuses = 'valid' | 'warning' | 'information' | 'error';
230
202
  declare class TableStatusIndicatorDirective {
231
203
  /** The type of indicator. Options are 'valid', 'warning', 'information' and 'error'. */
232
- status: Nullable<TableStatuses>;
233
- static ɵfac: i0.ɵɵFactoryDeclaration<TableStatusIndicatorDirective, never>;
234
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableStatusIndicatorDirective, "[fdTableStatusIndicator], [fd-table-status-indicator]", never, { "status": { "alias": "status"; "required": false; }; }, {}, never, never, true, never>;
204
+ readonly status: _angular_core.InputSignal<TableStatuses | null | undefined>;
205
+ /** @hidden */
206
+ protected readonly cssClass: _angular_core.Signal<string>;
207
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableStatusIndicatorDirective, never>;
208
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableStatusIndicatorDirective, "[fdTableStatusIndicator], [fd-table-status-indicator]", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
235
209
  }
236
210
 
237
211
  declare class TableTextDirective {
238
212
  /** Whether the text should have shadow (halo) & overflow should be hidden. */
239
- fdTableTextClass: boolean;
213
+ readonly fdTableTextClass: _angular_core.InputSignalWithTransform<boolean, unknown>;
240
214
  /** Whether the text should wrap when the text is too long for 1 line */
241
- noWrap: boolean;
215
+ readonly noWrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
242
216
  /** Whether the text should be bolded and marked as a title */
243
- title: boolean;
217
+ readonly title: _angular_core.InputSignalWithTransform<boolean, unknown>;
244
218
  /** Maximum width of a text element */
245
- maxWidth: string;
246
- static ɵfac: i0.ɵɵFactoryDeclaration<TableTextDirective, never>;
247
- static ɵdir: i0.ɵɵDirectiveDeclaration<TableTextDirective, "[fdTableText], [fd-table-text]", never, { "fdTableTextClass": { "alias": "fdTableTextClass"; "required": false; }; "noWrap": { "alias": "noWrap"; "required": false; }; "title": { "alias": "title"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; }, {}, never, never, true, never>;
219
+ readonly maxWidth: _angular_core.InputSignal<string>;
220
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableTextDirective, never>;
221
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TableTextDirective, "[fdTableText], [fd-table-text]", never, { "fdTableTextClass": { "alias": "fdTableTextClass"; "required": false; "isSignal": true; }; "noWrap": { "alias": "noWrap"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
248
222
  }
249
223
 
250
224
  /**
@@ -256,26 +230,19 @@ declare class TableTextDirective {
256
230
  * </table-wrapper>
257
231
  * ```
258
232
  */
259
- declare class TableWrapperComponent implements AfterContentInit, OnDestroy {
260
- private elementRef;
261
- private _contentDensityObserver;
262
- /** @hidden */
263
- private _contentDensitySettings;
233
+ declare class TableWrapperComponent implements AfterContentInit {
264
234
  /** @hidden */
265
- constructor(elementRef: ElementRef, _contentDensityObserver: ContentDensityObserver);
235
+ private readonly _elementRef;
266
236
  /** @hidden */
267
- ngAfterContentInit(): void;
237
+ private readonly _renderer;
268
238
  /** @hidden */
269
- ngOnDestroy(): void;
270
- static ɵfac: i0.ɵɵFactoryDeclaration<TableWrapperComponent, never>;
271
- static ɵcmp: i0.ɵɵComponentDeclaration<TableWrapperComponent, "fd-table-wrapper", never, {}, {}, never, ["*"], true, never>;
272
- }
273
-
274
- declare class TableService {
239
+ private readonly _contentDensityObserver;
275
240
  /** @hidden */
276
- propagateKeys$: i0.WritableSignal<string[]>;
241
+ constructor();
277
242
  /** @hidden */
278
- changeKeys(keys: string[]): void;
243
+ ngAfterContentInit(): void;
244
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableWrapperComponent, never>;
245
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableWrapperComponent, "fd-table-wrapper", never, {}, {}, never, ["*"], true, never>;
279
246
  }
280
247
 
281
248
  declare const FdTableContentDensityProviderParams: {
@@ -288,49 +255,44 @@ declare const FdTableContentDensityProviderParams: {
288
255
  * <table fd-table></table>
289
256
  * ```
290
257
  */
291
- declare class TableComponent implements AfterContentInit, AfterViewInit {
292
- private readonly _tableService;
293
- private readonly _contentDensityObserver;
294
- private readonly _destroyRef;
295
- private readonly _ngZone;
296
- /** @hidden */
297
- fdTableClass: boolean;
258
+ declare class TableComponent {
259
+ /** ARIA role for the table */
260
+ readonly role: _angular_core.InputSignal<string>;
298
261
  /** Whether or not to show the table's horizontal borders */
299
- noBorderX: boolean;
262
+ readonly noBorderX: _angular_core.InputSignalWithTransform<boolean, unknown>;
300
263
  /** Whether or not to show the table's vertical borders */
301
- noBorderY: boolean;
264
+ readonly noBorderY: _angular_core.InputSignalWithTransform<boolean, unknown>;
302
265
  /** Whether or not to show the table's outer border */
303
- noOuterBorder: boolean;
266
+ readonly noOuterBorder: _angular_core.InputSignalWithTransform<boolean, unknown>;
304
267
  /** Whether or not to show the table's top border */
305
- topBorder: boolean;
268
+ readonly topBorder: _angular_core.InputSignalWithTransform<boolean, unknown>;
306
269
  /** Whether or not to display the table in pop in mode, it also require change of markup */
307
- popIn: boolean;
270
+ readonly popIn: _angular_core.InputSignalWithTransform<boolean, unknown>;
308
271
  /** Whether or not to display the table in responsive mode. */
309
- responsive: boolean;
272
+ readonly responsive: _angular_core.InputSignalWithTransform<boolean, unknown>;
310
273
  /** List of keys that identifies single columns */
311
- keys: string[];
274
+ readonly keys: _angular_core.InputSignal<string[] | undefined>;
312
275
  /** Applies `focusable` to all cells within this table */
313
- set allCellsFocusable(value: boolean);
314
- get allCellsFocusable(): boolean;
315
- /** @hidden */
316
- readonly _cells: QueryList<TableCellDirective>;
317
- /** @hidden */
318
- private _allCellsFocusable;
276
+ readonly allCellsFocusable: _angular_core.InputSignalWithTransform<boolean, unknown>;
319
277
  /** @hidden */
320
- constructor(_tableService: TableService, _contentDensityObserver: ContentDensityObserver, _destroyRef: DestroyRef, _ngZone: NgZone);
278
+ readonly _cells: _angular_core.Signal<readonly TableCellDirective[]>;
279
+ /**
280
+ * @hidden
281
+ * Computed aria-colcount attribute - total number of columns in the grid
282
+ * Required when aria-colindex is set on cells */
283
+ protected readonly ariaColCount: _angular_core.Signal<number | null>;
321
284
  /** @hidden */
322
- ngAfterContentInit(): void;
285
+ private readonly _tableService;
286
+ /** @hidden Injected to activate content density CSS class effects */
287
+ private readonly _contentDensityObserver;
323
288
  /** @hidden */
324
- ngAfterViewInit(): void;
289
+ constructor();
325
290
  /** Method that sorts and changes visible state of particular cells */
326
291
  reset(keys: string[]): void;
327
292
  /** @hidden */
328
293
  private _propagateKeys;
329
- /** @hidden */
330
- private _updateCells;
331
- static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
332
- static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "table[fd-table]", ["fd-table"], { "noBorderX": { "alias": "noBorderX"; "required": false; }; "noBorderY": { "alias": "noBorderY"; "required": false; }; "noOuterBorder": { "alias": "noOuterBorder"; "required": false; }; "topBorder": { "alias": "topBorder"; "required": false; }; "popIn": { "alias": "popIn"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "keys": { "alias": "keys"; "required": false; }; "allCellsFocusable": { "alias": "allCellsFocusable"; "required": false; }; }, {}, ["_cells"], ["*"], true, [{ directive: typeof i1.FocusableGridDirective; inputs: {}; outputs: {}; }]>;
333
- static ngAcceptInputType_allCellsFocusable: unknown;
294
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent, never>;
295
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent, "table[fd-table]", ["fd-table"], { "role": { "alias": "role"; "required": false; "isSignal": true; }; "noBorderX": { "alias": "noBorderX"; "required": false; "isSignal": true; }; "noBorderY": { "alias": "noBorderY"; "required": false; "isSignal": true; }; "noOuterBorder": { "alias": "noOuterBorder"; "required": false; "isSignal": true; }; "topBorder": { "alias": "topBorder"; "required": false; "isSignal": true; }; "popIn": { "alias": "popIn"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "keys": { "alias": "keys"; "required": false; "isSignal": true; }; "allCellsFocusable": { "alias": "allCellsFocusable"; "required": false; "isSignal": true; }; }, {}, ["_cells"], ["*"], true, [{ directive: typeof i1.FocusableGridDirective; inputs: {}; outputs: {}; }]>;
334
296
  }
335
297
 
336
298
  /**
@@ -338,9 +300,16 @@ declare class TableComponent implements AfterContentInit, AfterViewInit {
338
300
  * Use direct imports of components and directives.
339
301
  */
340
302
  declare class TableModule {
341
- static ɵfac: i0.ɵɵFactoryDeclaration<TableModule, never>;
342
- static ɵmod: i0.ɵɵNgModuleDeclaration<TableModule, never, [typeof TableComponent, typeof TableResponsiveWrapperDirective, typeof TableWrapperComponent, typeof TableHeaderDirective, typeof TableFooterDirective, typeof TableBodyDirective, typeof TableRowDirective, typeof TableCellDirective, typeof TableStatusIndicatorDirective, typeof TablePopoverDirective, typeof TableInnerDirective, typeof TableTextDirective, typeof TableIconDirective, typeof TableFixedDirective, typeof TableContainerDirective], [typeof TableComponent, typeof TableResponsiveWrapperDirective, typeof TableWrapperComponent, typeof TableHeaderDirective, typeof TableFooterDirective, typeof TableBodyDirective, typeof TableRowDirective, typeof TableCellDirective, typeof TableStatusIndicatorDirective, typeof TablePopoverDirective, typeof TableInnerDirective, typeof TableTextDirective, typeof TableIconDirective, typeof TableFixedDirective, typeof TableContainerDirective]>;
343
- static ɵinj: i0.ɵɵInjectorDeclaration<TableModule>;
303
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableModule, never>;
304
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TableModule, never, [typeof TableComponent, typeof TableResponsiveWrapperDirective, typeof TableWrapperComponent, typeof TableHeaderDirective, typeof TableFooterDirective, typeof TableBodyDirective, typeof TableRowDirective, typeof TableCellDirective, typeof TableStatusIndicatorDirective, typeof TablePopoverDirective, typeof TableInnerDirective, typeof TableTextDirective, typeof TableIconDirective, typeof TableFixedDirective, typeof TableContainerDirective], [typeof TableComponent, typeof TableResponsiveWrapperDirective, typeof TableWrapperComponent, typeof TableHeaderDirective, typeof TableFooterDirective, typeof TableBodyDirective, typeof TableRowDirective, typeof TableCellDirective, typeof TableStatusIndicatorDirective, typeof TablePopoverDirective, typeof TableInnerDirective, typeof TableTextDirective, typeof TableIconDirective, typeof TableFixedDirective, typeof TableContainerDirective]>;
305
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<TableModule>;
306
+ }
307
+
308
+ declare class TableService {
309
+ /** @hidden */
310
+ propagateKeys$: _angular_core.WritableSignal<string[]>;
311
+ /** @hidden */
312
+ changeKeys(keys: string[]): void;
344
313
  }
345
314
 
346
315
  export { FdTableContentDensityProviderParams, HIDDEN_CLASS_NAME, TableBodyDirective, TableCellDirective, TableComponent, TableContainerDirective, TableFixedDirective, TableFooterDirective, TableHeaderDirective, TableIconDirective, TableInnerDirective, TableModule, TablePopoverDirective, TableResponsiveWrapperDirective, TableRowDirective, TableService, TableStatusIndicatorDirective, TableTextDirective, TableWrapperComponent };