@skyux/data-manager 13.5.2 → 13.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule, Injectable, inject, ChangeDetectorRef, isStandalone, ChangeDetectionStrategy, Component, input, computed, HostBinding, Input } from '@angular/core';
2
+ import { NgModule, Injectable, inject, ChangeDetectorRef, isStandalone, ChangeDetectionStrategy, Component, input, computed, HostBinding, Input, DestroyRef, Directive } from '@angular/core';
3
3
  import * as i2$2 from '@skyux/indicators';
4
4
  import { SkyTextHighlightDirective, SkyStatusIndicatorModule } from '@skyux/indicators';
5
5
  import * as i2$1 from '@skyux/lists';
6
- import { SkyFilterModule, SkySortModule, SkyRepeaterModule } from '@skyux/lists';
6
+ import { SkyFilterModule, SkySortModule, SkyRepeaterModule, SkyFilterStateService } from '@skyux/lists';
7
7
  import * as i1$2 from '@skyux/modals';
8
8
  import { SkyModalService, SkyModalLegacyService, SkyModalInstance, SkyModalModule } from '@skyux/modals';
9
9
  import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
@@ -23,6 +23,7 @@ import { SkyToolbarModule, SkyBackToTopMessageType, SkyBackToTopModule } from '@
23
23
  import * as i5 from '@skyux/lookup';
24
24
  import { SkySearchModule } from '@skyux/lookup';
25
25
  import { CommonModule } from '@angular/common';
26
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
26
27
 
27
28
  // TODO: In a future breaking change convert this to an interface
