@fundamental-ngx/platform 0.62.0-rc.32 → 0.62.0-rc.34

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.
@@ -1970,11 +1970,20 @@ class TableToolbarComponent {
1970
1970
  }, ...(ngDevMode ? [{ debugName: "headingLevelParsed" }] : []));
1971
1971
  /** @hidden */
1972
1972
  this.tableLoading$ = inject(TableService).tableLoading$;
1973
+ /** @hidden Title text extracted from titleTemplate for accessibility. */
1974
+ this.titleText = signal('', ...(ngDevMode ? [{ debugName: "titleText" }] : []));
1973
1975
  /** @hidden */
1974
1976
  this._destroyRef = inject(DestroyRef);
1975
1977
  this._listenToTableEvents();
1976
1978
  }
1977
1979
  /** @hidden */
1980
+ ngAfterViewChecked() {
1981
+ // Set up observer once the element exists in the DOM
1982
+ if (!this._titleObserver) {
1983
+ this._setupTitleObserver();
1984
+ }
1985
+ }
1986
+ /** @hidden */
1978
1987
  submitSearch(search) {
1979
1988
  this._table.search(search);
1980
1989
  }
@@ -2046,8 +2055,29 @@ class TableToolbarComponent {
2046
2055
  this._searchInputText = state.searchInput?.text ?? '';
2047
2056
  });
2048
2057
  }
