@skyux/filter-bar 14.3.12 → 15.0.0-alpha.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,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule, Injectable, InjectionToken, model, contentChildren, computed, inject, effect, untracked, Component, input, output, EventEmitter, viewChild, TemplateRef, Output, EnvironmentInjector, Injector, runInInjectionContext, DestroyRef } from '@angular/core';
2
+ import { NgModule, Injectable, InjectionToken, model, contentChildren, computed, inject, effect, untracked, ChangeDetectionStrategy, Component, input, output, EventEmitter, viewChild, TemplateRef, Output, EnvironmentInjector, Injector, runInInjectionContext, DestroyRef } from '@angular/core';
3
3
  import { NgTemplateOutlet } from '@angular/common';
4
4
  import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import * as i3 from '@skyux/i18n';
@@ -62,11 +62,11 @@ SkyLibResourcesService.addResources(RESOURCES);
62
62
  * Import into any component library module that needs to use resource strings.
63
63
  */
64
64
  class SkyFilterBarResourcesModule {
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
66
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarResourcesModule, exports: [SkyI18nModule] }); }
67
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarResourcesModule, imports: [SkyI18nModule] }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
66
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarResourcesModule, exports: [SkyI18nModule] }); }
67
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarResourcesModule, imports: [SkyI18nModule] }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarResourcesModule, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarResourcesModule, decorators: [{
70
70
  type: NgModule,
71
71
  args: [{
72
72
  exports: [SkyI18nModule],
@@ -107,10 +107,10 @@ class SkyFilterBarService {
107
107
  this.#filterValueUpdates.next(filter);
108
108
  }
109
109
  }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
111
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarService }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
111
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarService }); }
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarService, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarService, decorators: [{
114
114
  type: Injectable
115
115
  }] });
116
116
 
@@ -136,12 +136,15 @@ class SkyFilterBarComponent {
136
136
  /**
137
137
  * An array of filter items containing the IDs and values of the filters that have been set.
138
138
  */
139
- this.appliedFilters = model(...(ngDevMode ? [undefined, { debugName: "appliedFilters" }] : []));
139
+ this.appliedFilters = model(/* @ts-ignore */
140
+ ...(ngDevMode ? [undefined, { debugName: "appliedFilters" }] : /* istanbul ignore next */ []));
140
141
  /**
141
142
  * An array of filter IDs that the user has selected using the built-in selection modal. Setting this input to undefined results in all filters being displayed.
142
143
  */
143
- this.selectedFilterIds = model(...(ngDevMode ? [undefined, { debugName: "selectedFilterIds" }] : []));
144
- this.filterItems = contentChildren(SKY_FILTER_ITEM, ...(ngDevMode ? [{ debugName: "filterItems" }] : []));
144
+ this.selectedFilterIds = model(/* @ts-ignore */
145
+ ...(ngDevMode ? [undefined, { debugName: "selectedFilterIds" }] : /* istanbul ignore next */ []));
146
+ this.filterItems = contentChildren(SKY_FILTER_ITEM, /* @ts-ignore */
147
+ ...(ngDevMode ? [{ debugName: "filterItems" }] : /* istanbul ignore next */ []));
145
148
  this.visibleFilters = computed(() => {
146
149
  const items = this.filterItems();
147
150
  const selectedFilters = this.selectedFilterIds();
@@ -159,7 +162,8 @@ class SkyFilterBarComponent {
159
162
  }
160
163
  }
161
164
  return visibleFilters.filter((item) => !!item);
162
- }, ...(ngDevMode ? [{ debugName: "visibleFilters" }] : []));
165
+ }, /* @ts-ignore */
166
+ ...(ngDevMode ? [{ debugName: "visibleFilters" }] : /* istanbul ignore next */ []));
163
167
  this.#confirmSvc = inject(SkyConfirmService);
164
168
  this.#filterBarSvc = inject(SkyFilterBarService);
165
169
  this.#filterStateSvc = inject(SkyFilterStateService, { optional: true });
@@ -373,17 +377,17 @@ class SkyFilterBarComponent {
373
377
  }, this.#sourceId);
374
378
  }
375
379
  }