28
29
  /**
@@ -772,7 +773,7 @@ class SkyDataManagerToolbarComponent {
772
773
  }
773
774
  }
774
775
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
775
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: SkyDataManagerToolbarComponent, isStandalone: true, selector: "sky-data-manager-toolbar", ngImport: i0, template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "iconName", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyDataManagerResourcesModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyFilterModule }, { kind: "component", type: i2$1.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "ariaLabel", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { kind: "ngmodule", type: SkyRadioModule }, { kind: "component", type: i2.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "helpPopoverContent", "helpPopoverTitle", "iconName", "radioType", "labelText", "labelHidden", "hintText", "helpKey"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i2.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "headingLevel", "headingStyle", "name", "required", "stacked", "value", "tabIndex", "headingText", "headingHidden", "hintText", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i5.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "ngmodule", type: SkySortModule }, { kind: "component", type: i2$1.λ14, selector: "sky-sort", inputs: ["ariaLabel", "showButtonText"] }, { kind: "component", type: i2$1.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i6.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i6.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i6.λ40, selector: "sky-toolbar-view-actions" }, { kind: "pipe", type: i7.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
776
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: SkyDataManagerToolbarComponent, isStandalone: true, selector: "sky-data-manager-toolbar", ngImport: i0, template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n\n <ng-content select=\"sky-filter-bar\" />\n <ng-content select=\"sky-list-summary\" />\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "iconName", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyDataManagerResourcesModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyFilterModule }, { kind: "component", type: i2$1.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "ariaLabel", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { kind: "ngmodule", type: SkyRadioModule }, { kind: "component", type: i2.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "helpPopoverContent", "helpPopoverTitle", "iconName", "radioType", "labelText", "labelHidden", "hintText", "helpKey"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i2.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "headingLevel", "headingStyle", "name", "required", "stacked", "value", "tabIndex", "headingText", "headingHidden", "hintText", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i5.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "ngmodule", type: SkySortModule }, { kind: "component", type: i2$1.λ14, selector: "sky-sort", inputs: ["ariaLabel", "showButtonText"] }, { kind: "component", type: i2$1.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i6.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i6.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i6.λ40, selector: "sky-toolbar-view-actions" }, { kind: "pipe", type: i7.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
776
777
  }
777
778
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerToolbarComponent, decorators: [{
778
779
  type: Component,
@@ -786,7 +787,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
786
787
  SkySearchModule,
787
788
  SkySortModule,
788
789
  SkyToolbarModule,
789
- ], template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"] }]
790
+ ], template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n\n <ng-content select=\"sky-filter-bar\" />\n <ng-content select=\"sky-list-summary\" />\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"] }]
790
791
  }] });
791
792
 
792
793
  const VIEWKEEPER_CLASSES_DEFAULT = ['.sky-data-manager-toolbar'];
@@ -1163,6 +1164,102 @@ const SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS = [
1163
1164
  },
1164
1165
  ];
1165
1166
 
1167
+ /**
1168
+ * Concrete implementation of SkyFilterStateService that manages filter state
1169
+ * for integration between list components and data managers.
1170
+ * @internal
1171
+ */
1172
+ class SkyDataManagerFilterStateService {
1173
+ #filterStateChange = new ReplaySubject(1);
1174
+ updateFilterState(data, sourceId) {
1175
+ const nextState = {
1176
+ appliedFilters: data.appliedFilters,
1177
+ selectedFilterIds: data.selectedFilterIds,
1178
+ };
1179
+ this.#filterStateChange.next({
1180
+ filterState: nextState,
1181
+ sourceId: sourceId,
1182
+ });
1183
+ }
1184
+ getFilterStateUpdates(sourceId) {
1185
+ return this.#filterStateChange.pipe(filter((c) => c.sourceId !== sourceId), map((c) => c.filterState));
1186
+ }
1187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerFilterStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1188
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerFilterStateService }); }
1189
+ }
1190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerFilterStateService, decorators: [{
1191
+ type: Injectable
1192
+ }] });
1193
+
1194
+ /**
1195
+ * A directive applied to a filtering component that enables integration with a data manager.
1196
+ */
1197
+ class SkyDataManagerFilterControllerDirective {
1198
+ #currentDataState = new SkyDataManagerState({});
1199
+ #dataManagerService = inject(SkyDataManagerService);
1200
+ #adapterService = inject(SkyFilterStateService);
1201
+ #destroyRef = inject(DestroyRef);
1202
+ #sourceId = 'skyDataManagerFilterController';
1203
+ ngOnInit() {
1204
+ // Subscribe to data manager state changes to update the adapter
1205
+ this.#dataManagerService
1206
+ .getDataStateUpdates(this.#sourceId)
1207
+ .pipe(takeUntilDestroyed(this.#destroyRef))
1208
+ .subscribe((dataState) => {
1209
+ this.#currentDataState = dataState;
1210
+ this.#updateAdapterFromDataState(dataState);
1211
+ });
1212
+ // Subscribe to adapter changes (excluding those this controller originated)
1213
+ this.#adapterService
1214
+ .getFilterStateUpdates(this.#sourceId)
1215
+ .pipe(takeUntilDestroyed(this.#destroyRef))
1216
+ .subscribe((data) => {
1217
+ this.#updateDataManagerFromAdapter(data);
1218
+ });
1219
+ }
1220
+ /**
1221
+ * Updates the adapter's applied filters based on the data manager state.
1222
+ */
1223
+ #updateAdapterFromDataState(dataState) {
1224
+ if (dataState.filterData?.filters) {
1225
+ this.#adapterService.updateFilterState(dataState.filterData.filters, this.#sourceId);
1226
+ }
1227
+ }
1228
+ /**
1229
+ * Updates the data manager state based on adapter changes.
1230
+ */
1231
+ #updateDataManagerFromAdapter(filters) {
1232
+ const filterData = {
1233
+ filtersApplied: !!(filters?.appliedFilters && filters.appliedFilters.length > 0),
1234
+ filters,
1235
+ };
1236
+ this.#currentDataState.filterData = filterData;
1237
+ // Update the data manager state
1238
+ this.#dataManagerService.updateDataState(this.#currentDataState, this.#sourceId);
1239
+ }
1240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerFilterControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1241
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: SkyDataManagerFilterControllerDirective, isStandalone: true, selector: "[skyDataManagerFilterController]", providers: [
1242
+ SkyDataManagerFilterStateService,
1243
+ {
1244
+ provide: SkyFilterStateService,
1245
+ useExisting: SkyDataManagerFilterStateService,
1246
+ },
1247
+ ], ngImport: i0 }); }
1248
+ }
1249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerFilterControllerDirective, decorators: [{
1250
+ type: Directive,
1251
+ args: [{
1252
+ selector: '[skyDataManagerFilterController]',
1253
+ providers: [
1254
+ SkyDataManagerFilterStateService,
1255
+ {
1256
+ provide: SkyFilterStateService,
1257
+ useExisting: SkyDataManagerFilterStateService,
1258
+ },
1259
+ ],
1260
+ }]
1261
+ }] });
1262
+
1166
1263
  /**
1167
1264
  * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are
1168
1265
  * rendered after the standard toolbar actions and before the search box. Each item should be
@@ -1223,12 +1320,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1223
1320
  class SkyDataManagerModule {
1224
1321
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1225
1322
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: SkyDataManagerModule, imports: [SkyDataManagerComponent,
1323
+ SkyDataManagerFilterControllerDirective,
1226
1324
  SkyDataManagerToolbarComponent,
1227
1325
  SkyDataManagerToolbarLeftItemComponent,
1228
1326
  SkyDataManagerToolbarPrimaryItemComponent,
1229
1327
  SkyDataManagerToolbarRightItemComponent,
1230
1328
  SkyDataManagerToolbarSectionComponent,
1231
1329
  SkyDataViewComponent], exports: [SkyDataManagerComponent,
1330
+ SkyDataManagerFilterControllerDirective,
1232
1331
  SkyDataManagerToolbarComponent,
1233
1332
  SkyDataManagerToolbarLeftItemComponent,
1234
1333
  SkyDataManagerToolbarPrimaryItemComponent,
@@ -1246,6 +1345,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1246
1345
  args: [{
1247
1346
  imports: [
1248
1347
  SkyDataManagerComponent,
1348
+ SkyDataManagerFilterControllerDirective,
1249
1349
  SkyDataManagerToolbarComponent,
1250
1350
  SkyDataManagerToolbarLeftItemComponent,
1251
1351
  SkyDataManagerToolbarPrimaryItemComponent,
@@ -1255,6 +1355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1255
1355
  ],
1256
1356
  exports: [
1257
1357
  SkyDataManagerComponent,
1358
+ SkyDataManagerFilterControllerDirective,
1258
1359
  SkyDataManagerToolbarComponent,
1259
1360
  SkyDataManagerToolbarLeftItemComponent,
1260
1361
  SkyDataManagerToolbarPrimaryItemComponent,
@@ -1270,5 +1371,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1270
1371
  * Generated bundle index. Do not edit.
1271
1372
  */