2058
+ /** @hidden Sets up a MutationObserver to watch for title content changes. */
2059
+ _setupTitleObserver() {
2060
+ const titleElement = document.getElementById(this.tableToolbarTitleId);
2061
+ if (titleElement) {
2062
+ this._updateTitleText(titleElement);
2063
+ this._titleObserver = new MutationObserver(() => this._updateTitleText(titleElement));
2064
+ this._titleObserver.observe(titleElement, {
2065
+ childList: true,
2066
+ subtree: true,
2067
+ characterData: true
2068
+ });
2069
+ this._destroyRef.onDestroy(() => this._titleObserver?.disconnect());
2070
+ }
2071
+ }
2072
+ /** @hidden Updates the title text from the rendered title element. */
2073
+ _updateTitleText(titleElement) {
2074
+ const text = titleElement.textContent?.trim() || '';
2075
+ if (text !== this.titleText()) {
2076
+ this.titleText.set(text);
2077
+ }
2078
+ }
2049
2079
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TableToolbarComponent, deps: [{ token: i1.TableService }, { token: i1.Table }], target: i0.ɵɵFactoryTarget.Component }); }
2050
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: TableToolbarComponent, isStandalone: true, selector: "fdp-table-toolbar", inputs: { shouldOverflow: { classPropertyName: "shouldOverflow", publicName: "shouldOverflow", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, searchFieldAriaLabel: { classPropertyName: "searchFieldAriaLabel", publicName: "searchFieldAriaLabel", isSignal: false, isRequired: false, transformFunction: null }, hideItemCount: { classPropertyName: "hideItemCount", publicName: "hideItemCount", isSignal: false, isRequired: false, transformFunction: null }, hideSearchInput: { classPropertyName: "hideSearchInput", publicName: "hideSearchInput", isSignal: false, isRequired: false, transformFunction: null }, searchFieldPlaceholder: { classPropertyName: "searchFieldPlaceholder", publicName: "searchFieldPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, showExpandCollapseButtons: { classPropertyName: "showExpandCollapseButtons", publicName: "showExpandCollapseButtons", isSignal: false, isRequired: false, transformFunction: null }, searchSuggestions: { classPropertyName: "searchSuggestions", publicName: "searchSuggestions", isSignal: false, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: false, isRequired: false, transformFunction: null }, disableRefresh: { classPropertyName: "disableRefresh", publicName: "disableRefresh", isSignal: false, isRequired: false, transformFunction: null }, disableSearch: { classPropertyName: "disableSearch", publicName: "disableSearch", isSignal: false, isRequired: false, transformFunction: null }, searchFieldInputText: { classPropertyName: "searchFieldInputText", publicName: "searchFieldInputText", isSignal: false, isRequired: false, transformFunction: null }, titleTemplate: { classPropertyName: "titleTemplate", publicName: "titleTemplate", isSignal: true, isRequired: false, transformFunction: null }, headingLevel: { classPropertyName: "headingLevel", publicName: "headingLevel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchFieldInputChange: "searchFieldInputChange" }, providers: [{ provide: TABLE_TOOLBAR, useExisting: TableToolbarComponent }], queries: [{ propertyName: "tableToolbarActionsComponent", first: true, predicate: TableToolbarActionsComponent, descendants: true }, { propertyName: "_tableToolbarLeftActionsComponent", first: true, predicate: TableToolbarLeftActionsComponent, descendants: true }], viewQueries: [{ propertyName: "contentTemplateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template\n fdpTableToolbarTemplate\n let-counter=\"counter\"\n let-sortable=\"sortable\"\n let-filterable=\"filterable\"\n let-groupable=\"groupable\"\n let-columns=\"columns\"\n let-settings=\"settings\"\n let-hasAnyActions=\"hasAnyActions\"\n let-appliedFilters=\"appliedFilters\"\n>\n <fd-toolbar\n fdType=\"transparent\"\n [titleId]=\"tableToolbarTitleId\"\n [title]=\"titleTemplate() ? '' : title && !hideItemCount ? title + ' (' + counter() + ')' : title\"\n [shouldOverflow]=\"shouldOverflow\"\n [headingLevel]=\"headingLevel()\"\n >\n @if (titleTemplate()) {\n <span\n fd-title\n role=\"heading\"\n [headerSize]=\"4\"\n [attr.aria-level]=\"headingLevelParsed()\"\n class=\"fd-toolbar__title\"\n [id]=\"tableToolbarTitleId\"\n >\n <ng-template\n [ngTemplateOutlet]=\"titleTemplate()\"\n [ngTemplateOutletContext]=\"{ counter: counter }\"\n ></ng-template>\n </span>\n }\n @if (_tableToolbarLeftActionsComponent) {\n <div fd-toolbar-item class=\"fd-toolbar__group\">\n @if (!!title || !!titleTemplate() || !hideItemCount) {\n <fd-toolbar-separator></fd-toolbar-separator>\n }\n <ng-template [ngTemplateOutlet]=\"_tableToolbarLeftActionsComponent._contentTemplateRef\"></ng-template>\n </div>\n }\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (!hideSearchInput) {\n <fdp-search-field\n fd-toolbar-item\n [style.min-width.rem]=\"15.5\"\n [placeholder]=\"\n searchFieldPlaceholder\n ? searchFieldPlaceholder\n : ('platformTable.toolbarSearchPlaceholder' | fdTranslate)()\n \"\n [inputText]=\"_searchInputText\"\n [disabled]=\"!!(tableLoading$ | async)\"\n [suggestions]=\"searchSuggestions\"\n [disableRefresh]=\"disableRefresh\"\n [disableSearch]=\"disableSearch\"\n [ariaLabel]=\"searchFieldAriaLabel\"\n [ariaLabelledBy]=\"searchFieldAriaLabel ? null : tableToolbarTitleId\"\n (searchSubmit)=\"submitSearch($event)\"\n (cancelSearch)=\"submitSearch($event)\"\n [disableSuggestionsFoundAnnouncer]=\"true\"\n (inputChange)=\"searchInputChanged($event)\"\n ></fdp-search-field>\n }\n @if (editMode !== 'none') {\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionCreateButtonLabel' | fdTranslate)()\"\n (click)=\"_addRow()\"\n ></button>\n @if (_showSaveButton) {\n @if (_showSaveButton) {\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionSaveButtonLabel' | fdTranslate)()\"\n (click)=\"_saveRows()\"\n ></button>\n }\n <fd-toolbar-separator></fd-toolbar-separator>\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionCancelButtonLabel' | fdTranslate)()\"\n (click)=\"_cancelEditing()\"\n fdType=\"transparent\"\n ></button>\n }\n @if (tableToolbarActionsComponent || hasAnyActions()) {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n }\n }\n @if (tableToolbarActionsComponent) {\n <span fd-toolbar-item class=\"fdp-table-toolbar-actions\">\n <ng-template [ngTemplateOutlet]=\"tableToolbarActionsComponent.contentTemplateRef\"></ng-template>\n </span>\n }\n @if (showExpandCollapseButtons || hasAnyActions()) {\n @if (tableToolbarActionsComponent) {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n }\n @if (showExpandCollapseButtons) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"expand-all\"\n (click)=\"_expandAll()\"\n [title]=\"('platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n ></button>\n <button\n fd-button\n fd-toolbar-item\n glyph=\"collapse-all\"\n (click)=\"_collapseAll()\"\n [title]=\"('platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n ></button>\n }\n @if (settings()) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"('platformTable.toolbarActionButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openSorting()\"\n ></button>\n }\n @if (sortable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"sort\"\n [title]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openSorting()\"\n ></button>\n }\n @if (filterable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"filter\"\n [title]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openFiltering()\"\n ></button>\n }\n @if (groupable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"group-2\"\n [title]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openGrouping()\"\n ></button>\n }\n @if (columns()) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openColumns()\"\n ></button>\n }\n }\n </fd-toolbar>\n @if (appliedFilters().length) {\n <fd-toolbar\n fdType=\"info\"\n class=\"fdp-table__applied-filters-toolbar\"\n [active]=\"true\"\n [titleId]=\"tableToolbarTitleId\"\n [shouldOverflow]=\"shouldOverflow\"\n [headingLevel]=\"headingLevel()\"\n >\n <label fd-toolbar-label>\n {{ ('platformTable.filteredBy' | fdTranslate)() }}:\n {{ _formatAppliedFilters(appliedFilters()) }}\n </label>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <button\n fdCompact\n (click)=\"_closeFilterToolbar()\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"('platformTable.clearFilters' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.clearFilters' | fdTranslate)()\"\n ></button>\n </fd-toolbar>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "forceSearchButton", "disableSuggestionsFoundAnnouncer", "showCategoryAllOption", "initialSuggestionTitle", "initialSuggestionSubline", "initialSuggestionEmptyTitle", "initialSuggestionEmptySubline", "suggestionFooter", "searchResultsEmptyTemplate", "searchResultsEmptyDefaultSuggestions", "showAdvancedFilter", "allowEmptySearch", "enableSelection", "suggestionsLoading", "busyIndicatorTitle", "busyIndicatorAriaValueText"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange", "advancedFilterButtonClick", "categoryModeChange", "appearanceChange", "disableRefreshChange", "inputTextChange", "forceSearchButtonChange"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "directive", type: TableToolbarTemplateDirective, selector: "[fdpTableToolbarTemplate]" }, { kind: "directive", type: ToolbarLabelDirective, selector: "[fd-toolbar-label]" }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2080
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: TableToolbarComponent, isStandalone: true, selector: "fdp-table-toolbar", inputs: { shouldOverflow: { classPropertyName: "shouldOverflow", publicName: "shouldOverflow", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, searchFieldAriaLabel: { classPropertyName: "searchFieldAriaLabel", publicName: "searchFieldAriaLabel", isSignal: false, isRequired: false, transformFunction: null }, hideItemCount: { classPropertyName: "hideItemCount", publicName: "hideItemCount", isSignal: false, isRequired: false, transformFunction: null }, hideSearchInput: { classPropertyName: "hideSearchInput", publicName: "hideSearchInput", isSignal: false, isRequired: false, transformFunction: null }, searchFieldPlaceholder: { classPropertyName: "searchFieldPlaceholder", publicName: "searchFieldPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, showExpandCollapseButtons: { classPropertyName: "showExpandCollapseButtons", publicName: "showExpandCollapseButtons", isSignal: false, isRequired: false, transformFunction: null }, searchSuggestions: { classPropertyName: "searchSuggestions", publicName: "searchSuggestions", isSignal: false, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: false, isRequired: false, transformFunction: null }, disableRefresh: { classPropertyName: "disableRefresh", publicName: "disableRefresh", isSignal: false, isRequired: false, transformFunction: null }, disableSearch: { classPropertyName: "disableSearch", publicName: "disableSearch", isSignal: false, isRequired: false, transformFunction: null }, searchFieldInputText: { classPropertyName: "searchFieldInputText", publicName: "searchFieldInputText", isSignal: false, isRequired: false, transformFunction: null }, titleTemplate: { classPropertyName: "titleTemplate", publicName: "titleTemplate", isSignal: true, isRequired: false, transformFunction: null }, headingLevel: { classPropertyName: "headingLevel", publicName: "headingLevel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchFieldInputChange: "searchFieldInputChange" }, providers: [{ provide: TABLE_TOOLBAR, useExisting: TableToolbarComponent }], queries: [{ propertyName: "tableToolbarActionsComponent", first: true, predicate: TableToolbarActionsComponent, descendants: true }, { propertyName: "_tableToolbarLeftActionsComponent", first: true, predicate: TableToolbarLeftActionsComponent, descendants: true }], viewQueries: [{ propertyName: "contentTemplateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template\n fdpTableToolbarTemplate\n let-counter=\"counter\"\n let-sortable=\"sortable\"\n let-filterable=\"filterable\"\n let-groupable=\"groupable\"\n let-columns=\"columns\"\n let-settings=\"settings\"\n let-hasAnyActions=\"hasAnyActions\"\n let-appliedFilters=\"appliedFilters\"\n>\n <fd-toolbar\n fdType=\"transparent\"\n [titleId]=\"tableToolbarTitleId\"\n [title]=\"titleTemplate() ? '' : title && !hideItemCount ? title + ' (' + counter() + ')' : title\"\n [shouldOverflow]=\"shouldOverflow\"\n [headingLevel]=\"headingLevel()\"\n >\n @if (titleTemplate()) {\n <span\n fd-title\n role=\"heading\"\n [headerSize]=\"4\"\n [attr.aria-level]=\"headingLevelParsed()\"\n [attr.title]=\"titleText()\"\n [attr.aria-label]=\"titleText()\"\n class=\"fd-toolbar__title fd-toolbar__title--truncate\"\n [id]=\"tableToolbarTitleId\"\n >\n <ng-template\n [ngTemplateOutlet]=\"titleTemplate()\"\n [ngTemplateOutletContext]=\"{ counter: counter }\"\n ></ng-template>\n </span>\n }\n @if (_tableToolbarLeftActionsComponent) {\n <div fd-toolbar-item class=\"fd-toolbar__group\">\n @if (!!title || !!titleTemplate() || !hideItemCount) {\n <fd-toolbar-separator></fd-toolbar-separator>\n }\n <ng-template [ngTemplateOutlet]=\"_tableToolbarLeftActionsComponent._contentTemplateRef\"></ng-template>\n </div>\n }\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (!hideSearchInput) {\n <fdp-search-field\n fd-toolbar-item\n [style.min-width.rem]=\"15.5\"\n [placeholder]=\"\n searchFieldPlaceholder\n ? searchFieldPlaceholder\n : ('platformTable.toolbarSearchPlaceholder' | fdTranslate)()\n \"\n [inputText]=\"_searchInputText\"\n [disabled]=\"!!(tableLoading$ | async)\"\n [suggestions]=\"searchSuggestions\"\n [disableRefresh]=\"disableRefresh\"\n [disableSearch]=\"disableSearch\"\n [ariaLabel]=\"searchFieldAriaLabel\"\n [ariaLabelledBy]=\"searchFieldAriaLabel ? null : tableToolbarTitleId\"\n (searchSubmit)=\"submitSearch($event)\"\n (cancelSearch)=\"submitSearch($event)\"\n [disableSuggestionsFoundAnnouncer]=\"true\"\n (inputChange)=\"searchInputChanged($event)\"\n ></fdp-search-field>\n }\n @if (editMode !== 'none') {\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionCreateButtonLabel' | fdTranslate)()\"\n (click)=\"_addRow()\"\n ></button>\n @if (_showSaveButton) {\n @if (_showSaveButton) {\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionSaveButtonLabel' | fdTranslate)()\"\n (click)=\"_saveRows()\"\n ></button>\n }\n <fd-toolbar-separator></fd-toolbar-separator>\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionCancelButtonLabel' | fdTranslate)()\"\n (click)=\"_cancelEditing()\"\n fdType=\"transparent\"\n ></button>\n }\n @if (tableToolbarActionsComponent || hasAnyActions()) {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n }\n }\n @if (tableToolbarActionsComponent) {\n <span fd-toolbar-item class=\"fdp-table-toolbar-actions\">\n <ng-template [ngTemplateOutlet]=\"tableToolbarActionsComponent.contentTemplateRef\"></ng-template>\n </span>\n }\n @if (showExpandCollapseButtons || hasAnyActions()) {\n @if (tableToolbarActionsComponent) {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n }\n @if (showExpandCollapseButtons) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"expand-all\"\n (click)=\"_expandAll()\"\n [title]=\"('platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n ></button>\n <button\n fd-button\n fd-toolbar-item\n glyph=\"collapse-all\"\n (click)=\"_collapseAll()\"\n [title]=\"('platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n ></button>\n }\n @if (settings()) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"('platformTable.toolbarActionButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openSorting()\"\n ></button>\n }\n @if (sortable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"sort\"\n [title]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openSorting()\"\n ></button>\n }\n @if (filterable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"filter\"\n [title]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openFiltering()\"\n ></button>\n }\n @if (groupable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"group-2\"\n [title]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openGrouping()\"\n ></button>\n }\n @if (columns()) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openColumns()\"\n ></button>\n }\n }\n </fd-toolbar>\n @if (appliedFilters().length) {\n <fd-toolbar\n fdType=\"info\"\n class=\"fdp-table__applied-filters-toolbar\"\n [active]=\"true\"\n [titleId]=\"tableToolbarTitleId\"\n [shouldOverflow]=\"shouldOverflow\"\n [headingLevel]=\"headingLevel()\"\n >\n <label fd-toolbar-label>\n {{ ('platformTable.filteredBy' | fdTranslate)() }}:\n {{ _formatAppliedFilters(appliedFilters()) }}\n </label>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <button\n fdCompact\n (click)=\"_closeFilterToolbar()\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"('platformTable.clearFilters' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.clearFilters' | fdTranslate)()\"\n ></button>\n </fd-toolbar>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "forceSearchButton", "disableSuggestionsFoundAnnouncer", "showCategoryAllOption", "initialSuggestionTitle", "initialSuggestionSubline", "initialSuggestionEmptyTitle", "initialSuggestionEmptySubline", "suggestionFooter", "searchResultsEmptyTemplate", "searchResultsEmptyDefaultSuggestions", "showAdvancedFilter", "allowEmptySearch", "enableSelection", "suggestionsLoading", "busyIndicatorTitle", "busyIndicatorAriaValueText"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange", "advancedFilterButtonClick", "categoryModeChange", "appearanceChange", "disableRefreshChange", "inputTextChange", "forceSearchButtonChange"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "directive", type: TableToolbarTemplateDirective, selector: "[fdpTableToolbarTemplate]" }, { kind: "directive", type: ToolbarLabelDirective, selector: "[fd-toolbar-label]" }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2051
2081
  }
2052
2082
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TableToolbarComponent, decorators: [{
2053
2083
  type: Component,
@@ -2065,7 +2095,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
2065
2095
  ToolbarLabelDirective,
2066
2096
  ContentDensityDirective,
2067
2097
  TitleComponent
2068
- ], template: "<ng-template\n fdpTableToolbarTemplate\n let-counter=\"counter\"\n let-sortable=\"sortable\"\n let-filterable=\"filterable\"\n let-groupable=\"groupable\"\n let-columns=\"columns\"\n let-settings=\"settings\"\n let-hasAnyActions=\"hasAnyActions\"\n let-appliedFilters=\"appliedFilters\"\n>\n <fd-toolbar\n fdType=\"transparent\"\n [titleId]=\"tableToolbarTitleId\"\n [title]=\"titleTemplate() ? '' : title && !hideItemCount ? title + ' (' + counter() + ')' : title\"\n [shouldOverflow]=\"shouldOverflow\"\n [headingLevel]=\"headingLevel()\"\n >\n @if (titleTemplate()) {\n <span\n fd-title\n role=\"heading\"\n [headerSize]=\"4\"\n [attr.aria-level]=\"headingLevelParsed()\"\n class=\"fd-toolbar__title\"\n [id]=\"tableToolbarTitleId\"\n >\n <ng-template\n [ngTemplateOutlet]=\"titleTemplate()\"\n [ngTemplateOutletContext]=\"{ counter: counter }\"\n ></ng-template>\n </span>\n }\n @if (_tableToolbarLeftActionsComponent) {\n <div fd-toolbar-item class=\"fd-toolbar__group\">\n @if (!!title || !!titleTemplate() || !hideItemCount) {\n <fd-toolbar-separator></fd-toolbar-separator>\n }\n <ng-template [ngTemplateOutlet]=\"_tableToolbarLeftActionsComponent._contentTemplateRef\"></ng-template>\n </div>\n }\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (!hideSearchInput) {\n <fdp-search-field\n fd-toolbar-item\n [style.min-width.rem]=\"15.5\"\n [placeholder]=\"\n searchFieldPlaceholder\n ? searchFieldPlaceholder\n : ('platformTable.toolbarSearchPlaceholder' | fdTranslate)()\n \"\n [inputText]=\"_searchInputText\"\n [disabled]=\"!!(tableLoading$ | async)\"\n [suggestions]=\"searchSuggestions\"\n [disableRefresh]=\"disableRefresh\"\n [disableSearch]=\"disableSearch\"\n [ariaLabel]=\"searchFieldAriaLabel\"\n [ariaLabelledBy]=\"searchFieldAriaLabel ? null : tableToolbarTitleId\"\n (searchSubmit)=\"submitSearch($event)\"\n (cancelSearch)=\"submitSearch($event)\"\n [disableSuggestionsFoundAnnouncer]=\"true\"\n (inputChange)=\"searchInputChanged($event)\"\n ></fdp-search-field>\n }\n @if (editMode !== 'none') {\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionCreateButtonLabel' | fdTranslate)()\"\n (click)=\"_addRow()\"\n ></button>\n @if (_showSaveButton) {\n @if (_showSaveButton) {\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionSaveButtonLabel' | fdTranslate)()\"\n (click)=\"_saveRows()\"\n ></button>\n }\n <fd-toolbar-separator></fd-toolbar-separator>\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionCancelButtonLabel' | fdTranslate)()\"\n (click)=\"_cancelEditing()\"\n fdType=\"transparent\"\n ></button>\n }\n @if (tableToolbarActionsComponent || hasAnyActions()) {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n }\n }\n @if (tableToolbarActionsComponent) {\n <span fd-toolbar-item class=\"fdp-table-toolbar-actions\">\n <ng-template [ngTemplateOutlet]=\"tableToolbarActionsComponent.contentTemplateRef\"></ng-template>\n </span>\n }\n @if (showExpandCollapseButtons || hasAnyActions()) {\n @if (tableToolbarActionsComponent) {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n }\n @if (showExpandCollapseButtons) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"expand-all\"\n (click)=\"_expandAll()\"\n [title]=\"('platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n ></button>\n <button\n fd-button\n fd-toolbar-item\n glyph=\"collapse-all\"\n (click)=\"_collapseAll()\"\n [title]=\"('platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n ></button>\n }\n @if (settings()) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"('platformTable.toolbarActionButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openSorting()\"\n ></button>\n }\n @if (sortable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"sort\"\n [title]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openSorting()\"\n ></button>\n }\n @if (filterable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"filter\"\n [title]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openFiltering()\"\n ></button>\n }\n @if (groupable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"group-2\"\n [title]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openGrouping()\"\n ></button>\n }\n @if (columns()) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openColumns()\"\n ></button>\n }\n }\n </fd-toolbar>\n @if (appliedFilters().length) {\n <fd-toolbar\n fdType=\"info\"\n class=\"fdp-table__applied-filters-toolbar\"\n [active]=\"true\"\n [titleId]=\"tableToolbarTitleId\"\n [shouldOverflow]=\"shouldOverflow\"\n [headingLevel]=\"headingLevel()\"\n >\n <label fd-toolbar-label>\n {{ ('platformTable.filteredBy' | fdTranslate)() }}:\n {{ _formatAppliedFilters(appliedFilters()) }}\n </label>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <button\n fdCompact\n (click)=\"_closeFilterToolbar()\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"('platformTable.clearFilters' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.clearFilters' | fdTranslate)()\"\n ></button>\n </fd-toolbar>\n }\n</ng-template>\n" }]
2098
+ ], template: "<ng-template\n fdpTableToolbarTemplate\n let-counter=\"counter\"\n let-sortable=\"sortable\"\n let-filterable=\"filterable\"\n let-groupable=\"groupable\"\n let-columns=\"columns\"\n let-settings=\"settings\"\n let-hasAnyActions=\"hasAnyActions\"\n let-appliedFilters=\"appliedFilters\"\n>\n <fd-toolbar\n fdType=\"transparent\"\n [titleId]=\"tableToolbarTitleId\"\n [title]=\"titleTemplate() ? '' : title && !hideItemCount ? title + ' (' + counter() + ')' : title\"\n [shouldOverflow]=\"shouldOverflow\"\n [headingLevel]=\"headingLevel()\"\n >\n @if (titleTemplate()) {\n <span\n fd-title\n role=\"heading\"\n [headerSize]=\"4\"\n [attr.aria-level]=\"headingLevelParsed()\"\n [attr.title]=\"titleText()\"\n [attr.aria-label]=\"titleText()\"\n class=\"fd-toolbar__title fd-toolbar__title--truncate\"\n [id]=\"tableToolbarTitleId\"\n >\n <ng-template\n [ngTemplateOutlet]=\"titleTemplate()\"\n [ngTemplateOutletContext]=\"{ counter: counter }\"\n ></ng-template>\n </span>\n }\n @if (_tableToolbarLeftActionsComponent) {\n <div fd-toolbar-item class=\"fd-toolbar__group\">\n @if (!!title || !!titleTemplate() || !hideItemCount) {\n <fd-toolbar-separator></fd-toolbar-separator>\n }\n <ng-template [ngTemplateOutlet]=\"_tableToolbarLeftActionsComponent._contentTemplateRef\"></ng-template>\n </div>\n }\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (!hideSearchInput) {\n <fdp-search-field\n fd-toolbar-item\n [style.min-width.rem]=\"15.5\"\n [placeholder]=\"\n searchFieldPlaceholder\n ? searchFieldPlaceholder\n : ('platformTable.toolbarSearchPlaceholder' | fdTranslate)()\n \"\n [inputText]=\"_searchInputText\"\n [disabled]=\"!!(tableLoading$ | async)\"\n [suggestions]=\"searchSuggestions\"\n [disableRefresh]=\"disableRefresh\"\n [disableSearch]=\"disableSearch\"\n [ariaLabel]=\"searchFieldAriaLabel\"\n [ariaLabelledBy]=\"searchFieldAriaLabel ? null : tableToolbarTitleId\"\n (searchSubmit)=\"submitSearch($event)\"\n (cancelSearch)=\"submitSearch($event)\"\n [disableSuggestionsFoundAnnouncer]=\"true\"\n (inputChange)=\"searchInputChanged($event)\"\n ></fdp-search-field>\n }\n @if (editMode !== 'none') {\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionCreateButtonLabel' | fdTranslate)()\"\n (click)=\"_addRow()\"\n ></button>\n @if (_showSaveButton) {\n @if (_showSaveButton) {\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionSaveButtonLabel' | fdTranslate)()\"\n (click)=\"_saveRows()\"\n ></button>\n }\n <fd-toolbar-separator></fd-toolbar-separator>\n <button\n fd-button\n fd-toolbar-item\n [label]=\"('platformTable.toolbarActionCancelButtonLabel' | fdTranslate)()\"\n (click)=\"_cancelEditing()\"\n fdType=\"transparent\"\n ></button>\n }\n @if (tableToolbarActionsComponent || hasAnyActions()) {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n }\n }\n @if (tableToolbarActionsComponent) {\n <span fd-toolbar-item class=\"fdp-table-toolbar-actions\">\n <ng-template [ngTemplateOutlet]=\"tableToolbarActionsComponent.contentTemplateRef\"></ng-template>\n </span>\n }\n @if (showExpandCollapseButtons || hasAnyActions()) {\n @if (tableToolbarActionsComponent) {\n <fd-toolbar-separator fd-toolbar-item></fd-toolbar-separator>\n }\n @if (showExpandCollapseButtons) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"expand-all\"\n (click)=\"_expandAll()\"\n [title]=\"('platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n ></button>\n <button\n fd-button\n fd-toolbar-item\n glyph=\"collapse-all\"\n (click)=\"_collapseAll()\"\n [title]=\"('platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n ></button>\n }\n @if (settings()) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"('platformTable.toolbarActionButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openSorting()\"\n ></button>\n }\n @if (sortable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"sort\"\n [title]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionSortButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openSorting()\"\n ></button>\n }\n @if (filterable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"filter\"\n [title]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionFilterButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openFiltering()\"\n ></button>\n }\n @if (groupable()) {\n <button\n fd-button\n fd-toolbar-item\n glyph=\"group-2\"\n [title]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionGroupButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openGrouping()\"\n ></button>\n }\n @if (columns()) {\n <button\n fd-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.toolbarActionColumnsButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n aria-haspopup=\"dialog\"\n (click)=\"openColumns()\"\n ></button>\n }\n }\n </fd-toolbar>\n @if (appliedFilters().length) {\n <fd-toolbar\n fdType=\"info\"\n class=\"fdp-table__applied-filters-toolbar\"\n [active]=\"true\"\n [titleId]=\"tableToolbarTitleId\"\n [shouldOverflow]=\"shouldOverflow\"\n [headingLevel]=\"headingLevel()\"\n >\n <label fd-toolbar-label>\n {{ ('platformTable.filteredBy' | fdTranslate)() }}:\n {{ _formatAppliedFilters(appliedFilters()) }}\n </label>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <button\n fdCompact\n (click)=\"_closeFilterToolbar()\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"('platformTable.clearFilters' | fdTranslate)()\"\n [ariaLabel]=\"('platformTable.clearFilters' | fdTranslate)()\"\n ></button>\n </fd-toolbar>\n }\n</ng-template>\n" }]
2069
2099
  }], ctorParameters: () => [{ type: i1.TableService }, { type: i1.Table }], propDecorators: { shouldOverflow: [{
2070
2100
  type: Input
2071
2101
  }], title: [{