@fundamental-ngx/platform 0.64.2-rc.4 → 0.64.2-rc.41

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.
@@ -1,7 +1,8 @@
1
1
  import * as i4 from '@angular/cdk/a11y';
2
+ import { LiveAnnouncer } from '@angular/cdk/a11y';
2
3
  import { DOWN_ARROW, UP_ARROW, SPACE } from '@angular/cdk/keycodes';
3
4
  import * as i0 from '@angular/core';
4
- import { ViewEncapsulation, ChangeDetectionStrategy, Component, InjectionToken, Inject, signal, inject, DestroyRef, ViewChild, ViewChildren, Input, computed, DOCUMENT, input, ContentChild, Optional, Host, EventEmitter, Output, forwardRef, Pipe, TemplateRef, Directive, ChangeDetectorRef, afterEveryRender, output, linkedSignal, ContentChildren, HostBinding, NgZone, ElementRef, effect, booleanAttribute, NgModule } from '@angular/core';
5
+ import { ViewEncapsulation, ChangeDetectionStrategy, Component, InjectionToken, Inject, signal, inject, DestroyRef, ViewChild, ViewChildren, Input, computed, DOCUMENT, input, ContentChild, Optional, Host, EventEmitter, Output, forwardRef, Pipe, TemplateRef, Directive, ChangeDetectorRef, ElementRef, Injector, afterEveryRender, afterNextRender, viewChildren, effect, output, linkedSignal, untracked, ContentChildren, HostBinding, booleanAttribute, NgModule } from '@angular/core';
5
6
  import { NgTemplateOutlet, NgStyle, AsyncPipe, NgClass } from '@angular/common';
6
7
  import * as i3 from '@fundamental-ngx/cdk/utils';
7
8
  import { TemplateDirective, RtlService, InitialFocusDirective, DisabledBehaviorDirective, FDK_FOCUSABLE_ITEM_DIRECTIVE, FDK_FOCUSABLE_LIST_DIRECTIVE, ValueByPathPipe, set, uuidv4, destroyObservable, KeyUtil, get, range, RangeSelector, resizeObservable, uniq, DragAndDropModule, IntersectionSpyDirective, FDK_FOCUSABLE_GRID_DIRECTIVE, DndListDirective, FocusableGridDirective } from '@fundamental-ngx/cdk/utils';
@@ -10,7 +11,7 @@ import * as i1$3 from '@fundamental-ngx/core/content-density';
10
11
  import { ContentDensityDirective, contentDensityObserverProviders, ContentDensityObserver, ContentDensityMode } from '@fundamental-ngx/core/content-density';
11
12
  import { SkeletonComponent } from '@fundamental-ngx/core/skeleton';
12
13
  import { TablePopoverDirective, TableIconDirective, TableRowDirective, TableCellDirective, TableStatusIndicatorDirective, TableTextDirective, TableComponent as TableComponent$1, TableHeaderDirective, TableBodyDirective, TableFooterDirective, TableService as TableService$1 } from '@fundamental-ngx/core/table';
13
- import { FdTranslatePipe, resolveTranslationSignalFn } from '@fundamental-ngx/i18n';
14
+ import { FdTranslatePipe, FD_LANGUAGE_SIGNAL, TranslationResolver, resolveTranslationSignalFn } from '@fundamental-ngx/i18n';
14
15
  import { isJsObject, FDP_PRESET_MANAGED_COMPONENT } from '@fundamental-ngx/platform/shared';
15
16
  import * as i1 from '@fundamental-ngx/platform/table-helpers';
16
17
  import { SortDirection, TableService, Table, ColumnAlign, FILTER_STRING_STRATEGY, FilterableColumnDataType, TableColumn, FdpCellDef, FdpEditableCellDef, FdpHeaderCellDef, TableCellHeaderPopoverDirective, getFilterStrategiesBasedOnDataType, FILTER_STRATEGY, FILTER_STRATEGY_LABEL, getUniqueListValuesByKey, FdpViewSettingsFilterCustomDef, FilterType, TableDataSourceDirective, SelectionMode, TableColumnResizeService, TableRowService, PlatformTableCellResizableDirective, SelectionCellStylesPipe, TableCellStylesPipe, ColumnResizableSidePipe, TableColumnSortingDirectionPipe, isTreeRow, isTreeRowFirstCell, EditableTableCell, TableDraggableDirective, DEFAULT_HIGHLIGHTING_KEY, SEMANTIC_HIGHLIGHTING_COLUMN_WIDTH, ROW_HEIGHT, TABLE_COLUMN_MIN_WIDTH, FDP_TABLE_STATE_DIRECTIVE, FDP_TABLE_VIRTUAL_SCROLL_DIRECTIVE, FDP_TABLE_DRAGGABLE_DIRECTIVE, TableHeaderResizerDirective, isRowNavigatable, TableRowType, buildNewRowSkeleton, EDITABLE_ROW_SEMANTIC_STATE, SaveRowsEvent, getSelectableRows, TableCellActivateEvent, TableRowActivateEvent, TableRowToggleOpenStateEvent, findRowChildren, getRowParents, TableSortChangeEvent, TablePageChangeEvent, TableGroupChangeEvent, TableColumnFreezeEvent, TableFilterChangeEvent, TableColumnsChangeEvent, convertObjectsToTableRows, isTableRow, convertTreeTableRowToFlatList, convertTreeObjectsToTableRows, getFreezableColumns, getFreezableEndColumns, applySelectionToChildren, SELECTION_COLUMN_WIDTH, TableScrollableDirective, RowClassesPipe, TableScrollDispatcherService, TableResponsiveService, TableHelpersModule } from '@fundamental-ngx/platform/table-helpers';
@@ -20,8 +21,8 @@ import { fromEvent, BehaviorSubject, Subscription, combineLatest, distinctUntilC
20
21
  import { startWith, take, debounceTime, skip, filter, switchMap, takeUntil, map, distinctUntilChanged as distinctUntilChanged$1, tap } from 'rxjs/operators';
21
22
  import { ButtonComponent } from '@fundamental-ngx/core/button';
22
23
  import { takeUntilDestroyed, outputFromObservable, toObservable } from '@angular/core/rxjs-interop';
23
- import { FormItemComponent, FormLabelComponent, FormControlComponent } from '@fundamental-ngx/core/form';
24
- import { ListLinkDirective, ListIconDirective, ListTitleDirective, ListComponent as ListComponent$1, ListItemComponent, ListGroupHeaderDirective } from '@fundamental-ngx/core/list';
24
+ import { FormItemComponent, FormLabelComponent, FormControlComponent, FormGroupComponent } from '@fundamental-ngx/core/form';
25
+ import { ListLinkDirective, ListIconDirective, ListTitleDirective, ListComponent as ListComponent$1, ListItemComponent, ListGroupHeaderDirective, ListSecondaryDirective } from '@fundamental-ngx/core/list';
25
26
  import { PopoverComponent, PopoverTriggerDirective } from '@fundamental-ngx/core/popover';
26
27
  import { PopoverPlacement } from '@fundamental-ngx/core/shared';
27
28
  import { ListComponent, FreeContentListItemComponent } from '@fundamental-ngx/platform/list';
@@ -42,6 +43,8 @@ import { LayoutGridRowDirective, LayoutGridColDirective, LayoutGridComponent } f
42
43
  import { SelectComponent, OptionComponent } from '@fundamental-ngx/core/select';
43
44
  import { PanelComponent, PanelTitleDirective, PanelContentDirective } from '@fundamental-ngx/core/panel';
44
45
  import { RadioButtonComponent } from '@fundamental-ngx/core/radio';
46
+ import { ComboboxComponent } from '@fundamental-ngx/core/combobox';
47
+ import { SegmentedButtonComponent } from '@fundamental-ngx/core/segmented-button';
45
48
  import { IconTabBarComponent, IconTabBarTabComponent } from '@fundamental-ngx/platform/icon-tab-bar';
46
49
  import { InputComponent, PlatformDatePickerComponent, SwitchComponent } from '@fundamental-ngx/platform/form';
47
50
 
@@ -253,8 +256,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
253
256
  /** @dynamic */
254
257
  class PlatformTableColumnResizerComponent {
255
258
  /** @hidden */
256
- constructor(_ngZone, _tableColumnResizeService, _renderer, _elmRef, _document) {
257
- this._ngZone = _ngZone;
259
+ constructor(_tableColumnResizeService, _renderer, _elmRef, _document) {
258
260
  this._tableColumnResizeService = _tableColumnResizeService;
259
261
  this._renderer = _renderer;
260
262
  this._elmRef = _elmRef;
@@ -269,53 +271,49 @@ class PlatformTableColumnResizerComponent {
269
271
  }
270
272
  /** @hidden */
271
273
  ngOnInit() {
272
- this._ngZone.runOutsideAngular(() => {
273
- fromEvent(this._elmRef.nativeElement, 'mousedown')
274
- .pipe(takeUntilDestroyed(this._destroyRef))
275
- .subscribe((evt) => {
276
- if (evt.button === 0 && !evt.ctrlKey) {
277
- this._tableColumnResizeService.startResize(evt);
278
- this._listenForMouseUp();
279
- }
280
- });
281
- this._tableColumnResizeService.resizerPosition$
282
- .pipe(takeUntilDestroyed(this._destroyRef))
283
- .subscribe((position) => {
284
- this._renderer.setStyle(this._elmRef.nativeElement, 'display', position > 0 ? 'block' : 'none');
285
- if (!position) {
286
- return;
287
- }
288
- this._renderer.setStyle(this._elmRef.nativeElement, 'left', this._isRtl() ? 'auto' : `${position}px`);
289
- this._renderer.setStyle(this._elmRef.nativeElement, 'right', !this._isRtl() ? 'auto' : `${position}px`);
290
- });
291
- this._tableColumnResizeService.resizeInProgress$
292
- .pipe(takeUntilDestroyed(this._destroyRef))
293
- .subscribe((resizeInProgress) => {
294
- if (resizeInProgress) {
295
- this._renderer.addClass(this._elmRef.nativeElement, 'fdp-table-column-resizer--active');
296
- }
297
- else {
298
- this._renderer.removeClass(this._elmRef.nativeElement, 'fdp-table-column-resizer--active');
299
- }
300
- });
274
+ fromEvent(this._elmRef.nativeElement, 'mousedown')
275
+ .pipe(takeUntilDestroyed(this._destroyRef))
276
+ .subscribe((evt) => {
277
+ if (evt.button === 0 && !evt.ctrlKey) {
278
+ this._tableColumnResizeService.startResize(evt);
279
+ this._listenForMouseUp();
280
+ }
281
+ });
282
+ this._tableColumnResizeService.resizerPosition$
283
+ .pipe(takeUntilDestroyed(this._destroyRef))
284
+ .subscribe((position) => {
285
+ this._renderer.setStyle(this._elmRef.nativeElement, 'display', position > 0 ? 'block' : 'none');
286
+ if (!position) {
287
+ return;
288
+ }
289
+ this._renderer.setStyle(this._elmRef.nativeElement, 'left', this._isRtl() ? 'auto' : `${position}px`);
290
+ this._renderer.setStyle(this._elmRef.nativeElement, 'right', !this._isRtl() ? 'auto' : `${position}px`);
291
+ });
292
+ this._tableColumnResizeService.resizeInProgress$
293
+ .pipe(takeUntilDestroyed(this._destroyRef))
294
+ .subscribe((resizeInProgress) => {
295
+ if (resizeInProgress) {
296
+ this._renderer.addClass(this._elmRef.nativeElement, 'fdp-table-column-resizer--active');
297
+ }
298
+ else {
299
+ this._renderer.removeClass(this._elmRef.nativeElement, 'fdp-table-column-resizer--active');
300
+ }
301
301
  });
302
302
  }
303
303
  /** @hidden */
304
304
  _listenForMouseUp() {
305
- this._ngZone.runOutsideAngular(() => {
306
- this._pointerMoveListener?.unsubscribe();
307
- if (!this._document) {
308
- return;
309
- }
310
- this._pointerMoveListener = fromEvent(this._document, 'mouseup')
311
- .pipe(take(1), takeUntilDestroyed(this._destroyRef))
312
- .subscribe((event) => {
313
- this._tableColumnResizeService.finishResize(event);
314
- // this._cd.markForCheck();
315
- });
305
+ this._pointerMoveListener?.unsubscribe();
306
+ if (!this._document) {
307
+ return;
308
+ }
309
+ this._pointerMoveListener = fromEvent(this._document, 'mouseup')
310
+ .pipe(take(1), takeUntilDestroyed(this._destroyRef))
311
+ .subscribe((event) => {
312
+ this._tableColumnResizeService.finishResize(event);
313
+ // this._cd.markForCheck();
316
314
  });
317
315
  }
318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformTableColumnResizerComponent, deps: [{ token: i0.NgZone }, { token: i1.TableColumnResizeService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
316
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformTableColumnResizerComponent, deps: [{ token: i1.TableColumnResizeService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
319
317
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: PlatformTableColumnResizerComponent, isStandalone: true, selector: "fdp-table-column-resizer", host: { classAttribute: "fdp-table-column-resizer" }, ngImport: i0, template: ` <div class="fdp-table__resizer-inner"></div>`, isInline: true, styles: [".fdp-table-column-resizer{cursor:col-resize;position:absolute;width:0;top:0;left:-10000px;opacity:.5;z-index:999;border-left-style:solid;border-right-style:solid;border-left:3px solid var(--sapContent_DragAndDropActiveColor, #0854a0);border-right:3px solid var(--sapContent_DragAndDropActiveColor, #0854a0);-webkit-user-select:none;user-select:none;height:100%}.fdp-table-column-resizer--active{opacity:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
320
318
  }
321
319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformTableColumnResizerComponent, decorators: [{
@@ -323,7 +321,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
323
321
  args: [{ selector: `fdp-table-column-resizer`, template: ` <div class="fdp-table__resizer-inner"></div>`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
324
322
  class: 'fdp-table-column-resizer'
325
323
  }, standalone: true, styles: [".fdp-table-column-resizer{cursor:col-resize;position:absolute;width:0;top:0;left:-10000px;opacity:.5;z-index:999;border-left-style:solid;border-right-style:solid;border-left:3px solid var(--sapContent_DragAndDropActiveColor, #0854a0);border-right:3px solid var(--sapContent_DragAndDropActiveColor, #0854a0);-webkit-user-select:none;user-select:none;height:100%}.fdp-table-column-resizer--active{opacity:1}\n"] }]
326
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.TableColumnResizeService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: Document, decorators: [{
324
+ }], ctorParameters: () => [{ type: i1.TableColumnResizeService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: Document, decorators: [{
327
325
  type: Inject,
328
326
  args: [DOCUMENT]
329
327
  }] }] });
@@ -1571,6 +1569,17 @@ const dialogConfig$1 = {
1571
1569
  bodyMinHeight: 'calc(50vh - 88px)'
1572
1570
  };
1573
1571
  /**
1572
+ * @deprecated Use {@link TableViewSettingsDialogComponent} instead.
1573
+ *
1574
+ * @example
1575
+ * <!-- Before -->
1576
+ * <fdp-table-p13-dialog [table]="table"></fdp-table-p13-dialog>
1577
+ *
1578
+ * <!-- After -->
1579
+ * <fdp-table-view-settings-dialog [table]="table"></fdp-table-view-settings-dialog>
1580
+ *
1581
+ * This component has been deprecated, please use the fdp-table-view-settings-dialog component instead.
1582
+ *
1574
1583
  * View settings dialog component.
1575
1584
  *
1576
1585
  * Used to link view settings filters options to the grid table.
@@ -2254,9 +2263,46 @@ class FilterCustomComponent {
2254
2263
  this.valueChange = new EventEmitter();
2255
2264
  /** @hidden */
2256
2265
  this._cdr = inject(ChangeDetectorRef);
2266
+ /** @hidden */
2267
+ this._elementRef = inject(ElementRef);
2268
+ /** @hidden */
2269
+ this._injector = inject(Injector);
2257
2270
  afterEveryRender(() => this._checkValueChanges());
2258
2271
  }
2259
2272
  /** @hidden */
2273
+ ngAfterViewInit() {
2274
+ const focusableSelectors = [
2275
+ 'input:not([disabled])',
2276
+ 'select:not([disabled])',
2277
+ 'textarea:not([disabled])',
2278
+ 'button:not([disabled])',
2279
+ 'a[href]',
2280
+ '[tabindex]:not([tabindex="-1"])'
2281
+ ].join(', ');
2282
+ afterNextRender(() => {
2283
+ const firstFocusable = this._elementRef.nativeElement.querySelector(focusableSelectors);
2284
+ if (!firstFocusable ||
2285
+ firstFocusable.style.display === 'none' ||
2286
+ firstFocusable.style.visibility === 'hidden' ||
2287
+ firstFocusable.style.opacity === '0') {
2288
+ return;
2289
+ }
2290
+ const dialog = this._elementRef.nativeElement.closest('fd-dialog, [fd-dialog]');
2291
+ if (!dialog) {
2292
+ return;
2293
+ }
2294
+ const dialogRect = dialog.getBoundingClientRect();
2295
+ const elementRect = firstFocusable.getBoundingClientRect();
2296
+ const isWithinBounds = elementRect.top >= dialogRect.top &&
2297
+ elementRect.left >= dialogRect.left &&
2298
+ elementRect.bottom <= dialogRect.bottom &&
2299
+ elementRect.right <= dialogRect.right;
2300
+ if (isWithinBounds) {
2301
+ firstFocusable.focus();
2302
+ }
2303
+ }, { injector: this._injector });
2304
+ }
2305
+ /** @hidden */
2260
2306
  _checkValueChanges() {
2261
2307
  try {
2262
2308
  if (JSON.stringify(this._value) === JSON.stringify(this._valueLastEmitted)) {
@@ -2283,12 +2329,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
2283
2329
  }] } });
2284
2330
 
2285
2331
  class FilterMultiSelectComponent {
2286
- constructor() {
2287
- /** Selectable filter options */
2288
- this.options = [];
2289
- /** Filter model change event */
2290
- this.valueChange = new EventEmitter();
2291
- }
2292
2332
  /** The filter model */
2293
2333
  set filterBy(filterBy) {
2294
2334
  const filterByValue = filterBy?.value || [];
@@ -2299,6 +2339,22 @@ class FilterMultiSelectComponent {
2299
2339
  this._updateValueBasedOnOptions();
2300
2340
  }
2301
2341
  /** @hidden */
2342
+ constructor() {
2343
+ /** Selectable filter options */
2344
+ this.options = [];
2345
+ /** Filter model change event */
2346
+ this.valueChange = new EventEmitter();
2347
+ /** @hidden */
2348
+ this.listItems = viewChildren(ListItemComponent, /* @ts-ignore */
2349
+ ...(ngDevMode ? [{ debugName: "listItems" }] : /* istanbul ignore next */ []));
2350
+ effect(() => {
2351
+ const items = this.listItems();
2352
+ if (items.length > 0) {
2353
+ items[0].focus();
2354
+ }
2355
+ });
2356
+ }
2357
+ /** @hidden */
2302
2358
  _onSelectChange(option, selected) {
2303
2359
  option.selected = selected;
2304
2360
  this._updateValueBasedOnOptions();
@@ -2309,36 +2365,46 @@ class FilterMultiSelectComponent {
2309
2365
  this._value = this._selectableOptions.filter(({ selected }) => selected).map(({ value }) => value);
2310
2366
  }
2311
2367
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FilterMultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2312
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FilterMultiSelectComponent, isStandalone: true, selector: "fdp-filter-multi-select", inputs: { options: "options", filterBy: "filterBy" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<ul fd-list [selection]=\"true\">\n @for (option of _selectableOptions; track option) {\n <li fd-list-item [selected]=\"option.selected\">\n <fd-checkbox [ngModel]=\"option.selected\" (ngModelChange)=\"_onSelectChange(option, $event)\"></fd-checkbox>\n <span fd-list-title>{{ option.label }}</span>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "component", type: ListComponent$1, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "component", type: CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2368
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FilterMultiSelectComponent, isStandalone: true, selector: "fdp-filter-multi-select", inputs: { options: "options", filterBy: "filterBy" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "listItems", predicate: ListItemComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ul fd-list [selection]=\"true\">\n @for (option of _selectableOptions; track option) {\n <li\n fd-list-item\n [selected]=\"option.selected\"\n [attr.aria-label]=\"\n ('platformTable.filterDialogFilterByLabel' | fdTranslate: { filterLabel: option.label })()\n \"\n >\n <fd-checkbox [ngModel]=\"option.selected\" (ngModelChange)=\"_onSelectChange(option, $event)\"></fd-checkbox>\n <span fd-list-title>{{ option.label }}</span>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "component", type: ListComponent$1, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "component", type: CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2313
2369
  }
2314
2370
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FilterMultiSelectComponent, decorators: [{
2315
2371
  type: Component,
2316
- args: [{ selector: 'fdp-filter-multi-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ListComponent$1, ListItemComponent, CheckboxComponent, FormsModule, ListTitleDirective], template: "<ul fd-list [selection]=\"true\">\n @for (option of _selectableOptions; track option) {\n <li fd-list-item [selected]=\"option.selected\">\n <fd-checkbox [ngModel]=\"option.selected\" (ngModelChange)=\"_onSelectChange(option, $event)\"></fd-checkbox>\n <span fd-list-title>{{ option.label }}</span>\n </li>\n }\n</ul>\n" }]
2317
- }], propDecorators: { options: [{
2372
+ args: [{ selector: 'fdp-filter-multi-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ListComponent$1, ListItemComponent, CheckboxComponent, FormsModule, ListTitleDirective, FdTranslatePipe], template: "<ul fd-list [selection]=\"true\">\n @for (option of _selectableOptions; track option) {\n <li\n fd-list-item\n [selected]=\"option.selected\"\n [attr.aria-label]=\"\n ('platformTable.filterDialogFilterByLabel' | fdTranslate: { filterLabel: option.label })()\n \"\n >\n <fd-checkbox [ngModel]=\"option.selected\" (ngModelChange)=\"_onSelectChange(option, $event)\"></fd-checkbox>\n <span fd-list-title>{{ option.label }}</span>\n </li>\n }\n</ul>\n" }]
2373
+ }], ctorParameters: () => [], propDecorators: { options: [{
2318
2374
  type: Input
2319
2375
  }], filterBy: [{
2320
2376
  type: Input
2321
2377
  }], valueChange: [{
2322
2378
  type: Output
2323
- }] } });
2379
+ }], listItems: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => ListItemComponent), { isSignal: true }] }] } });
2324
2380
 
2325
2381
  /**
2326
2382
  * Single Select filter type.
2327
2383
  *
2328
2384
  */
2329
2385
  class FilterSingleSelectComponent {
2386
+ /** The filter model */
2387
+ set filterBy(filterBy) {
2388
+ const value = filterBy?.value?.[0];
2389
+ this._value = value === undefined ? NOT_FILTERED_OPTION_VALUE : value;
2390
+ }
2391
+ /** @hidden */
2330
2392
  constructor() {
2331
2393
  /** Selectable filter options */
2332
2394
  this.options = [];
2333
2395
  /** Filter model change event */
2334
2396
  this.valueChange = new EventEmitter();
2335
2397
  /** @hidden */
2398
+ this.listItems = viewChildren(ListItemComponent, /* @ts-ignore */
2399
+ ...(ngDevMode ? [{ debugName: "listItems" }] : /* istanbul ignore next */ []));
2400
+ /** @hidden */
2336
2401
  this.NOT_FILTERED_OPTION_VALUE = NOT_FILTERED_OPTION_VALUE;
2337
- }
2338
- /** The filter model */
2339
- set filterBy(filterBy) {
2340
- const value = filterBy?.value?.[0];
2341
- this._value = value === undefined ? NOT_FILTERED_OPTION_VALUE : value;
2402
+ effect(() => {
2403
+ const items = this.listItems();
2404
+ if (items.length > 0) {
2405
+ items[0].focus();
2406
+ }
2407
+ });
2342
2408
  }
2343
2409
  /** @hidden */
2344
2410
  _onValueChange(value) {
@@ -2354,18 +2420,18 @@ class FilterSingleSelectComponent {
2354
2420
  }
2355
2421
  }
2356
2422
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FilterSingleSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2357
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FilterSingleSelectComponent, isStandalone: true, selector: "fdp-filter-single-select", inputs: { options: "options", filterBy: "filterBy" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<ul fd-list [selection]=\"true\">\n <li fd-list-item [selected]=\"_value === NOT_FILTERED_OPTION_VALUE\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"NOT_FILTERED_OPTION_VALUE\"\n state=\"default\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onValueChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.filterDialogNotFilteredLabel' | fdTranslate)() }}</span>\n </li>\n @for (option of options; track option) {\n <li fd-list-item [selected]=\"option.value === _value\">\n <fd-radio-button\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onValueChange($event)\"\n [value]=\"option.value\"\n name=\"filtering-settings-single-select\"\n ></fd-radio-button>\n <span fd-list-title>{{ option.label }}</span>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "component", type: ListComponent$1, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "component", type: RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "readOnly", "selectedValue", "name", "id", "value", "required", "standalone", "wrapLabel", "valignLabel"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2423
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FilterSingleSelectComponent, isStandalone: true, selector: "fdp-filter-single-select", inputs: { options: "options", filterBy: "filterBy" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "listItems", predicate: ListItemComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ul fd-list [selection]=\"true\">\n <li fd-list-item [selected]=\"_value === NOT_FILTERED_OPTION_VALUE\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"NOT_FILTERED_OPTION_VALUE\"\n state=\"default\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onValueChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.filterDialogNotFilteredLabel' | fdTranslate)() }}</span>\n </li>\n @for (option of options; track option) {\n <li\n fd-list-item\n [selected]=\"option.value === _value\"\n [attr.aria-label]=\"\n ('platformTable.filterDialogFilterByLabel' | fdTranslate: { filterLabel: option.label })()\n \"\n >\n <fd-radio-button\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onValueChange($event)\"\n [value]=\"option.value\"\n name=\"filtering-settings-single-select\"\n ></fd-radio-button>\n <span fd-list-title>{{ option.label }}</span>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "component", type: ListComponent$1, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "component", type: RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "readOnly", "selectedValue", "name", "id", "value", "required", "standalone", "wrapLabel", "valignLabel"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2358
2424
  }
2359
2425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FilterSingleSelectComponent, decorators: [{
2360
2426
  type: Component,
2361
- args: [{ selector: 'fdp-filter-single-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ListComponent$1, ListItemComponent, RadioButtonComponent, FormsModule, ListTitleDirective, FdTranslatePipe], template: "<ul fd-list [selection]=\"true\">\n <li fd-list-item [selected]=\"_value === NOT_FILTERED_OPTION_VALUE\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"NOT_FILTERED_OPTION_VALUE\"\n state=\"default\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onValueChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.filterDialogNotFilteredLabel' | fdTranslate)() }}</span>\n </li>\n @for (option of options; track option) {\n <li fd-list-item [selected]=\"option.value === _value\">\n <fd-radio-button\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onValueChange($event)\"\n [value]=\"option.value\"\n name=\"filtering-settings-single-select\"\n ></fd-radio-button>\n <span fd-list-title>{{ option.label }}</span>\n </li>\n }\n</ul>\n" }]
2362
- }], propDecorators: { options: [{
2427
+ args: [{ selector: 'fdp-filter-single-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ListComponent$1, ListItemComponent, RadioButtonComponent, FormsModule, ListTitleDirective, FdTranslatePipe], template: "<ul fd-list [selection]=\"true\">\n <li fd-list-item [selected]=\"_value === NOT_FILTERED_OPTION_VALUE\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"NOT_FILTERED_OPTION_VALUE\"\n state=\"default\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onValueChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.filterDialogNotFilteredLabel' | fdTranslate)() }}</span>\n </li>\n @for (option of options; track option) {\n <li\n fd-list-item\n [selected]=\"option.value === _value\"\n [attr.aria-label]=\"\n ('platformTable.filterDialogFilterByLabel' | fdTranslate: { filterLabel: option.label })()\n \"\n >\n <fd-radio-button\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onValueChange($event)\"\n [value]=\"option.value\"\n name=\"filtering-settings-single-select\"\n ></fd-radio-button>\n <span fd-list-title>{{ option.label }}</span>\n </li>\n }\n</ul>\n" }]
2428
+ }], ctorParameters: () => [], propDecorators: { options: [{
2363
2429
  type: Input
2364
2430
  }], filterBy: [{
2365
2431
  type: Input
2366
2432
  }], valueChange: [{
2367
2433
  type: Output
2368
- }] } });
2434
+ }], listItems: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => ListItemComponent), { isSignal: true }] }] } });
2369
2435
 