1272
1373
 
1273
- export { SkyDataManagerColumnPickerSortStrategy, SkyDataManagerFilterModalContext, SkyDataManagerModule, SkyDataManagerService, SkyDataManagerState, SkyDataViewState, SkyDataManagerColumnPickerComponent as λ1, SkyDataManagerComponent as λ2, SkyDataManagerToolbarLeftItemComponent as λ3, SkyDataManagerToolbarPrimaryItemComponent as λ4, SkyDataManagerToolbarRightItemComponent as λ5, SkyDataManagerToolbarSectionComponent as λ6, SkyDataManagerToolbarComponent as λ7, SkyDataViewComponent as λ8 };
1374
+ export { SkyDataManagerColumnPickerSortStrategy, SkyDataManagerFilterModalContext, SkyDataManagerFilterStateService, SkyDataManagerModule, SkyDataManagerService, SkyDataManagerState, SkyDataViewState, SkyDataManagerColumnPickerComponent as λ1, SkyDataManagerComponent as λ2, SkyDataManagerToolbarLeftItemComponent as λ3, SkyDataManagerToolbarPrimaryItemComponent as λ4, SkyDataManagerToolbarRightItemComponent as λ5, SkyDataManagerToolbarSectionComponent as λ6, SkyDataManagerToolbarComponent as λ7, SkyDataViewComponent as λ8, SkyDataManagerFilterControllerDirective as λ9 };
1274
1375
  //# sourceMappingURL=skyux-data-manager.mjs.map