376
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
377
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SkyFilterBarComponent, isStandalone: true, selector: "sky-filter-bar", inputs: { appliedFilters: { classPropertyName: "appliedFilters", publicName: "appliedFilters", isSignal: true, isRequired: false, transformFunction: null }, selectedFilterIds: { classPropertyName: "selectedFilterIds", publicName: "selectedFilterIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { appliedFilters: "appliedFiltersChange", selectedFilterIds: "selectedFilterIdsChange" }, providers: [SkyFilterBarService], queries: [{ propertyName: "filterItems", predicate: SKY_FILTER_ITEM, isSignal: true }], ngImport: i0, template: "<sky-toolbar class=\"sky-filter-bar-toolbar\">\n <sky-toolbar-item>\n <span class=\"sky-font-data-label\">{{\n 'skyux_filter_bar_filter_label' | skyLibResources\n }}</span>\n </sky-toolbar-item>\n @if (!!selectedFilterIds()) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-filter-picker sky-btn sky-filter-bar-btn sky-btn-default sky-btn-icon\"\n (click)=\"openFilters()\"\n >\n <sky-icon iconName=\"filter\" />\n </button>\n </sky-toolbar-item>\n }\n @for (filter of visibleFilters(); track filter.filterId()) {\n <sky-toolbar-item>\n <ng-container *ngTemplateOutlet=\"filter.templateRef() ?? null\" />\n </sky-toolbar-item>\n }\n @if (appliedFilters()?.length) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-clear-filters sky-btn sky-filter-bar-btn sky-btn-link\"\n (click)=\"clearFilters()\"\n >\n {{ 'skyux_filter_bar_clear_filters_label' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n</sky-toolbar>\n", styles: [":host{display:block}:host-context(.sky-theme-modern) .sky-filter-bar-toolbar{--sky-override-toolbar-container-padding: var( --sky-comp-filter_bar-space-inset-top ) var(--sky-comp-filter_bar-space-inset-right) var(--sky-comp-filter_bar-space-inset-bottom) var(--sky-comp-filter_bar-space-inset-left)}:host-context(.sky-data-manager-toolbar){border-top:var(--sky-override-toolbar-border-top-bottom, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyFilterBarResourcesModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i2.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i2.λ39, selector: "sky-toolbar-item" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
380
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
381
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: SkyFilterBarComponent, isStandalone: true, selector: "sky-filter-bar", inputs: { appliedFilters: { classPropertyName: "appliedFilters", publicName: "appliedFilters", isSignal: true, isRequired: false, transformFunction: null }, selectedFilterIds: { classPropertyName: "selectedFilterIds", publicName: "selectedFilterIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { appliedFilters: "appliedFiltersChange", selectedFilterIds: "selectedFilterIdsChange" }, providers: [SkyFilterBarService], queries: [{ propertyName: "filterItems", predicate: SKY_FILTER_ITEM, isSignal: true }], ngImport: i0, template: "<sky-toolbar class=\"sky-filter-bar-toolbar\">\n <sky-toolbar-item>\n <span class=\"sky-font-data-label\">{{\n 'skyux_filter_bar_filter_label' | skyLibResources\n }}</span>\n </sky-toolbar-item>\n @if (!!selectedFilterIds()) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-filter-picker sky-btn sky-filter-bar-btn sky-btn-default sky-btn-icon\"\n (click)=\"openFilters()\"\n >\n <sky-icon iconName=\"filter\" />\n </button>\n </sky-toolbar-item>\n }\n @for (filter of visibleFilters(); track filter.filterId()) {\n <sky-toolbar-item>\n <ng-container *ngTemplateOutlet=\"filter.templateRef() ?? null\" />\n </sky-toolbar-item>\n }\n @if (appliedFilters()?.length) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-clear-filters sky-btn sky-filter-bar-btn sky-btn-link\"\n (click)=\"clearFilters()\"\n >\n {{ 'skyux_filter_bar_clear_filters_label' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n</sky-toolbar>\n", styles: [":host{display:block}:host-context(.sky-theme-modern) .sky-filter-bar-toolbar{--sky-override-toolbar-container-padding: var( --sky-comp-filter_bar-space-inset-top ) var(--sky-comp-filter_bar-space-inset-right) var(--sky-comp-filter_bar-space-inset-bottom) var(--sky-comp-filter_bar-space-inset-left)}:host-context(.sky-data-manager-toolbar){border-top:var(--sky-override-toolbar-border-top-bottom, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyFilterBarResourcesModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i2.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i2.λ39, selector: "sky-toolbar-item" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
378
382
  }
379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarComponent, decorators: [{
383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarComponent, decorators: [{
380
384
  type: Component,
381
385
  args: [{ selector: 'sky-filter-bar', imports: [
382
386
  NgTemplateOutlet,
383
387
  SkyFilterBarResourcesModule,
384
388
  SkyIconModule,
385
389
  SkyToolbarModule,
386
- ], providers: [SkyFilterBarService], template: "<sky-toolbar class=\"sky-filter-bar-toolbar\">\n <sky-toolbar-item>\n <span class=\"sky-font-data-label\">{{\n 'skyux_filter_bar_filter_label' | skyLibResources\n }}</span>\n </sky-toolbar-item>\n @if (!!selectedFilterIds()) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-filter-picker sky-btn sky-filter-bar-btn sky-btn-default sky-btn-icon\"\n (click)=\"openFilters()\"\n >\n <sky-icon iconName=\"filter\" />\n </button>\n </sky-toolbar-item>\n }\n @for (filter of visibleFilters(); track filter.filterId()) {\n <sky-toolbar-item>\n <ng-container *ngTemplateOutlet=\"filter.templateRef() ?? null\" />\n </sky-toolbar-item>\n }\n @if (appliedFilters()?.length) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-clear-filters sky-btn sky-filter-bar-btn sky-btn-link\"\n (click)=\"clearFilters()\"\n >\n {{ 'skyux_filter_bar_clear_filters_label' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n</sky-toolbar>\n", styles: [":host{display:block}:host-context(.sky-theme-modern) .sky-filter-bar-toolbar{--sky-override-toolbar-container-padding: var( --sky-comp-filter_bar-space-inset-top ) var(--sky-comp-filter_bar-space-inset-right) var(--sky-comp-filter_bar-space-inset-bottom) var(--sky-comp-filter_bar-space-inset-left)}:host-context(.sky-data-manager-toolbar){border-top:var(--sky-override-toolbar-border-top-bottom, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}\n"] }]
390
+ ], providers: [SkyFilterBarService], changeDetection: ChangeDetectionStrategy.Eager, template: "<sky-toolbar class=\"sky-filter-bar-toolbar\">\n <sky-toolbar-item>\n <span class=\"sky-font-data-label\">{{\n 'skyux_filter_bar_filter_label' | skyLibResources\n }}</span>\n </sky-toolbar-item>\n @if (!!selectedFilterIds()) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-filter-picker sky-btn sky-filter-bar-btn sky-btn-default sky-btn-icon\"\n (click)=\"openFilters()\"\n >\n <sky-icon iconName=\"filter\" />\n </button>\n </sky-toolbar-item>\n }\n @for (filter of visibleFilters(); track filter.filterId()) {\n <sky-toolbar-item>\n <ng-container *ngTemplateOutlet=\"filter.templateRef() ?? null\" />\n </sky-toolbar-item>\n }\n @if (appliedFilters()?.length) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-clear-filters sky-btn sky-filter-bar-btn sky-btn-link\"\n (click)=\"clearFilters()\"\n >\n {{ 'skyux_filter_bar_clear_filters_label' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n</sky-toolbar>\n", styles: [":host{display:block}:host-context(.sky-theme-modern) .sky-filter-bar-toolbar{--sky-override-toolbar-container-padding: var( --sky-comp-filter_bar-space-inset-top ) var(--sky-comp-filter_bar-space-inset-right) var(--sky-comp-filter_bar-space-inset-bottom) var(--sky-comp-filter_bar-space-inset-left)}:host-context(.sky-data-manager-toolbar){border-top:var(--sky-override-toolbar-border-top-bottom, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}\n"] }]
387
391
  }], ctorParameters: () => [], propDecorators: { appliedFilters: [{ type: i0.Input, args: [{ isSignal: true, alias: "appliedFilters", required: false }] }, { type: i0.Output, args: ["appliedFiltersChange"] }], selectedFilterIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedFilterIds", required: false }] }, { type: i0.Output, args: ["selectedFilterIdsChange"] }], filterItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SKY_FILTER_ITEM), { isSignal: true }] }] } });
388
392
 
389
393
  /**
@@ -397,15 +401,18 @@ class SkyFilterItemBaseComponent {
397
401
  * A unique identifier for the filter item.
398
402
  * @required
399
403
  */
400
- this.filterId = input.required(...(ngDevMode ? [{ debugName: "filterId" }] : []));
404
+ this.filterId = input.required(/* @ts-ignore */
405
+ ...(ngDevMode ? [{ debugName: "filterId" }] : /* istanbul ignore next */ []));
401
406
  /**
402
407
  * The value for the filter item.
403
408
  */
404
- this.filterValue = input(...(ngDevMode ? [undefined, { debugName: "filterValue" }] : []));
409
+ this.filterValue = input(/* @ts-ignore */
410
+ ...(ngDevMode ? [undefined, { debugName: "filterValue" }] : /* istanbul ignore next */ []));
405
411
  /**
406
412
  * The label to display for the filter item.
407
413
  */
408
- this.labelText = input.required(...(ngDevMode ? [{ debugName: "labelText" }] : []));
414
+ this.labelText = input.required(/* @ts-ignore */
415
+ ...(ngDevMode ? [{ debugName: "labelText" }] : /* istanbul ignore next */ []));
409
416
  /**
410
417
  * Fires when the user clicks the filter item.
411
418
  */
@@ -414,12 +421,12 @@ class SkyFilterItemBaseComponent {
414
421
  onClick() {
415
422
  this.itemClick.emit();
416
423
  }
417
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterItemBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
418
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SkyFilterItemBaseComponent, isStandalone: true, selector: "sky-filter-item-base", inputs: { filterId: { classPropertyName: "filterId", publicName: "filterId", isSignal: true, isRequired: true, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: true, isRequired: false, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: "@let value = filterValue();\n<button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-filter-bar-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-pressed]=\"!!value\"\n [attr.data-filter-id]=\"filterId()\"\n [class.sky-filter-bar-btn-selected]=\"!!value\"\n (click)=\"onClick()\"\n>\n <span class=\"sky-filter-item-title\"\n ><span class=\"sky-filter-item-name\">{{ labelText() }}</span>\n @if (value) {\n <span>:</span>\n }\n </span>\n @if (value) {\n <span class=\"sky-filter-item-value\">{{\n value.displayValue ?? value.value\n }}</span>\n }\n <span class=\"sky-filter-item-caret\">\n <sky-icon iconName=\"chevron-down\" />\n </span>\n</button>\n", styles: ["button.sky-filter-bar-btn:not(.sky-theme-modern *){--sky-override-filter-bar-button-gap-spacing: 10px;--sky-override-filter-bar-button-selected-background-color: #c1e8fb}:host{display:block}.sky-filter-bar-btn{display:flex;max-width:300px}.sky-filter-item-title,.sky-filter-item-value{margin-right:var(--sky-override-filter-bar-button-gap-spacing, var(--sky-space-gap-action_group-m))}.sky-filter-item-value{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-filter-item-caret{flex-grow:1}.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:hover,:focus-visible,:active,:disabled){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-selected_soft)}.sky-filter-bar-btn.sky-filter-bar-btn-selected,.sky-filter-bar-btn.sky-filter-bar-btn-selected:hover,.sky-filter-bar-btn.sky-filter-bar-btn-selected:focus-visible,.sky-filter-bar-btn.sky-filter-bar-btn-selected:active,.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:disabled){background-color:var(--sky-override-filter-bar-button-selected-background-color, var(--sky-color-background-selected-soft))}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-title{color:var(--sky-color-text-deemphasized)}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-value,.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-caret{color:var(--sky-color-text-action);font-weight:var(--sky-font-style-emphasized)}\n"], dependencies: [{ kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }] }); }
424
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterItemBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
425
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: SkyFilterItemBaseComponent, isStandalone: true, selector: "sky-filter-item-base", inputs: { filterId: { classPropertyName: "filterId", publicName: "filterId", isSignal: true, isRequired: true, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: true, isRequired: false, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: "@let value = filterValue();\n<button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-filter-bar-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-pressed]=\"!!value\"\n [attr.data-filter-id]=\"filterId()\"\n [class.sky-filter-bar-btn-selected]=\"!!value\"\n (click)=\"onClick()\"\n>\n <span class=\"sky-filter-item-title\"\n ><span class=\"sky-filter-item-name\">{{ labelText() }}</span>\n @if (value) {\n <span>:</span>\n }\n </span>\n @if (value) {\n <span class=\"sky-filter-item-value\">{{\n value.displayValue ?? value.value\n }}</span>\n }\n <span class=\"sky-filter-item-caret\">\n <sky-icon iconName=\"chevron-down\" />\n </span>\n</button>\n", styles: ["button.sky-filter-bar-btn:not(.sky-theme-modern *){--sky-override-filter-bar-button-gap-spacing: 10px;--sky-override-filter-bar-button-selected-background-color: #c1e8fb}:host{display:block}.sky-filter-bar-btn{display:flex;max-width:300px}.sky-filter-item-title,.sky-filter-item-value{margin-right:var(--sky-override-filter-bar-button-gap-spacing, var(--sky-space-gap-action_group-m))}.sky-filter-item-value{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-filter-item-caret{flex-grow:1}.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:hover,:focus-visible,:active,:disabled){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-selected_soft)}.sky-filter-bar-btn.sky-filter-bar-btn-selected,.sky-filter-bar-btn.sky-filter-bar-btn-selected:hover,.sky-filter-bar-btn.sky-filter-bar-btn-selected:focus-visible,.sky-filter-bar-btn.sky-filter-bar-btn-selected:active,.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:disabled){background-color:var(--sky-override-filter-bar-button-selected-background-color, var(--sky-color-background-selected-soft))}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-title{color:var(--sky-color-text-deemphasized)}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-value,.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-caret{color:var(--sky-color-text-action);font-weight:var(--sky-font-style-emphasized)}\n"], dependencies: [{ kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
419
426
  }
420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterItemBaseComponent, decorators: [{
427
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterItemBaseComponent, decorators: [{
421
428
  type: Component,
422
- args: [{ selector: 'sky-filter-item-base', imports: [SkyIconModule], template: "@let value = filterValue();\n<button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-filter-bar-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-pressed]=\"!!value\"\n [attr.data-filter-id]=\"filterId()\"\n [class.sky-filter-bar-btn-selected]=\"!!value\"\n (click)=\"onClick()\"\n>\n <span class=\"sky-filter-item-title\"\n ><span class=\"sky-filter-item-name\">{{ labelText() }}</span>\n @if (value) {\n <span>:</span>\n }\n </span>\n @if (value) {\n <span class=\"sky-filter-item-value\">{{\n value.displayValue ?? value.value\n }}</span>\n }\n <span class=\"sky-filter-item-caret\">\n <sky-icon iconName=\"chevron-down\" />\n </span>\n</button>\n", styles: ["button.sky-filter-bar-btn:not(.sky-theme-modern *){--sky-override-filter-bar-button-gap-spacing: 10px;--sky-override-filter-bar-button-selected-background-color: #c1e8fb}:host{display:block}.sky-filter-bar-btn{display:flex;max-width:300px}.sky-filter-item-title,.sky-filter-item-value{margin-right:var(--sky-override-filter-bar-button-gap-spacing, var(--sky-space-gap-action_group-m))}.sky-filter-item-value{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-filter-item-caret{flex-grow:1}.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:hover,:focus-visible,:active,:disabled){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-selected_soft)}.sky-filter-bar-btn.sky-filter-bar-btn-selected,.sky-filter-bar-btn.sky-filter-bar-btn-selected:hover,.sky-filter-bar-btn.sky-filter-bar-btn-selected:focus-visible,.sky-filter-bar-btn.sky-filter-bar-btn-selected:active,.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:disabled){background-color:var(--sky-override-filter-bar-button-selected-background-color, var(--sky-color-background-selected-soft))}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-title{color:var(--sky-color-text-deemphasized)}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-value,.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-caret{color:var(--sky-color-text-action);font-weight:var(--sky-font-style-emphasized)}\n"] }]
429
+ args: [{ selector: 'sky-filter-item-base', imports: [SkyIconModule], changeDetection: ChangeDetectionStrategy.Eager, template: "@let value = filterValue();\n<button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-filter-bar-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-pressed]=\"!!value\"\n [attr.data-filter-id]=\"filterId()\"\n [class.sky-filter-bar-btn-selected]=\"!!value\"\n (click)=\"onClick()\"\n>\n <span class=\"sky-filter-item-title\"\n ><span class=\"sky-filter-item-name\">{{ labelText() }}</span>\n @if (value) {\n <span>:</span>\n }\n </span>\n @if (value) {\n <span class=\"sky-filter-item-value\">{{\n value.displayValue ?? value.value\n }}</span>\n }\n <span class=\"sky-filter-item-caret\">\n <sky-icon iconName=\"chevron-down\" />\n </span>\n</button>\n", styles: ["button.sky-filter-bar-btn:not(.sky-theme-modern *){--sky-override-filter-bar-button-gap-spacing: 10px;--sky-override-filter-bar-button-selected-background-color: #c1e8fb}:host{display:block}.sky-filter-bar-btn{display:flex;max-width:300px}.sky-filter-item-title,.sky-filter-item-value{margin-right:var(--sky-override-filter-bar-button-gap-spacing, var(--sky-space-gap-action_group-m))}.sky-filter-item-value{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-filter-item-caret{flex-grow:1}.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:hover,:focus-visible,:active,:disabled){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-selected_soft)}.sky-filter-bar-btn.sky-filter-bar-btn-selected,.sky-filter-bar-btn.sky-filter-bar-btn-selected:hover,.sky-filter-bar-btn.sky-filter-bar-btn-selected:focus-visible,.sky-filter-bar-btn.sky-filter-bar-btn-selected:active,.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:disabled){background-color:var(--sky-override-filter-bar-button-selected-background-color, var(--sky-color-background-selected-soft))}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-title{color:var(--sky-color-text-deemphasized)}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-value,.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-caret{color:var(--sky-color-text-action);font-weight:var(--sky-font-style-emphasized)}\n"] }]
423
430
  }], propDecorators: { filterId: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterId", required: true }] }], filterValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterValue", required: false }] }], labelText: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelText", required: true }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
424
431
 
425
432
  /**
@@ -433,22 +440,26 @@ class SkyFilterItemLookupComponent {
433
440
  * A unique identifier for the filter item.
434
441
  * @required
435
442
  */
436
- this.filterId = input.required(...(ngDevMode ? [{ debugName: "filterId" }] : []));
443
+ this.filterId = input.required(/* @ts-ignore */
444
+ ...(ngDevMode ? [{ debugName: "filterId" }] : /* istanbul ignore next */ []));
437
445
  /**
438
446
  * The label to display for the filter item.
439
447
  * @required
440
448
  */
441
- this.labelText = input.required(...(ngDevMode ? [{ debugName: "labelText" }] : []));
449
+ this.labelText = input.required(/* @ts-ignore */
450
+ ...(ngDevMode ? [{ debugName: "labelText" }] : /* istanbul ignore next */ []));
442
451
  /**
443
452
  * The object property to display for each filter value in the selection modal when users open the filter.
444
453
  * @required
445
454
  */
446
- this.searchDescriptorProperty = input.required(...(ngDevMode ? [{ debugName: "searchDescriptorProperty" }] : []));
455
+ this.searchDescriptorProperty = input.required(/* @ts-ignore */
456
+ ...(ngDevMode ? [{ debugName: "searchDescriptorProperty" }] : /* istanbul ignore next */ []));
447
457
  /**
448
458
  * The object property that represents a unique identifier for each filter value in the selection modal when users open the filter.
449
459
  * @required
450
460
  */
451
- this.searchIdProperty = input.required(...(ngDevMode ? [{ debugName: "searchIdProperty" }] : []));
461
+ this.searchIdProperty = input.required(/* @ts-ignore */
462
+ ...(ngDevMode ? [{ debugName: "searchIdProperty" }] : /* istanbul ignore next */ []));
452
463
  /**
453
464
  * Fires when users enter search information and allows results to be
454
465
  * returned via an observable. The event also fires with empty search text
@@ -456,7 +467,8 @@ class SkyFilterItemLookupComponent {
456
467
  * @required
457
468
  */
458
469
  this.searchAsync = new EventEmitter();
459
- this.templateRef = viewChild((TemplateRef), ...(ngDevMode ? [{ debugName: "templateRef" }] : []));
470
+ this.templateRef = viewChild((TemplateRef), /* @ts-ignore */
471
+ ...(ngDevMode ? [{ debugName: "templateRef" }] : /* istanbul ignore next */ []));
460
472
  this.#filterBarSvc = inject(SkyFilterBarService);
461
473
  this.#selectionModalSvc = inject(SkySelectionModalService);
462
474
  this.#resourceSvc = inject(SkyLibResourcesService);
@@ -531,14 +543,14 @@ class SkyFilterItemLookupComponent {
531
543
  }
532
544
  });
533
545
  }
534
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterItemLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
535
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SkyFilterItemLookupComponent, isStandalone: true, selector: "sky-filter-item-lookup", inputs: { filterId: { classPropertyName: "filterId", publicName: "filterId", isSignal: true, isRequired: true, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null }, searchDescriptorProperty: { classPropertyName: "searchDescriptorProperty", publicName: "searchDescriptorProperty", isSignal: true, isRequired: true, transformFunction: null }, searchIdProperty: { classPropertyName: "searchIdProperty", publicName: "searchIdProperty", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { searchAsync: "searchAsync" }, providers: [
546
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterItemLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
547
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.1", type: SkyFilterItemLookupComponent, isStandalone: true, selector: "sky-filter-item-lookup", inputs: { filterId: { classPropertyName: "filterId", publicName: "filterId", isSignal: true, isRequired: true, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null }, searchDescriptorProperty: { classPropertyName: "searchDescriptorProperty", publicName: "searchDescriptorProperty", isSignal: true, isRequired: true, transformFunction: null }, searchIdProperty: { classPropertyName: "searchIdProperty", publicName: "searchIdProperty", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { searchAsync: "searchAsync" }, providers: [
536
548
  { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemLookupComponent },
537
- ], viewQueries: [{ propertyName: "templateRef", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n", dependencies: [{ kind: "component", type: SkyFilterItemBaseComponent, selector: "sky-filter-item-base", inputs: ["filterId", "filterValue", "labelText"], outputs: ["itemClick"] }] }); }
549
+ ], viewQueries: [{ propertyName: "templateRef", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n", dependencies: [{ kind: "component", type: SkyFilterItemBaseComponent, selector: "sky-filter-item-base", inputs: ["filterId", "filterValue", "labelText"], outputs: ["itemClick"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
538
550
  }
539
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterItemLookupComponent, decorators: [{
551
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterItemLookupComponent, decorators: [{
540
552
  type: Component,
541
- args: [{ selector: 'sky-filter-item-lookup', imports: [SkyFilterItemBaseComponent], providers: [
553
+ args: [{ selector: 'sky-filter-item-lookup', imports: [SkyFilterItemBaseComponent], changeDetection: ChangeDetectionStrategy.Eager, providers: [
542
554
  { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemLookupComponent },
543
555
  ], template: "<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n" }]
544
556
  }], propDecorators: { filterId: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterId", required: true }] }], labelText: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelText", required: true }] }], searchDescriptorProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchDescriptorProperty", required: true }] }], searchIdProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchIdProperty", required: true }] }], searchAsync: [{
@@ -577,29 +589,34 @@ class SkyFilterItemModalComponent {
577
589
  * A unique identifier for the filter item.
578
590
  * @required
579
591
  */
580
- this.filterId = input.required(...(ngDevMode ? [{ debugName: "filterId" }] : []));
592
+ this.filterId = input.required(/* @ts-ignore */
593
+ ...(ngDevMode ? [{ debugName: "filterId" }] : /* istanbul ignore next */ []));
581
594
  /**
582
595
  * The label to display for the filter item.
583
596
  * @required
584
597
  */
585
- this.labelText = input.required(...(ngDevMode ? [{ debugName: "labelText" }] : []));
598
+ this.labelText = input.required(/* @ts-ignore */
599
+ ...(ngDevMode ? [{ debugName: "labelText" }] : /* istanbul ignore next */ []));
586
600
  /**
587
601
  * The modal component to display when the user selects the filter.
588
602
  * The component needs to inject a `SkyFilterItemModalInstance` object on instantiation to receive the modal instance and context from the modal service.
589
603
  * The return value of the modal save action needs to be a `SkyFilterBarFilterValue`.
590
604
  * @required
591
605
  */
592
- this.modalComponent = input.required(...(ngDevMode ? [{ debugName: "modalComponent" }] : []));
606
+ this.modalComponent = input.required(/* @ts-ignore */
607
+ ...(ngDevMode ? [{ debugName: "modalComponent" }] : /* istanbul ignore next */ []));
593
608
  /**
594
609
  * The size of the modal to display. The valid options are `"small"`, `"medium"`, `"large"`, and `"fullScreen"`.
595
610
  */
596
- this.modalSize = input.required(...(ngDevMode ? [{ debugName: "modalSize" }] : []));
611
+ this.modalSize = input.required(/* @ts-ignore */
612
+ ...(ngDevMode ? [{ debugName: "modalSize" }] : /* istanbul ignore next */ []));
597
613
  /**
598
614
  * Fires when the user clicks the filter item. To pass additional context data to a filter modal, consumers
599
615
  * must subscribe to this event and return the context using the observable property on the event args.
600
616
  */
601
617
  this.modalOpened = new EventEmitter();
602
- this.templateRef = viewChild((TemplateRef), ...(ngDevMode ? [{ debugName: "templateRef" }] : []));
618
+ this.templateRef = viewChild((TemplateRef), /* @ts-ignore */
619
+ ...(ngDevMode ? [{ debugName: "templateRef" }] : /* istanbul ignore next */ []));
603
620
  this.#environmentInjector = inject(EnvironmentInjector);
604
621
  this.#modalSvc = inject(SkyModalService);
605
622
  this.#filterBarSvc = inject(SkyFilterBarService);
@@ -681,14 +698,14 @@ class SkyFilterItemModalComponent {
681
698
  }
682
699
  return of(undefined);
683
700
  }
684
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterItemModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
685
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SkyFilterItemModalComponent, isStandalone: true, selector: "sky-filter-item-modal", inputs: { filterId: { classPropertyName: "filterId", publicName: "filterId", isSignal: true, isRequired: true, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null }, modalComponent: { classPropertyName: "modalComponent", publicName: "modalComponent", isSignal: true, isRequired: true, transformFunction: null }, modalSize: { classPropertyName: "modalSize", publicName: "modalSize", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { modalOpened: "modalOpened" }, providers: [
701
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterItemModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
702
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.1", type: SkyFilterItemModalComponent, isStandalone: true, selector: "sky-filter-item-modal", inputs: { filterId: { classPropertyName: "filterId", publicName: "filterId", isSignal: true, isRequired: true, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null }, modalComponent: { classPropertyName: "modalComponent", publicName: "modalComponent", isSignal: true, isRequired: true, transformFunction: null }, modalSize: { classPropertyName: "modalSize", publicName: "modalSize", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { modalOpened: "modalOpened" }, providers: [
686
703
  { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },
687
- ], viewQueries: [{ propertyName: "templateRef", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n", dependencies: [{ kind: "component", type: SkyFilterItemBaseComponent, selector: "sky-filter-item-base", inputs: ["filterId", "filterValue", "labelText"], outputs: ["itemClick"] }] }); }
704
+ ], viewQueries: [{ propertyName: "templateRef", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n", dependencies: [{ kind: "component", type: SkyFilterItemBaseComponent, selector: "sky-filter-item-base", inputs: ["filterId", "filterValue", "labelText"], outputs: ["itemClick"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
688
705
  }
689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterItemModalComponent, decorators: [{
706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterItemModalComponent, decorators: [{
690
707
  type: Component,
691
- args: [{ selector: 'sky-filter-item-modal', imports: [SkyFilterItemBaseComponent], providers: [
708
+ args: [{ selector: 'sky-filter-item-modal', imports: [SkyFilterItemBaseComponent], changeDetection: ChangeDetectionStrategy.Eager, providers: [
692
709
  { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },
693
710
  ], template: "<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n" }]
694
711
  }], propDecorators: { filterId: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterId", required: true }] }], labelText: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelText", required: true }] }], modalComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "modalComponent", required: true }] }], modalSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "modalSize", required: true }] }], modalOpened: [{
@@ -696,17 +713,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
696
713
  }], templateRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
697
714
 
698
715
  class SkyFilterBarModule {
699
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
700
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent,
716
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
717
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent,
701
718
  SkyFilterItemModalComponent,
702
719
  SkyFilterItemLookupComponent], exports: [SkyFilterBarComponent,
703
720
  SkyFilterItemModalComponent,
704
721
  SkyFilterItemLookupComponent] }); }
705
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent,
722
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent,
706
723
  SkyFilterItemModalComponent,
707
724
  SkyFilterItemLookupComponent] }); }