2370
2436
  const FILTERS_VIEW_STEP_TOKEN = new InjectionToken('FiltersViewStep');
2371
2437
 
@@ -2447,7 +2513,7 @@ class FiltersListStepComponent {
2447
2513
  this.selectFilter = new EventEmitter();
2448
2514
  }
2449
2515
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FiltersListStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2450
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FiltersListStepComponent, isStandalone: true, selector: "fdp-filters-list-step", inputs: { filters: "filters", headingLevel: "headingLevel" }, outputs: { selectFilter: "selectFilter" }, providers: [{ provide: FILTERS_VIEW_STEP_TOKEN, useExisting: forwardRef(() => FiltersListStepComponent) }], viewQueries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["titleTemplate"], descendants: true }, { propertyName: "bodyTemplateRef", first: true, predicate: ["bodyTemplate"], descendants: true }], ngImport: i0, template: "<ng-template #titleTemplate>\n <span role=\"heading\" [attr.aria-level]=\"headingLevel\" fd-title [headerSize]=\"4\">{{\n ('platformTable.filterDialogFilterTitle' | fdTranslate)()\n }}</span>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div fd-list-group-header>\n <span fd-list-title id=\"platformTableInternalFilterListGroupHeader\">\n {{ ('platformTable.filterDialogFilterBy' | fdTranslate)() }}\n </span>\n </div>\n <ul fd-list aria-labelledby=\"platformTableInternalFilterListGroupHeader\" [navigationIndicator]=\"true\">\n @for (filter of filters; track filter) {\n <li\n fd-list-item\n [interactive]=\"true\"\n (click)=\"selectFilter.emit(filter)\"\n (keydown.space)=\"selectFilter.emit(filter)\"\n (keydown.enter)=\"selectFilter.emit(filter)\"\n >\n <a fd-list-link [navigationIndicator]=\"true\">\n <span fd-list-title>{{ filter.label }}</span>\n </a>\n </li>\n }\n </ul>\n</ng-template>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: ListComponent$1, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "directive", type: ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2516
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FiltersListStepComponent, isStandalone: true, selector: "fdp-filters-list-step", inputs: { filters: "filters", headingLevel: "headingLevel" }, outputs: { selectFilter: "selectFilter" }, providers: [{ provide: FILTERS_VIEW_STEP_TOKEN, useExisting: forwardRef(() => FiltersListStepComponent) }], viewQueries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["titleTemplate"], descendants: true }, { propertyName: "bodyTemplateRef", first: true, predicate: ["bodyTemplate"], descendants: true }], ngImport: i0, template: "<ng-template #titleTemplate>\n <span role=\"heading\" [attr.aria-level]=\"headingLevel\" fd-title [headerSize]=\"4\">{{\n ('platformTable.filterDialogFilterTitle' | fdTranslate)()\n }}</span>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div fd-list-group-header>\n <span fd-list-title id=\"platformTableInternalFilterListGroupHeader\">\n {{ ('platformTable.filterDialogFilterBy' | fdTranslate)() }}\n </span>\n </div>\n <ul fd-list aria-labelledby=\"platformTableInternalFilterListGroupHeader\" [navigationIndicator]=\"true\">\n @for (filter of filters; track filter) {\n <li\n fd-list-item\n [interactive]=\"true\"\n (click)=\"selectFilter.emit(filter)\"\n (keydown.space)=\"selectFilter.emit(filter)\"\n (keydown.enter)=\"selectFilter.emit(filter)\"\n aria-expanded=\"false\"\n >\n <a fd-list-link [navigationIndicator]=\"true\">\n <span fd-list-title>{{ filter.label }}</span>\n </a>\n </li>\n }\n </ul>\n</ng-template>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: ListComponent$1, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "directive", type: ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2451
2517
  }
2452
2518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FiltersListStepComponent, decorators: [{
2453
2519
  type: Component,
@@ -2459,7 +2525,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
2459
2525
  ListLinkDirective,
2460
2526
  ListTitleDirective,
2461
2527
  FdTranslatePipe
2462
- ], template: "<ng-template #titleTemplate>\n <span role=\"heading\" [attr.aria-level]=\"headingLevel\" fd-title [headerSize]=\"4\">{{\n ('platformTable.filterDialogFilterTitle' | fdTranslate)()\n }}</span>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div fd-list-group-header>\n <span fd-list-title id=\"platformTableInternalFilterListGroupHeader\">\n {{ ('platformTable.filterDialogFilterBy' | fdTranslate)() }}\n </span>\n </div>\n <ul fd-list aria-labelledby=\"platformTableInternalFilterListGroupHeader\" [navigationIndicator]=\"true\">\n @for (filter of filters; track filter) {\n <li\n fd-list-item\n [interactive]=\"true\"\n (click)=\"selectFilter.emit(filter)\"\n (keydown.space)=\"selectFilter.emit(filter)\"\n (keydown.enter)=\"selectFilter.emit(filter)\"\n >\n <a fd-list-link [navigationIndicator]=\"true\">\n <span fd-list-title>{{ filter.label }}</span>\n </a>\n </li>\n }\n </ul>\n</ng-template>\n" }]
2528
+ ], template: "<ng-template #titleTemplate>\n <span role=\"heading\" [attr.aria-level]=\"headingLevel\" fd-title [headerSize]=\"4\">{{\n ('platformTable.filterDialogFilterTitle' | fdTranslate)()\n }}</span>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div fd-list-group-header>\n <span fd-list-title id=\"platformTableInternalFilterListGroupHeader\">\n {{ ('platformTable.filterDialogFilterBy' | fdTranslate)() }}\n </span>\n </div>\n <ul fd-list aria-labelledby=\"platformTableInternalFilterListGroupHeader\" [navigationIndicator]=\"true\">\n @for (filter of filters; track filter) {\n <li\n fd-list-item\n [interactive]=\"true\"\n (click)=\"selectFilter.emit(filter)\"\n (keydown.space)=\"selectFilter.emit(filter)\"\n (keydown.enter)=\"selectFilter.emit(filter)\"\n aria-expanded=\"false\"\n >\n <a fd-list-link [navigationIndicator]=\"true\">\n <span fd-list-title>{{ filter.label }}</span>\n </a>\n </li>\n }\n </ul>\n</ng-template>\n" }]
2463
2529
  }], propDecorators: { filters: [{
2464
2530
  type: Input
2465
2531
  }], headingLevel: [{
@@ -2496,8 +2562,7 @@ class FiltersComponent {
2496
2562
  this._initializeFilterData(value);
2497
2563
  }
2498
2564
  /** hidden */
2499
- constructor(_cd) {
2500
- this._cd = _cd;
2565
+ constructor() {
2501
2566
  /** @hidden Heading level */
2502
2567
  this.headingLevel = input(2, /* @ts-ignore */
2503
2568
  ...(ngDevMode ? [{ debugName: "headingLevel" }] : /* istanbul ignore next */ []));
@@ -2533,6 +2598,27 @@ class FiltersComponent {
2533
2598
  ...(ngDevMode ? [{ debugName: "activeFilterStepView" }] : /* istanbul ignore next */ []));
2534
2599
  /** Reference to the available steps */
2535
2600
  this.ACTIVE_STEP = ACTIVE_STEP;
2601
+ /** @hidden */
2602
+ this._elementRef = inject(ElementRef);
2603
+ /** @hidden */
2604
+ this._injector = inject(Injector);
2605
+ /** @hidden */
2606
+ this._cd = inject(ChangeDetectorRef);
2607
+ // Focus first focusable element when returning to the filters list
2608
+ effect((onCleanup) => {
2609
+ const step = this.activeStep();
2610
+ if (step === ACTIVE_STEP.SELECT_FILTER) {
2611
+ // Use microtask to defer focus until after the next render
2612
+ const timeoutId = setTimeout(() => {
2613
+ // Query from the root element to find the list items rendered via template outlet
2614
+ const firstListItem = this._elementRef?.nativeElement.querySelector('li[fd-list-item]');
2615
+ if (firstListItem instanceof HTMLElement) {
2616
+ firstListItem.focus();
2617
+ }
2618
+ });
2619
+ onCleanup(() => clearTimeout(timeoutId));
2620
+ }
2621
+ }, { injector: this._injector });
2536
2622
  }
2537
2623
  /** hidden */
2538
2624
  ngOnInit() {
@@ -2613,13 +2699,13 @@ class FiltersComponent {
2613
2699
  this.resetAvailabilityChange.emit(false);
2614
2700
  }
2615
2701
  }
2616
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FiltersComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2702
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2617
2703
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FiltersComponent, isStandalone: true, selector: "fdp-filters", inputs: { filteringData: { classPropertyName: "filteringData", publicName: "filteringData", isSignal: false, isRequired: false, transformFunction: null }, headingLevel: { classPropertyName: "headingLevel", publicName: "headingLevel", isSignal: true, isRequired: false, transformFunction: null }, initialFilters: { classPropertyName: "initialFilters", publicName: "initialFilters", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeFilterStepViewChange: "activeFilterStepViewChange", filterChange: "filterChange", resetAvailabilityChange: "resetAvailabilityChange" }, viewQueries: [{ propertyName: "setActiveFilterStepView", first: true, predicate: FILTERS_VIEW_STEP_TOKEN, descendants: true }], ngImport: i0, template: "@if (activeFilterStepView()?.bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"activeFilterStepView()?.bodyTemplateRef ?? null\"></ng-container>\n}\n<!-- Keep active step component -->\n@if (activeStep() === ACTIVE_STEP.SELECT_FILTER) {\n <fdp-filters-list-step\n [headingLevel]=\"headingLevel()\"\n [filters]=\"viewSettingsFilters()\"\n (selectFilter)=\"selectFilter($event)\"\n ></fdp-filters-list-step>\n} @else if (activeStep() === ACTIVE_STEP.FILTER) {\n <fdp-filter-step\n [headingLevel]=\"headingLevel()\"\n [columnKey]=\"activeFilterColumnKey()!\"\n [columnName]=\"activeFilter()!.label\"\n [filter]=\"activeFilter()!\"\n [filterBy]=\"filterBy()\"\n (back)=\"goToFilters()\"\n (valueChange)=\"applyFilter($event, activeFilter())\"\n ></fdp-filter-step>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FiltersListStepComponent, selector: "fdp-filters-list-step", inputs: ["filters", "headingLevel"], outputs: ["selectFilter"] }, { kind: "component", type: FilterStepComponent, selector: "fdp-filter-step", inputs: ["filter", "columnKey", "contentDensity", "filterBy", "columnName", "headingLevel"], outputs: ["back", "valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2618
2704
  }
2619
2705
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FiltersComponent, decorators: [{
2620
2706
  type: Component,
2621
2707
  args: [{ selector: 'fdp-filters', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgTemplateOutlet, FiltersListStepComponent, FilterStepComponent], template: "@if (activeFilterStepView()?.bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"activeFilterStepView()?.bodyTemplateRef ?? null\"></ng-container>\n}\n<!-- Keep active step component -->\n@if (activeStep() === ACTIVE_STEP.SELECT_FILTER) {\n <fdp-filters-list-step\n [headingLevel]=\"headingLevel()\"\n [filters]=\"viewSettingsFilters()\"\n (selectFilter)=\"selectFilter($event)\"\n ></fdp-filters-list-step>\n} @else if (activeStep() === ACTIVE_STEP.FILTER) {\n <fdp-filter-step\n [headingLevel]=\"headingLevel()\"\n [columnKey]=\"activeFilterColumnKey()!\"\n [columnName]=\"activeFilter()!.label\"\n [filter]=\"activeFilter()!\"\n [filterBy]=\"filterBy()\"\n (back)=\"goToFilters()\"\n (valueChange)=\"applyFilter($event, activeFilter())\"\n ></fdp-filter-step>\n}\n" }]
2622
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { filteringData: [{
2708
+ }], ctorParameters: () => [], propDecorators: { filteringData: [{
2623
2709
  type: Input
2624
2710
  }], headingLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "headingLevel", required: false }] }], initialFilters: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialFilters", required: false }] }], activeFilterStepViewChange: [{ type: i0.Output, args: ["activeFilterStepViewChange"] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], resetAvailabilityChange: [{ type: i0.Output, args: ["resetAvailabilityChange"] }], setActiveFilterStepView: [{
2625
2711
  type: ViewChild,
@@ -2703,9 +2789,188 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
2703
2789
  ], template: "<fieldset>\n <legend fd-list-group-header>\n <span fd-list-title [attr.id]=\"groupOrderHeaderId\">\n {{ ('platformTable.groupDialogGroupOrderHeader' | fdTranslate)() }}\n </span>\n </legend>\n <ul fd-list [selection]=\"true\" [attr.aria-labelledby]=\"groupOrderHeaderId\">\n <li fd-list-item [selected]=\"direction() === SORT_DIRECTION.ASC\">\n <fd-radio-button\n name=\"sort-order\"\n value=\"asc\"\n state=\"default\"\n [ngModel]=\"direction()\"\n (ngModelChange)=\"_groupOrderChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.groupDialogGroupOrderAsc' | fdTranslate)() }}</span>\n </li>\n <li fd-list-item [selected]=\"direction() === SORT_DIRECTION.DESC\">\n <fd-radio-button\n name=\"sort-order\"\n value=\"desc\"\n state=\"default\"\n [ngModel]=\"direction()\"\n (ngModelChange)=\"_groupOrderChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.groupDialogGroupOrderDesc' | fdTranslate)() }}</span>\n </li>\n </ul>\n</fieldset>\n\n<fieldset>\n <legend fd-list-group-header>\n <span fd-list-title [attr.id]=\"groupByHeaderId\">\n {{ ('platformTable.groupDialogGroupByHeader' | fdTranslate)() }}\n </span>\n </legend>\n <ul fd-list [selection]=\"true\" [attr.aria-labelledby]=\"groupByHeaderId\">\n <li fd-list-item [selected]=\"NOT_GROUPED_OPTION_VALUE === field()\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"NOT_GROUPED_OPTION_VALUE\"\n state=\"default\"\n [ngModel]=\"field()\"\n (ngModelChange)=\"_groupFieldChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.groupDialogNotGroupedLabel' | fdTranslate)() }}</span>\n </li>\n @for (column of columns(); track column) {\n <li fd-list-item [selected]=\"column.key === field()\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"column.key\"\n state=\"default\"\n [ngModel]=\"field()\"\n (ngModelChange)=\"_groupFieldChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ column.label }}</span>\n </li>\n }\n </ul>\n</fieldset>\n" }]
2704
2790
  }], propDecorators: { groupingData: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupingData", required: false }] }], initialGrouping: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialGrouping", required: false }] }], groupChange: [{ type: i0.Output, args: ["groupChange"] }], resetAvailabilityChange: [{ type: i0.Output, args: ["resetAvailabilityChange"] }] } });
2705
2791
 
2792
+ /**
2793
+ * Include/Exclude Filters Component
2794
+ *
2795
+ * Provides filtering UI with include and exclude rules panels,
2796
+ * designed to be used within the table view settings dialog.
2797
+ */
2798
+ class IncludeExcludeFiltersComponent {
2799
+ /** @hidden */
2800
+ constructor() {
2801
+ /** Filter data input */
2802
+ this.filterData = input(/* @ts-ignore */
2803
+ ...(ngDevMode ? [undefined, { debugName: "filterData" }] : /* istanbul ignore next */ []));
2804
+ /** Validator function for filter rules */
2805
+ this.validator = input(/* @ts-ignore */
2806
+ ...(ngDevMode ? [undefined, { debugName: "validator" }] : /* istanbul ignore next */ []));
2807
+ /** Emits when filters change */
2808
+ this.filterChange = output();
2809
+ /** Emits when reset availability changes */
2810
+ this.resetAvailabilityChange = output();
2811
+ /** Table columns available for filtering */
2812
+ this.columns = [];
2813
+ /**
2814
+ * @hidden
2815
+ * Include Rules
2816
+ */
2817
+ this._includeRules = [];
2818
+ /**
2819
+ * @hidden
2820
+ * Exclude Rules
2821
+ */
2822
+ this._excludeRules = [];
2823
+ /**
2824
+ * @hidden
2825
+ * Count of valid included rules
2826
+ */
2827
+ this._validIncludeRulesCount = signal(0, /* @ts-ignore */
2828
+ ...(ngDevMode ? [{ debugName: "_validIncludeRulesCount" }] : /* istanbul ignore next */ []));
2829
+ /**
2830
+ * @hidden
2831
+ * Count of valid excluded rules
2832
+ */
2833
+ this._validExcludeRulesCount = signal(0, /* @ts-ignore */
2834
+ ...(ngDevMode ? [{ debugName: "_validExcludeRulesCount" }] : /* istanbul ignore next */ []));
2835
+ /**
2836
+ * @hidden
2837
+ * Panel opened/closed flag
2838
+ */
2839
+ this._includePanelExpanded = true;
2840
+ /**
2841
+ * @hidden
2842
+ * Panel opened/closed flag
2843
+ */
2844
+ this._excludePanelExpanded = false;
2845
+ this.initialized = false;
2846
+ /** @hidden */
2847
+ this.calculateValidRulesCount = () => {
2848
+ this._validIncludeRulesCount.set(this._includeRules.filter(this.isRuleValid).length);
2849
+ this._validExcludeRulesCount.set(this._excludeRules.filter(this.isRuleValid).length);
2850
+ };
2851
+ /** @hidden */
2852
+ this.isRuleValid = (rule) => rule?.isValid;
2853
+ // Initialize once when filterData is available
2854
+ effect(() => {
2855
+ const data = this.filterData();
2856
+ if (data && !this.initialized) {
2857
+ this.initialized = true;
2858
+ // Use untracked to prevent signal reads from triggering the effect again
2859
+ untracked(() => {
2860
+ this.columns = data.columns.filter((column) => column.filterable) || [];
2861
+ this.initiateRules(data.collectionFilter);
2862
+ this.calculateValidRulesCount();
2863
+ this._excludePanelExpanded = this._validExcludeRulesCount() > 0;
2864
+ this._recalculateResetAvailability();
2865
+ });
2866
+ }
2867
+ });
2868
+ }
2869
+ /** Reset changes to the initial state */
2870
+ reset() {
2871
+ this.initiateRules();
2872
+ this._validIncludeRulesCount.set(0);
2873
+ this._validExcludeRulesCount.set(0);
2874
+ this._recalculateResetAvailability();
2875
+ this.emitChange();
2876
+ }
2877
+ /** @hidden */
2878
+ _removeRule(rule, rules) {
2879
+ const index = rules.indexOf(rule);
2880
+ if (index === -1) {
2881
+ return;
2882
+ }
2883
+ rules.splice(index, 1);
2884
+ // Keep at least one item in the list
2885
+ if (rules.length === 0) {
2886
+ rules.push(new FilterRule(this.columns));
2887
+ }
2888
+ this._recalculateResetAvailability();
2889
+ this.calculateValidRulesCount();
2890
+ this.emitChange();
2891
+ }
2892
+ /** @hidden */
2893
+ _addNewRule(rules) {
2894
+ const lastRule = rules.slice(-1)[0];
2895
+ rules.push(new FilterRule(this.columns, lastRule?.columnKey, lastRule?.strategy));
2896
+ }
2897
+ /** @hidden */
2898
+ _recalculateResetAvailability() {
2899
+ const hasOnlyOneEmptyIncludeRule = this._includeRules.length === 1 && !this._includeRules[0].hasValue;
2900
+ const hasOnlyOneEmptyExcludeRule = this._excludeRules.length === 1 && !this._excludeRules[0].hasValue;
2901
+ const isResetAvailable = !hasOnlyOneEmptyIncludeRule || !hasOnlyOneEmptyExcludeRule;
2902
+ this.resetAvailabilityChange.emit(isResetAvailable);
2903
+ }
2904
+ /** @hidden */
2905
+ _onRuleStateChange() {
2906
+ this.calculateValidRulesCount();
2907
+ this.emitChange();
2908
+ }
2909
+ /** @hidden */
2910
+ _onRuleChange() {
2911
+ this._recalculateResetAvailability();
2912
+ this.emitChange();
2913
+ }
2914
+ /** @hidden */
2915
+ initiateRules(initialRules) {
2916
+ this._includeRules = this.createRules(initialRules?.filter(({ exclude }) => !exclude));
2917
+ this._excludeRules = this.createRules(initialRules?.filter(({ exclude }) => exclude));
2918
+ [this._includeRules, this._excludeRules].forEach((rules) => {
2919
+ // Rules on initial phase are considered as valid
2920
+ rules.forEach((rule) => rule.setValid(true));
2921
+ // Keep at least one item in the list
2922
+ if (rules.length === 0) {
2923
+ rules.push(new FilterRule(this.columns));
2924
+ }
2925
+ });
2926
+ }
2927
+ /** @hidden */
2928
+ createRules(collectionFilter = []) {
2929
+ return collectionFilter.map(({ field, value, value2, strategy }) => new FilterRule(this.columns, field, strategy, value, value2));
2930
+ }
2931
+ /** @hidden */
2932
+ getCollectionFiltersFromRules(rules) {
2933
+ return rules.filter(this.isRuleValid).map(({ columnKey, strategy, value, value2 }) => ({
2934
+ field: columnKey,
2935
+ value,
2936
+ value2,
2937
+ strategy: strategy
2938
+ }));
2939
+ }
2940
+ /** @hidden */
2941
+ getCollectionFiltersWithExcludeFlag(rules, exclude) {
2942
+ return this.getCollectionFiltersFromRules(rules).map((filter) => ({ ...filter, exclude }));
2943
+ }
2944
+ /** @hidden */
2945
+ emitChange() {
2946
+ const includeFilters = this.getCollectionFiltersWithExcludeFlag(this._includeRules, false);
2947
+ const excludeFilters = this.getCollectionFiltersWithExcludeFlag(this._excludeRules, true);
2948
+ const combinedFilters = [...includeFilters, ...excludeFilters];
2949
+ this.filterChange.emit({ filterBy: combinedFilters });
2950
+ }
2951
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: IncludeExcludeFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2952
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: IncludeExcludeFiltersComponent, isStandalone: true, selector: "fdp-table-include-exclude-filters", inputs: { filterData: { classPropertyName: "filterData", publicName: "filterData", isSignal: true, isRequired: false, transformFunction: null }, validator: { classPropertyName: "validator", publicName: "validator", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterChange: "filterChange", resetAvailabilityChange: "resetAvailabilityChange" }, ngImport: i0, template: "<div class=\"fdp-table-include-exclude-filters\">\n <!-- Include Rules -->\n <fd-panel [expanded]=\"_includePanelExpanded\">\n <div fd-panel-title>\n {{\n (\n (_validIncludeRulesCount() > 0\n ? 'platformTable.P13FilterDialogIncludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogIncludePanelTitleWithoutCount'\n ) | fdTranslate: { count: _validIncludeRulesCount() }\n )()\n }}\n </div>\n <div fd-panel-content>\n @for (rule of _includeRules; track rule) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_onRuleChange()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"\n ('platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate)()\n \"\n [title]=\"('platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate)()\"\n (click)=\"_removeRule(rule, _includeRules)\"\n ></button>\n @if (_includeRules.length - 1 === $index) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"\n ('platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate)()\n \"\n [title]=\"('platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate)()\"\n (click)=\"_addNewRule(_includeRules)\"\n ></button>\n }\n </div>\n </div>\n </fd-layout-grid>\n }\n </div>\n </fd-panel>\n <!-- Exclude Rules -->\n <fd-panel [expanded]=\"_excludePanelExpanded\">\n <div fd-panel-title>\n {{\n (\n (_validExcludeRulesCount() > 0\n ? 'platformTable.P13FilterDialogExcludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogExcludePanelTitleWithoutCount'\n ) | fdTranslate: { count: _validExcludeRulesCount() }\n )()\n }}\n </div>\n <div fd-panel-content>\n @for (rule of _excludeRules; track rule) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_onRuleChange()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"\n ('platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate)()\n \"\n [title]=\"('platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate)()\"\n (click)=\"_removeRule(rule, _excludeRules)\"\n ></button>\n @if (_excludeRules.length - 1 === $index) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"\n ('platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate)()\n \"\n [title]=\"('platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate)()\"\n (click)=\"_addNewRule(_excludeRules)\"\n ></button>\n }\n </div>\n </div>\n </fd-layout-grid>\n }\n </div>\n </fd-panel>\n</div>\n", styles: [".fdp-table-include-exclude-filters .filter-row__input,.fdp-table-include-exclude-filters .filter-row__select{display:block;max-width:100%}.fdp-table-include-exclude-filters .fd-popover-custom{display:block}\n"], dependencies: [{ kind: "component", type: PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded", "transparent", "noRadius"], outputs: ["expandedChange"] }, { kind: "directive", type: PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id", "wrap"] }, { kind: "directive", type: PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "noPadding", "transparent", "id"] }, { kind: "component", type: LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: FilterRuleComponent, selector: "fdp-table-filter-rule", inputs: ["rule"], outputs: ["ruleChange", "ruleStateChange"] }, { kind: "directive", type: LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2953
+ }
2954
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: IncludeExcludeFiltersComponent, decorators: [{
2955
+ type: Component,
2956
+ args: [{ selector: 'fdp-table-include-exclude-filters', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
2957
+ TemplateDirective,
2958
+ PanelComponent,
2959
+ PanelTitleDirective,
2960
+ PanelContentDirective,
2961
+ LayoutGridComponent,
2962
+ LayoutGridRowDirective,
2963
+ FilterRuleComponent,
2964
+ LayoutGridColDirective,
2965
+ ButtonComponent,
2966
+ FdTranslatePipe
2967
+ ], template: "<div class=\"fdp-table-include-exclude-filters\">\n <!-- Include Rules -->\n <fd-panel [expanded]=\"_includePanelExpanded\">\n <div fd-panel-title>\n {{\n (\n (_validIncludeRulesCount() > 0\n ? 'platformTable.P13FilterDialogIncludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogIncludePanelTitleWithoutCount'\n ) | fdTranslate: { count: _validIncludeRulesCount() }\n )()\n }}\n </div>\n <div fd-panel-content>\n @for (rule of _includeRules; track rule) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_onRuleChange()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"\n ('platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate)()\n \"\n [title]=\"('platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate)()\"\n (click)=\"_removeRule(rule, _includeRules)\"\n ></button>\n @if (_includeRules.length - 1 === $index) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"\n ('platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate)()\n \"\n [title]=\"('platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate)()\"\n (click)=\"_addNewRule(_includeRules)\"\n ></button>\n }\n </div>\n </div>\n </fd-layout-grid>\n }\n </div>\n </fd-panel>\n <!-- Exclude Rules -->\n <fd-panel [expanded]=\"_excludePanelExpanded\">\n <div fd-panel-title>\n {{\n (\n (_validExcludeRulesCount() > 0\n ? 'platformTable.P13FilterDialogExcludePanelTitleWithCount'\n : 'platformTable.P13FilterDialogExcludePanelTitleWithoutCount'\n ) | fdTranslate: { count: _validExcludeRulesCount() }\n )()\n }}\n </div>\n <div fd-panel-content>\n @for (rule of _excludeRules; track rule) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <fdp-table-filter-rule\n [fdLayoutGridCol]=\"10\"\n [rule]=\"rule\"\n (ruleChange)=\"_onRuleChange()\"\n (ruleStateChange)=\"_onRuleStateChange()\"\n ></fdp-table-filter-rule>\n <!-- Actions buttons -->\n <div [fdLayoutGridCol]=\"2\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"\n ('platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate)()\n \"\n [title]=\"('platformTable.P13FilterDialogRemoveFilterBtnTitle' | fdTranslate)()\"\n (click)=\"_removeRule(rule, _excludeRules)\"\n ></button>\n @if (_excludeRules.length - 1 === $index) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"\n ('platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate)()\n \"\n [title]=\"('platformTable.P13FilterDialogAddFilterBtnTitle' | fdTranslate)()\"\n (click)=\"_addNewRule(_excludeRules)\"\n ></button>\n }\n </div>\n </div>\n </fd-layout-grid>\n }\n </div>\n </fd-panel>\n</div>\n", styles: [".fdp-table-include-exclude-filters .filter-row__input,.fdp-table-include-exclude-filters .filter-row__select{display:block;max-width:100%}.fdp-table-include-exclude-filters .fd-popover-custom{display:block}\n"] }]
2968
+ }], ctorParameters: () => [], propDecorators: { filterData: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterData", required: false }] }], validator: [{ type: i0.Input, args: [{ isSignal: true, alias: "validator", required: false }] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], resetAvailabilityChange: [{ type: i0.Output, args: ["resetAvailabilityChange"] }] } });
2969
+
2706
2970
  let sortOrderHeaderUniqueId = 0;
2707
2971
  let sortDialogSortByHeaderUniqueId = 0;
2708
2972
  class SortingComponent {
2973
+ /** @hidden */
2709
2974
  constructor() {
2710
2975
  /** Input data for sorting */
2711
2976
  this.sortingData = input(/* @ts-ignore */
@@ -2715,12 +2980,42 @@ class SortingComponent {
2715
2980
  ...(ngDevMode ? [undefined, { debugName: "initialSorting" }] : /* istanbul ignore next */ []));
2716
2981
  /** Event emitter for sort changes */
2717
2982
  this.sortChange = output();
2718
- /** Current selected sorting direction - resets when sortingData changes */
2719
- this.direction = linkedSignal(() => this.sortingData()?.direction ?? INITIAL_DIRECTION, /* @ts-ignore */
2720
- ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
2721
- /** Current selected sorting field - resets when sortingData changes */
2722
- this.field = linkedSignal(() => this.sortingData()?.field ?? NOT_SORTED_OPTION_VALUE, /* @ts-ignore */
2723
- ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
2983
+ /** Event emitter for reset availability changes */
2984
+ this.resetAvailabilityChange = outputFromObservable(toObservable(computed(() => {
2985
+ const initial = this.initialSorting();
2986
+ if (!initial) {
2987
+ return false;
2988
+ }
2989
+ // Get current sort criteria (only those with fields selected)
2990
+ const currentCriteria = this.sortCriteriaList().filter((c) => c.field !== null);
2991
+ // Build initial criteria array for comparison
2992
+ const initialCriteria = initial.field !== null ? [{ field: initial.field, direction: initial.direction }] : [];
2993
+ // Reset is available if:
2994
+ // 1. Number of sort criteria changed
2995
+ // 2. Any criteria field/direction differs from initial
2996
+ // 3. Combobox has invalid text
2997
+ if (currentCriteria.length !== initialCriteria.length) {
2998
+ return true;
2999
+ }
3000
+ for (let i = 0; i < currentCriteria.length; i++) {
3001
+ if (currentCriteria[i].field !== initialCriteria[i]?.field ||
3002
+ currentCriteria[i].direction !== initialCriteria[i]?.direction) {
3003
+ return true;
3004
+ }
3005
+ }
3006
+ return this._hasInvalidComboboxText();
3007
+ })).pipe(distinctUntilChanged()));
3008
+ /** Event emitter for validity changes */
3009
+ this.validityChange = outputFromObservable(toObservable(computed(() => {
3010
+ const invalidMap = this._invalidInputPerRow();
3011
+ // Valid if no rows have invalid input
3012
+ for (const isInvalid of invalidMap.values()) {
3013
+ if (isInvalid) {
3014
+ return false;
3015
+ }
3016
+ }
3017
+ return true;
3018
+ })).pipe(distinctUntilChanged()));
2724
3019
  /** @hidden */
2725
3020
  this.sortOrderHeaderId = `fdp-table-sort-order-header-${sortOrderHeaderUniqueId++}`;
2726
3021
  /** @hidden */
@@ -2735,40 +3030,450 @@ class SortingComponent {
2735
3030
  /** Available table columns for sorting */
2736
3031
  this.columns = computed(() => this.sortingData()?.columns ?? [], /* @ts-ignore */
2737
3032
  ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
2738
- /** Event emitter for reset availability changes */
2739
- this.resetAvailabilityChange = outputFromObservable(toObservable(computed(() => {
2740
- const initial = this.initialSorting();
2741
- if (!initial) {
2742
- return false;
3033
+ /** @hidden Computed signal that checks if any row has invalid input */
3034
+ this.isValid = computed(() => {
3035
+ const invalidMap = this._invalidInputPerRow();
3036
+ // Valid if no rows have invalid input
3037
+ for (const isInvalid of invalidMap.values()) {
3038
+ if (isInvalid) {
3039
+ return false;
3040
+ }
2743
3041
  }
2744
- return this.direction() !== initial.direction || this.field() !== initial.field;
2745
- })).pipe(distinctUntilChanged()));
3042
+ return true;
3043
+ }, /* @ts-ignore */
3044
+ ...(ngDevMode ? [{ debugName: "isValid" }] : /* istanbul ignore next */ []));
3045
+ /** @hidden Computed signal that returns the currently selected column object */
3046
+ this.selectedColumn = computed(() => {
3047
+ const currentField = this.firstSortingField();
3048
+ return this.columns().find((col) => col.key === currentField) ?? null;
3049
+ }, /* @ts-ignore */
3050
+ ...(ngDevMode ? [{ debugName: "selectedColumn" }] : /* istanbul ignore next */ []));
3051
+ /**
3052
+ * @hidden
3053
+ * Computed signal that returns available columns for each row.
3054
+ * Columns selected in other rows are filtered out.
3055
+ */
3056
+ this.availableColumnsPerRow = computed(() => {
3057
+ const allColumns = this.columns();
3058
+ const criteriaList = this.sortCriteriaList();
3059
+ return criteriaList.map((_, rowIndex) => {
3060
+ // Collect fields selected in OTHER rows
3061
+ const selectedFieldsInOtherRows = new Set(criteriaList.filter((c, index) => index !== rowIndex && c.field !== null).map((c) => c.field));
3062
+ // Return columns not selected in other rows
3063
+ return allColumns.filter((col) => !selectedFieldsInOtherRows.has(col.key));
3064
+ });
3065
+ }, /* @ts-ignore */
3066
+ ...(ngDevMode ? [{ debugName: "availableColumnsPerRow" }] : /* istanbul ignore next */ []));
3067
+ /**
3068
+ * @hidden
3069
+ * Computed signal that returns the selected column object for each row.
3070
+ */
3071
+ this.selectedColumnsPerRow = computed(() => {
3072
+ const allColumns = this.columns();
3073
+ const criteriaList = this.sortCriteriaList();
3074
+ return criteriaList.map((criteria) => {
3075
+ if (!criteria.field) {
3076
+ return null;
3077
+ }
3078
+ return allColumns.find((col) => col.key === criteria.field) ?? null;
3079
+ });
3080
+ }, /* @ts-ignore */
3081
+ ...(ngDevMode ? [{ debugName: "selectedColumnsPerRow" }] : /* istanbul ignore next */ []));
3082
+ /**
3083
+ * @hidden
3084
+ * Computed signal that returns the direction for each row.
3085
+ */
3086
+ this.directionsPerRow = computed(() => this.sortCriteriaList().map((criteria) => criteria.direction ?? INITIAL_DIRECTION), /* @ts-ignore */
3087
+ ...(ngDevMode ? [{ debugName: "directionsPerRow" }] : /* istanbul ignore next */ []));
3088
+ /**
3089
+ * @hidden
3090
+ * Computed signal that returns the form state ('error' or undefined) for each row.
3091
+ */
3092
+ this.rowStates = computed(() => {
3093
+ const invalidMap = this._invalidInputPerRow();
3094
+ return this.sortCriteriaList().map((_, index) => (invalidMap.get(index) ? 'error' : undefined));
3095
+ }, /* @ts-ignore */
3096
+ ...(ngDevMode ? [{ debugName: "rowStates" }] : /* istanbul ignore next */ []));
3097
+ /**
3098
+ * @hidden
3099
+ * Computed signal that returns visibility for each row.
3100
+ * First row is always visible, subsequent rows visible only if previous has selection.
3101
+ */
3102
+ this.rowVisibility = computed(() => {
3103
+ const criteriaList = this.sortCriteriaList();
3104
+ return criteriaList.map((_, index) => {
3105
+ if (index === 0) {
3106
+ return true;
3107
+ }
3108
+ return criteriaList[index - 1]?.field !== null;
3109
+ });
3110
+ }, /* @ts-ignore */
3111
+ ...(ngDevMode ? [{ debugName: "rowVisibility" }] : /* istanbul ignore next */ []));
3112
+ /**
3113
+ * @hidden
3114
+ * Computed signal that returns whether each row can be moved up.
3115
+ */
3116
+ this.canMoveUpPerRow = computed(() => {
3117
+ const criteriaList = this.sortCriteriaList();
3118
+ return criteriaList.map((criteria, index) => {
3119
+ if (index === 0) {
3120
+ return false;
3121
+ }
3122
+ return criteria.field !== null;
3123
+ });
3124
+ }, /* @ts-ignore */
3125
+ ...(ngDevMode ? [{ debugName: "canMoveUpPerRow" }] : /* istanbul ignore next */ []));
3126
+ /**
3127
+ * @hidden
3128
+ * Computed signal that returns whether each row can be moved down.
3129
+ */
3130
+ this.canMoveDownPerRow = computed(() => {
3131
+ const criteriaList = this.sortCriteriaList();
3132
+ return criteriaList.map((criteria, index) => {
3133
+ const nextRow = criteriaList[index + 1];
3134
+ // Can't move down if current row has no selection
3135
+ if (criteria.field === null) {
3136
+ return false;
3137
+ }
3138
+ // Can't move down if next row doesn't exist or has no selection
3139
+ return nextRow !== undefined && nextRow.field !== null;
3140
+ });
3141
+ }, /* @ts-ignore */
3142
+ ...(ngDevMode ? [{ debugName: "canMoveDownPerRow" }] : /* istanbul ignore next */ []));
3143
+ /**
3144
+ * @hidden
3145
+ * Computed signal that returns whether each row can be deleted.
3146
+ */
3147
+ this.canDeletePerRow = computed(() => this.sortCriteriaList().map((criteria) => criteria.field !== null), /* @ts-ignore */
3148
+ ...(ngDevMode ? [{ debugName: "canDeletePerRow" }] : /* istanbul ignore next */ []));
3149
+ /** Current selected sorting direction - derived from first sortBy entry */
3150
+ this.direction = linkedSignal(() => this.sortingData()?.sortBy?.[0]?.direction ?? INITIAL_DIRECTION, /* @ts-ignore */
3151
+ ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
3152
+ /** Current selected sorting field - derived from first sortBy entry */
3153
+ this.firstSortingField = linkedSignal(() => this.sortingData()?.sortBy?.[0]?.field ?? NOT_SORTED_OPTION_VALUE, /* @ts-ignore */
3154
+ ...(ngDevMode ? [{ debugName: "firstSortingField" }] : /* istanbul ignore next */ []));
3155
+ /**
3156
+ * @hidden
3157
+ * Array of sort criteria rows. Each row has a field and direction.
3158
+ * linkedSignal resets when sortBy reference changes (e.g., on reset),
3159
+ * but allows local modifications via .set()/.update().
3160
+ */
3161
+ this.sortCriteriaList = linkedSignal(() => {
3162
+ // Only track sortBy reference changes, not all sortingData changes
3163
+ const sortBy = this._sortByRef() ?? [];
3164
+ // Use untracked for columns since we don't want column changes to reset the list
3165
+ const columns = untracked(() => this.sortingData()?.columns ?? []);
3166
+ return columns.map((_, index) => {
3167
+ const existingCriteria = sortBy[index];
3168
+ if (existingCriteria) {
3169
+ return {
3170
+ field: existingCriteria.field,
3171
+ direction: existingCriteria.direction
3172
+ };
3173
+ }
3174
+ return { field: null, direction: INITIAL_DIRECTION };
3175
+ });
3176
+ }, /* @ts-ignore */
3177
+ ...(ngDevMode ? [{ debugName: "sortCriteriaList" }] : /* istanbul ignore next */ []));
3178
+ /**
3179
+ * @hidden
3180
+ * Extracts the sortBy array reference from sortingData.
3181
+ * Used as the source for linkedSignal to track only sortBy reference changes.
3182
+ */
3183
+ this._sortByRef = computed(() => this.sortingData()?.sortBy, /* @ts-ignore */
3184
+ ...(ngDevMode ? [{ debugName: "_sortByRef" }] : /* istanbul ignore next */ []));
3185
+ /**
3186
+ * @hidden
3187
+ * Tracks invalid input text per row (non-empty text that doesn't match any column).
3188
+ * Resets to empty Map when sortBy reference changes.
3189
+ */
3190
+ this._invalidInputPerRow = linkedSignal(() => {
3191
+ // Only track sortBy reference changes
3192
+ this._sortByRef();
3193
+ return new Map();
3194
+ }, /* @ts-ignore */
3195
+ ...(ngDevMode ? [{ debugName: "_invalidInputPerRow" }] : /* istanbul ignore next */ []));
3196
+ /**
3197
+ * @hidden
3198
+ * Computed signal that checks if any row has invalid combobox text.
3199
+ * Used by resetAvailabilityChange to determine if reset should be available.
3200
+ */
3201
+ this._hasInvalidComboboxText = computed(() => {
3202
+ const invalidMap = this._invalidInputPerRow();
3203
+ for (const isInvalid of invalidMap.values()) {
3204
+ if (isInvalid) {
3205
+ return true;
3206
+ }
3207
+ }
3208
+ return false;
3209
+ }, /* @ts-ignore */
3210
+ ...(ngDevMode ? [{ debugName: "_hasInvalidComboboxText" }] : /* istanbul ignore next */ []));
3211
+ /** @hidden Reference to the comboboxes for programmatic reset */
3212
+ this._comboboxes = viewChildren('sortCombobox', /* @ts-ignore */
3213
+ ...(ngDevMode ? [{ debugName: "_comboboxes" }] : /* istanbul ignore next */ []));
3214
+ // DOM side effect: sync combobox display text when sortBy reference changes.
3215
+ // This is needed because when user types invalid text and reset happens,
3216
+ // the model value might not change but the display text needs to update.
3217
+ effect(() => {
3218
+ const sortBy = this._sortByRef();
3219
+ // Only sync when reference changes (not on every sortingData update)
3220
+ if (sortBy !== this._previousSortByRef) {
3221
+ this._previousSortByRef = sortBy;
3222
+ // Use untracked to avoid creating additional dependencies
3223
+ untracked(() => this._syncComboboxDisplayText());
3224
+ }
3225
+ });
2746
3226
  }
2747
3227
  /**
2748
- * Handle sort direction changes.
2749
- * @param direction New sorting direction.
3228
+ * Get available columns for a specific sort criteria row.
3229
+ * Excludes columns that are already selected in other rows.
3230
+ * @param rowIndex Index of the current row.
3231
+ * @returns Array of columns available for selection.
2750
3232
  */
2751
- _sortDirectionChange(direction) {
2752
- this.direction.set(direction);
3233
+ getAvailableColumns(rowIndex) {
3234
+ return this.availableColumnsPerRow()[rowIndex] ?? [];
3235
+ }
3236
+ /**
3237
+ * Get the selected column object for a specific row.
3238
+ * @param rowIndex Index of the row.
3239
+ * @returns The selected column object or null.
3240
+ */
3241
+ getSelectedColumnForRow(rowIndex) {
3242
+ return this.selectedColumnsPerRow()[rowIndex] ?? null;
3243
+ }
3244
+ /**
3245
+ * Get the direction for a specific row.
3246
+ * @param rowIndex Index of the row.
3247
+ * @returns The sort direction.
3248
+ */
3249
+ getDirectionForRow(rowIndex) {
3250
+ return this.directionsPerRow()[rowIndex] ?? INITIAL_DIRECTION;
3251
+ }
3252
+ /**
3253
+ * Get the form state for a specific row's combobox.
3254
+ * Returns 'error' if the row has invalid input, undefined otherwise.
3255
+ * @param rowIndex Index of the row.
3256
+ * @returns The form state or undefined.
3257
+ */
3258
+ getRowState(rowIndex) {
3259
+ return this.rowStates()[rowIndex];
3260
+ }
3261
+ /**
3262
+ * Determine if a row should be visible.
3263
+ * The first row is always visible. Subsequent rows are only visible
3264
+ * if the previous row has a column selected.
3265
+ * @param rowIndex Index of the row.
3266
+ * @returns True if the row should be visible.
3267
+ */
3268
+ isRowVisible(rowIndex) {
3269
+ return this.rowVisibility()[rowIndex] ?? false;
3270
+ }
3271
+ /**
3272
+ * Check if a row can be moved up.
3273
+ * A row can move up if it's not the first row and has a field selected.
3274
+ * @param rowIndex Index of the row.
3275
+ * @returns True if the row can be moved up.
3276
+ */
3277
+ canMoveUp(rowIndex) {
3278
+ return this.canMoveUpPerRow()[rowIndex] ?? false;
3279
+ }
3280
+ /**
3281
+ * Check if a row can be moved down.
3282
+ * A row can move down if there's a visible row below it with a field selected.
3283
+ * @param rowIndex Index of the row.
3284
+ * @returns True if the row can be moved down.
3285
+ */
3286
+ canMoveDown(rowIndex) {
3287
+ return this.canMoveDownPerRow()[rowIndex] ?? false;
3288
+ }
3289
+ /**
3290
+ * Check if a row can be deleted (cleared).
3291
+ * A row can be deleted if it has a field selected.
3292
+ * @param rowIndex Index of the row.
3293
+ * @returns True if the row can be deleted.
3294
+ */
3295
+ canDelete(rowIndex) {
3296
+ return this.canDeletePerRow()[rowIndex] ?? false;
3297
+ }
3298
+ /**
3299
+ * Move a sort criteria row up (swap with the row above).
3300
+ * @param rowIndex Index of the row to move up.
3301
+ */
3302
+ moveUp(rowIndex) {
3303
+ if (!this.canMoveUpPerRow()[rowIndex]) {
3304
+ return;
3305
+ }
3306
+ this.sortCriteriaList.update((list) => {
3307
+ const newList = [...list];
3308
+ // Swap with the row above
3309
+ [newList[rowIndex - 1], newList[rowIndex]] = [newList[rowIndex], newList[rowIndex - 1]];
3310
+ return newList;
3311
+ });
3312
+ this._syncMainFieldAndDirection();
2753
3313
  this._onModelChange();
2754
3314
  }
2755
3315
  /**
2756
- * Handle sort field changes.
2757
- * @param field New sorting field.
3316
+ * Move a sort criteria row down (swap with the row below).
3317
+ * @param rowIndex Index of the row to move down.
2758
3318
  */
2759
- _sortFieldChange(field) {
2760
- this.field.set(field);
3319
+ moveDown(rowIndex) {
3320
+ if (!this.canMoveDownPerRow()[rowIndex]) {
3321
+ return;
3322
+ }
3323
+ this.sortCriteriaList.update((list) => {
3324
+ const newList = [...list];
3325
+ // Swap with the row below
3326
+ [newList[rowIndex], newList[rowIndex + 1]] = [newList[rowIndex + 1], newList[rowIndex]];
3327
+ return newList;
3328
+ });
3329
+ this._syncMainFieldAndDirection();
2761
3330
  this._onModelChange();
2762
3331
  }
3332
+ /**
3333
+ * Delete (clear) a sort criteria row.
3334
+ * This removes the field selection and shifts remaining criteria up.
3335
+ * @param rowIndex Index of the row to delete.
3336
+ */
3337
+ deleteRow(rowIndex) {
3338
+ if (!this.canDeletePerRow()[rowIndex]) {
3339
+ return;
3340
+ }
3341
+ this.sortCriteriaList.update((list) => {
3342
+ const newList = [...list];
3343
+ // Remove the criteria at this index and add an empty one at the end
3344
+ newList.splice(rowIndex, 1);
3345
+ newList.push({ field: null, direction: INITIAL_DIRECTION });
3346
+ return newList;
3347
+ });
3348
+ this._syncMainFieldAndDirection();
3349
+ this._onModelChange();
3350
+ }
3351
+ /**
3352
+ * Handle sort direction changes for a specific row.
3353
+ * @param rowIndex Index of the row.
3354
+ * @param direction New sorting direction.
3355
+ */
3356
+ _sortDirectionChangeForRow(rowIndex, direction) {
3357
+ this.sortCriteriaList.update((list) => {
3358
+ const newList = [...list];
3359
+ newList[rowIndex] = { ...newList[rowIndex], direction };
3360
+ return newList;
3361
+ });
3362
+ // Update the main direction if this is the first row (for backward compatibility)
3363
+ if (rowIndex === 0) {
3364
+ this.direction.set(direction);
3365
+ }
3366
+ // Always emit changes for multi-column sorting
3367
+ this._onModelChange();
3368
+ }
3369
+ /**
3370
+ * Handle sort field changes for a specific row.
3371
+ * @param rowIndex Index of the row.
3372
+ * @param column Selected column object or string.
3373
+ */
3374
+ _sortFieldChangeForRow(rowIndex, column) {
3375
+ let fieldKey = null;
3376
+ let shouldUpdate = true;
3377
+ let isInvalid = false;
3378
+ if (typeof column === 'string') {
3379
+ if (column === '') {
3380
+ // Empty string - clear any error state and don't update selection
3381
+ // This can happen when combobox re-renders and emits empty value
3382
+ shouldUpdate = false;
3383
+ isInvalid = false;
3384
+ }
3385
+ else {
3386
+ const matchingColumn = this.columns().find((col) => col.label === column);
3387
+ fieldKey = matchingColumn?.key ?? null;
3388
+ // Check if any column label starts with the typed text (case-insensitive)
3389
+ // This handles the case where user is still typing and autocomplete is showing suggestions
3390
+ const hasPartialMatch = this.columns().some((col) => col.label.toLowerCase().startsWith(column.toLowerCase()));
3391
+ // Mark as invalid only if text doesn't match any column AND no partial matches exist
3392
+ isInvalid = matchingColumn === undefined && !hasPartialMatch;
3393
+ // Only update if we found a matching column
3394
+ shouldUpdate = matchingColumn !== undefined;
3395
+ }
3396
+ }
3397
+ else if (column) {
3398
+ fieldKey = column.key;
3399
+ isInvalid = false;
3400
+ }
3401
+ else {
3402
+ // null/undefined column - don't clear existing selection
3403
+ // This can happen when combobox re-renders
3404
+ shouldUpdate = false;
3405
+ isInvalid = false;
3406
+ }
3407
+ // Update invalid state for this row
3408
+ this._invalidInputPerRow.update((map) => {
3409
+ const newMap = new Map(map);
3410
+ if (isInvalid) {
3411
+ newMap.set(rowIndex, true);
3412
+ }
3413
+ else {
3414
+ newMap.delete(rowIndex);
3415
+ }
3416
+ return newMap;
3417
+ });
3418
+ if (shouldUpdate) {
3419
+ this.sortCriteriaList.update((list) => {
3420
+ const newList = [...list];
3421
+ newList[rowIndex] = { ...newList[rowIndex], field: fieldKey };
3422
+ return newList;
3423
+ });
3424
+ // Update the main field if this is the first row (for backward compatibility)
3425
+ if (rowIndex === 0 && fieldKey !== null) {
3426
+ this.firstSortingField.set(fieldKey);
3427
+ }
3428
+ // Always emit changes for multi-column sorting
3429
+ this._onModelChange();
3430
+ }
3431
+ }
3432
+ /** @hidden */
3433
+ displayColumn(column) {
3434
+ return column?.label ?? '';
3435
+ }
3436
+ /**
3437
+ * Sync the main field and direction signals with the first row's values.
3438
+ * Used after move/delete operations to keep backward compatibility.
3439
+ * @hidden
3440
+ */
3441
+ _syncMainFieldAndDirection() {
3442
+ const firstCriteria = this.sortCriteriaList()[0];
3443
+ if (firstCriteria) {
3444
+ this.firstSortingField.set(firstCriteria.field);
3445
+ this.direction.set(firstCriteria.direction);
3446
+ }
3447
+ }
2763
3448
  /**
2764
3449
  * Emit changes to the model.
2765
3450
  * @hidden
2766
3451
  */
2767
3452
  _onModelChange() {
2768
- this.sortChange.emit({ direction: this.direction(), field: this.field() });
3453
+ // Build array of all sort criteria that have a field selected
3454
+ const sortBy = this.sortCriteriaList()
3455
+ .filter((criteria) => criteria.field !== null)
3456
+ .map((criteria) => ({
3457
+ field: criteria.field,
3458
+ direction: criteria.direction
3459
+ }));
3460
+ this.sortChange.emit({ sortBy });
3461
+ }
3462
+ /**
3463
+ * Sync combobox display text with the current selected column.
3464
+ * This is a DOM side effect needed when reset happens and the combobox has invalid text,
3465
+ * because ngModel won't call writeValue if the underlying model value hasn't changed.
3466
+ * @hidden
3467
+ */
3468
+ _syncComboboxDisplayText() {
3469
+ const comboboxes = this._comboboxes();
3470
+ if (comboboxes.length > 0) {
3471
+ const column = this.selectedColumn();
3472
+ comboboxes[0].writeValue(column);
3473
+ }
2769
3474
  }
2770
3475
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SortingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2771
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SortingComponent, isStandalone: true, selector: "fdp-sorting", inputs: { sortingData: { classPropertyName: "sortingData", publicName: "sortingData", isSignal: true, isRequired: false, transformFunction: null }, initialSorting: { classPropertyName: "initialSorting", publicName: "initialSorting", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChange: "sortChange", resetAvailabilityChange: "resetAvailabilityChange" }, ngImport: i0, template: "<fieldset>\n <legend fd-list-group-header>\n <span fd-list-title [attr.id]=\"sortOrderHeaderId\">\n {{ ('platformTable.sortDialogSortOrderHeader' | fdTranslate)() }}\n </span>\n </legend>\n <ul fd-list [selection]=\"true\" [attr.aria-labelledby]=\"sortOrderHeaderId\">\n <li fd-list-item [selected]=\"direction() === SORT_DIRECTION.ASC\">\n <fd-radio-button\n name=\"sort-order\"\n value=\"asc\"\n state=\"default\"\n [ngModel]=\"direction()\"\n (ngModelChange)=\"_sortDirectionChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.sortDialogSortOrderAsc' | fdTranslate)() }}</span>\n </li>\n <li fd-list-item [selected]=\"direction() === SORT_DIRECTION.DESC\">\n <fd-radio-button\n name=\"sort-order\"\n value=\"desc\"\n state=\"default\"\n [ngModel]=\"direction()\"\n (ngModelChange)=\"_sortDirectionChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.sortDialogSortOrderDesc' | fdTranslate)() }}</span>\n </li>\n </ul>\n</fieldset>\n\n<fieldset>\n <legend fd-list-group-header>\n <span fd-list-title [attr.id]=\"sortDialogSortByHeaderId\">\n {{ ('platformTable.sortDialogSortByHeader' | fdTranslate)() }}\n </span>\n </legend>\n <ul fd-list [selection]=\"true\" [attr.aria-labelledby]=\"sortDialogSortByHeaderId\">\n @if (allowDisablingSorting()) {\n <li fd-list-item [selected]=\"field() === NOT_SORTED_OPTION_VALUE\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"NOT_SORTED_OPTION_VALUE\"\n state=\"default\"\n [ngModel]=\"field()\"\n (ngModelChange)=\"_sortFieldChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.sortDialogNotSortedLabel' | fdTranslate)() }}</span>\n </li>\n }\n @for (column of columns(); track column) {\n <li fd-list-item [selected]=\"column.key === field()\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"column.key\"\n state=\"default\"\n [ngModel]=\"field()\"\n (ngModelChange)=\"_sortFieldChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ column.label }}</span>\n </li>\n }\n </ul>\n</fieldset>\n", dependencies: [{ kind: "component", type: ListComponent$1, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "directive", type: ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "component", type: RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "readOnly", "selectedValue", "name", "id", "value", "required", "standalone", "wrapLabel", "valignLabel"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3476
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SortingComponent, isStandalone: true, selector: "fdp-sorting", inputs: { sortingData: { classPropertyName: "sortingData", publicName: "sortingData", isSignal: true, isRequired: false, transformFunction: null }, initialSorting: { classPropertyName: "initialSorting", publicName: "initialSorting", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChange: "sortChange", resetAvailabilityChange: "resetAvailabilityChange", validityChange: "validityChange" }, viewQueries: [{ propertyName: "_comboboxes", predicate: ["sortCombobox"], descendants: true, isSignal: true }], ngImport: i0, template: "<fieldset>\n <ul fd-list>\n @for (criteria of sortCriteriaList(); track $index; let rowIndex = $index) {\n @if (rowVisibility()[rowIndex]) {\n <li fd-list-item class=\"fdp-sorting__row\">\n <div class=\"fd-margin-end--sm\">\n <fd-combobox\n #sortCombobox\n [dropdownValues]=\"availableColumnsPerRow()[rowIndex]\"\n [displayFn]=\"displayColumn\"\n [placeholder]=\"('platformTable.sortDialogSortByHeader' | fdTranslate)()\"\n [state]=\"rowStates()[rowIndex]\"\n [ngModel]=\"selectedColumnsPerRow()[rowIndex]\"\n (ngModelChange)=\"_sortFieldChangeForRow(rowIndex, $event)\"\n >\n </fd-combobox>\n </div>\n\n <div class=\"fd-margin-end--sm\">\n <fd-segmented-button\n [name]=\"'sort-order-' + rowIndex\"\n [ngModel]=\"directionsPerRow()[rowIndex]\"\n (ngModelChange)=\"_sortDirectionChangeForRow(rowIndex, $event)\"\n >\n <button\n fd-button\n glyph=\"sort-ascending\"\n [attr.title]=\"('platformTable.sortDialogSortOrderAsc' | fdTranslate)()\"\n value=\"asc\"\n ></button>\n <button\n fd-button\n glyph=\"sort-descending\"\n [attr.title]=\"('platformTable.sortDialogSortOrderDesc' | fdTranslate)()\"\n value=\"desc\"\n ></button>\n </fd-segmented-button>\n </div>\n\n @if (directionsPerRow()[rowIndex] === 'asc') {\n <span fd-list-title>{{ ('platformTable.sortDialogSortOrderAsc' | fdTranslate)() }}</span>\n }\n\n @if (directionsPerRow()[rowIndex] === 'desc') {\n <span fd-list-title>{{ ('platformTable.sortDialogSortOrderDesc' | fdTranslate)() }}</span>\n }\n\n <span fd-list-secondary class=\"fdp-sorting__actions\">\n <button\n fd-button\n glyph=\"slim-arrow-up\"\n [attr.title]=\"('platformTable.sortDialogMoveUp' | fdTranslate)()\"\n [disabled]=\"!canMoveUpPerRow()[rowIndex]\"\n (click)=\"moveUp(rowIndex)\"\n ></button>\n <button\n fd-button\n glyph=\"slim-arrow-down\"\n [attr.title]=\"('platformTable.sortDialogMoveDown' | fdTranslate)()\"\n [disabled]=\"!canMoveDownPerRow()[rowIndex]\"\n (click)=\"moveDown(rowIndex)\"\n ></button>\n <button\n fd-button\n glyph=\"decline\"\n [attr.title]=\"('platformTable.sortDialogDelete' | fdTranslate)()\"\n [disabled]=\"!canDeletePerRow()[rowIndex]\"\n (click)=\"deleteRow(rowIndex)\"\n ></button>\n </span>\n </li>\n }\n }\n </ul>\n</fieldset>\n", styles: [".fd-margin--tiny{margin-block:.5rem;margin-inline:.5rem}.fd-margin--sm{margin-block:1rem;margin-inline:1rem}.fd-margin--md{margin-block:2rem;margin-inline:2rem}.fd-margin--lg{margin-block:3rem;margin-inline:3rem}.fd-margin--none{margin-block:0;margin-inline:0}.fd-margin-top--tiny{-webkit-margin-before:.5rem;margin-block-start:.5rem}.fd-margin-top--sm{-webkit-margin-before:1rem;margin-block-start:1rem}.fd-margin-top--md{-webkit-margin-before:2rem;margin-block-start:2rem}.fd-margin-top--lg{-webkit-margin-before:3rem;margin-block-start:3rem}.fd-margin-top--none{-webkit-margin-before:0;margin-block-start:0}.fd-margin-end--tiny{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-margin-end--sm{-webkit-margin-end:1rem;margin-inline-end:1rem}.fd-margin-end--md{-webkit-margin-end:2rem;margin-inline-end:2rem}.fd-margin-end--lg{-webkit-margin-end:3rem;margin-inline-end:3rem}.fd-margin-end--none{-webkit-margin-end:0;margin-inline-end:0}.fd-margin-bottom--tiny{-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-margin-bottom--sm{-webkit-margin-after:1rem;margin-block-end:1rem}.fd-margin-bottom--md{-webkit-margin-after:2rem;margin-block-end:2rem}.fd-margin-bottom--lg{-webkit-margin-after:3rem;margin-block-end:3rem}.fd-margin-bottom--none{-webkit-margin-after:0;margin-block-end:0}.fd-margin-begin--tiny{-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-margin-begin--sm{-webkit-margin-start:1rem;margin-inline-start:1rem}.fd-margin-begin--md{-webkit-margin-start:2rem;margin-inline-start:2rem}.fd-margin-begin--lg{-webkit-margin-start:3rem;margin-inline-start:3rem}.fd-margin-begin--none{-webkit-margin-start:0;margin-inline-start:0}.fd-margin-top-bottom--tiny{margin-block:.5rem}.fd-margin-top-bottom--sm{margin-block:1rem}.fd-margin-top-bottom--md{margin-block:2rem}.fd-margin-top-bottom--lg{margin-block:3rem}.fd-margin-begin-end--tiny{margin-inline:.5rem}.fd-margin-begin-end--sm{margin-inline:1rem}.fd-margin-begin-end--md{margin-inline:2rem}.fd-margin-begin-end--lg{margin-inline:3rem}.fd-margin-responsive--sm{margin-block:0 1rem;margin-inline:0}.fd-margin-responsive--md{margin-block:1rem;margin-inline:1rem}.fd-margin-responsive--lg{margin-block:1rem;margin-inline:2rem}.fd-margin-responsive--xl{margin-block:1rem;margin-inline:3rem}.fd-margin-negative-begin-end--tiny{margin-block:0;margin-inline:-.5rem}.fd-margin-negative-begin-end--sm{margin-block:0;margin-inline:-1rem}.fd-margin-negative-begin-end--md{margin-block:0;margin-inline:-2rem}.fd-margin-negative-begin-end--lg{margin-block:0;margin-inline:-3rem}.fdp-sorting__actions{visibility:hidden}.fdp-sorting__row:hover .fdp-sorting__actions,.fdp-sorting__row:focus-within .fdp-sorting__actions{visibility:visible}\n/*! Bundled license information:\n\nfundamental-styles/dist/margins.css:\n (*!\n * Fundamental Library Styles v0.41.8\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "component", type: ListComponent$1, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SegmentedButtonComponent, selector: "fd-segmented-button", inputs: ["toggle", "vertical"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "glyphFont", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "dropDownMaxWidthPx", "noDropDownMaxWidth", "width", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "clearButtonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline", "tabOutStrategy", "valueProperty"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2772
3477
  }
2773
3478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SortingComponent, decorators: [{
2774
3479
  type: Component,
@@ -2777,11 +3482,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
2777
3482
  ListGroupHeaderDirective,
2778
3483
  ListTitleDirective,
2779
3484
  ListItemComponent,
3485
+ ListSecondaryDirective,
2780
3486
  RadioButtonComponent,
2781
3487
  FormsModule,
2782
- FdTranslatePipe
2783
- ], template: "<fieldset>\n <legend fd-list-group-header>\n <span fd-list-title [attr.id]=\"sortOrderHeaderId\">\n {{ ('platformTable.sortDialogSortOrderHeader' | fdTranslate)() }}\n </span>\n </legend>\n <ul fd-list [selection]=\"true\" [attr.aria-labelledby]=\"sortOrderHeaderId\">\n <li fd-list-item [selected]=\"direction() === SORT_DIRECTION.ASC\">\n <fd-radio-button\n name=\"sort-order\"\n value=\"asc\"\n state=\"default\"\n [ngModel]=\"direction()\"\n (ngModelChange)=\"_sortDirectionChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.sortDialogSortOrderAsc' | fdTranslate)() }}</span>\n </li>\n <li fd-list-item [selected]=\"direction() === SORT_DIRECTION.DESC\">\n <fd-radio-button\n name=\"sort-order\"\n value=\"desc\"\n state=\"default\"\n [ngModel]=\"direction()\"\n (ngModelChange)=\"_sortDirectionChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.sortDialogSortOrderDesc' | fdTranslate)() }}</span>\n </li>\n </ul>\n</fieldset>\n\n<fieldset>\n <legend fd-list-group-header>\n <span fd-list-title [attr.id]=\"sortDialogSortByHeaderId\">\n {{ ('platformTable.sortDialogSortByHeader' | fdTranslate)() }}\n </span>\n </legend>\n <ul fd-list [selection]=\"true\" [attr.aria-labelledby]=\"sortDialogSortByHeaderId\">\n @if (allowDisablingSorting()) {\n <li fd-list-item [selected]=\"field() === NOT_SORTED_OPTION_VALUE\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"NOT_SORTED_OPTION_VALUE\"\n state=\"default\"\n [ngModel]=\"field()\"\n (ngModelChange)=\"_sortFieldChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ ('platformTable.sortDialogNotSortedLabel' | fdTranslate)() }}</span>\n </li>\n }\n @for (column of columns(); track column) {\n <li fd-list-item [selected]=\"column.key === field()\">\n <fd-radio-button\n name=\"sort-by\"\n [value]=\"column.key\"\n state=\"default\"\n [ngModel]=\"field()\"\n (ngModelChange)=\"_sortFieldChange($event)\"\n ></fd-radio-button>\n <span fd-list-title>{{ column.label }}</span>\n </li>\n }\n </ul>\n</fieldset>\n" }]
2784
- }], propDecorators: { sortingData: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortingData", required: false }] }], initialSorting: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialSorting", required: false }] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], resetAvailabilityChange: [{ type: i0.Output, args: ["resetAvailabilityChange"] }] } });
3488
+ FdTranslatePipe,
3489
+ SegmentedButtonComponent,
3490
+ ButtonComponent,
3491
+ ComboboxComponent,
3492
+ FormGroupComponent
3493
+ ], template: "<fieldset>\n <ul fd-list>\n @for (criteria of sortCriteriaList(); track $index; let rowIndex = $index) {\n @if (rowVisibility()[rowIndex]) {\n <li fd-list-item class=\"fdp-sorting__row\">\n <div class=\"fd-margin-end--sm\">\n <fd-combobox\n #sortCombobox\n [dropdownValues]=\"availableColumnsPerRow()[rowIndex]\"\n [displayFn]=\"displayColumn\"\n [placeholder]=\"('platformTable.sortDialogSortByHeader' | fdTranslate)()\"\n [state]=\"rowStates()[rowIndex]\"\n [ngModel]=\"selectedColumnsPerRow()[rowIndex]\"\n (ngModelChange)=\"_sortFieldChangeForRow(rowIndex, $event)\"\n >\n </fd-combobox>\n </div>\n\n <div class=\"fd-margin-end--sm\">\n <fd-segmented-button\n [name]=\"'sort-order-' + rowIndex\"\n [ngModel]=\"directionsPerRow()[rowIndex]\"\n (ngModelChange)=\"_sortDirectionChangeForRow(rowIndex, $event)\"\n >\n <button\n fd-button\n glyph=\"sort-ascending\"\n [attr.title]=\"('platformTable.sortDialogSortOrderAsc' | fdTranslate)()\"\n value=\"asc\"\n ></button>\n <button\n fd-button\n glyph=\"sort-descending\"\n [attr.title]=\"('platformTable.sortDialogSortOrderDesc' | fdTranslate)()\"\n value=\"desc\"\n ></button>\n </fd-segmented-button>\n </div>\n\n @if (directionsPerRow()[rowIndex] === 'asc') {\n <span fd-list-title>{{ ('platformTable.sortDialogSortOrderAsc' | fdTranslate)() }}</span>\n }\n\n @if (directionsPerRow()[rowIndex] === 'desc') {\n <span fd-list-title>{{ ('platformTable.sortDialogSortOrderDesc' | fdTranslate)() }}</span>\n }\n\n <span fd-list-secondary class=\"fdp-sorting__actions\">\n <button\n fd-button\n glyph=\"slim-arrow-up\"\n [attr.title]=\"('platformTable.sortDialogMoveUp' | fdTranslate)()\"\n [disabled]=\"!canMoveUpPerRow()[rowIndex]\"\n (click)=\"moveUp(rowIndex)\"\n ></button>\n <button\n fd-button\n glyph=\"slim-arrow-down\"\n [attr.title]=\"('platformTable.sortDialogMoveDown' | fdTranslate)()\"\n [disabled]=\"!canMoveDownPerRow()[rowIndex]\"\n (click)=\"moveDown(rowIndex)\"\n ></button>\n <button\n fd-button\n glyph=\"decline\"\n [attr.title]=\"('platformTable.sortDialogDelete' | fdTranslate)()\"\n [disabled]=\"!canDeletePerRow()[rowIndex]\"\n (click)=\"deleteRow(rowIndex)\"\n ></button>\n </span>\n </li>\n }\n }\n </ul>\n</fieldset>\n", styles: [".fd-margin--tiny{margin-block:.5rem;margin-inline:.5rem}.fd-margin--sm{margin-block:1rem;margin-inline:1rem}.fd-margin--md{margin-block:2rem;margin-inline:2rem}.fd-margin--lg{margin-block:3rem;margin-inline:3rem}.fd-margin--none{margin-block:0;margin-inline:0}.fd-margin-top--tiny{-webkit-margin-before:.5rem;margin-block-start:.5rem}.fd-margin-top--sm{-webkit-margin-before:1rem;margin-block-start:1rem}.fd-margin-top--md{-webkit-margin-before:2rem;margin-block-start:2rem}.fd-margin-top--lg{-webkit-margin-before:3rem;margin-block-start:3rem}.fd-margin-top--none{-webkit-margin-before:0;margin-block-start:0}.fd-margin-end--tiny{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-margin-end--sm{-webkit-margin-end:1rem;margin-inline-end:1rem}.fd-margin-end--md{-webkit-margin-end:2rem;margin-inline-end:2rem}.fd-margin-end--lg{-webkit-margin-end:3rem;margin-inline-end:3rem}.fd-margin-end--none{-webkit-margin-end:0;margin-inline-end:0}.fd-margin-bottom--tiny{-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-margin-bottom--sm{-webkit-margin-after:1rem;margin-block-end:1rem}.fd-margin-bottom--md{-webkit-margin-after:2rem;margin-block-end:2rem}.fd-margin-bottom--lg{-webkit-margin-after:3rem;margin-block-end:3rem}.fd-margin-bottom--none{-webkit-margin-after:0;margin-block-end:0}.fd-margin-begin--tiny{-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-margin-begin--sm{-webkit-margin-start:1rem;margin-inline-start:1rem}.fd-margin-begin--md{-webkit-margin-start:2rem;margin-inline-start:2rem}.fd-margin-begin--lg{-webkit-margin-start:3rem;margin-inline-start:3rem}.fd-margin-begin--none{-webkit-margin-start:0;margin-inline-start:0}.fd-margin-top-bottom--tiny{margin-block:.5rem}.fd-margin-top-bottom--sm{margin-block:1rem}.fd-margin-top-bottom--md{margin-block:2rem}.fd-margin-top-bottom--lg{margin-block:3rem}.fd-margin-begin-end--tiny{margin-inline:.5rem}.fd-margin-begin-end--sm{margin-inline:1rem}.fd-margin-begin-end--md{margin-inline:2rem}.fd-margin-begin-end--lg{margin-inline:3rem}.fd-margin-responsive--sm{margin-block:0 1rem;margin-inline:0}.fd-margin-responsive--md{margin-block:1rem;margin-inline:1rem}.fd-margin-responsive--lg{margin-block:1rem;margin-inline:2rem}.fd-margin-responsive--xl{margin-block:1rem;margin-inline:3rem}.fd-margin-negative-begin-end--tiny{margin-block:0;margin-inline:-.5rem}.fd-margin-negative-begin-end--sm{margin-block:0;margin-inline:-1rem}.fd-margin-negative-begin-end--md{margin-block:0;margin-inline:-2rem}.fd-margin-negative-begin-end--lg{margin-block:0;margin-inline:-3rem}.fdp-sorting__actions{visibility:hidden}.fdp-sorting__row:hover .fdp-sorting__actions,.fdp-sorting__row:focus-within .fdp-sorting__actions{visibility:visible}\n/*! Bundled license information:\n\nfundamental-styles/dist/margins.css:\n (*!\n * Fundamental Library Styles v0.41.8\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
3494
+ }], ctorParameters: () => [], propDecorators: { sortingData: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortingData", required: false }] }], initialSorting: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialSorting", required: false }] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], resetAvailabilityChange: [{ type: i0.Output, args: ["resetAvailabilityChange"] }], validityChange: [{ type: i0.Output, args: ["validityChange"] }], _comboboxes: [{ type: i0.ViewChildren, args: ['sortCombobox', { isSignal: true }] }] } });
2785
3495
 