708
725
  }
709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyFilterBarModule, decorators: [{
726
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyFilterBarModule, decorators: [{
710
727
  type: NgModule,
711
728
  args: [{
712
729
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-filter-bar.mjs","sources":["../../../../../libs/components/filter-bar/src/lib/modules/shared/sky-filter-bar-resources.module.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.service.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item.token.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-base.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-base.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-lookup.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-lookup.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/models/filter-item-modal-context.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/models/filter-item-modal-instance.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-modal.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-modal.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.module.ts","../../../../../libs/components/filter-bar/src/skyux-filter-bar.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-filter-bar' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_filter_bar_clear_filters_confirm_apply_label: {\n message: 'Clear values',\n },\n skyux_filter_bar_clear_filters_confirm_body: {\n message:\n 'This will not remove any filters, but any values you have set will be removed.',\n },\n skyux_filter_bar_clear_filters_confirm_cancel_label: { message: 'Cancel' },\n skyux_filter_bar_clear_filters_confirm_title: {\n message:\n 'Are you sure you want to reset all filters to their original values?',\n },\n skyux_filter_bar_clear_filters_label: { message: 'Clear all values' },\n skyux_filter_bar_filter_label: { message: 'Filters' },\n skyux_filter_bar_filter_picker_descriptor: { message: 'filters' },\n skyux_filter_item_n_selected: { message: '{0} selected' },\n },\n 'FR-CA': {\n skyux_filter_bar_clear_filters_confirm_apply_label: {\n message: 'Effacer les valeurs',\n },\n skyux_filter_bar_clear_filters_confirm_body: {\n message:\n 'Ceci ne supprimera aucun filtre, mais toutes les valeurs que vous avez définies seront supprimées.',\n },\n skyux_filter_bar_clear_filters_confirm_cancel_label: { message: 'Annuler' },\n skyux_filter_bar_clear_filters_confirm_title: {\n message:\n 'Voulez-vous vraiment réinitialiser tous les filtres à leurs valeurs d’origine?',\n },\n skyux_filter_bar_clear_filters_label: {\n message: 'Effacer toutes les valeurs',\n },\n skyux_filter_bar_filter_label: { message: 'Filtres' },\n skyux_filter_bar_filter_picker_descriptor: { message: 'filtres' },\n skyux_filter_item_n_selected: { message: '{0} sélectionné' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyFilterBarResourcesModule {}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, ReplaySubject, Subject, filter, map } from 'rxjs';\n\nimport { SkyFilterBarFilterItem } from './models/filter-bar-filter-item';\nimport { SkyFilterBarFilterValue } from './models/filter-bar-filter-value';\n\n/**\n * Service for filter items to emit value changes to the filter bar.\n * @internal\n */\n@Injectable()\nexport class SkyFilterBarService {\n readonly #filterItemUpdates = new Subject<SkyFilterBarFilterItem>();\n readonly #filterValueUpdates = new ReplaySubject<SkyFilterBarFilterItem>();\n\n /**\n * Observable stream of filter item updates.\n */\n public readonly filterItemUpdated: Observable<SkyFilterBarFilterItem> =\n this.#filterItemUpdates.asObservable();\n\n /**\n * Filtered observable stream of filter value updates.\n * @param filterId the\n * @returns\n */\n public getFilterValueUpdates<TValue = unknown>(\n filterId: string,\n ): Observable<SkyFilterBarFilterValue<TValue> | undefined> {\n return this.#filterValueUpdates.pipe(\n filter((update) => update.filterId === filterId),\n map(\n (item) =>\n item.filterValue as SkyFilterBarFilterValue<TValue> | undefined,\n ),\n );\n }\n /**\n * Emit a filter value update.\n */\n public updateFilter(filter: SkyFilterBarFilterItem): void {\n this.#filterItemUpdates.next(filter);\n }\n\n public updateFilters(filters: SkyFilterBarFilterItem[]): void {\n for (const filter of filters) {\n this.#filterValueUpdates.next(filter);\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { SkyFilterItem } from '../models/filter-item';\n\n/**\n * A token for filter bar items.\n * @internal\n */\nexport const SKY_FILTER_ITEM = new InjectionToken<SkyFilterItem>(\n 'SKY_FILTER_ITEM',\n);\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n computed,\n contentChildren,\n effect,\n inject,\n model,\n untracked,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkyFilterState, SkyFilterStateService } from '@skyux/lists';\nimport {\n SkySelectionModalOpenArgs,\n SkySelectionModalSearchArgs,\n SkySelectionModalSearchResult,\n SkySelectionModalService,\n} from '@skyux/lookup';\nimport {\n SkyConfirmConfig,\n SkyConfirmService,\n SkyConfirmType,\n} from '@skyux/modals';\n\nimport { Observable, of } from 'rxjs';\n\nimport { SkyFilterBarResourcesModule } from '../shared/sky-filter-bar-resources.module';\n\nimport { SkyFilterBarService } from './filter-bar.service';\nimport { SKY_FILTER_ITEM } from './filter-items/filter-item.token';\nimport { SkyFilterBarFilterItem } from './models/filter-bar-filter-item';\nimport { SkyFilterBarItem } from './models/filter-bar-item';\nimport { SkyFilterItem } from './models/filter-item';\n\n/**\n * The top-level filter bar component.\n */\n@Component({\n selector: 'sky-filter-bar',\n imports: [\n NgTemplateOutlet,\n SkyFilterBarResourcesModule,\n SkyIconModule,\n SkyToolbarModule,\n ],\n providers: [SkyFilterBarService],\n templateUrl: './filter-bar.component.html',\n styleUrl: './filter-bar.component.scss',\n})\nexport class SkyFilterBarComponent {\n /**\n * An array of filter items containing the IDs and values of the filters that have been set.\n */\n public readonly appliedFilters = model<\n SkyFilterBarFilterItem[] | undefined\n >();\n\n /**\n * An array of filter IDs that the user has selected using the built-in selection modal. Setting this input to undefined results in all filters being displayed.\n */\n public readonly selectedFilterIds = model<string[] | undefined>();\n\n protected readonly filterItems = contentChildren(SKY_FILTER_ITEM);\n\n protected readonly visibleFilters = computed((): SkyFilterItem[] => {\n const items = this.filterItems();\n const selectedFilters = this.selectedFilterIds();\n\n const visibleFilters: (SkyFilterItem | undefined)[] = [];\n\n if (items) {\n if (selectedFilters) {\n for (const id of selectedFilters) {\n visibleFilters.push(items.find((item) => item.filterId() === id));\n }\n } else {\n for (const item of items) {\n visibleFilters.push(item);\n }\n }\n }\n\n return visibleFilters.filter((item) => !!item);\n });\n\n readonly #confirmSvc = inject(SkyConfirmService);\n readonly #filterBarSvc = inject(SkyFilterBarService);\n readonly #filterStateSvc = inject(SkyFilterStateService, { optional: true });\n readonly #filterItemUpdated = toSignal(this.#filterBarSvc.filterItemUpdated);\n readonly #modalSvc = inject(SkySelectionModalService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\n readonly #sourceId = 'skyFilterBar';\n readonly #strings = toSignal(\n this.#resourceSvc.getStrings({\n descriptor: 'skyux_filter_bar_filter_picker_descriptor',\n title: 'skyux_filter_bar_clear_filters_confirm_title',\n body: 'skyux_filter_bar_clear_filters_confirm_body',\n save: 'skyux_filter_bar_clear_filters_confirm_apply_label',\n cancel: 'skyux_filter_bar_clear_filters_confirm_cancel_label',\n }),\n );\n\n constructor() {\n // Subscribe to filter value updates from child filter items\n effect(() => {\n const updatedFilter = this.#filterItemUpdated();\n if (updatedFilter) {\n this.#updateFilter(updatedFilter);\n }\n });\n\n // Push filter value updates to child filter items. When applied filters\n // are changed, use the previous value to determine which items to reset\n // rather than reading filterId() from content children, which may\n // not have their required inputs bound yet (e.g. when used with @for).\n let previousFilterIds: string[] = [];\n effect(() => {\n const appliedFilters = this.appliedFilters() ?? [];\n const newFilterIds = new Set(appliedFilters.map((f) => f.filterId));\n\n // Send clear signals for filters that were previously set but are no longer present.\n const removedFilters = previousFilterIds\n .filter((id) => !newFilterIds.has(id))\n .map((filterId) => ({ filterId }));\n\n this.#filterBarSvc.updateFilters([...appliedFilters, ...removedFilters]);\n previousFilterIds = [...newFilterIds];\n });\n\n // If a filter state service is present, subscribe to its updates and reflect into local signals.\n if (this.#filterStateSvc) {\n const filterStateUpdates = toSignal<SkyFilterState>(\n this.#filterStateSvc.getFilterStateUpdates(this.#sourceId),\n );\n\n effect(() => {\n const data = filterStateUpdates();\n if (data) {\n this.appliedFilters.set(data.appliedFilters);\n this.selectedFilterIds.set(data.selectedFilterIds);\n }\n });\n }\n }\n\n protected openFilters(): void {\n const strings = this.#strings();\n const existingFilters = this.#getExistingFilterItems();\n\n /* istanbul ignore if: safety check */\n if (!strings) {\n return;\n }\n\n const filterArgs: SkySelectionModalOpenArgs = {\n selectionDescriptor: strings.descriptor,\n descriptorProperty: 'labelText',\n idProperty: 'filterId',\n selectMode: 'multiple',\n value: existingFilters,\n searchAsync: this.#filterAsyncSearchFn,\n };\n\n const modalInstance = this.#modalSvc.open(filterArgs);\n\n modalInstance.closed.subscribe((closeArgs) => {\n if (closeArgs.reason === 'save') {\n this.#handleFilterSelection(\n closeArgs.selectedItems as SkyFilterBarItem[] | undefined,\n existingFilters,\n );\n }\n });\n }\n\n protected clearFilters(): void {\n const strings = this.#strings();\n\n /* istanbul ignore if: safety check */\n if (!strings) {\n return;\n }\n\n const config: SkyConfirmConfig = {\n message: strings.title,\n body: strings.body,\n type: SkyConfirmType.Custom,\n buttons: [\n {\n action: 'save',\n text: strings.save,\n styleType: 'primary',\n },\n {\n action: 'cancel',\n text: strings.cancel,\n styleType: 'link',\n },\n ],\n };\n\n const instance = this.#confirmSvc.open(config);\n\n instance.closed.subscribe((result) => {\n if (result.action === 'save') {\n this.appliedFilters.set(undefined);\n this.#updateFilterData();\n }\n });\n }\n\n #getExistingFilterItems(): SkyFilterBarItem[] {\n /* istanbul ignore next: safety check */\n const selectedIds = this.selectedFilterIds() ?? [];\n const filterItems = this.filterItems();\n\n return selectedIds\n .map((selectedId) => {\n const filterItem = filterItems.find(\n (item) => item.filterId() === selectedId,\n );\n\n /* istanbul ignore next: safety check */\n return filterItem\n ? {\n filterId: filterItem.filterId(),\n labelText: filterItem.labelText(),\n filterValue: filterItem.filterValue(),\n }\n : undefined;\n })\n .filter((item) => !!item);\n }\n\n #handleFilterSelection(\n selectedFilters: SkyFilterBarItem[] | undefined,\n existingFilters: SkyFilterBarItem[],\n ): void {\n const { newFilterItems, removedFilterItems } = this.#processFilterChanges(\n selectedFilters,\n existingFilters,\n );\n\n const selectedIds = newFilterItems.map((item) => item.filterId);\n this.selectedFilterIds.set(selectedIds);\n\n if (removedFilterItems.length) {\n this.#filterBarSvc.updateFilters(removedFilterItems);\n const newFilters = newFilterItems.filter(\n (filter) => !!filter.filterValue,\n );\n this.appliedFilters.set(newFilters.length ? newFilters : undefined);\n }\n this.#updateFilterData();\n }\n\n #processFilterChanges(\n selectedFilters: SkyFilterBarItem[] | undefined,\n existingFilters: SkyFilterBarItem[],\n ): {\n newFilterItems: SkyFilterBarFilterItem[];\n removedFilterItems: SkyFilterBarFilterItem[];\n } {\n const newFilterItems: SkyFilterBarFilterItem[] = [];\n const removedFilterItems: SkyFilterBarFilterItem[] = [];\n\n // Process existing filters\n for (const existingFilter of existingFilters) {\n if (this.#isFilterSelected(existingFilter.filterId, selectedFilters)) {\n newFilterItems.push({\n filterId: existingFilter.filterId,\n filterValue: existingFilter.filterValue,\n });\n } else {\n removedFilterItems.push({ filterId: existingFilter.filterId });\n }\n }\n\n // Add newly selected filters\n if (selectedFilters) {\n for (const selectedFilter of selectedFilters) {\n if (!this.#isFilterInList(selectedFilter.filterId, newFilterItems)) {\n newFilterItems.push({ filterId: selectedFilter.filterId });\n }\n }\n }\n\n return { newFilterItems, removedFilterItems };\n }\n\n #isFilterSelected(\n filterId: string,\n selectedFilters: SkyFilterBarItem[] | undefined,\n ): boolean {\n return !!selectedFilters?.find(\n (selectedFilter) => selectedFilter.filterId === filterId,\n );\n }\n\n #isFilterInList(\n filterId: string,\n filterList: SkyFilterBarFilterItem[],\n ): boolean {\n return !!filterList.find((filter) => filter.filterId === filterId);\n }\n\n /* istanbul ignore next */\n #filterAsyncSearchFn = (\n args: SkySelectionModalSearchArgs,\n ): Observable<SkySelectionModalSearchResult> => {\n const items = this.filterItems().map((item) => ({\n filterId: item.filterId(),\n labelText: item.labelText(),\n }));\n\n const results = args.searchText\n ? items.filter((item) =>\n item.labelText\n .toLocaleUpperCase()\n .includes(args.searchText.toLocaleUpperCase()),\n )\n : items;\n\n return of({\n items: results,\n totalCount: items.length,\n });\n };\n\n #updateFilter(updatedFilter: SkyFilterBarFilterItem): void {\n const filters = untracked(() => this.appliedFilters()) ?? [];\n const newFilterValues: SkyFilterBarFilterItem[] = [];\n\n let replaceFilter = false;\n for (const filterValue of filters) {\n if (filterValue.filterId === updatedFilter.filterId) {\n if (updatedFilter.filterValue) {\n newFilterValues.push(updatedFilter);\n } else {\n this.#filterBarSvc.updateFilters([updatedFilter]);\n }\n replaceFilter = true;\n } else {\n newFilterValues.push(filterValue);\n }\n }\n\n if (!replaceFilter && updatedFilter.filterValue) {\n newFilterValues.push(updatedFilter);\n }\n\n this.appliedFilters.set(\n newFilterValues.length ? newFilterValues : undefined,\n );\n this.#updateFilterData();\n }\n\n #updateFilterData(): void {\n if (this.#filterStateSvc) {\n const appliedFilters = untracked(() => this.appliedFilters());\n const selectedFilterIds = untracked(() => this.selectedFilterIds());\n this.#filterStateSvc.updateFilterState(\n {\n appliedFilters,\n selectedFilterIds,\n },\n this.#sourceId,\n );\n }\n }\n}\n","<sky-toolbar class=\"sky-filter-bar-toolbar\">\n <sky-toolbar-item>\n <span class=\"sky-font-data-label\">{{\n 'skyux_filter_bar_filter_label' | skyLibResources\n }}</span>\n </sky-toolbar-item>\n @if (!!selectedFilterIds()) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-filter-picker sky-btn sky-filter-bar-btn sky-btn-default sky-btn-icon\"\n (click)=\"openFilters()\"\n >\n <sky-icon iconName=\"filter\" />\n </button>\n </sky-toolbar-item>\n }\n @for (filter of visibleFilters(); track filter.filterId()) {\n <sky-toolbar-item>\n <ng-container *ngTemplateOutlet=\"filter.templateRef() ?? null\" />\n </sky-toolbar-item>\n }\n @if (appliedFilters()?.length) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-clear-filters sky-btn sky-filter-bar-btn sky-btn-link\"\n (click)=\"clearFilters()\"\n >\n {{ 'skyux_filter_bar_clear_filters_label' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n</sky-toolbar>\n","import { Component, input, output } from '@angular/core';\nimport { SkyIconModule } from '@skyux/icon';\n\nimport { SkyFilterBarFilterValue } from '../models/filter-bar-filter-value';\n\n/**\n * A filter bar item that is displayed by the other typed filter items.\n * This component contains a common template and styling that gets rendered as part of the consumer DOM.\n * @internal\n */\n@Component({\n selector: 'sky-filter-item-base',\n imports: [SkyIconModule],\n templateUrl: './filter-item-base.component.html',\n styleUrls: ['./filter-item-base.component.scss'],\n})\nexport class SkyFilterItemBaseComponent {\n /**\n * A unique identifier for the filter item.\n * @required\n */\n public readonly filterId = input.required<string>();\n\n /**\n * The value for the filter item.\n */\n public readonly filterValue = input<SkyFilterBarFilterValue>();\n\n /**\n * The label to display for the filter item.\n */\n public readonly labelText = input.required<string>();\n\n /**\n * Fires when the user clicks the filter item.\n */\n public readonly itemClick = output<void>();\n\n protected onClick(): void {\n this.itemClick.emit();\n }\n}\n","@let value = filterValue();\n<button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-filter-bar-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-pressed]=\"!!value\"\n [attr.data-filter-id]=\"filterId()\"\n [class.sky-filter-bar-btn-selected]=\"!!value\"\n (click)=\"onClick()\"\n>\n <span class=\"sky-filter-item-title\"\n ><span class=\"sky-filter-item-name\">{{ labelText() }}</span>\n @if (value) {\n <span>:</span>\n }\n </span>\n @if (value) {\n <span class=\"sky-filter-item-value\">{{\n value.displayValue ?? value.value\n }}</span>\n }\n <span class=\"sky-filter-item-caret\">\n <sky-icon iconName=\"chevron-down\" />\n </span>\n</button>\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Output,\n TemplateRef,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkySelectionModalService } from '@skyux/lookup';\n\nimport { Observable, of } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\n\nimport { SkyFilterBarService } from '../filter-bar.service';\nimport { SkyFilterBarFilterValue } from '../models/filter-bar-filter-value';\nimport { SkyFilterItem } from '../models/filter-item';\nimport { SkyFilterItemLookupSearchAsyncArgs } from '../models/filter-item-lookup-search-async-args';\n\nimport { SkyFilterItemBaseComponent } from './filter-item-base.component';\nimport { SKY_FILTER_ITEM } from './filter-item.token';\n\n/**\n * A filter bar item that opens a selection modal for complex filter configuration.\n * Use this component for lookup-type filter fields where users select one or more\n * options from a list of values.\n */\n@Component({\n selector: 'sky-filter-item-lookup',\n imports: [SkyFilterItemBaseComponent],\n templateUrl: './filter-item-lookup.component.html',\n providers: [\n { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemLookupComponent },\n ],\n})\nexport class SkyFilterItemLookupComponent<TValue = unknown>\n implements SkyFilterItem<TValue[]>, AfterViewInit\n{\n /**\n * A unique identifier for the filter item.\n * @required\n */\n public readonly filterId = input.required<string>();\n\n /**\n * The label to display for the filter item.\n * @required\n */\n public readonly labelText = input.required<string>();\n\n /**\n * The object property to display for each filter value in the selection modal when users open the filter.\n * @required\n */\n public readonly searchDescriptorProperty = input.required<string>();\n\n /**\n * The object property that represents a unique identifier for each filter value in the selection modal when users open the filter.\n * @required\n */\n public readonly searchIdProperty = input.required<string>();\n\n /**\n * Fires when users enter search information and allows results to be\n * returned via an observable. The event also fires with empty search text\n * when the filter is opened.\n * @required\n */\n @Output()\n public searchAsync = new EventEmitter<\n SkyFilterItemLookupSearchAsyncArgs<TValue>\n >();\n\n public readonly templateRef = viewChild(TemplateRef<unknown>);\n\n readonly #filterBarSvc = inject(SkyFilterBarService);\n readonly #selectionModalSvc = inject(SkySelectionModalService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\n\n public readonly filterValue = toSignal(\n toObservable(this.filterId).pipe(\n switchMap((filterId) =>\n this.#filterBarSvc.getFilterValueUpdates<TValue[]>(filterId),\n ),\n ),\n );\n\n public ngAfterViewInit(): void {\n /* istanbul ignore if: safety check */\n if (!this.searchAsync.observed) {\n throw new Error(\n 'The SkyFilterItemLookupComponent requires the `searchAsync` output to have an observer.',\n );\n }\n }\n\n protected openFilter(): void {\n const filterId = this.filterId();\n const filterValue = this.filterValue();\n const descriptorProperty = this.searchDescriptorProperty();\n const idProperty = this.searchIdProperty();\n\n const instance = this.#selectionModalSvc.open({\n descriptorProperty: descriptorProperty,\n idProperty: idProperty,\n searchAsync: (args) => {\n const searchAsyncArgs: SkyFilterItemLookupSearchAsyncArgs<TValue> = {\n filterId: filterId,\n offset: args.offset,\n searchText: args.searchText,\n continuationData: args.continuationData,\n };\n\n this.searchAsync.emit(searchAsyncArgs);\n\n return searchAsyncArgs.result;\n },\n selectMode: 'multiple',\n value: filterValue?.value,\n });\n\n instance.closed\n .pipe(\n switchMap(\n (\n args,\n ): Observable<\n SkyFilterBarFilterValue<TValue[] | undefined> | undefined\n > => {\n if (args.reason !== 'save') {\n return of(undefined);\n }\n\n const selected = args.selectedItems as TValue[];\n if (!selected?.length) {\n return of({ value: undefined });\n }\n\n if (selected.length === 1) {\n const item = selected[0] as Record<string, unknown>;\n\n return of({\n value: selected,\n displayValue: item[descriptorProperty] as string,\n });\n }\n\n // Multiple selections: get localized \"n selected\" string.\n return this.#resourceSvc\n .getString('skyux_filter_item_n_selected', selected.length)\n .pipe(\n take(1),\n map((displayValue) => ({\n value: selected,\n displayValue,\n })),\n );\n },\n ),\n )\n .subscribe((filter) => {\n // no filter means the modal was not saved\n if (filter) {\n let filterValue: SkyFilterBarFilterValue<TValue[]> | undefined;\n // no filter value means the save result was empty, so emit undefined\n if (filter.value) {\n filterValue = filter as SkyFilterBarFilterValue<TValue[]>;\n }\n this.#filterBarSvc.updateFilter({\n filterId: this.filterId(),\n filterValue,\n });\n }\n });\n }\n}\n","<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n","import { SkyFilterBarFilterValue } from './filter-bar-filter-value';\n\n/**\n * The context object that is provided to a filter modal.\n * @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.\n * @typeParam TData - The type of the additional context data. Defaults to `Record<string, unknown>`.\n */\nexport class SkyFilterItemModalContext<\n TData = Record<string, unknown>,\n TValue = unknown,\n> {\n /**\n * The name of the filter. We recommend using this value for the modal's heading.\n */\n public readonly filterLabelText: string;\n /**\n * The value of the filter.\n */\n public readonly filterValue?: SkyFilterBarFilterValue<TValue>;\n /**\n * An untyped property that can track any config information relevant to the filter modal\n * that existing options do not include.\n */\n public readonly additionalContext?: TData;\n\n constructor(args: {\n filterLabelText: string;\n filterValue?: SkyFilterBarFilterValue<TValue>;\n additionalContext?: TData;\n }) {\n this.filterLabelText = args.filterLabelText;\n this.filterValue = args.filterValue;\n this.additionalContext = args.additionalContext;\n }\n}\n","import { SkyFilterItemModalContext } from './filter-item-modal-context';\nimport { SkyFilterItemModalSavedArgs } from './filter-item-modal-saved-args';\n\n/**\n * A specialized `SkyModalInstance` wrapper.\n * @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.\n * @typeParam TData - The type of the additional context data. Defaults to `Record<string, unknown>`.\n */\nexport abstract class SkyFilterItemModalInstance<\n TData = Record<string, unknown>,\n TValue = unknown,\n> {\n /**\n * The context provided to the filter modal component.\n */\n public abstract readonly context: SkyFilterItemModalContext<TData, TValue>;\n\n /**\n * Closes the modal instance with `reason=\"cancel\"`.\n */\n public abstract cancel(): void;\n\n /**\n * Closes the modal instance with `reason=\"save\"`.\n * @param args\n */\n public abstract save(args: SkyFilterItemModalSavedArgs<TValue>): void;\n}\n","import {\n Component,\n DestroyRef,\n EnvironmentInjector,\n EventEmitter,\n Injector,\n Output,\n TemplateRef,\n Type,\n inject,\n input,\n runInInjectionContext,\n viewChild,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n toObservable,\n toSignal,\n} from '@angular/core/rxjs-interop';\nimport { SkyModalConfigurationInterface, SkyModalService } from '@skyux/modals';\n\nimport { Observable, Subject, of } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\n\nimport { SkyFilterBarService } from '../filter-bar.service';\nimport { SkyFilterItem } from '../models/filter-item';\nimport { SkyFilterItemModal } from '../models/filter-item-modal';\nimport { SkyFilterItemModalContext } from '../models/filter-item-modal-context';\nimport { SkyFilterItemModalInstance } from '../models/filter-item-modal-instance';\nimport { SkyFilterItemModalOpenedArgs } from '../models/filter-item-modal-opened-args';\nimport { SkyFilterItemModalSavedArgs } from '../models/filter-item-modal-saved-args';\nimport { SkyFilterItemModalSizeType } from '../models/filter-item-modal-size';\n\nimport { SkyFilterItemBaseComponent } from './filter-item-base.component';\nimport { SKY_FILTER_ITEM } from './filter-item.token';\n\n/**\n * A filter bar item that opens a modal for complex filter configuration.\n * Use this component when your filter requires a rich UI with multiple inputs,\n * date pickers, or other complex controls that don't fit in an inline filter.\n */\n@Component({\n selector: 'sky-filter-item-modal',\n imports: [SkyFilterItemBaseComponent],\n templateUrl: './filter-item-modal.component.html',\n providers: [\n { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },\n ],\n})\nexport class SkyFilterItemModalComponent<\n TData = Record<string, unknown> | undefined,\n TValue = unknown,\n> implements SkyFilterItem<TValue> {\n /**\n * A unique identifier for the filter item.\n * @required\n */\n public readonly filterId = input.required<string>();\n\n /**\n * The label to display for the filter item.\n * @required\n */\n public readonly labelText = input.required<string>();\n\n /**\n * The modal component to display when the user selects the filter.\n * The component needs to inject a `SkyFilterItemModalInstance` object on instantiation to receive the modal instance and context from the modal service.\n * The return value of the modal save action needs to be a `SkyFilterBarFilterValue`.\n * @required\n */\n public readonly modalComponent =\n input.required<Type<SkyFilterItemModal<TData, TValue>>>();\n\n /**\n * The size of the modal to display. The valid options are `\"small\"`, `\"medium\"`, `\"large\"`, and `\"fullScreen\"`.\n */\n public readonly modalSize = input.required<SkyFilterItemModalSizeType>();\n\n /**\n * Fires when the user clicks the filter item. To pass additional context data to a filter modal, consumers\n * must subscribe to this event and return the context using the observable property on the event args.\n */\n @Output()\n public modalOpened = new EventEmitter<SkyFilterItemModalOpenedArgs<TData>>();\n\n public readonly templateRef = viewChild(TemplateRef<unknown>);\n\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #modalSvc = inject(SkyModalService);\n readonly #filterBarSvc = inject(SkyFilterBarService);\n\n public readonly filterValue = toSignal(\n toObservable(this.filterId).pipe(\n switchMap((filterId) =>\n this.#filterBarSvc.getFilterValueUpdates<TValue>(filterId),\n ),\n ),\n );\n\n protected openFilter(): void {\n const modalComponent = this.modalComponent();\n const modalSize = this.modalSize();\n const labelText = this.labelText();\n const filterValue = this.filterValue();\n\n this.#openFilterCallback().subscribe((additionalContext) => {\n const context = new SkyFilterItemModalContext<TData, TValue>({\n filterLabelText: labelText,\n filterValue,\n additionalContext,\n });\n\n const injector = Injector.create({\n parent: this.#environmentInjector,\n providers: [{ provide: SkyFilterItemModalContext, useValue: context }],\n });\n\n runInInjectionContext(injector, () => {\n const destroyRef = injector.get(DestroyRef);\n\n const saved = new Subject<SkyFilterItemModalSavedArgs<TValue>>();\n const canceled = new Subject<void>();\n\n const context = inject<SkyFilterItemModalContext<TData, TValue>>(\n SkyFilterItemModalContext,\n );\n\n const filterModalInstance: SkyFilterItemModalInstance<TData, TValue> = {\n context,\n cancel() {\n canceled.next();\n canceled.complete();\n },\n save(result) {\n saved.next(result);\n saved.complete();\n },\n };\n\n canceled\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe(() => instance.cancel());\n saved\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe((result) => instance.save(result.filterValue));\n\n const modalConfig: SkyModalConfigurationInterface = {\n providers: [\n {\n provide: SkyFilterItemModalInstance,\n useValue: filterModalInstance,\n },\n ],\n };\n if (modalSize === 'fullScreen') {\n modalConfig.fullPage = true;\n } else {\n modalConfig.size = modalSize;\n }\n\n const instance = this.#modalSvc.open(modalComponent, modalConfig);\n\n instance.closed.subscribe((args) => {\n if (args.reason === 'save') {\n this.#filterBarSvc.updateFilter({\n filterId: this.filterId(),\n filterValue: args.data,\n });\n }\n });\n });\n });\n }\n\n #openFilterCallback(): Observable<TData | undefined> {\n if (this.modalOpened.observed) {\n const args: SkyFilterItemModalOpenedArgs<TData> = {\n filterId: this.filterId(),\n };\n this.modalOpened.emit(args);\n return args.data?.pipe(take(1)) || of(undefined);\n }\n\n return of(undefined);\n }\n}\n","<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SkyFilterBarComponent } from './filter-bar.component';\nimport { SkyFilterItemLookupComponent } from './filter-items/filter-item-lookup.component';\nimport { SkyFilterItemModalComponent } from './filter-items/filter-item-modal.component';\n\n@NgModule({\n imports: [\n SkyFilterBarComponent,\n SkyFilterItemModalComponent,\n SkyFilterItemLookupComponent,\n ],\n exports: [\n SkyFilterBarComponent,\n SkyFilterItemModalComponent,\n SkyFilterItemLookupComponent,\n ],\n})\nexport class SkyFilterBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-filter-bar.mjs","sources":["../../../../../libs/components/filter-bar/src/lib/modules/shared/sky-filter-bar-resources.module.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.service.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item.token.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-base.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-base.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-lookup.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-lookup.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/models/filter-item-modal-context.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/models/filter-item-modal-instance.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-modal.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-modal.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.module.ts","../../../../../libs/components/filter-bar/src/skyux-filter-bar.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-filter-bar' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_filter_bar_clear_filters_confirm_apply_label: {\n message: 'Clear values',\n },\n skyux_filter_bar_clear_filters_confirm_body: {\n message:\n 'This will not remove any filters, but any values you have set will be removed.',\n },\n skyux_filter_bar_clear_filters_confirm_cancel_label: { message: 'Cancel' },\n skyux_filter_bar_clear_filters_confirm_title: {\n message:\n 'Are you sure you want to reset all filters to their original values?',\n },\n skyux_filter_bar_clear_filters_label: { message: 'Clear all values' },\n skyux_filter_bar_filter_label: { message: 'Filters' },\n skyux_filter_bar_filter_picker_descriptor: { message: 'filters' },\n skyux_filter_item_n_selected: { message: '{0} selected' },\n },\n 'FR-CA': {\n skyux_filter_bar_clear_filters_confirm_apply_label: {\n message: 'Effacer les valeurs',\n },\n skyux_filter_bar_clear_filters_confirm_body: {\n message:\n 'Ceci ne supprimera aucun filtre, mais toutes les valeurs que vous avez définies seront supprimées.',\n },\n skyux_filter_bar_clear_filters_confirm_cancel_label: { message: 'Annuler' },\n skyux_filter_bar_clear_filters_confirm_title: {\n message:\n 'Voulez-vous vraiment réinitialiser tous les filtres à leurs valeurs d’origine?',\n },\n skyux_filter_bar_clear_filters_label: {\n message: 'Effacer toutes les valeurs',\n },\n skyux_filter_bar_filter_label: { message: 'Filtres' },\n skyux_filter_bar_filter_picker_descriptor: { message: 'filtres' },\n skyux_filter_item_n_selected: { message: '{0} sélectionné' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyFilterBarResourcesModule {}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, ReplaySubject, Subject, filter, map } from 'rxjs';\n\nimport { SkyFilterBarFilterItem } from './models/filter-bar-filter-item';\nimport { SkyFilterBarFilterValue } from './models/filter-bar-filter-value';\n\n/**\n * Service for filter items to emit value changes to the filter bar.\n * @internal\n */\n@Injectable()\nexport class SkyFilterBarService {\n readonly #filterItemUpdates = new Subject<SkyFilterBarFilterItem>();\n readonly #filterValueUpdates = new ReplaySubject<SkyFilterBarFilterItem>();\n\n /**\n * Observable stream of filter item updates.\n */\n public readonly filterItemUpdated: Observable<SkyFilterBarFilterItem> =\n this.#filterItemUpdates.asObservable();\n\n /**\n * Filtered observable stream of filter value updates.\n * @param filterId the\n * @returns\n */\n public getFilterValueUpdates<TValue = unknown>(\n filterId: string,\n ): Observable<SkyFilterBarFilterValue<TValue> | undefined> {\n return this.#filterValueUpdates.pipe(\n filter((update) => update.filterId === filterId),\n map(\n (item) =>\n item.filterValue as SkyFilterBarFilterValue<TValue> | undefined,\n ),\n );\n }\n /**\n * Emit a filter value update.\n */\n public updateFilter(filter: SkyFilterBarFilterItem): void {\n this.#filterItemUpdates.next(filter);\n }\n\n public updateFilters(filters: SkyFilterBarFilterItem[]): void {\n for (const filter of filters) {\n this.#filterValueUpdates.next(filter);\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { SkyFilterItem } from '../models/filter-item';\n\n/**\n * A token for filter bar items.\n * @internal\n */\nexport const SKY_FILTER_ITEM = new InjectionToken<SkyFilterItem>(\n 'SKY_FILTER_ITEM',\n);\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n inject,\n model,\n untracked,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkyFilterState, SkyFilterStateService } from '@skyux/lists';\nimport {\n SkySelectionModalOpenArgs,\n SkySelectionModalSearchArgs,\n SkySelectionModalSearchResult,\n SkySelectionModalService,\n} from '@skyux/lookup';\nimport {\n SkyConfirmConfig,\n SkyConfirmService,\n SkyConfirmType,\n} from '@skyux/modals';\n\nimport { Observable, of } from 'rxjs';\n\nimport { SkyFilterBarResourcesModule } from '../shared/sky-filter-bar-resources.module';\n\nimport { SkyFilterBarService } from './filter-bar.service';\nimport { SKY_FILTER_ITEM } from './filter-items/filter-item.token';\nimport { SkyFilterBarFilterItem } from './models/filter-bar-filter-item';\nimport { SkyFilterBarItem } from './models/filter-bar-item';\nimport { SkyFilterItem } from './models/filter-item';\n\n/**\n * The top-level filter bar component.\n */\n@Component({\n selector: 'sky-filter-bar',\n imports: [\n NgTemplateOutlet,\n SkyFilterBarResourcesModule,\n SkyIconModule,\n SkyToolbarModule,\n ],\n providers: [SkyFilterBarService],\n templateUrl: './filter-bar.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrl: './filter-bar.component.scss',\n})\nexport class SkyFilterBarComponent {\n /**\n * An array of filter items containing the IDs and values of the filters that have been set.\n */\n public readonly appliedFilters = model<\n SkyFilterBarFilterItem[] | undefined\n >();\n\n /**\n * An array of filter IDs that the user has selected using the built-in selection modal. Setting this input to undefined results in all filters being displayed.\n */\n public readonly selectedFilterIds = model<string[] | undefined>();\n\n protected readonly filterItems = contentChildren(SKY_FILTER_ITEM);\n\n protected readonly visibleFilters = computed((): SkyFilterItem[] => {\n const items = this.filterItems();\n const selectedFilters = this.selectedFilterIds();\n\n const visibleFilters: (SkyFilterItem | undefined)[] = [];\n\n if (items) {\n if (selectedFilters) {\n for (const id of selectedFilters) {\n visibleFilters.push(items.find((item) => item.filterId() === id));\n }\n } else {\n for (const item of items) {\n visibleFilters.push(item);\n }\n }\n }\n\n return visibleFilters.filter((item) => !!item);\n });\n\n readonly #confirmSvc = inject(SkyConfirmService);\n readonly #filterBarSvc = inject(SkyFilterBarService);\n readonly #filterStateSvc = inject(SkyFilterStateService, { optional: true });\n readonly #filterItemUpdated = toSignal(this.#filterBarSvc.filterItemUpdated);\n readonly #modalSvc = inject(SkySelectionModalService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\n readonly #sourceId = 'skyFilterBar';\n readonly #strings = toSignal(\n this.#resourceSvc.getStrings({\n descriptor: 'skyux_filter_bar_filter_picker_descriptor',\n title: 'skyux_filter_bar_clear_filters_confirm_title',\n body: 'skyux_filter_bar_clear_filters_confirm_body',\n save: 'skyux_filter_bar_clear_filters_confirm_apply_label',\n cancel: 'skyux_filter_bar_clear_filters_confirm_cancel_label',\n }),\n );\n\n constructor() {\n // Subscribe to filter value updates from child filter items\n effect(() => {\n const updatedFilter = this.#filterItemUpdated();\n if (updatedFilter) {\n this.#updateFilter(updatedFilter);\n }\n });\n\n // Push filter value updates to child filter items. When applied filters\n // are changed, use the previous value to determine which items to reset\n // rather than reading filterId() from content children, which may\n // not have their required inputs bound yet (e.g. when used with @for).\n let previousFilterIds: string[] = [];\n effect(() => {\n const appliedFilters = this.appliedFilters() ?? [];\n const newFilterIds = new Set(appliedFilters.map((f) => f.filterId));\n\n // Send clear signals for filters that were previously set but are no longer present.\n const removedFilters = previousFilterIds\n .filter((id) => !newFilterIds.has(id))\n .map((filterId) => ({ filterId }));\n\n this.#filterBarSvc.updateFilters([...appliedFilters, ...removedFilters]);\n previousFilterIds = [...newFilterIds];\n });\n\n // If a filter state service is present, subscribe to its updates and reflect into local signals.\n if (this.#filterStateSvc) {\n const filterStateUpdates = toSignal<SkyFilterState>(\n this.#filterStateSvc.getFilterStateUpdates(this.#sourceId),\n );\n\n effect(() => {\n const data = filterStateUpdates();\n if (data) {\n this.appliedFilters.set(data.appliedFilters);\n this.selectedFilterIds.set(data.selectedFilterIds);\n }\n });\n }\n }\n\n protected openFilters(): void {\n const strings = this.#strings();\n const existingFilters = this.#getExistingFilterItems();\n\n /* istanbul ignore if: safety check */\n if (!strings) {\n return;\n }\n\n const filterArgs: SkySelectionModalOpenArgs = {\n selectionDescriptor: strings.descriptor,\n descriptorProperty: 'labelText',\n idProperty: 'filterId',\n selectMode: 'multiple',\n value: existingFilters,\n searchAsync: this.#filterAsyncSearchFn,\n };\n\n const modalInstance = this.#modalSvc.open(filterArgs);\n\n modalInstance.closed.subscribe((closeArgs) => {\n if (closeArgs.reason === 'save') {\n this.#handleFilterSelection(\n closeArgs.selectedItems as SkyFilterBarItem[] | undefined,\n existingFilters,\n );\n }\n });\n }\n\n protected clearFilters(): void {\n const strings = this.#strings();\n\n /* istanbul ignore if: safety check */\n if (!strings) {\n return;\n }\n\n const config: SkyConfirmConfig = {\n message: strings.title,\n body: strings.body,\n type: SkyConfirmType.Custom,\n buttons: [\n {\n action: 'save',\n text: strings.save,\n styleType: 'primary',\n },\n {\n action: 'cancel',\n text: strings.cancel,\n styleType: 'link',\n },\n ],\n };\n\n const instance = this.#confirmSvc.open(config);\n\n instance.closed.subscribe((result) => {\n if (result.action === 'save') {\n this.appliedFilters.set(undefined);\n this.#updateFilterData();\n }\n });\n }\n\n #getExistingFilterItems(): SkyFilterBarItem[] {\n /* istanbul ignore next: safety check */\n const selectedIds = this.selectedFilterIds() ?? [];\n const filterItems = this.filterItems();\n\n return selectedIds\n .map((selectedId) => {\n const filterItem = filterItems.find(\n (item) => item.filterId() === selectedId,\n );\n\n /* istanbul ignore next: safety check */\n return filterItem\n ? {\n filterId: filterItem.filterId(),\n labelText: filterItem.labelText(),\n filterValue: filterItem.filterValue(),\n }\n : undefined;\n })\n .filter((item) => !!item);\n }\n\n #handleFilterSelection(\n selectedFilters: SkyFilterBarItem[] | undefined,\n existingFilters: SkyFilterBarItem[],\n ): void {\n const { newFilterItems, removedFilterItems } = this.#processFilterChanges(\n selectedFilters,\n existingFilters,\n );\n\n const selectedIds = newFilterItems.map((item) => item.filterId);\n this.selectedFilterIds.set(selectedIds);\n\n if (removedFilterItems.length) {\n this.#filterBarSvc.updateFilters(removedFilterItems);\n const newFilters = newFilterItems.filter(\n (filter) => !!filter.filterValue,\n );\n this.appliedFilters.set(newFilters.length ? newFilters : undefined);\n }\n this.#updateFilterData();\n }\n\n #processFilterChanges(\n selectedFilters: SkyFilterBarItem[] | undefined,\n existingFilters: SkyFilterBarItem[],\n ): {\n newFilterItems: SkyFilterBarFilterItem[];\n removedFilterItems: SkyFilterBarFilterItem[];\n } {\n const newFilterItems: SkyFilterBarFilterItem[] = [];\n const removedFilterItems: SkyFilterBarFilterItem[] = [];\n\n // Process existing filters\n for (const existingFilter of existingFilters) {\n if (this.#isFilterSelected(existingFilter.filterId, selectedFilters)) {\n newFilterItems.push({\n filterId: existingFilter.filterId,\n filterValue: existingFilter.filterValue,\n });\n } else {\n removedFilterItems.push({ filterId: existingFilter.filterId });\n }\n }\n\n // Add newly selected filters\n if (selectedFilters) {\n for (const selectedFilter of selectedFilters) {\n if (!this.#isFilterInList(selectedFilter.filterId, newFilterItems)) {\n newFilterItems.push({ filterId: selectedFilter.filterId });\n }\n }\n }\n\n return { newFilterItems, removedFilterItems };\n }\n\n #isFilterSelected(\n filterId: string,\n selectedFilters: SkyFilterBarItem[] | undefined,\n ): boolean {\n return !!selectedFilters?.find(\n (selectedFilter) => selectedFilter.filterId === filterId,\n );\n }\n\n #isFilterInList(\n filterId: string,\n filterList: SkyFilterBarFilterItem[],\n ): boolean {\n return !!filterList.find((filter) => filter.filterId === filterId);\n }\n\n /* istanbul ignore next */\n #filterAsyncSearchFn = (\n args: SkySelectionModalSearchArgs,\n ): Observable<SkySelectionModalSearchResult> => {\n const items = this.filterItems().map((item) => ({\n filterId: item.filterId(),\n labelText: item.labelText(),\n }));\n\n const results = args.searchText\n ? items.filter((item) =>\n item.labelText\n .toLocaleUpperCase()\n .includes(args.searchText.toLocaleUpperCase()),\n )\n : items;\n\n return of({\n items: results,\n totalCount: items.length,\n });\n };\n\n #updateFilter(updatedFilter: SkyFilterBarFilterItem): void {\n const filters = untracked(() => this.appliedFilters()) ?? [];\n const newFilterValues: SkyFilterBarFilterItem[] = [];\n\n let replaceFilter = false;\n for (const filterValue of filters) {\n if (filterValue.filterId === updatedFilter.filterId) {\n if (updatedFilter.filterValue) {\n newFilterValues.push(updatedFilter);\n } else {\n this.#filterBarSvc.updateFilters([updatedFilter]);\n }\n replaceFilter = true;\n } else {\n newFilterValues.push(filterValue);\n }\n }\n\n if (!replaceFilter && updatedFilter.filterValue) {\n newFilterValues.push(updatedFilter);\n }\n\n this.appliedFilters.set(\n newFilterValues.length ? newFilterValues : undefined,\n );\n this.#updateFilterData();\n }\n\n #updateFilterData(): void {\n if (this.#filterStateSvc) {\n const appliedFilters = untracked(() => this.appliedFilters());\n const selectedFilterIds = untracked(() => this.selectedFilterIds());\n this.#filterStateSvc.updateFilterState(\n {\n appliedFilters,\n selectedFilterIds,\n },\n this.#sourceId,\n );\n }\n }\n}\n","<sky-toolbar class=\"sky-filter-bar-toolbar\">\n <sky-toolbar-item>\n <span class=\"sky-font-data-label\">{{\n 'skyux_filter_bar_filter_label' | skyLibResources\n }}</span>\n </sky-toolbar-item>\n @if (!!selectedFilterIds()) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-filter-picker sky-btn sky-filter-bar-btn sky-btn-default sky-btn-icon\"\n (click)=\"openFilters()\"\n >\n <sky-icon iconName=\"filter\" />\n </button>\n </sky-toolbar-item>\n }\n @for (filter of visibleFilters(); track filter.filterId()) {\n <sky-toolbar-item>\n <ng-container *ngTemplateOutlet=\"filter.templateRef() ?? null\" />\n </sky-toolbar-item>\n }\n @if (appliedFilters()?.length) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-clear-filters sky-btn sky-filter-bar-btn sky-btn-link\"\n (click)=\"clearFilters()\"\n >\n {{ 'skyux_filter_bar_clear_filters_label' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n</sky-toolbar>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n} from '@angular/core';\nimport { SkyIconModule } from '@skyux/icon';\n\nimport { SkyFilterBarFilterValue } from '../models/filter-bar-filter-value';\n\n/**\n * A filter bar item that is displayed by the other typed filter items.\n * This component contains a common template and styling that gets rendered as part of the consumer DOM.\n * @internal\n */\n@Component({\n selector: 'sky-filter-item-base',\n imports: [SkyIconModule],\n templateUrl: './filter-item-base.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./filter-item-base.component.scss'],\n})\nexport class SkyFilterItemBaseComponent {\n /**\n * A unique identifier for the filter item.\n * @required\n */\n public readonly filterId = input.required<string>();\n\n /**\n * The value for the filter item.\n */\n public readonly filterValue = input<SkyFilterBarFilterValue>();\n\n /**\n * The label to display for the filter item.\n */\n public readonly labelText = input.required<string>();\n\n /**\n * Fires when the user clicks the filter item.\n */\n public readonly itemClick = output<void>();\n\n protected onClick(): void {\n this.itemClick.emit();\n }\n}\n","@let value = filterValue();\n<button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-filter-bar-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-pressed]=\"!!value\"\n [attr.data-filter-id]=\"filterId()\"\n [class.sky-filter-bar-btn-selected]=\"!!value\"\n (click)=\"onClick()\"\n>\n <span class=\"sky-filter-item-title\"\n ><span class=\"sky-filter-item-name\">{{ labelText() }}</span>\n @if (value) {\n <span>:</span>\n }\n </span>\n @if (value) {\n <span class=\"sky-filter-item-value\">{{\n value.displayValue ?? value.value\n }}</span>\n }\n <span class=\"sky-filter-item-caret\">\n <sky-icon iconName=\"chevron-down\" />\n </span>\n</button>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output,\n TemplateRef,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkySelectionModalService } from '@skyux/lookup';\n\nimport { Observable, of } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\n\nimport { SkyFilterBarService } from '../filter-bar.service';\nimport { SkyFilterBarFilterValue } from '../models/filter-bar-filter-value';\nimport { SkyFilterItem } from '../models/filter-item';\nimport { SkyFilterItemLookupSearchAsyncArgs } from '../models/filter-item-lookup-search-async-args';\n\nimport { SkyFilterItemBaseComponent } from './filter-item-base.component';\nimport { SKY_FILTER_ITEM } from './filter-item.token';\n\n/**\n * A filter bar item that opens a selection modal for complex filter configuration.\n * Use this component for lookup-type filter fields where users select one or more\n * options from a list of values.\n */\n@Component({\n selector: 'sky-filter-item-lookup',\n imports: [SkyFilterItemBaseComponent],\n templateUrl: './filter-item-lookup.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: [\n { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemLookupComponent },\n ],\n})\nexport class SkyFilterItemLookupComponent<TValue = unknown>\n implements SkyFilterItem<TValue[]>, AfterViewInit\n{\n /**\n * A unique identifier for the filter item.\n * @required\n */\n public readonly filterId = input.required<string>();\n\n /**\n * The label to display for the filter item.\n * @required\n */\n public readonly labelText = input.required<string>();\n\n /**\n * The object property to display for each filter value in the selection modal when users open the filter.\n * @required\n */\n public readonly searchDescriptorProperty = input.required<string>();\n\n /**\n * The object property that represents a unique identifier for each filter value in the selection modal when users open the filter.\n * @required\n */\n public readonly searchIdProperty = input.required<string>();\n\n /**\n * Fires when users enter search information and allows results to be\n * returned via an observable. The event also fires with empty search text\n * when the filter is opened.\n * @required\n */\n @Output()\n public searchAsync = new EventEmitter<\n SkyFilterItemLookupSearchAsyncArgs<TValue>\n >();\n\n public readonly templateRef = viewChild(TemplateRef<unknown>);\n\n readonly #filterBarSvc = inject(SkyFilterBarService);\n readonly #selectionModalSvc = inject(SkySelectionModalService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\n\n public readonly filterValue = toSignal(\n toObservable(this.filterId).pipe(\n switchMap((filterId) =>\n this.#filterBarSvc.getFilterValueUpdates<TValue[]>(filterId),\n ),\n ),\n );\n\n public ngAfterViewInit(): void {\n /* istanbul ignore if: safety check */\n if (!this.searchAsync.observed) {\n throw new Error(\n 'The SkyFilterItemLookupComponent requires the `searchAsync` output to have an observer.',\n );\n }\n }\n\n protected openFilter(): void {\n const filterId = this.filterId();\n const filterValue = this.filterValue();\n const descriptorProperty = this.searchDescriptorProperty();\n const idProperty = this.searchIdProperty();\n\n const instance = this.#selectionModalSvc.open({\n descriptorProperty: descriptorProperty,\n idProperty: idProperty,\n searchAsync: (args) => {\n const searchAsyncArgs: SkyFilterItemLookupSearchAsyncArgs<TValue> = {\n filterId: filterId,\n offset: args.offset,\n searchText: args.searchText,\n continuationData: args.continuationData,\n };\n\n this.searchAsync.emit(searchAsyncArgs);\n\n return searchAsyncArgs.result;\n },\n selectMode: 'multiple',\n value: filterValue?.value,\n });\n\n instance.closed\n .pipe(\n switchMap(\n (\n args,\n ): Observable<\n SkyFilterBarFilterValue<TValue[] | undefined> | undefined\n > => {\n if (args.reason !== 'save') {\n return of(undefined);\n }\n\n const selected = args.selectedItems as TValue[];\n if (!selected?.length) {\n return of({ value: undefined });\n }\n\n if (selected.length === 1) {\n const item = selected[0] as Record<string, unknown>;\n\n return of({\n value: selected,\n displayValue: item[descriptorProperty] as string,\n });\n }\n\n // Multiple selections: get localized \"n selected\" string.\n return this.#resourceSvc\n .getString('skyux_filter_item_n_selected', selected.length)\n .pipe(\n take(1),\n map((displayValue) => ({\n value: selected,\n displayValue,\n })),\n );\n },\n ),\n )\n .subscribe((filter) => {\n // no filter means the modal was not saved\n if (filter) {\n let filterValue: SkyFilterBarFilterValue<TValue[]> | undefined;\n // no filter value means the save result was empty, so emit undefined\n if (filter.value) {\n filterValue = filter as SkyFilterBarFilterValue<TValue[]>;\n }\n this.#filterBarSvc.updateFilter({\n filterId: this.filterId(),\n filterValue,\n });\n }\n });\n }\n}\n","<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n","import { SkyFilterBarFilterValue } from './filter-bar-filter-value';\n\n/**\n * The context object that is provided to a filter modal.\n * @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.\n * @typeParam TData - The type of the additional context data. Defaults to `Record<string, unknown>`.\n */\nexport class SkyFilterItemModalContext<\n TData = Record<string, unknown>,\n TValue = unknown,\n> {\n /**\n * The name of the filter. We recommend using this value for the modal's heading.\n */\n public readonly filterLabelText: string;\n /**\n * The value of the filter.\n */\n public readonly filterValue?: SkyFilterBarFilterValue<TValue>;\n /**\n * An untyped property that can track any config information relevant to the filter modal\n * that existing options do not include.\n */\n public readonly additionalContext?: TData;\n\n constructor(args: {\n filterLabelText: string;\n filterValue?: SkyFilterBarFilterValue<TValue>;\n additionalContext?: TData;\n }) {\n this.filterLabelText = args.filterLabelText;\n this.filterValue = args.filterValue;\n this.additionalContext = args.additionalContext;\n }\n}\n","import { SkyFilterItemModalContext } from './filter-item-modal-context';\nimport { SkyFilterItemModalSavedArgs } from './filter-item-modal-saved-args';\n\n/**\n * A specialized `SkyModalInstance` wrapper.\n * @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.\n * @typeParam TData - The type of the additional context data. Defaults to `Record<string, unknown>`.\n */\nexport abstract class SkyFilterItemModalInstance<\n TData = Record<string, unknown>,\n TValue = unknown,\n> {\n /**\n * The context provided to the filter modal component.\n */\n public abstract readonly context: SkyFilterItemModalContext<TData, TValue>;\n\n /**\n * Closes the modal instance with `reason=\"cancel\"`.\n */\n public abstract cancel(): void;\n\n /**\n * Closes the modal instance with `reason=\"save\"`.\n * @param args\n */\n public abstract save(args: SkyFilterItemModalSavedArgs<TValue>): void;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EnvironmentInjector,\n EventEmitter,\n Injector,\n Output,\n TemplateRef,\n Type,\n inject,\n input,\n runInInjectionContext,\n viewChild,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n toObservable,\n toSignal,\n} from '@angular/core/rxjs-interop';\nimport { SkyModalConfigurationInterface, SkyModalService } from '@skyux/modals';\n\nimport { Observable, Subject, of } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\n\nimport { SkyFilterBarService } from '../filter-bar.service';\nimport { SkyFilterItem } from '../models/filter-item';\nimport { SkyFilterItemModal } from '../models/filter-item-modal';\nimport { SkyFilterItemModalContext } from '../models/filter-item-modal-context';\nimport { SkyFilterItemModalInstance } from '../models/filter-item-modal-instance';\nimport { SkyFilterItemModalOpenedArgs } from '../models/filter-item-modal-opened-args';\nimport { SkyFilterItemModalSavedArgs } from '../models/filter-item-modal-saved-args';\nimport { SkyFilterItemModalSizeType } from '../models/filter-item-modal-size';\n\nimport { SkyFilterItemBaseComponent } from './filter-item-base.component';\nimport { SKY_FILTER_ITEM } from './filter-item.token';\n\n/**\n * A filter bar item that opens a modal for complex filter configuration.\n * Use this component when your filter requires a rich UI with multiple inputs,\n * date pickers, or other complex controls that don't fit in an inline filter.\n */\n@Component({\n selector: 'sky-filter-item-modal',\n imports: [SkyFilterItemBaseComponent],\n templateUrl: './filter-item-modal.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: [\n { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },\n ],\n})\nexport class SkyFilterItemModalComponent<\n TData = Record<string, unknown> | undefined,\n TValue = unknown,\n> implements SkyFilterItem<TValue> {\n /**\n * A unique identifier for the filter item.\n * @required\n */\n public readonly filterId = input.required<string>();\n\n /**\n * The label to display for the filter item.\n * @required\n */\n public readonly labelText = input.required<string>();\n\n /**\n * The modal component to display when the user selects the filter.\n * The component needs to inject a `SkyFilterItemModalInstance` object on instantiation to receive the modal instance and context from the modal service.\n * The return value of the modal save action needs to be a `SkyFilterBarFilterValue`.\n * @required\n */\n public readonly modalComponent =\n input.required<Type<SkyFilterItemModal<TData, TValue>>>();\n\n /**\n * The size of the modal to display. The valid options are `\"small\"`, `\"medium\"`, `\"large\"`, and `\"fullScreen\"`.\n */\n public readonly modalSize = input.required<SkyFilterItemModalSizeType>();\n\n /**\n * Fires when the user clicks the filter item. To pass additional context data to a filter modal, consumers\n * must subscribe to this event and return the context using the observable property on the event args.\n */\n @Output()\n public modalOpened = new EventEmitter<SkyFilterItemModalOpenedArgs<TData>>();\n\n public readonly templateRef = viewChild(TemplateRef<unknown>);\n\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #modalSvc = inject(SkyModalService);\n readonly #filterBarSvc = inject(SkyFilterBarService);\n\n public readonly filterValue = toSignal(\n toObservable(this.filterId).pipe(\n switchMap((filterId) =>\n this.#filterBarSvc.getFilterValueUpdates<TValue>(filterId),\n ),\n ),\n );\n\n protected openFilter(): void {\n const modalComponent = this.modalComponent();\n const modalSize = this.modalSize();\n const labelText = this.labelText();\n const filterValue = this.filterValue();\n\n this.#openFilterCallback().subscribe((additionalContext) => {\n const context = new SkyFilterItemModalContext<TData, TValue>({\n filterLabelText: labelText,\n filterValue,\n additionalContext,\n });\n\n const injector = Injector.create({\n parent: this.#environmentInjector,\n providers: [{ provide: SkyFilterItemModalContext, useValue: context }],\n });\n\n runInInjectionContext(injector, () => {\n const destroyRef = injector.get(DestroyRef);\n\n const saved = new Subject<SkyFilterItemModalSavedArgs<TValue>>();\n const canceled = new Subject<void>();\n\n const context = inject<SkyFilterItemModalContext<TData, TValue>>(\n SkyFilterItemModalContext,\n );\n\n const filterModalInstance: SkyFilterItemModalInstance<TData, TValue> = {\n context,\n cancel() {\n canceled.next();\n canceled.complete();\n },\n save(result) {\n saved.next(result);\n saved.complete();\n },\n };\n\n canceled\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe(() => instance.cancel());\n saved\n .pipe(takeUntilDestroyed(destroyRef))\n .subscribe((result) => instance.save(result.filterValue));\n\n const modalConfig: SkyModalConfigurationInterface = {\n providers: [\n {\n provide: SkyFilterItemModalInstance,\n useValue: filterModalInstance,\n },\n ],\n };\n if (modalSize === 'fullScreen') {\n modalConfig.fullPage = true;\n } else {\n modalConfig.size = modalSize;\n }\n\n const instance = this.#modalSvc.open(modalComponent, modalConfig);\n\n instance.closed.subscribe((args) => {\n if (args.reason === 'save') {\n this.#filterBarSvc.updateFilter({\n filterId: this.filterId(),\n filterValue: args.data,\n });\n }\n });\n });\n });\n }\n\n #openFilterCallback(): Observable<TData | undefined> {\n if (this.modalOpened.observed) {\n const args: SkyFilterItemModalOpenedArgs<TData> = {\n filterId: this.filterId(),\n };\n this.modalOpened.emit(args);\n return args.data?.pipe(take(1)) || of(undefined);\n }\n\n return of(undefined);\n }\n}\n","<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SkyFilterBarComponent } from './filter-bar.component';\nimport { SkyFilterItemLookupComponent } from './filter-items/filter-item-lookup.component';\nimport { SkyFilterItemModalComponent } from './filter-items/filter-item-modal.component';\n\n@NgModule({\n imports: [\n SkyFilterBarComponent,\n SkyFilterItemModalComponent,\n SkyFilterItemLookupComponent,\n ],\n exports: [\n SkyFilterBarComponent,\n SkyFilterItemModalComponent,\n SkyFilterItemLookupComponent,\n ],\n})\nexport class SkyFilterBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/filter-bar",
3
- "version": "14.3.12",
3
+ "version": "15.0.0-alpha.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -16,16 +16,16 @@
16
16
  },
17
17
  "homepage": "https://github.com/blackbaud/skyux#reamde",
18
18
  "peerDependencies": {
19
- "@angular/cdk": "^21.2.0",
20
- "@angular/common": "^21.2.0",
21
- "@angular/core": "^21.2.0",
22
- "@skyux/core": "14.3.12",
23
- "@skyux/i18n": "14.3.12",
24
- "@skyux/icon": "14.3.12",
25
- "@skyux/layout": "14.3.12",
26
- "@skyux/lists": "14.3.12",
27
- "@skyux/lookup": "14.3.12",
28
- "@skyux/modals": "14.3.12"
19
+ "@angular/cdk": "^22.0.1",
20
+ "@angular/common": "^22.0.1",
21
+ "@angular/core": "^22.0.1",
22
+ "@skyux/core": "15.0.0-alpha.0",
23
+ "@skyux/i18n": "15.0.0-alpha.0",
24
+ "@skyux/icon": "15.0.0-alpha.0",
25
+ "@skyux/layout": "15.0.0-alpha.0",
26
+ "@skyux/lists": "15.0.0-alpha.0",
27
+ "@skyux/lookup": "15.0.0-alpha.0",
28
+ "@skyux/modals": "15.0.0-alpha.0"
29
29
  },
30
30
  "dependencies": {
31
31
  "tslib": "^2.8.1"