2786
3496
  const INITIAL_SEARCH_TEXT = '';
2787
3497
  const INITIAL_SHOW_ALL_ITEMS = true;
@@ -3015,6 +3725,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
3015
3725
  }], propDecorators: { columnsData: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnsData", required: false }] }], initialColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialColumns", required: false }] }], columnsChange: [{ type: i0.Output, args: ["columnsChange"] }], resetAvailabilityChange: [{ type: i0.Output, args: ["resetAvailabilityChange"] }] } });
3016
3726
 
3017
3727
  class SettingsDialogComponent {
3728
+ /** @hidden Computed filter data for include/exclude filters component */
3729
+ get includeExcludeFiltersComponentData() {
3730
+ const data = this.includeExcludeFiltersData();
3731
+ return data
3732
+ ? {
3733
+ columns: data.columns,
3734
+ collectionFilter: data.filterBy,
3735
+ validator: data.validator
3736
+ }
3737
+ : undefined;
3738
+ }
3018
3739
  /**
3019
3740
  * Constructor that initializes dialog data and sets initial values for sorting, filtering, grouping, and columns.
3020
3741
  */
@@ -3027,6 +3748,9 @@ class SettingsDialogComponent {
3027
3748
  /** Data for filtering */
3028
3749
  this.filteringData = signal(null, /* @ts-ignore */
3029
3750
  ...(ngDevMode ? [{ debugName: "filteringData" }] : /* istanbul ignore next */ []));
3751
+ /** Data for include/exclude filters */
3752
+ this.includeExcludeFiltersData = signal(null, /* @ts-ignore */
3753
+ ...(ngDevMode ? [{ debugName: "includeExcludeFiltersData" }] : /* istanbul ignore next */ []));
3030
3754
  /** Data for grouping */
3031
3755
  this.groupingData = signal(null, /* @ts-ignore */
3032
3756
  ...(ngDevMode ? [{ debugName: "groupingData" }] : /* istanbul ignore next */ []));
@@ -3045,6 +3769,12 @@ class SettingsDialogComponent {
3045
3769
  /** Signal to track reset availability */
3046
3770
  this.isResetAvailable$ = signal(false, /* @ts-ignore */
3047
3771
  ...(ngDevMode ? [{ debugName: "isResetAvailable$" }] : /* istanbul ignore next */ []));
3772
+ /** Signal to track if the dialog is valid (OK button can be clicked) */
3773
+ this.isDialogValid = signal(true, /* @ts-ignore */
3774
+ ...(ngDevMode ? [{ debugName: "isDialogValid" }] : /* istanbul ignore next */ []));
3775
+ /** Input for custom reset announcement message. If not provided, uses the translated default from i18n */
3776
+ this.resetAnnouncementMessage = input(null, /* @ts-ignore */
3777
+ ...(ngDevMode ? [{ debugName: "resetAnnouncementMessage" }] : /* istanbul ignore next */ []));
3048
3778
  /** @hidden Initial sorting configuration */
3049
3779
  this._initialSorting = signal(null, /* @ts-ignore */
3050
3780
  ...(ngDevMode ? [{ debugName: "_initialSorting" }] : /* istanbul ignore next */ []));
@@ -3066,9 +3796,16 @@ class SettingsDialogComponent {
3066
3796
  /** @hidden Tracks reset availability per tab */
3067
3797
  this._resetAvailabilityByTab = signal({}, /* @ts-ignore */
3068
3798
  ...(ngDevMode ? [{ debugName: "_resetAvailabilityByTab" }] : /* istanbul ignore next */ []));
3799
+ /** @hidden Live announcer for screen reader announcements */
3800
+ this._liveAnnouncer = inject(LiveAnnouncer);
3801
+ /** @hidden Language signal for getting current language */
3802
+ this._langSignal = inject(FD_LANGUAGE_SIGNAL);
3803
+ /** @hidden Translation resolver for getting translations synchronously */
3804
+ this._translationResolver = inject(TranslationResolver);
3069
3805
  const data = this.dialogRef.data;
3070
3806
  this.sortingData.set(data.sortingData);
3071
3807
  this.filteringData.set(data.filteringData);
3808
+ this.includeExcludeFiltersData.set(data.includeExcludeFiltersData);
3072
3809
  this.groupingData.set(data.groupingData);
3073
3810
  this.showColumns = data.allowColumnConfiguration;
3074
3811
  if (this.showColumns) {
@@ -3086,12 +3823,24 @@ class SettingsDialogComponent {
3086
3823
  * Confirm the dialog action and close the dialog, returning updated settings data.
3087
3824
  */
3088
3825
  confirm() {
3826
+ // Validate include-exclude filters if present
3827
+ const includeExcludeData = this.includeExcludeFiltersData();
3828
+ if (includeExcludeData?.validator && includeExcludeData.filterBy.length > 0) {
3829
+ if (!includeExcludeData.validator(includeExcludeData.filterBy)) {
3830
+ // Validator returned false - don't close dialog
3831
+ return;
3832
+ }
3833
+ }
3089
3834
  const columnsData = this._pendingColumnsChanges
3090
3835
  ? { columns: this._pendingColumnsChanges.columns }
3091
3836
  : this.columnsData();
3837
+ // Build sorting result directly from sortingData signal
3838
+ const sortingData = this.sortingData();
3839
+ const sortingResult = sortingData ? { sortBy: sortingData.sortBy ?? [] } : null;
3092
3840
  this.dialogRef.close({
3093
- sortingData: this.sortingData(),
3841
+ sortingData: sortingResult,
3094
3842
  filteringData: this.filteringData(),
3843
+ includeExcludeFiltersData: this.includeExcludeFiltersData(),
3095
3844
  groupingData: this.groupingData(),
3096
3845
  columnsData
3097
3846
  });
@@ -3107,10 +3856,16 @@ class SettingsDialogComponent {
3107
3856
  */
3108
3857
  reset() {
3109
3858
  if (this.activeTab() === ActiveTab.SORT && this.sortingData()) {
3859
+ const current = this.sortingData();
3860
+ const initial = this._initialSorting();
3861
+ // Reset sortBy to initial sorting (if any)
3862
+ const initialSortBy = initial.field !== NOT_SORTED_OPTION_VALUE
3863
+ ? [{ field: initial.field, direction: initial.direction }]
3864
+ : [];
3110
3865
  this.sortingData.set({
3111
- ...this.sortingData(),
3112
- field: this._initialSorting().field,
3113
- direction: this._initialSorting().direction
3866
+ columns: current.columns,
3867
+ allowDisablingSorting: current.allowDisablingSorting,
3868
+ sortBy: initialSortBy
3114
3869
  });
3115
3870
  }
3116
3871
  if (this.activeTab() === ActiveTab.FILTER && this.filteringData()) {
@@ -3119,6 +3874,12 @@ class SettingsDialogComponent {
3119
3874
  filterBy: this._initialFilters()
3120
3875
  });
3121
3876
  }
3877
+ if (this.activeTab() === ActiveTab.FILTER && this.includeExcludeFiltersData()) {
3878
+ this.includeExcludeFiltersData.set({
3879
+ ...this.includeExcludeFiltersData(),
3880
+ filterBy: this._initialFilters()
3881
+ });
3882
+ }
3122
3883
  if (this.activeTab() === ActiveTab.GROUP && this.groupingData()) {
3123
3884
  this.groupingData.set({
3124
3885
  ...this.groupingData(),
@@ -3138,18 +3899,27 @@ class SettingsDialogComponent {
3138
3899
  this._pendingColumnsChanges = initialColumns;
3139
3900
  }
3140
3901
  this.updateResetAvailability(this.activeTab(), false);
3902
+ // Announce reset to screen readers
3903
+ this._announceReset();
3141
3904
  }
3142
3905
  /**
3143
3906
  * Handle sort change event and update sorting data.
3144
3907
  * @param event Updated sorting data.
3145
3908
  */
3146
3909
  onSortChange(event) {
3910
+ // Update sortingData with new sortBy
3147
3911
  this.sortingData.set({
3148
3912
  ...this.sortingData(),
3149
- field: event.field,
3150
- direction: event.direction
3913
+ sortBy: event.sortBy ?? []
3151
3914
  });
3152
3915
  }
3916
+ /**
3917
+ * Handle sort validity change event.
3918
+ * @param isValid Whether the sorting configuration is valid.
3919
+ */
3920
+ onSortValidityChange(isValid) {
3921
+ this.isDialogValid.set(isValid);
3922
+ }
3153
3923
  /**
3154
3924
  * Handle filter change event and update filtering data.
3155
3925
  * @param event Updated filtering data.
@@ -3160,6 +3930,16 @@ class SettingsDialogComponent {
3160
3930
  filterBy: event.filterBy
3161
3931
  });
3162
3932
  }
3933
+ /**
3934
+ * Handle include/exclude filter change event and update filtering data.
3935
+ * @param event Updated include/exclude filtering data.
3936
+ */
3937
+ onIncludeExcludeFilterChange(event) {
3938
+ this.includeExcludeFiltersData.set({
3939
+ ...this.includeExcludeFiltersData(),
3940
+ filterBy: event.filterBy
3941
+ });
3942
+ }
3163
3943
  /**
3164
3944
  * Handle group change event and update grouping data.
3165
3945
  * @param event Updated grouping data.
@@ -3192,7 +3972,7 @@ class SettingsDialogComponent {
3192
3972
  */
3193
3973
  onTabSelected(event) {
3194
3974
  // Map tab index to ActiveTab enum based on which tabs are rendered
3195
- // The order is: columns (if showColumns), sort, filter, group
3975
+ // The order is: columns (if showColumns), sort, filter (regular or include/exclude), group
3196
3976
  const tabOrder = [];
3197
3977
  if (this.columnsData() && this.showColumns) {
3198
3978
  tabOrder.push(ActiveTab.COLUMNS);
@@ -3200,7 +3980,7 @@ class SettingsDialogComponent {
3200
3980
  if (this.sortingData()) {
3201
3981
  tabOrder.push(ActiveTab.SORT);
3202
3982
  }
3203
- if (this.filteringData()) {
3983
+ if (this.filteringData() || this.includeExcludeFiltersData()) {
3204
3984
  tabOrder.push(ActiveTab.FILTER);
3205
3985
  }
3206
3986
  if (this.groupingData()) {
@@ -3247,7 +4027,7 @@ class SettingsDialogComponent {
3247
4027
  else if (this.sortingData()) {
3248
4028
  return ActiveTab.SORT;
3249
4029
  }
3250
- else if (this.filteringData()) {
4030
+ else if (this.filteringData() || this.includeExcludeFiltersData()) {
3251
4031
  return ActiveTab.FILTER;
3252
4032
  }
3253
4033
  else if (this.groupingData()) {
@@ -3261,17 +4041,19 @@ class SettingsDialogComponent {
3261
4041
  _shouldRenderSubheader() {
3262
4042
  const validDataCount = [
3263
4043
  this.sortingData(),
3264
- this.filteringData(),
4044
+ !!(this.filteringData() || this.includeExcludeFiltersData()),
3265
4045
  this.groupingData(),
3266
4046
  this.columnsData()
3267
- ].filter((data) => data !== null).length;
4047
+ ].filter((data) => data !== null && data !== false).length;
3268
4048
  this.showSubheader.set(validDataCount >= 2);
3269
4049
  }
3270
4050
  /**
3271
4051
  * Set initial sorting configuration from the table's state.
3272
4052
  */
3273
4053
  _setInitialSorting() {
3274
- const initialSorting = (this._table.initialState?.initialSortBy || [])[0];
4054
+ // Use snapshot which preserves the original initial state
4055
+ // even if initialSortBy input is dynamically updated
4056
+ const initialSorting = (this._table.initialState?.getInitialSortBySnapshot() || [])[0];
3275
4057
  this._initialSorting.set({
3276
4058
  field: initialSorting?.field ?? NOT_SORTED_OPTION_VALUE,
3277
4059
  direction: initialSorting?.direction ?? INITIAL_DIRECTION
@@ -3281,13 +4063,15 @@ class SettingsDialogComponent {
3281
4063
  * Set initial filter configuration from the table's state.
3282
4064
  */
3283
4065
  _setInitialFilters() {
3284
- this._initialFilters.set(this._table.initialState?.initialFilterBy ?? []);
4066
+ // Use snapshot which preserves the original initial state
4067
+ this._initialFilters.set(this._table.initialState?.getInitialFilterBySnapshot() ?? []);
3285
4068
  }
3286
4069
  /**
3287
4070
  * Set initial grouping configuration from the table's state.
3288
4071
  */
3289
4072
  _setInitialGrouping() {
3290
- const initialGrouping = (this._table.initialState?.initialGroupBy || [])[0];
4073
+ // Use snapshot which preserves the original initial state
4074
+ const initialGrouping = (this._table.initialState?.getInitialGroupBySnapshot() || [])[0];
3291
4075
  this._initialGrouping.set({
3292
4076
  field: initialGrouping?.field ?? NOT_GROUPED_OPTION_VALUE,
3293
4077
  direction: initialGrouping?.direction ?? INITIAL_DIRECTION
@@ -3313,8 +4097,23 @@ class SettingsDialogComponent {
3313
4097
  columns: initialColumnsArray
3314
4098
  });
3315
4099
  }
4100
+ /**
4101
+ * Announce the reset action to screen readers.
4102
+ * @hidden
4103
+ */
4104
+ _announceReset() {
4105
+ // Get the announcement message: use custom input if provided, otherwise use translation
4106
+ let message = this.resetAnnouncementMessage();
4107
+ if (!message) {
4108
+ // Resolve the translation key synchronously
4109
+ message = this._translationResolver.resolve(this._langSignal(), 'platformTable.resetConfirmationAnnouncement');
4110
+ }
4111
+ // Announce the message to screen readers using LiveAnnouncer
4112
+ // 'polite' priority ensures it doesn't interrupt other announcements
4113
+ this._liveAnnouncer.announce(message, 'polite');
4114
+ }
3316
4115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SettingsDialogComponent, deps: [{ token: i1$1.DialogRef }, { token: i1.Table }], target: i0.ɵɵFactoryTarget.Component }); }
3317
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SettingsDialogComponent, isStandalone: true, selector: "fdp-settings-dialog-settings", providers: [{ provide: RESETTABLE_TOKEN, useExisting: forwardRef(() => SettingsDialogComponent) }], ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n @if (activeTab() !== 'filter') {\n <fd-bar-element>\n <span role=\"heading\" [attr.aria-level]=\"headingLevel\" fd-title [headerSize]=\"4\">{{\n ('platformTable.settingsDialogHeader' | fdTranslate)()\n }}</span>\n </fd-bar-element>\n } @else {\n <fd-bar-element>\n @if (activeFilterStepView()?.titleTemplateRef) {\n <ng-container\n [ngTemplateOutlet]=\"activeFilterStepView()?.titleTemplateRef ?? null\"\n ></ng-container>\n }\n </fd-bar-element>\n }\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body disablePaddings>\n @if (showSubheader()) {\n <fdp-icon-tab-bar layoutMode=\"row\" iconTabSize=\"sm\" (iconTabSelected)=\"onTabSelected($event)\">\n @if (columnsData() && showColumns) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\">\n <fdp-columns\n [columnsData]=\"columnsData()!\"\n [initialColumns]=\"_initialColumns()\"\n (columnsChange)=\"onColumnsChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.COLUMNS, $event)\"\n ></fdp-columns>\n </fdp-icon-tab-bar-tab>\n }\n @if (sortingData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\">\n <fdp-sorting\n [sortingData]=\"sortingData()!\"\n [initialSorting]=\"_initialSorting()\"\n (sortChange)=\"onSortChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.SORT, $event)\"\n ></fdp-sorting>\n </fdp-icon-tab-bar-tab>\n }\n @if (filteringData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\">\n <fdp-filters\n [headingLevel]=\"headingLevel\"\n [filteringData]=\"filteringData()!\"\n [initialFilters]=\"_initialFilters()\"\n (activeFilterStepViewChange)=\"onActiveFilterStepViewChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-filters>\n </fdp-icon-tab-bar-tab>\n }\n @if (groupingData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\">\n <fdp-grouping\n [groupingData]=\"groupingData()!\"\n [initialGrouping]=\"_initialGrouping()\"\n (groupChange)=\"onGroupChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.GROUP, $event)\"\n ></fdp-grouping>\n </fdp-icon-tab-bar-tab>\n }\n </fdp-icon-tab-bar>\n } @else {\n @if (columnsData() && showColumns) {\n <fdp-columns\n [columnsData]=\"columnsData()!\"\n [initialColumns]=\"_initialColumns()\"\n (columnsChange)=\"onColumnsChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.COLUMNS, $event)\"\n ></fdp-columns>\n }\n @if (sortingData()) {\n <fdp-sorting\n [sortingData]=\"sortingData()!\"\n [initialSorting]=\"_initialSorting()\"\n (sortChange)=\"onSortChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.SORT, $event)\"\n ></fdp-sorting>\n }\n @if (filteringData()) {\n <fdp-filters\n [headingLevel]=\"headingLevel\"\n [filteringData]=\"filteringData()!\"\n [initialFilters]=\"_initialFilters()\"\n (activeFilterStepViewChange)=\"onActiveFilterStepViewChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-filters>\n }\n @if (groupingData()) {\n <fdp-grouping\n [groupingData]=\"groupingData()!\"\n [initialGrouping]=\"_initialGrouping()\"\n (groupChange)=\"onGroupChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.GROUP, $event)\"\n ></fdp-grouping>\n }\n }\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"('platformTable.confirmBtnLabel' | fdTranslate)()\"\n (click)=\"confirm()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"('platformTable.cancelBtnLabel' | fdTranslate)()\"\n fdkInitialFocus\n (click)=\"cancel()\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header", inputs: ["inShellbar"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]", inputs: ["stackContentsVertically"] }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]", inputs: ["stackContentsVertically"] }, { kind: "component", type: ResetButtonComponent, selector: "fdp-table-reset-button" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: SortingComponent, selector: "fdp-sorting", inputs: ["sortingData", "initialSorting"], outputs: ["sortChange", "resetAvailabilityChange"] }, { kind: "component", type: FiltersComponent, selector: "fdp-filters", inputs: ["filteringData", "headingLevel", "initialFilters"], outputs: ["activeFilterStepViewChange", "filterChange", "resetAvailabilityChange"] }, { kind: "component", type: GroupingComponent, selector: "fdp-grouping", inputs: ["groupingData", "initialGrouping"], outputs: ["groupChange", "resetAvailabilityChange"] }, { kind: "component", type: ColumnsComponent, selector: "fdp-columns", inputs: ["columnsData", "initialColumns"], outputs: ["columnsChange", "resetAvailabilityChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "directive", type: InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "component", type: IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "tabHeadingLevel", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "settings", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SettingsDialogComponent, isStandalone: true, selector: "fdp-settings-dialog-settings", inputs: { resetAnnouncementMessage: { classPropertyName: "resetAnnouncementMessage", publicName: "resetAnnouncementMessage", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: RESETTABLE_TOKEN, useExisting: forwardRef(() => SettingsDialogComponent) }], ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n @if (activeTab() !== 'filter') {\n <fd-bar-element>\n <span role=\"heading\" [attr.aria-level]=\"headingLevel\" fd-title [headerSize]=\"4\">{{\n ('platformTable.settingsDialogHeader' | fdTranslate)()\n }}</span>\n </fd-bar-element>\n } @else {\n <fd-bar-element>\n @if (activeFilterStepView()?.titleTemplateRef) {\n <ng-container\n [ngTemplateOutlet]=\"activeFilterStepView()?.titleTemplateRef ?? null\"\n ></ng-container>\n }\n </fd-bar-element>\n }\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body disablePaddings>\n @if (showSubheader()) {\n <fdp-icon-tab-bar layoutMode=\"row\" iconTabSize=\"sm\" (iconTabSelected)=\"onTabSelected($event)\">\n @if (columnsData() && showColumns) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\">\n <fdp-columns\n [columnsData]=\"columnsData()!\"\n [initialColumns]=\"_initialColumns()\"\n (columnsChange)=\"onColumnsChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.COLUMNS, $event)\"\n ></fdp-columns>\n </fdp-icon-tab-bar-tab>\n }\n @if (sortingData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\">\n <fdp-sorting\n [sortingData]=\"sortingData()!\"\n [initialSorting]=\"_initialSorting()\"\n (sortChange)=\"onSortChange($event)\"\n (validityChange)=\"onSortValidityChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.SORT, $event)\"\n ></fdp-sorting>\n </fdp-icon-tab-bar-tab>\n }\n @if (filteringData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\">\n <fdp-filters\n [headingLevel]=\"headingLevel\"\n [filteringData]=\"filteringData()!\"\n [initialFilters]=\"_initialFilters()\"\n (activeFilterStepViewChange)=\"onActiveFilterStepViewChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-filters>\n </fdp-icon-tab-bar-tab>\n }\n @if (includeExcludeFiltersData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\">\n <fdp-table-include-exclude-filters\n [filterData]=\"includeExcludeFiltersComponentData\"\n (filterChange)=\"onIncludeExcludeFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-table-include-exclude-filters>\n </fdp-icon-tab-bar-tab>\n }\n @if (groupingData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\">\n <fdp-grouping\n [groupingData]=\"groupingData()!\"\n [initialGrouping]=\"_initialGrouping()\"\n (groupChange)=\"onGroupChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.GROUP, $event)\"\n ></fdp-grouping>\n </fdp-icon-tab-bar-tab>\n }\n </fdp-icon-tab-bar>\n } @else {\n @if (columnsData() && showColumns) {\n <fdp-columns\n [columnsData]=\"columnsData()!\"\n [initialColumns]=\"_initialColumns()\"\n (columnsChange)=\"onColumnsChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.COLUMNS, $event)\"\n ></fdp-columns>\n }\n @if (sortingData()) {\n <fdp-sorting\n [sortingData]=\"sortingData()!\"\n [initialSorting]=\"_initialSorting()\"\n (sortChange)=\"onSortChange($event)\"\n (validityChange)=\"onSortValidityChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.SORT, $event)\"\n ></fdp-sorting>\n }\n @if (filteringData()) {\n <fdp-filters\n [headingLevel]=\"headingLevel\"\n [filteringData]=\"filteringData()!\"\n [initialFilters]=\"_initialFilters()\"\n (activeFilterStepViewChange)=\"onActiveFilterStepViewChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-filters>\n }\n @if (includeExcludeFiltersData()) {\n <fdp-table-include-exclude-filters\n [filterData]=\"includeExcludeFiltersComponentData\"\n (filterChange)=\"onIncludeExcludeFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-table-include-exclude-filters>\n }\n @if (groupingData()) {\n <fdp-grouping\n [groupingData]=\"groupingData()!\"\n [initialGrouping]=\"_initialGrouping()\"\n (groupChange)=\"onGroupChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.GROUP, $event)\"\n ></fdp-grouping>\n }\n }\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"('platformTable.confirmBtnLabel' | fdTranslate)()\"\n [disabled]=\"!isDialogValid()\"\n (click)=\"confirm()\"\n ></fd-button-bar>\n <fd-button-bar [label]=\"('platformTable.cancelBtnLabel' | fdTranslate)()\" (click)=\"cancel()\"></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header", inputs: ["inShellbar"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]", inputs: ["stackContentsVertically"] }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]", inputs: ["stackContentsVertically"] }, { kind: "component", type: ResetButtonComponent, selector: "fdp-table-reset-button" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: SortingComponent, selector: "fdp-sorting", inputs: ["sortingData", "initialSorting"], outputs: ["sortChange", "resetAvailabilityChange", "validityChange"] }, { kind: "component", type: FiltersComponent, selector: "fdp-filters", inputs: ["filteringData", "headingLevel", "initialFilters"], outputs: ["activeFilterStepViewChange", "filterChange", "resetAvailabilityChange"] }, { kind: "component", type: GroupingComponent, selector: "fdp-grouping", inputs: ["groupingData", "initialGrouping"], outputs: ["groupChange", "resetAvailabilityChange"] }, { kind: "component", type: ColumnsComponent, selector: "fdp-columns", inputs: ["columnsData", "initialColumns"], outputs: ["columnsChange", "resetAvailabilityChange"] }, { kind: "component", type: IncludeExcludeFiltersComponent, selector: "fdp-table-include-exclude-filters", inputs: ["filterData", "validator"], outputs: ["filterChange", "resetAvailabilityChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "tabHeadingLevel", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "settings", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3318
4117
  }
3319
4118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SettingsDialogComponent, decorators: [{
3320
4119
  type: Component,
@@ -3333,20 +4132,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
3333
4132
  FiltersComponent,
3334
4133
  GroupingComponent,
3335
4134
  ColumnsComponent,
4135
+ IncludeExcludeFiltersComponent,
3336
4136
  NgTemplateOutlet,
3337
4137
  TemplateDirective,
3338
4138
  TitleComponent,
3339
4139
  ButtonBarComponent,
3340
- InitialFocusDirective,
3341
4140
  IconTabBarComponent,
3342
4141
  IconTabBarTabComponent
3343
- ], template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n @if (activeTab() !== 'filter') {\n <fd-bar-element>\n <span role=\"heading\" [attr.aria-level]=\"headingLevel\" fd-title [headerSize]=\"4\">{{\n ('platformTable.settingsDialogHeader' | fdTranslate)()\n }}</span>\n </fd-bar-element>\n } @else {\n <fd-bar-element>\n @if (activeFilterStepView()?.titleTemplateRef) {\n <ng-container\n [ngTemplateOutlet]=\"activeFilterStepView()?.titleTemplateRef ?? null\"\n ></ng-container>\n }\n </fd-bar-element>\n }\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body disablePaddings>\n @if (showSubheader()) {\n <fdp-icon-tab-bar layoutMode=\"row\" iconTabSize=\"sm\" (iconTabSelected)=\"onTabSelected($event)\">\n @if (columnsData() && showColumns) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\">\n <fdp-columns\n [columnsData]=\"columnsData()!\"\n [initialColumns]=\"_initialColumns()\"\n (columnsChange)=\"onColumnsChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.COLUMNS, $event)\"\n ></fdp-columns>\n </fdp-icon-tab-bar-tab>\n }\n @if (sortingData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\">\n <fdp-sorting\n [sortingData]=\"sortingData()!\"\n [initialSorting]=\"_initialSorting()\"\n (sortChange)=\"onSortChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.SORT, $event)\"\n ></fdp-sorting>\n </fdp-icon-tab-bar-tab>\n }\n @if (filteringData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\">\n <fdp-filters\n [headingLevel]=\"headingLevel\"\n [filteringData]=\"filteringData()!\"\n [initialFilters]=\"_initialFilters()\"\n (activeFilterStepViewChange)=\"onActiveFilterStepViewChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-filters>\n </fdp-icon-tab-bar-tab>\n }\n @if (groupingData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\">\n <fdp-grouping\n [groupingData]=\"groupingData()!\"\n [initialGrouping]=\"_initialGrouping()\"\n (groupChange)=\"onGroupChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.GROUP, $event)\"\n ></fdp-grouping>\n </fdp-icon-tab-bar-tab>\n }\n </fdp-icon-tab-bar>\n } @else {\n @if (columnsData() && showColumns) {\n <fdp-columns\n [columnsData]=\"columnsData()!\"\n [initialColumns]=\"_initialColumns()\"\n (columnsChange)=\"onColumnsChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.COLUMNS, $event)\"\n ></fdp-columns>\n }\n @if (sortingData()) {\n <fdp-sorting\n [sortingData]=\"sortingData()!\"\n [initialSorting]=\"_initialSorting()\"\n (sortChange)=\"onSortChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.SORT, $event)\"\n ></fdp-sorting>\n }\n @if (filteringData()) {\n <fdp-filters\n [headingLevel]=\"headingLevel\"\n [filteringData]=\"filteringData()!\"\n [initialFilters]=\"_initialFilters()\"\n (activeFilterStepViewChange)=\"onActiveFilterStepViewChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-filters>\n }\n @if (groupingData()) {\n <fdp-grouping\n [groupingData]=\"groupingData()!\"\n [initialGrouping]=\"_initialGrouping()\"\n (groupChange)=\"onGroupChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.GROUP, $event)\"\n ></fdp-grouping>\n }\n }\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"('platformTable.confirmBtnLabel' | fdTranslate)()\"\n (click)=\"confirm()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"('platformTable.cancelBtnLabel' | fdTranslate)()\"\n fdkInitialFocus\n (click)=\"cancel()\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
3344
- }], ctorParameters: () => [{ type: i1$1.DialogRef }, { type: i1.Table }] });
4142
+ ], template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n @if (activeTab() !== 'filter') {\n <fd-bar-element>\n <span role=\"heading\" [attr.aria-level]=\"headingLevel\" fd-title [headerSize]=\"4\">{{\n ('platformTable.settingsDialogHeader' | fdTranslate)()\n }}</span>\n </fd-bar-element>\n } @else {\n <fd-bar-element>\n @if (activeFilterStepView()?.titleTemplateRef) {\n <ng-container\n [ngTemplateOutlet]=\"activeFilterStepView()?.titleTemplateRef ?? null\"\n ></ng-container>\n }\n </fd-bar-element>\n }\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body disablePaddings>\n @if (showSubheader()) {\n <fdp-icon-tab-bar layoutMode=\"row\" iconTabSize=\"sm\" (iconTabSelected)=\"onTabSelected($event)\">\n @if (columnsData() && showColumns) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\">\n <fdp-columns\n [columnsData]=\"columnsData()!\"\n [initialColumns]=\"_initialColumns()\"\n (columnsChange)=\"onColumnsChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.COLUMNS, $event)\"\n ></fdp-columns>\n </fdp-icon-tab-bar-tab>\n }\n @if (sortingData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\">\n <fdp-sorting\n [sortingData]=\"sortingData()!\"\n [initialSorting]=\"_initialSorting()\"\n (sortChange)=\"onSortChange($event)\"\n (validityChange)=\"onSortValidityChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.SORT, $event)\"\n ></fdp-sorting>\n </fdp-icon-tab-bar-tab>\n }\n @if (filteringData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\">\n <fdp-filters\n [headingLevel]=\"headingLevel\"\n [filteringData]=\"filteringData()!\"\n [initialFilters]=\"_initialFilters()\"\n (activeFilterStepViewChange)=\"onActiveFilterStepViewChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-filters>\n </fdp-icon-tab-bar-tab>\n }\n @if (includeExcludeFiltersData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\">\n <fdp-table-include-exclude-filters\n [filterData]=\"includeExcludeFiltersComponentData\"\n (filterChange)=\"onIncludeExcludeFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-table-include-exclude-filters>\n </fdp-icon-tab-bar-tab>\n }\n @if (groupingData()) {\n <fdp-icon-tab-bar-tab [label]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\">\n <fdp-grouping\n [groupingData]=\"groupingData()!\"\n [initialGrouping]=\"_initialGrouping()\"\n (groupChange)=\"onGroupChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.GROUP, $event)\"\n ></fdp-grouping>\n </fdp-icon-tab-bar-tab>\n }\n </fdp-icon-tab-bar>\n } @else {\n @if (columnsData() && showColumns) {\n <fdp-columns\n [columnsData]=\"columnsData()!\"\n [initialColumns]=\"_initialColumns()\"\n (columnsChange)=\"onColumnsChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.COLUMNS, $event)\"\n ></fdp-columns>\n }\n @if (sortingData()) {\n <fdp-sorting\n [sortingData]=\"sortingData()!\"\n [initialSorting]=\"_initialSorting()\"\n (sortChange)=\"onSortChange($event)\"\n (validityChange)=\"onSortValidityChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.SORT, $event)\"\n ></fdp-sorting>\n }\n @if (filteringData()) {\n <fdp-filters\n [headingLevel]=\"headingLevel\"\n [filteringData]=\"filteringData()!\"\n [initialFilters]=\"_initialFilters()\"\n (activeFilterStepViewChange)=\"onActiveFilterStepViewChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-filters>\n }\n @if (includeExcludeFiltersData()) {\n <fdp-table-include-exclude-filters\n [filterData]=\"includeExcludeFiltersComponentData\"\n (filterChange)=\"onIncludeExcludeFilterChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.FILTER, $event)\"\n ></fdp-table-include-exclude-filters>\n }\n @if (groupingData()) {\n <fdp-grouping\n [groupingData]=\"groupingData()!\"\n [initialGrouping]=\"_initialGrouping()\"\n (groupChange)=\"onGroupChange($event)\"\n (resetAvailabilityChange)=\"updateResetAvailability(ActiveTab.GROUP, $event)\"\n ></fdp-grouping>\n }\n }\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"('platformTable.confirmBtnLabel' | fdTranslate)()\"\n [disabled]=\"!isDialogValid()\"\n (click)=\"confirm()\"\n ></fd-button-bar>\n <fd-button-bar [label]=\"('platformTable.cancelBtnLabel' | fdTranslate)()\" (click)=\"cancel()\"></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
4143
+ }], ctorParameters: () => [{ type: i1$1.DialogRef }, { type: i1.Table }], propDecorators: { resetAnnouncementMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "resetAnnouncementMessage", required: false }] }] } });
3345
4144
 
3346
4145
  const dialogConfig = {
3347
4146
  responsivePadding: false,
3348
4147
  verticalPadding: false,
3349
- width: 'auto'
4148
+ width: '40rem',
4149
+ height: '80%'
3350
4150
  };
3351
4151
  /**
3352
4152
  * View settings dialog component.
@@ -3397,15 +4197,31 @@ class TableViewSettingsDialogComponent {
3397
4197
  const columns = this._getTableColumns();
3398
4198
  const sortData = {
3399
4199
  columns: columns.filter(({ sortable }) => sortable),
3400
- direction: state.sortBy?.[0]?.direction,
3401
- field: state.sortBy?.[0]?.field,
3402
- allowDisablingSorting: this.allowDisablingSorting
4200
+ allowDisablingSorting: this.allowDisablingSorting,
4201
+ // Filter out any criteria with null fields
4202
+ sortBy: (state.sortBy ?? []).filter((s) => s.field !== null)
3403
4203
  };
3404
4204
  const filterData = {
3405
4205
  columns,
3406
4206
  viewSettingsFilters: this.filters.toArray(),
3407
4207
  filterBy: state?.filterBy
3408
4208
  };
4209
+ // Build include/exclude filters data if component is present
4210
+ const includeExcludeFiltersData = this.includeExcludeFilters
4211
+ ? {
4212
+ columns: columns
4213
+ .filter((col) => col.filterable)
4214
+ .map((col) => ({
4215
+ label: col.label,
4216
+ key: col.key,
4217
+ dataType: col.dataType,
4218
+ filterable: col.filterable,
4219
+ filterSelectOptions: col.filterSelectOptions
4220
+ })),
4221
+ filterBy: state?.filterBy ?? [],
4222
+ validator: this.includeExcludeFilters.validator()
4223
+ }
4224
+ : null;
3409
4225
  const groupData = {
3410
4226
  columns: columns.filter(({ groupable }) => groupable),
3411
4227
  direction: state.groupBy?.[0]?.direction,
@@ -3471,6 +4287,7 @@ class TableViewSettingsDialogComponent {
3471
4287
  data: {
3472
4288
  sortingData: sortData.columns.length > 0 ? sortData : null,
3473
4289
  filteringData: filterData.viewSettingsFilters.length > 0 ? filterData : null,
4290
+ includeExcludeFiltersData,
3474
4291
  groupingData: groupData.columns.length > 0 ? groupData : null,
3475
4292
  columnsData: currentColumnsData.columns.length > 0 ? currentColumnsData : null,
3476
4293
  headingLevel: this.headingLevel,
@@ -3479,13 +4296,16 @@ class TableViewSettingsDialogComponent {
3479
4296
  }, this.table.injector);
3480
4297
  this._dialogRef.afterClosed
3481
4298
  .pipe(filter((result) => !!result), takeUntilDestroyed(this.destroyRef))
3482
- .subscribe(({ sortingData, filteringData, groupingData, columnsData }) => {
4299
+ .subscribe(({ sortingData, filteringData, includeExcludeFiltersData: resultFiltersData, groupingData, columnsData }) => {
3483
4300
  if (sortingData) {
3484
- this._applySorting(sortingData.field, sortingData.direction);
4301
+ this._applySorting(sortingData);
3485
4302
  }
3486
4303
  if (filteringData) {
3487
4304
  this._applyFiltering(filteringData.filterBy);
3488
4305
  }
4306
+ if (resultFiltersData) {
4307
+ this._applyFiltering(resultFiltersData.filterBy);
4308
+ }
3489
4309
  if (groupingData) {
3490
4310
  this._applyGrouping(groupingData.field, groupingData.direction);
3491
4311
  }
@@ -3497,7 +4317,7 @@ class TableViewSettingsDialogComponent {
3497
4317
  /** @hidden */
3498
4318
  _listenToFilters() {
3499
4319
  this.filters.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
3500
- if (this.filters.toArray().length > 0) {
4320
+ if (this.filters.toArray().length > 0 || this.includeExcludeFilters) {
3501
4321
  this._table?.showSettingsInToolbar(true);
3502
4322
  }
3503
4323
  });
@@ -3537,8 +4357,9 @@ class TableViewSettingsDialogComponent {
3537
4357
  return this._table?.getTableColumns() || [];
3538
4358
  }
3539
4359
  /** @hidden */
3540
- _applySorting(field, direction) {
3541
- this._table?.sort(field ? [{ field, direction }] : []);
4360
+ _applySorting(sortingData) {
4361
+ const sortRules = sortingData.sortBy ?? [];
4362
+ this._table?.sort(sortRules);
3542
4363
  }
3543
4364
  /** @hidden */
3544
4365
  _applyFiltering(filters) {
@@ -3558,7 +4379,7 @@ class TableViewSettingsDialogComponent {
3558
4379
  this._table?.setColumns(visibleColumnNames);
3559
4380
  }
3560
4381
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableViewSettingsDialogComponent, deps: [{ token: i1$1.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
3561
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: TableViewSettingsDialogComponent, isStandalone: true, selector: "fdp-table-view-settings-dialog", inputs: { table: "table", allowDisablingSorting: "allowDisablingSorting", headingLevel: "headingLevel", allowColumnConfiguration: "allowColumnConfiguration" }, queries: [{ propertyName: "filters", predicate: i0.forwardRef(() => TableViewSettingsFilterComponent) }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4382
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: TableViewSettingsDialogComponent, isStandalone: true, selector: "fdp-table-view-settings-dialog", inputs: { table: "table", allowDisablingSorting: "allowDisablingSorting", headingLevel: "headingLevel", allowColumnConfiguration: "allowColumnConfiguration" }, queries: [{ propertyName: "includeExcludeFilters", first: true, predicate: i0.forwardRef(() => IncludeExcludeFiltersComponent), descendants: true }, { propertyName: "filters", predicate: i0.forwardRef(() => TableViewSettingsFilterComponent) }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3562
4383
  }
3563
4384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableViewSettingsDialogComponent, decorators: [{
3564
4385
  type: Component,
@@ -3580,6 +4401,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
3580
4401
  }], filters: [{
3581
4402
  type: ContentChildren,
3582
4403
  args: [forwardRef(() => TableViewSettingsFilterComponent)]
4404
+ }], includeExcludeFilters: [{
4405
+ type: ContentChild,
4406
+ args: [forwardRef(() => IncludeExcludeFiltersComponent)]
3583
4407
  }] } });
3584
4408
 
3585
4409
  class TableGrowingButtonComponent {
@@ -3915,7 +4739,7 @@ class TableEditableCellComponent {
3915
4739
  return this._columnValue;
3916
4740
  }
3917
4741
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableEditableCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3918
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: TableEditableCellComponent, isStandalone: true, selector: "fdp-table-editable-cell", inputs: { row: "row", column: "column", columnValue: "columnValue" }, providers: [{ provide: EditableTableCell, useExisting: TableEditableCellComponent }], viewQueries: [{ propertyName: "form", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<form #ngForm>\n @switch (column.dataType) {\n @case ('number') {\n <fdp-input\n [placeholder]=\"('platformTable.editableCellNumberPlaceholder' | fdTranslate)()\"\n [(ngModel)]=\"columnValue\"\n [name]=\"_controlUniqName\"\n type=\"number\"\n ></fdp-input>\n }\n @case ('date') {\n <fdp-date-picker\n type=\"single\"\n [placeholder]=\"('platformTable.editableCellDatePlaceholder' | fdTranslate)()\"\n [name]=\"_controlUniqName\"\n [allowNull]=\"false\"\n [(ngModel)]=\"columnValue\"\n ></fdp-date-picker>\n }\n @case ('boolean') {\n <fdp-switch [(ngModel)]=\"columnValue\" [name]=\"_controlUniqName\"></fdp-switch>\n }\n @default {\n <fdp-input\n [placeholder]=\"('platformTable.editableCellStringPlaceholder' | fdTranslate)()\"\n [(ngModel)]=\"columnValue\"\n [name]=\"_controlUniqName\"\n type=\"text\"\n ></fdp-input>\n }\n }\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: InputComponent, selector: "fdp-input", inputs: ["type", "required", "value"], outputs: ["focusChange"] }, { kind: "component", type: PlatformDatePickerComponent, selector: "fdp-date-picker", inputs: ["value", "type", "selectedDate", "selectedMultipleDates", "selectedRangeDate", "selectedMultipleDateRanges", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "showTodayButton", "todayButtonLabel", "allowNull", "activeView", "placement", "appendTo", "closeOnDateChoose", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "allowMultipleSelection", "isOpen", "inline", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "showCalendarLegend", "legendCol", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedMultipleDatesChange", "selectedRangeDateChange", "selectedMultipleDateRangesChange", "activeViewChange"] }, { kind: "component", type: SwitchComponent, selector: "fdp-switch", inputs: ["semantic"], outputs: ["switchChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4742
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: TableEditableCellComponent, isStandalone: true, selector: "fdp-table-editable-cell", inputs: { row: "row", column: "column", columnValue: "columnValue" }, providers: [{ provide: EditableTableCell, useExisting: TableEditableCellComponent }], viewQueries: [{ propertyName: "form", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<form #ngForm>\n @switch (column.dataType) {\n @case ('number') {\n <fdp-input\n [placeholder]=\"('platformTable.editableCellNumberPlaceholder' | fdTranslate)()\"\n [(ngModel)]=\"columnValue\"\n [name]=\"_controlUniqName\"\n type=\"number\"\n ></fdp-input>\n }\n @case ('date') {\n <fdp-date-picker\n type=\"single\"\n [placeholder]=\"('platformTable.editableCellDatePlaceholder' | fdTranslate)()\"\n [name]=\"_controlUniqName\"\n [allowNull]=\"false\"\n [(ngModel)]=\"columnValue\"\n ></fdp-date-picker>\n }\n @case ('boolean') {\n <fdp-switch [(ngModel)]=\"columnValue\" [name]=\"_controlUniqName\"></fdp-switch>\n }\n @default {\n <fdp-input\n [placeholder]=\"('platformTable.editableCellStringPlaceholder' | fdTranslate)()\"\n [(ngModel)]=\"columnValue\"\n [name]=\"_controlUniqName\"\n type=\"text\"\n ></fdp-input>\n }\n }\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: InputComponent, selector: "fdp-input", inputs: ["type", "value"], outputs: ["focusChange"] }, { kind: "component", type: PlatformDatePickerComponent, selector: "fdp-date-picker", inputs: ["value", "type", "selectedDate", "selectedMultipleDates", "selectedRangeDate", "selectedMultipleDateRanges", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "showTodayButton", "todayButtonLabel", "allowNull", "activeView", "placement", "appendTo", "closeOnDateChoose", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "allowMultipleSelection", "isOpen", "inline", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "showCalendarLegend", "legendCol", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedMultipleDatesChange", "selectedRangeDateChange", "selectedMultipleDateRangesChange", "activeViewChange"] }, { kind: "component", type: SwitchComponent, selector: "fdp-switch", inputs: ["semantic"], outputs: ["switchChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3919
4743
  }
3920
4744
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableEditableCellComponent, decorators: [{
3921
4745
  type: Component,
@@ -3986,8 +4810,6 @@ class TableRowComponent extends TableRowDirective {
3986
4810
  /** @hidden */
3987
4811
  this._cdr = inject(ChangeDetectorRef);
3988
4812
  /** @hidden */
3989
- this._zone = inject(NgZone);
3990
- /** @hidden */
3991
4813
  this._elmRef = inject(ElementRef);
3992
4814
  /** @hidden */
3993
4815
  this._dndTableDirective = inject(TableDraggableDirective, {
@@ -4018,12 +4840,10 @@ class TableRowComponent extends TableRowDirective {
4018
4840
  .subscribe(() => {
4019
4841
  this._cdr.markForCheck();
4020
4842
  });
4021
- this._zone.runOutsideAngular(() => {
4022
- fromEvent(this._elmRef.nativeElement, 'keydown')
4023
- .pipe(filter(() => !!this._dndTableDirective), takeUntilDestroyed(this._destroyRef))
4024
- .subscribe((event) => {
4025
- this._onKeyDown(event);
4026
- });
4843
+ fromEvent(this._elmRef.nativeElement, 'keydown')
4844
+ .pipe(filter(() => !!this._dndTableDirective), takeUntilDestroyed(this._destroyRef))
4845
+ .subscribe((event) => {
4846
+ this._onKeyDown(event);
4027
4847
  });
4028
4848
  }
4029
4849
  /** @hidden */
@@ -4372,9 +5192,8 @@ class TableComponent extends Table {
4372
5192
  return range(this._tableColumnsLength);
4373
5193
  }
4374
5194
  /** @hidden */
4375
- constructor(_ngZone, _cdr, _tableService, _tableScrollDispatcher, _tableColumnResizeService, contentDensityObserver, injector, _tabbableService, _liveAnnouncer) {
5195
+ constructor(_cdr, _tableService, _tableScrollDispatcher, _tableColumnResizeService, contentDensityObserver, injector, _tabbableService, _liveAnnouncer) {
4376
5196
  super();
4377
- this._ngZone = _ngZone;
4378
5197
  this._cdr = _cdr;
4379
5198
  this._tableService = _tableService;
4380
5199
  this._tableScrollDispatcher = _tableScrollDispatcher;
@@ -4832,7 +5651,7 @@ class TableComponent extends Table {
4832
5651
  }
4833
5652
  this._shouldEmitRowsChange = false;
4834
5653
  const emitter = this.tableRowsSet;
4835
- this._onZoneFree(() => {
5654
+ queueMicrotask(() => {
4836
5655
  emitter.emit();
4837
5656
  });
4838
5657
  }
@@ -5393,9 +6212,10 @@ class TableComponent extends Table {
5393
6212
  if (currentPage >= lastPage) {
5394
6213
  return;
5395
6214
  }
5396
- this._ngZone.run(() => {
5397
- this.setCurrentPage(currentPage + 1);
5398
- });
6215
+ // IntersectionObserver callbacks run outside Angular's zone.
6216
+ // Explicitly mark for check to ensure change detection runs.
6217
+ this.setCurrentPage(currentPage + 1);
6218
+ this._cdr.markForCheck();
5399
6219
  }
5400
6220
  /**
5401
6221
  * After rows are rendered, the IntersectionObserver on the spy row may not
@@ -5847,9 +6667,7 @@ class TableComponent extends Table {
5847
6667
  }
5848
6668
  /** @hidden */
5849
6669
  _listenToTableContainerMouseLeave() {
5850
- this._ngZone.runOutsideAngular(() => {
5851
- this._subscriptions.add(fromEvent(this.tableContainer.nativeElement, 'mouseleave').subscribe(() => this._tableColumnResizeService.hideResizer()));
5852
- });
6670
+ this._subscriptions.add(fromEvent(this.tableContainer.nativeElement, 'mouseleave').subscribe(() => this._tableColumnResizeService.hideResizer()));
5853
6671
  }
5854
6672
  /** @hidden */
5855
6673
  _initScrollPosition() {
@@ -5881,12 +6699,6 @@ class TableComponent extends Table {
5881
6699
  }));
5882
6700
  }
5883
6701
  /** @hidden */
5884
- _onZoneFree(callback) {
5885
- this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(() => {
5886
- callback();
5887
- });
5888
- }
5889
- /** @hidden */
5890
6702
  _setSemanticHighlighting() {
5891
6703
  this._tableService._semanticHighlighting$.set(this.semanticHighlighting);
5892
6704
  this._tableService._semanticHighlightingColumnWidth$.set(this._semanticHighlightingColumnWidth);
@@ -5962,7 +6774,7 @@ class TableComponent extends Table {
5962
6774
  this.tableScrollMockContainer.nativeElement.style.right = rtl ? 'auto' : '0';
5963
6775
  }
5964
6776
  }
5965
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.TableService }, { token: i1.TableScrollDispatcherService }, { token: i1.TableColumnResizeService }, { token: i1$3.ContentDensityObserver }, { token: i0.Injector }, { token: i3.TabbableElementService }, { token: i4.LiveAnnouncer }], target: i0.ɵɵFactoryTarget.Component }); }
6777
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TableService }, { token: i1.TableScrollDispatcherService }, { token: i1.TableColumnResizeService }, { token: i1$3.ContentDensityObserver }, { token: i0.Injector }, { token: i3.TabbableElementService }, { token: i4.LiveAnnouncer }], target: i0.ɵɵFactoryTarget.Component }); }
5966
6778
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: TableComponent, isStandalone: true, selector: "fdp-table", inputs: { name: "name", id: "id", enableDragResize: "enableDragResize", fixed: "fixed", freezeColumnsTo: "freezeColumnsTo", freezeEndColumnsTo: "freezeEndColumnsTo", pageScrolling: "pageScrolling", showGrowingButton: "showGrowingButton", showItemsCount: "showItemsCount", pageSize: "pageSize", pageScrollingThreshold: "pageScrollingThreshold", bodyHeight: "bodyHeight", emptyTableMessage: "emptyTableMessage", noVisibleColumnsMessage: "noVisibleColumnsMessage", noHorizontalBorders: "noHorizontalBorders", outerScroll: ["outerScroll", "outerScroll", booleanAttribute], noVerticalBorders: "noVerticalBorders", noBorders: "noBorders", noBodyBorders: "noBodyBorders", noOuterBorders: "noOuterBorders", noBorderX: "noBorderX", noBorderY: "noBorderY", relationKey: "relationKey", expandedStateKey: "expandedStateKey", hasChildrenKey: "hasChildrenKey", rowNavigatable: "rowNavigatable", highlightNavigatedRow: "highlightNavigatedRow", rowsActivable: "rowsActivable", selectedKey: "selectedKey", selectableKey: "selectableKey", trackBy: "trackBy", rowComparator: "rowComparator", rowsClass: "rowsClass", editableRowSkeleton: "editableRowSkeleton", expandOnInit: "expandOnInit", rowHeight: "rowHeight", secondaryRowHeight: "secondaryRowHeight", loadPagesBefore: "loadPagesBefore", nonInteractiveHeader: "nonInteractiveHeader", selectionMode: "selectionMode", enableTristateMode: "enableTristateMode", semanticHighlighting: "semanticHighlighting", forceCheckedAllState: "forceCheckedAllState", ariaLabelledBy: "ariaLabelledBy", minimumColumnWidth: "minimumColumnWidth", showTableFooter: ["showTableFooter", "showTableFooter", booleanAttribute], nonFrozenColumnsMinWidth: "nonFrozenColumnsMinWidth", loading: "loading" }, outputs: { presetChanged: "presetChanged", rowSelectionChange: "rowSelectionChange", sortChange: "sortChange", filterChange: "filterChange", groupChange: "groupChange", columnsChange: "columnsChange", pageChange: "pageChange", columnFreeze: "columnFreeze", rowToggleOpenState: "rowToggleOpenState", cellActivate: "cellActivate", rowActivate: "rowActivate", rowNavigate: "rowNavigate", emptyRowAdded: "emptyRowAdded", save: "save", cancel: "cancel", tableScrolled: "tableScrolled", tableRowsSet: "tableRowsSet", allRowsExpanded: "allRowsExpanded", allRowsCollapsed: "allRowsCollapsed", cellFocused: "cellFocused" }, host: { properties: { "class.fdp-table--outer-scroll": "outerScroll", "class.fd-table--no-horizontal-borders": "noHorizontalBorders || noBorders", "class.fd-table--no-vertical-borders": "noVerticalBorders", "class.fd-table--group": "_isGroupTable$()", "attr.id": "this.id", "class.fdp-table--no-outer-border": "this.noOuterBorders" }, classAttribute: "fdp-table" }, providers: [
5967
6779
  { provide: Table, useExisting: forwardRef(() => TableComponent) },
5968
6780
  TableRowService,
@@ -6044,7 +6856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
6044
6856
  TableFooterDirective,
6045
6857
  TableFooterRowComponent
6046
6858
  ], template: "@if (tableToolbar) {\n <!-- Toolbar -->\n <ng-template\n [ngTemplateOutlet]=\"tableToolbar.contentTemplateRef\"\n [ngTemplateOutletContext]=\"_toolbarContext\"\n ></ng-template>\n}\n<fd-busy-indicator\n [loading]=\"\n (_tableService.tableLoading$ | async) === true && _dataSourceDirective._firstLoadingDone && !pageScrolling\n \"\n [block]=\"true\"\n [preventWheelEvents]=\"pageScrolling && !!_virtualScrollDirective?.scrollWholeRows\"\n>\n <!-- Table Container -->\n <div class=\"fdp-table__container\" #tableContainer>\n <ng-template [ngTemplateOutlet]=\"tableTemplate\"></ng-template>\n @if (enableDragResize) {\n <!-- Table column resizer for visually representing the resizing process -->\n <fdp-table-column-resizer class=\"fdp-table__column-resizer\"></fdp-table-column-resizer>\n }\n </div>\n @if (showGrowingButton) {\n <fdp-table-growing-button [showItemsCount]=\"showItemsCount\"></fdp-table-growing-button>\n }\n</fd-busy-indicator>\n<!-- Table Template -->\n<ng-template #tableTemplate>\n <div\n class=\"fdp-table__body fd-scrollbar\"\n [class.fdp-table__body--virtual-scroll]=\"!!_virtualScrollDirective?.virtualScroll\"\n [style.position]=\"\n !!_virtualScrollDirective?.virtualScroll && !_virtualScrollDirective.scrollWholeRows ? 'relative' : 'static'\n \"\n [class.fdp-table__body--disable-scroll]=\"\n !!_dndTableDirective?.dragDropInProgress && !_virtualScrollDirective?.scrollWholeRows\n \"\n fdpTableScrollable\n #tableScrollable=\"tableScrollable\"\n [style.height]=\"bodyHeight\"\n [class.fixed-height]=\"!!bodyHeight\"\n [attr.role]=\"pageScrolling ? 'feed' : null\"\n [class.fd-table--fixed]=\"_freezableColumns.size || fixed\"\n >\n <table\n fd-table\n [attr.role]=\"isTreeTable ? 'treegrid' : 'grid'\"\n class=\"fdp-table__body-table\"\n [allCellsFocusable]=\"true\"\n [popIn]=\"_tableService.poppingColumns$().length > 0\"\n [class.fd-table--no-outer-border]=\"noOuterBorders\"\n [attr.aria-labelledby]=\"_ariaLabelledBy\"\n >\n <thead fd-table-header [nonInteractive]=\"nonInteractiveHeader\" class=\"fdp-table__header\">\n <tr\n fdp-table-header-row\n [noBorders]=\"noBorders\"\n [noHorizontalBorders]=\"noHorizontalBorders\"\n [noVerticalBorders]=\"noVerticalBorders\"\n [rowId]=\"id\"\n [fixed]=\"fixed\"\n [isShownSelectionColumn]=\"isSelectionColumnShown\"\n [checkedState]=\"_checkedState\"\n [selectionMode]=\"_selectionMode\"\n [selectionColumnWidth]=\"_selectionColumnWidth\"\n [freezeColumnsTo]=\"freezeColumnsTo\"\n [freezeEndColumnsTo]=\"freezeEndColumnsTo\"\n (keydown.enter)=\"_onRowClick(null, $event)\"\n (keydown.space)=\"_onRowClick(null, $event)\"\n (click)=\"_onRowClick(null, $event)\"\n [disableSelectionCheckbox]=\"_dataSourceTableRows.length === 0\"\n ></tr>\n </thead>\n @if (!!_tableRowsVisible.length && _tableService.visibleColumnsLength() > 0) {\n <tbody\n fd-table-body\n fdkDndList\n #tableBody\n [dragoverPredicate]=\"_dndTableDirective?.dragoverPredicate\"\n [dropPredicate]=\"_dndTableDirective?.dropPredicate\"\n [noBorderX]=\"noBorderX || noBorders\"\n [noBorderY]=\"noBorderY || noBorders\"\n [tabIndex]=\"pageScrolling ? 0 : -1\"\n [items]=\"_dndTableRowsPlaceholder\"\n [draggable]=\"isDraggable\"\n [dropMode]=\"_dndTableDirective?.dropMode ?? 'group'\"\n (itemDropped)=\"_dndTableDirective?.dragDropItemDrop($event)\"\n (dropPredicateCalculating)=\"_calculatingLoading($event)\"\n (dropCancelled)=\"_dndTableDirective?.dropCancelled()\"\n >\n @for (rowIndex of _tableCurrentlyRenderedRowsPlaceholder; track _rowTrackBy($index, rowIndex)) {\n @if (_tableRowsVisible[rowIndex]; as row) {\n @switch (row.type) {\n @case ('group') {\n <tr\n fdp-table-group-row\n [style.max-height.px]=\"\n _virtualScrollDirective?.scrollWholeRows ? rowHeight : 'auto'\n \"\n [index]=\"rowIndex\"\n [height]=\"rowHeight\"\n [draggable]=\"isDraggable\"\n [row]=\"row\"\n [rowId]=\"id\"\n [keyToColumnMap]=\"_keyToColumnMap\"\n (toggleGroupRow)=\"_toggleGroupRow($event)\"\n (click)=\"_emitRowActivate(row, $event.ctrlKey || $event.metaKey)\"\n ></tr>\n }\n @default {\n <tr\n [fdkDndItem]=\"row\"\n [applyDragItemClass]=\"isDraggable\"\n [class]=\"row | rowClasses: rowsClass\"\n [tabindex]=\"\n !_tableService.poppingColumns$().length &&\n (rowsActivable || !!row.navigatable)\n ? 0\n : -1\n \"\n [focusable]=\"\n !_tableService.poppingColumns$().length &&\n (rowsActivable || !!row.navigatable)\n \"\n [hoverable]=\"rowsActivable || isSelectionColumnShown || !!row.navigatable\"\n [activable]=\"rowsActivable || !!row.navigatable\"\n [active]=\"rowIndex === _navigatedRowIndex\"\n [highlightActive]=\"highlightNavigatedRow\"\n [style.max-height.px]=\"\n _virtualScrollDirective?.scrollWholeRows ? rowHeight : 'auto'\n \"\n [style.height.px]=\"rowHeight\"\n [attr.aria-level]=\"isTreeTable ? row.level + 1 : null\"\n (keydown.enter)=\"_onRowClick(row, $event)\"\n (keydown.space)=\"_onRowClick(row, $event)\"\n (click)=\"_onRowClick(row, $event)\"\n (started)=\"_onDragStarted(row, $index, rowIndex)\"\n [main]=\"true\"\n [class.fd-table__row--draggable]=\"isDraggable\"\n fdp-table-row\n [attr.aria-rowindex]=\"rowIndex + 1\"\n [rowId]=\"id\"\n [class.fd-tr-hovered]=\"!row.checked && hoveredRowIndex$() === rowIndex\"\n [index]=\"rowIndex\"\n [row]=\"row\"\n [selectionMode]=\"_selectionMode\"\n [selectableKey]=\"selectableKey\"\n [enableTristateMode]=\"enableTristateMode\"\n [fixed]=\"fixed\"\n [selectionColumnWidth]=\"_selectionColumnWidth\"\n [freezeColumnsTo]=\"freezeColumnsTo\"\n [freezeEndColumnsTo]=\"freezeEndColumnsTo\"\n ></tr>\n }\n }\n @if (row.type === 'item' && _tableService.poppingColumns$().length > 0) {\n <tr\n (keydown.enter)=\"_onRowClick(row, $event)\"\n (keydown.space)=\"_onRowClick(row, $event)\"\n (click)=\"_onRowClick(row, $event)\"\n fdp-table-popping-row\n [secondary]=\"true\"\n [style.cursor]=\"rowsActivable || !!row.navigatable ? 'pointer' : 'auto'\"\n [style.height.px]=\"secondaryRowHeight\"\n [selectionMode]=\"selectionMode\"\n [row]=\"row\"\n [checked]=\"row.checked\"\n [class]=\"row | rowClasses: rowsClass\"\n (toggleGroupRow)=\"_toggleGroupRow($event)\"\n (cellClicked)=\"_onCellClick($event.index, $event.row)\"\n (mouseenter)=\"handleMouseEnter(rowIndex)\"\n (mouseleave)=\"handleMouseLeave()\"\n ></tr>\n }\n @if (row.children.length === 0 && (row.childItemsLoading$ | async)) {\n @for (_ of loadingRowRange; track $index) {\n <tr fd-table-row>\n @for (_ of loadingColumnsRange; track $index) {\n <td fd-table-cell>\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"60%\"\n ></fd-skeleton>\n </td>\n }\n </tr>\n }\n }\n <!-- Last rendered child row. -->\n @if (row.parent?.lastChild?.index === row.index) {\n <tr\n aria-hidden=\"true\"\n class=\"fd-table__intersection-spy\"\n [fdkIntersectionSpy]=\"pageScrollingThreshold\"\n (intersected)=\"$event && _tableRowService.loadChildRows(row.parent!)\"\n [style.top.px]=\"pageScrollingThreshold * -1\"\n ></tr>\n }\n }\n }\n @if (pageScrolling && !_virtualScrollDirective?.scrollWholeRows) {\n <tr\n aria-hidden=\"true\"\n class=\"fd-table__intersection-spy\"\n [fdkIntersectionSpy]=\"pageScrollingThreshold\"\n (intersected)=\"$event && _onSpyIntersect($event)\"\n [style.top.px]=\"pageScrollingThreshold * -1\"\n ></tr>\n @if (\n (_tableService.tableLoading$ | async) === true &&\n _dataSourceDirective._firstLoadingDone &&\n pageScrolling\n ) {\n <tr fd-table-row>\n @for (_ of loadingColumnsRange; track $index) {\n <td fd-table-cell>\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"100%\"\n ></fd-skeleton>\n </td>\n }\n </tr>\n }\n }\n </tbody>\n } @else {\n @if (!_dataSourceDirective._firstLoadingDone) {\n <tbody fd-table-body>\n @for (_ of loadingRowRange; track $index) {\n <tr fd-table-row>\n @for (_ of loadingColumnsRange; track $index) {\n <td fd-table-cell>\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"60%\"\n ></fd-skeleton>\n </td>\n }\n </tr>\n }\n </tbody>\n } @else {\n <tbody fd-table-body class=\"fdp-table__empty\">\n <tr fd-table-row>\n <td fd-table-cell class=\"fd-table__cell--no-data\" colspan=\"100%\">\n <div class=\"fdp-table__empty-table-message\">\n <ng-content select=\"fdp-table-no-data-wrapper\"></ng-content>\n @if (!_noDataWrapper && _tableService.visibleColumnsLength() > 0) {\n <div>\n {{\n emptyTableMessage ||\n ('platformTable.defaultEmptyMessage' | fdTranslate)()\n }}\n </div>\n } @else if (_tableService.visibleColumnsLength() === 0) {\n <div>\n {{\n noVisibleColumnsMessage ||\n ('platformTable.noVisibleColumnsMessage' | fdTranslate)()\n }}\n </div>\n }\n </div>\n </td>\n </tr>\n </tbody>\n }\n }\n @if (pageScrolling) {\n <tbody class=\"fd-table__body__focus-mock\"></tbody>\n }\n @if (_virtualScrollDirective?.virtualScroll && !_virtualScrollDirective.scrollWholeRows) {\n <!-- the tbody element below is so the scrollbar renders correctly -->\n <tbody>\n <tr>\n <td colspan=\"100%\" [style.height.px]=\"_virtualScrollDirective!.virtualScrollTotalHeight\"></td>\n </tr>\n </tbody>\n }\n <!-- the tbody element below is so the scrollbar renders correctly -->\n @if (_virtualScrollDirective?.virtualScroll && _virtualScrollDirective.scrollWholeRows) {\n <tbody\n [class.fd-table__body--scroll-mock]=\"!!_virtualScrollDirective.scrollWholeRows\"\n [class.fdp-table__body--disable-scroll]=\"\n !!_dndTableDirective?.dragDropInProgress && !_virtualScrollDirective.scrollWholeRows\n \"\n #tableScrollMockContainer\n >\n <tr>\n <td colspan=\"100%\" [style.height.px]=\"_virtualScrollDirective.virtualScrollTotalHeight\"></td>\n </tr>\n </tbody>\n }\n @if (showTableFooter) {\n <tfoot fd-table-footer>\n <tr fdp-table-footer-row></tr>\n </tfoot>\n }\n </table>\n </div>\n</ng-template>\n<!-- Empty Table Message -->\n", styles: [".fd-scrollbar{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:auto;padding-block:0;padding-inline:0;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-scrollbar:after,.fd-scrollbar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-scrollbar.is-focus,.fd-scrollbar:focus{outline:none;z-index:5}.fd-scrollbar::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-scrollbar::-webkit-scrollbar-corner,.fd-scrollbar::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-scrollbar::-webkit-scrollbar-thumb{background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-scrollbar::-webkit-scrollbar-thumb:active,.fd-scrollbar::-webkit-scrollbar-thumb:hover{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-scrollbar--container::-webkit-scrollbar-corner,.fd-scrollbar--container::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color);border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-scrollbar--container[dir=rtl]::-webkit-scrollbar-corner,.fd-scrollbar--container[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-scrollbar--container::-webkit-scrollbar-corner,[dir=rtl] .fd-scrollbar--container::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.fd-table__cell--focusable[aria-selected=true]:after{border-color:var(--sapContent_FocusColor)!important}fdk-dynamic-portal .fdp-table-toolbar-actions{gap:.5rem;display:flex;flex-direction:column}.fdp-table{display:block}.fdp-table .fd-table__row:focus-visible{outline:none}.fdp-table .fdp-table-toolbar-actions{gap:.5rem;display:flex;align-items:center}.fdp-table .fdp-table__applied-filters-toolbar label{flex-shrink:1}.fdp-table .fdp-table__body-table,.fdp-table .fdp-table__header-table,.fdp-table .fdp-table__body-hs-table{table-layout:auto;width:100%;border-collapse:separate;border-spacing:0}.fdp-table .fd-table__body__focus-mock{position:absolute;top:var(--fdTable_Header_Cell_Height);left:0;right:0;bottom:0;pointer-events:none;z-index:5}.fdp-table .fd-table__body:focus+.fd-table__body__focus-mock{outline-offset:-.1875rem;outline-width:.0625rem;outline-width:var(--sapContent_FocusWidth, .0625rem);outline-color:#000;outline-color:var(--sapContent_FocusColor, #000);outline-style:dotted;outline-style:var(--sapContent_FocusStyle, dotted)}.fdp-table.fd-table--tree .fd-table__body .fd-table__row,.fdp-table.fd-table--tree .fd-table__body .fd-table__row .fd-replace-indicator,.fdp-table.fd-table--group .fd-table__body .fd-table__row,.fdp-table.fd-table--group .fd-table__body .fd-table__row .fd-replace-indicator{height:2.75rem;max-height:2.75rem}.fdp-table.fd-table--tree.fd-table--compact .fd-table__body .fd-table__row,.fdp-table.fd-table--tree.fd-table--compact .fd-table__body .fd-table__row .fd-replace-indicator,.fdp-table.fd-table--group.fd-table--compact .fd-table__body .fd-table__row,.fdp-table.fd-table--group.fd-table--compact .fd-table__body .fd-table__row .fd-replace-indicator{height:2rem;max-height:2rem}.fdp-table.fd-table--tree.fd-table--condensed .fd-table__body .fd-table__row,.fdp-table.fd-table--tree.fd-table--condensed .fd-table__body .fd-table__row .fd-replace-indicator,.fdp-table.fd-table--group.fd-table--condensed .fd-table__body .fd-table__row,.fdp-table.fd-table--group.fd-table--condensed .fd-table__body .fd-table__row .fd-replace-indicator{height:1.563rem;max-height:1.563rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__row{cursor:auto}.fdp-table.fd-table--tree .fd-table__body .fd-table__row--draggable:hover{cursor:grab}.fdp-table.fd-table--tree .fd-table__body .fd-table__row--draggable:active{cursor:grabbing}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__row--draggable.fd-dnd-on-drag.fd-dnd-placeholder,.fdp-table.fd-table--tree .fd-table__body .fd-table__row--draggable.fd-dnd-on-drag.fd-dnd-placeholder[dir=rtl]{padding-left:.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__row--draggable.fd-dnd-on-drag:not(.fd-dnd-placeholder) .fdp-table__cell--selection{top:0;transform:translate(-100%)}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__row--draggable.fd-dnd-on-drag:not(.fd-dnd-placeholder) .fdp-table__cell--selection,.fdp-table.fd-table--tree .fd-table__body .fd-table__row--draggable.fd-dnd-on-drag:not(.fd-dnd-placeholder) .fdp-table__cell--selection[dir=rtl]{transform:translate(100%)}.fdp-table.fd-table--tree .fd-table__body .fd-table__row .fd-replace-indicator{top:auto}.fdp-table.fd-table--tree .fd-table__body .fd-table__row .fd-table__text{white-space:nowrap}.fdp-table.fd-table--tree.fd-table--condensed .fd-table__row.fd-dnd-on-drag.fd-dnd-placeholder,.fdp-table.fd-table--tree.fd-table--compact .fd-table__row.fd-dnd-on-drag.fd-dnd-placeholder{padding-left:2rem}[dir=rtl] .fdp-table.fd-table--tree.fd-table--condensed .fd-table__row.fd-dnd-on-drag.fd-dnd-placeholder,.fdp-table.fd-table--tree.fd-table--condensed .fd-table__row.fd-dnd-on-drag.fd-dnd-placeholder[dir=rtl],[dir=rtl] .fdp-table.fd-table--tree.fd-table--compact .fd-table__row.fd-dnd-on-drag.fd-dnd-placeholder,.fdp-table.fd-table--tree.fd-table--compact .fd-table__row.fd-dnd-on-drag.fd-dnd-placeholder[dir=rtl]{padding-left:.5rem}.fdp-table.fd-table--condensed .fd-table__body .fd-table__cell--checkbox .fd-checkbox__label{position:relative;margin-top:0}.fdp-table.fdp-table--no-outer-border .fdp-table__header,.fdp-table.fdp-table--no-outer-border .fdp-table__body,.fdp-table.fdp-table--no-outer-border .fdp-table__body-hs,[dir=rtl] .fdp-table.fdp-table--no-outer-border .fdp-table__header,.fdp-table.fdp-table--no-outer-border .fdp-table__header[dir=rtl],[dir=rtl] .fdp-table.fdp-table--no-outer-border .fdp-table__body,.fdp-table.fdp-table--no-outer-border .fdp-table__body[dir=rtl],[dir=rtl] .fdp-table.fdp-table--no-outer-border .fdp-table__body-hs,.fdp-table.fdp-table--no-outer-border .fdp-table__body-hs[dir=rtl]{border-left:none;border-right:none}[dir=rtl] .fdp-table.fdp-table--no-outer-border .fdp-table__header .fd-table__cell:first-child,.fdp-table.fdp-table--no-outer-border .fdp-table__header[dir=rtl] .fd-table__cell:first-child,[dir=rtl] .fdp-table.fdp-table--no-outer-border .fdp-table__body .fd-table__cell:first-child,.fdp-table.fdp-table--no-outer-border .fdp-table__body[dir=rtl] .fd-table__cell:first-child,[dir=rtl] .fdp-table.fdp-table--no-outer-border .fdp-table__body-hs .fd-table__cell:first-child,.fdp-table.fdp-table--no-outer-border .fdp-table__body-hs[dir=rtl] .fd-table__cell:first-child{border-right:none}.fdp-table.fdp-table--no-outer-border .fdp-table__header .fd-table__cell{border-top:none}.fdp-table.fdp-table--no-outer-border .fdp-table__body{border-bottom:none}.fdp-table__container{position:relative;overflow:hidden;outline:none}.fdp-table__header{z-index:2}.fdp-table__header .fd-table__cell,.fdp-table__header .fd-table__cell--mock{border-top:.0625rem solid #e4e4e4;border-top:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4);border-bottom:.0625rem solid #e4e4e4;border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)}.fdp-table__header .fd-table__cell{margin-top:0;max-height:100%;top:0}.fdp-table__header .fd-table__cell--fixed{position:sticky}.fdp-table__header .fd-table__cell .fd-table__popover--custom{display:none}.fdp-table__header .fd-table__cell .fdp-table__navigation-indicator{opacity:0;visibility:hidden}.fdp-table__header .fd-table__cell--truncate-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:text-bottom;max-width:100%}.fdp-table__header th.fd-table__cell{border-block-start:none}.fdp-table__body-hs{box-sizing:border-box;border-left:.0625rem solid #e4e4e4;border-left:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4);background:var(--fdScrollbar_Track_Color, #ffffff);padding-right:var(--fdScrollbar_Dimension)}[dir=rtl] .fdp-table__body-hs,.fdp-table__body-hs[dir=rtl]{padding-right:0;padding-left:var(--fdScrollbar_Dimension);border-left:none;border-right:.0625rem solid #e4e4e4;border-right:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)}.fdp-table__body-hs-wrap{width:100%;position:relative}.fdp-table__body-hs-spacer{position:absolute;height:1px;visibility:hidden}.fdp-table__empty-table-message{box-sizing:border-box;padding:1rem;text-align:center;display:flex;align-items:center;justify-content:center;align-content:center;width:100%}.fdp-table__empty .fd-table__cell{width:100%}.fdp-table__empty .fd-table__body{border-left:none}[dir=rtl] .fdp-table__empty .fd-table__body,.fdp-table__empty .fd-table__body[dir=rtl]{border-left:.0625rem solid #e4e4e4;border-left:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4);border-right:none}.fdp-table__empty.fixed-height{background-color:#fff;background-color:var(--sapList_Background, #fff)}.fdp-table .fd-table__cell{z-index:0}.fdp-table .fd-table__cell--group{min-width:100%;border-left:none}.fdp-table .fd-table__cell--group:before{content:\"\";display:block;position:absolute;top:-.0625rem;left:0;right:0;border-top:.0625rem solid #e4e4e4;border-top:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)}.fdp-table .fd-table__cell--status-indicator{border-left:none;border-right:.0625rem solid #e4e4e4;border-right:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4);min-width:.375rem}[dir=rtl] .fdp-table .fd-table__cell--status-indicator,.fdp-table .fd-table__cell--status-indicator[dir=rtl]{border-right:none}.fdp-table .fd-table__cell--mock.fd-table__cell--mock-borderless{border-left:none!important;border-right:none!important;border-bottom:none!important;border-top:none!important}.fdp-table .fd-table__cell .fdp-table__navigation-indicator{margin:auto}[dir=rtl] .fdp-table .fd-table__cell:nth-last-child(2):not(.fdp-table__cell--group),.fdp-table .fd-table__cell[dir=rtl]:nth-last-child(2):not(.fdp-table__cell--group){border-left:.0625rem solid #e4e4e4;border-left:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)}.fdp-table .fd-dnd-item{position:relative}.fdp-table .fd-table__cell--fixed{position:sticky;display:table-cell;z-index:1}.fdp-table .fd-table__cell--checkbox fd-checkbox{display:flex;height:100%}.fdp-table .fd-table__cell--checkbox fd-checkbox .fd-checkbox__label{align-self:center;margin:0}.fdp-table .fd-table__expand-wrapper{display:flex;align-items:center}.fdp-table__column-resizer{bottom:calc(var(--fdScrollbar_Dimension) + var(--sapList_BorderWidth, .0625rem))}.fdp-table__cell--navigation{width:4rem;min-width:4rem;max-width:4rem}.fdp-table__body-table.fd-table--pop-in .fd-table__row--secondary .fd-table__cell{border-bottom:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}.fdp-table__body-table.fd-table--pop-in .fd-table__row--secondary:hover{background-color:var(--sapList_Hover_Background)}.fdp-table__body-table.fd-table--pop-in .fdp-table__header .fd-table__cell .fd-table__text{margin-bottom:0}.fdp-table__body--virtual-scroll{background-color:var(--sapList_Background, #fff);will-change:scroll-position}.fdp-table__body--virtual-scroll .fd-table__body:not(:last-child) .fd-table__row:last-child .fd-table__cell{border-bottom-color:var(--sapList_BorderColor)!important}.fdp-table__body--virtual-scroll .fd-table__body{position:static;will-change:transform}.fdp-table__body--virtual-scroll .fd-table__body--scroll-mock{top:0;position:absolute;overflow-y:auto;z-index:2;width:1rem}.fdp-table.fd-table--no-vertical-borders .fd-table__cell--status-indicator{border-right-color:transparent}[dir=rtl] .fdp-table.fd-table--no-vertical-borders .fd-table__cell--status-indicator,.fdp-table.fd-table--no-vertical-borders .fd-table__cell--status-indicator[dir=rtl]{border-left-color:transparent}.fdp-table__growing-button{height:auto}.fdp-table__growing-button__title{font-weight:700;margin:.813rem 0}.fdp-table__growing-button__subtitle{padding-bottom:.875rem}.fdp-table__growing-button-content{display:flex;justify-content:center;flex-direction:column}.fdp-table__growing-button-content--byline>*{display:flex;flex-direction:column;width:100%}.fdp-table__growing-button-total{border-top:var(--fdList_Item_Action_Border)!important}.fdp-table__growing-button-total .fd-list__title{line-height:2.75rem}.fdp-table.fdp-table--outer-scroll .fd-toolbar{position:sticky;top:0}.fdp-table.fdp-table--outer-scroll .fd-toolbar:not(.fd-toolbar--info){z-index:10}.fdp-table.fdp-table--outer-scroll .fd-toolbar.fd-toolbar--info{z-index:9;top:2.75rem}.fdp-table.fdp-table--outer-scroll .fd-toolbar.fd-toolbar--info+fd-busy-indicator thead{top:4.75rem}.fdp-table.fdp-table--outer-scroll .fdp-table__body.fd-scrollbar,.fdp-table.fdp-table--outer-scroll .fdp-table__container{overflow:visible}.fdp-table.fdp-table--outer-scroll thead{position:sticky;top:0}.fdp-table.fdp-table--outer-scroll:has(.fd-toolbar) thead{position:sticky;top:2.75rem}.fdp-table.fdp-table--outer-scroll:has(.fd-toolbar):has(.is-compact) thead{position:sticky;top:2rem}.fdp-table.fdp-table--outer-scroll:has(.fd-toolbar):has(.fd-toolbar--title) thead{position:sticky;top:2.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"]{padding-left:2.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl]{padding-left:.5rem;padding-right:2.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"]{padding-left:4.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl]{padding-left:.5rem;padding-right:4.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"]{padding-left:5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl]{padding-left:.5rem;padding-right:5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"]{padding-left:5.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl]{padding-left:.5rem;padding-right:5.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"]{padding-left:6rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl]{padding-left:.5rem;padding-right:6rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"]{padding-left:6.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl]{padding-left:.5rem;padding-right:6.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"]{padding-left:7rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl]{padding-left:.5rem;padding-right:7rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"]{padding-left:7.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl]{padding-left:.5rem;padding-right:7.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"]{padding-left:8rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl]{padding-left:.5rem;padding-right:8rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"]{padding-left:8.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl]{padding-left:.5rem;padding-right:8.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"]{padding-left:9rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl]{padding-left:.5rem;padding-right:9rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"]{padding-left:9.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl]{padding-left:.5rem;padding-right:9.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"]{padding-left:10rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl]{padding-left:.5rem;padding-right:10rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"]{padding-left:10.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl]{padding-left:.5rem;padding-right:10.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"]{padding-left:11rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl]{padding-left:.5rem;padding-right:11rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"]{padding-left:11.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl]{padding-left:.5rem;padding-right:11.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"]{padding-left:12rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl]{padding-left:.5rem;padding-right:12rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"]{padding-left:12.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl]{padding-left:.5rem;padding-right:12.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"]{padding-left:13rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl]{padding-left:.5rem;padding-right:13rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"]{padding-left:13.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl]{padding-left:.5rem;padding-right:13.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand,.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand{cursor:pointer;white-space:nowrap}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"]{padding-left:0}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl]{padding-left:.5rem;padding-right:0}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"]{padding-left:1.5rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl]{padding-left:.5rem;padding-right:1.5rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"]{padding-left:2.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl]{padding-left:.5rem;padding-right:2.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"]{padding-left:2.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl]{padding-left:.5rem;padding-right:2.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"]{padding-left:3.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl]{padding-left:.5rem;padding-right:3.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"]{padding-left:3.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl]{padding-left:.5rem;padding-right:3.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"]{padding-left:4.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl]{padding-left:.5rem;padding-right:4.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"]{padding-left:4.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl]{padding-left:.5rem;padding-right:4.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"]{padding-left:5.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl]{padding-left:.5rem;padding-right:5.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"]{padding-left:5.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl]{padding-left:.5rem;padding-right:5.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"]{padding-left:6.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl]{padding-left:.5rem;padding-right:6.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"]{padding-left:6.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl]{padding-left:.5rem;padding-right:6.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"]{padding-left:7.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl]{padding-left:.5rem;padding-right:7.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"]{padding-left:7.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl]{padding-left:.5rem;padding-right:7.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"]{padding-left:8.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl]{padding-left:.5rem;padding-right:8.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"]{padding-left:8.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl]{padding-left:.5rem;padding-right:8.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"]{padding-left:9.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl]{padding-left:.5rem;padding-right:9.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"]{padding-left:9.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl]{padding-left:.5rem;padding-right:9.75rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"]{padding-left:10.25rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl]{padding-left:.5rem;padding-right:10.25rem}.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"]{padding-left:10.75rem}[dir=rtl] .fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table.fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table.fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl]{padding-left:.5rem;padding-right:10.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"]{padding-left:2rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"1\"][dir=rtl]{padding-left:.5rem;padding-right:2rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"]{padding-left:3.5rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"2\"][dir=rtl]{padding-left:.5rem;padding-right:3.5rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"]{padding-left:4.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"3\"][dir=rtl]{padding-left:.5rem;padding-right:4.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"]{padding-left:4.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"4\"][dir=rtl]{padding-left:.5rem;padding-right:4.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"]{padding-left:5.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"5\"][dir=rtl]{padding-left:.5rem;padding-right:5.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"]{padding-left:5.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"6\"][dir=rtl]{padding-left:.5rem;padding-right:5.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"]{padding-left:6.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"7\"][dir=rtl]{padding-left:.5rem;padding-right:6.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"]{padding-left:6.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"8\"][dir=rtl]{padding-left:.5rem;padding-right:6.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"]{padding-left:7.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"9\"][dir=rtl]{padding-left:.5rem;padding-right:7.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"]{padding-left:7.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"10\"][dir=rtl]{padding-left:.5rem;padding-right:7.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"]{padding-left:8.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"11\"][dir=rtl]{padding-left:.5rem;padding-right:8.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"]{padding-left:8.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"12\"][dir=rtl]{padding-left:.5rem;padding-right:8.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"]{padding-left:9.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"13\"][dir=rtl]{padding-left:.5rem;padding-right:9.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"]{padding-left:9.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"14\"][dir=rtl]{padding-left:.5rem;padding-right:9.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"]{padding-left:10.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"15\"][dir=rtl]{padding-left:.5rem;padding-right:10.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"]{padding-left:10.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"16\"][dir=rtl]{padding-left:.5rem;padding-right:10.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"]{padding-left:11.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"17\"][dir=rtl]{padding-left:.5rem;padding-right:11.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"]{padding-left:11.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"18\"][dir=rtl]{padding-left:.5rem;padding-right:11.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"]{padding-left:12.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"19\"][dir=rtl]{padding-left:.5rem;padding-right:12.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"]{padding-left:12.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell[data-nesting-level=\"20\"][dir=rtl]{padding-left:.5rem;padding-right:12.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"]{padding-left:0}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"1\"][dir=rtl]{padding-left:.5rem;padding-right:0}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"]{padding-left:1.5rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"2\"][dir=rtl]{padding-left:.5rem;padding-right:1.5rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"]{padding-left:2.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"3\"][dir=rtl]{padding-left:.5rem;padding-right:2.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"]{padding-left:2.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"4\"][dir=rtl]{padding-left:.5rem;padding-right:2.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"]{padding-left:3.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"5\"][dir=rtl]{padding-left:.5rem;padding-right:3.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"]{padding-left:3.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"6\"][dir=rtl]{padding-left:.5rem;padding-right:3.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"]{padding-left:4.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"7\"][dir=rtl]{padding-left:.5rem;padding-right:4.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"]{padding-left:4.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"8\"][dir=rtl]{padding-left:.5rem;padding-right:4.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"]{padding-left:5.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"9\"][dir=rtl]{padding-left:.5rem;padding-right:5.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"]{padding-left:5.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"10\"][dir=rtl]{padding-left:.5rem;padding-right:5.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"]{padding-left:6.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"11\"][dir=rtl]{padding-left:.5rem;padding-right:6.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"]{padding-left:6.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"12\"][dir=rtl]{padding-left:.5rem;padding-right:6.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"]{padding-left:7.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"13\"][dir=rtl]{padding-left:.5rem;padding-right:7.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"]{padding-left:7.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"14\"][dir=rtl]{padding-left:.5rem;padding-right:7.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"]{padding-left:8.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"15\"][dir=rtl]{padding-left:.5rem;padding-right:8.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"]{padding-left:8.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"16\"][dir=rtl]{padding-left:.5rem;padding-right:8.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"]{padding-left:9.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"17\"][dir=rtl]{padding-left:.5rem;padding-right:9.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"]{padding-left:9.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"18\"][dir=rtl]{padding-left:.5rem;padding-right:9.75rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"]{padding-left:10.25rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"19\"][dir=rtl]{padding-left:.5rem;padding-right:10.25rem}[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"]{padding-left:10.75rem}[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] [class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],[class*=-condensed] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] [class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],[class*=-compact] .fdp-table:not([class*=-cozy]).fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table[class*=-condensed].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table[class*=-condensed].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table[class*=-compact].fd-table--tree .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl],[dir=rtl] .fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"],.fdp-table[class*=-compact].fd-table--group .fd-table__body .fd-table__cell--expand[data-nesting-level=\"20\"][dir=rtl]{padding-left:.5rem;padding-right:10.75rem}.fd-table__intersection-spy{position:relative}.fdp-table--no-outer-border.fd-table--no-vertical-borders .fd-table__cell.is-last-child,.fdp-table--no-outer-border.fd-table--no-vertical-borders .fd-table__cell:last-child{border-left-style:none}.fd-table--no-vertical-borders .fd-table__cell:first-child{border-inline-start:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}th.fd-table__cell .fd-table__inner{font-weight:700}.fd-tr-hovered{background-color:var(--sapList_Hover_Background)!important}.fdp-table__body--disable-scroll{overflow:hidden!important}.fd-toolbar__group{gap:.5rem;display:flex;align-items:center}fdp-settings-dialog-settings fieldset{margin:0;padding:0;border:none}fdp-settings-dialog-settings fieldset legend{width:100%}\n/*! Bundled license information:\n\nfundamental-styles/dist/scrollbar.css:\n (*!\n * Fundamental Library Styles v0.41.8\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
6047
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.TableService }, { type: i1.TableScrollDispatcherService }, { type: i1.TableColumnResizeService }, { type: i1$3.ContentDensityObserver }, { type: i0.Injector }, { type: i3.TabbableElementService }, { type: i4.LiveAnnouncer }], propDecorators: { name: [{
6859
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TableService }, { type: i1.TableScrollDispatcherService }, { type: i1.TableColumnResizeService }, { type: i1$3.ContentDensityObserver }, { type: i0.Injector }, { type: i3.TabbableElementService }, { type: i4.LiveAnnouncer }], propDecorators: { name: [{
6048
6860
  type: Input
6049
6861
  }], id: [{
6050
6862
  type: Input
@@ -6388,5 +7200,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
6388
7200
  * Generated bundle index. Do not edit.
6389
7201
  */
6390
7202
 
6391
- export { FILTERS_VIEW_STEP_TOKEN, FilterCustomComponent, FilterMultiSelectComponent, FilterRule, FilterRuleComponent, FilterSingleSelectComponent, FilterStepComponent, FiltersComponent, FiltersListStepComponent, GetAvailableSortColumnsPipe, GroupingComponent, IsColumnHasHeaderMenuPipe, NOT_FILTERED_OPTION_VALUE, NoDataWrapperComponent, P13ColumnsDialogComponent, P13FilteringDialogComponent, P13GroupingDialogComponent, P13SortingDialogComponent, PlatformTableColumnResizerComponent, PlatformTableModule, RESETTABLE_TOKEN, ResetButtonComponent, SortingComponent, TABLE_TOOLBAR, TableCellHeaderPopoverComponent, TableColumnComponent, TableComponent, TableEditableCellComponent, TableFooterRowComponent, TableGroupRowComponent, TableGrowingButtonComponent, TableHeaderCellContentComponent, TableHeaderRowComponent, TableP13ColumnsComponent, TableP13DialogComponent, TableP13FilterComponent, TableP13GroupComponent, TableP13SortComponent, TablePoppingRowComponent, TableRowComponent, TableToolbarActionsComponent, TableToolbarComponent, TableToolbarLeftActionsComponent, TableToolbarTemplateDirective, TableViewSettingsDialogComponent, TableViewSettingsFilterComponent, dialogConfig };
7203
+ export { FILTERS_VIEW_STEP_TOKEN, FilterCustomComponent, FilterMultiSelectComponent, FilterRule, FilterRuleComponent, FilterSingleSelectComponent, FilterStepComponent, FiltersComponent, FiltersListStepComponent, GetAvailableSortColumnsPipe, GroupingComponent, IncludeExcludeFiltersComponent, IsColumnHasHeaderMenuPipe, NOT_FILTERED_OPTION_VALUE, NoDataWrapperComponent, P13ColumnsDialogComponent, P13FilteringDialogComponent, P13GroupingDialogComponent, P13SortingDialogComponent, PlatformTableColumnResizerComponent, PlatformTableModule, RESETTABLE_TOKEN, ResetButtonComponent, SortingComponent, TABLE_TOOLBAR, TableCellHeaderPopoverComponent, TableColumnComponent, TableComponent, TableEditableCellComponent, TableFooterRowComponent, TableGroupRowComponent, TableGrowingButtonComponent, TableHeaderCellContentComponent, TableHeaderRowComponent, TableP13ColumnsComponent, TableP13DialogComponent, TableP13FilterComponent, TableP13GroupComponent, TableP13SortComponent, TablePoppingRowComponent, TableRowComponent, TableToolbarActionsComponent, TableToolbarComponent, TableToolbarLeftActionsComponent, TableToolbarTemplateDirective, TableViewSettingsDialogComponent, TableViewSettingsFilterComponent, dialogConfig };
6392
7204
  //# sourceMappingURL=fundamental-ngx-platform-table.mjs.map