@skyux/filter-bar 12.41.1 → 12.44.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 +1 @@
1
- {"version":3,"file":"skyux-filter-bar-testing.mjs","sources":["../../../../../libs/components/filter-bar/testing/src/modules/filter-bar/filter-item-harness.ts","../../../../../libs/components/filter-bar/testing/src/modules/filter-bar/filter-bar-harness.ts","../../../../../libs/components/filter-bar/testing/src/skyux-filter-bar-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyFilterItemHarnessFilters } from './filter-item-harness-filters';\n\n/**\n * Harness to interact with a filter item component in tests.\n */\nexport class SkyFilterItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = '.sky-filter-item';\n\n #getButton = this.locatorFor('button.sky-filter-bar-btn');\n #getFilterName = this.locatorFor('span.sky-filter-item-name');\n #getFilterValue = this.locatorForOptional('span.sky-filter-item-value');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyFilterBarItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyFilterItemHarnessFilters,\n ): HarnessPredicate<SkyFilterItemHarness> {\n return SkyFilterItemHarness.getDataSkyIdPredicate(filters)\n .addOption('filterId', filters.filterId, async (harness, filterId) => {\n const harnessId = await (\n await harness.#getButton()\n ).getAttribute('data-filter-id');\n return await HarnessPredicate.stringMatches(harnessId, filterId);\n })\n .addOption('labelText', filters.labelText, async (harness, labelText) => {\n const harnessName = await harness.getLabelText();\n return await HarnessPredicate.stringMatches(harnessName, labelText);\n });\n }\n\n /**\n * Clicks the filter item to open its modal.\n */\n public async click(): Promise<void> {\n return await (await this.#getButton()).click();\n }\n\n /**\n * Gets the filter item value.\n */\n public async getFilterValue(): Promise<string | undefined> {\n return await (await this.#getFilterValue())?.text();\n }\n\n /**\n * Gets the filter item label.\n */\n public async getLabelText(): Promise<string> {\n return await (await this.#getFilterName()).text();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkySelectionModalHarness } from '@skyux/lookup/testing';\n\nimport { SkyFilterBarHarnessFilters } from './filter-bar-harness-filters';\nimport { SkyFilterItemHarness } from './filter-item-harness';\nimport { SkyFilterItemHarnessFilters } from './filter-item-harness-filters';\n\n/**\n * Harness for interacting with a filter bar component in tests.\n */\nexport class SkyFilterBarHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-filter-bar';\n\n #documentRootLocator = this.documentRootLocatorFactory();\n\n #getClearFiltersButton = this.locatorForOptional(\n '.sky-filter-bar-clear-filters',\n );\n #getFilterPickerButton = this.locatorForOptional(\n '.sky-filter-bar-filter-picker',\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyFilterBarHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyFilterBarHarnessFilters,\n ): HarnessPredicate<SkyFilterBarHarness> {\n return SkyFilterBarHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Clicks the clear filters button.\n */\n public async clickClearFilters(): Promise<void> {\n const button = await this.#getClearFiltersButton();\n if (!button) {\n throw new Error(\n 'Unable to find clear filters button because no filters are set',\n );\n }\n await button.click();\n }\n\n /**\n * Gets a specific filter item based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getItem(\n filter: SkyFilterItemHarnessFilters,\n ): Promise<SkyFilterItemHarness> {\n return await this.locatorFor(SkyFilterItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of filter items based on the filter criteria.\n * If no filter is provided, returns all filter items.\n * @param filters The optional filter criteria.\n */\n public async getItems(\n filters?: SkyFilterItemHarnessFilters,\n ): Promise<SkyFilterItemHarness[]> {\n return await this.locatorForAll(SkyFilterItemHarness.with(filters || {}))();\n }\n\n /**\n * Checks if the filter bar has active filters.\n */\n public async hasActiveFilters(): Promise<boolean> {\n const clearButton = await this.#getClearFiltersButton();\n return !!clearButton;\n }\n\n /**\n * Checks if the filter picker button is visible.\n */\n public async hasFilterPicker(): Promise<boolean> {\n const pickerButton = await this.#getFilterPickerButton();\n return !!pickerButton;\n }\n\n /**\n * Clicks the filter picker button and returns a harness for the selection modal that it opened.\n */\n public async openFilterPicker(): Promise<SkySelectionModalHarness> {\n const button = await this.#getFilterPickerButton();\n if (!button) {\n throw new Error('Filter picker button not found');\n }\n await button.click();\n\n return await this.#documentRootLocator.locatorFor(\n SkySelectionModalHarness,\n )();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-filter-bar-testing.mjs","sources":["../../../../../libs/components/filter-bar/testing/src/modules/filter-bar/filter-item-harness.ts","../../../../../libs/components/filter-bar/testing/src/modules/filter-bar/filter-bar-harness.ts","../../../../../libs/components/filter-bar/testing/src/skyux-filter-bar-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyFilterItemHarnessFilters } from './filter-item-harness-filters';\n\n/**\n * Harness to interact with a filter item component in tests.\n */\nexport class SkyFilterItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = '.sky-filter-item';\n\n #getButton = this.locatorFor('button.sky-filter-bar-btn');\n #getFilterName = this.locatorFor('span.sky-filter-item-name');\n #getFilterValue = this.locatorForOptional('span.sky-filter-item-value');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyFilterBarItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyFilterItemHarnessFilters,\n ): HarnessPredicate<SkyFilterItemHarness> {\n return SkyFilterItemHarness.getDataSkyIdPredicate(filters)\n .addOption('filterId', filters.filterId, async (harness, filterId) => {\n const harnessId = await (\n await harness.#getButton()\n ).getAttribute('data-filter-id');\n return await HarnessPredicate.stringMatches(harnessId, filterId);\n })\n .addOption('labelText', filters.labelText, async (harness, labelText) => {\n const harnessName = await harness.getLabelText();\n return await HarnessPredicate.stringMatches(harnessName, labelText);\n });\n }\n\n /**\n * Clicks the filter item to open its modal.\n */\n public async click(): Promise<void> {\n return await (await this.#getButton()).click();\n }\n\n /**\n * Gets the filter item value.\n */\n public async getFilterValue(): Promise<string | undefined> {\n return await (await this.#getFilterValue())?.text();\n }\n\n /**\n * Gets the filter item label.\n */\n public async getLabelText(): Promise<string> {\n return await (await this.#getFilterName()).text();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkySelectionModalHarness } from '@skyux/lookup/testing';\n\nimport { SkyFilterBarHarnessFilters } from './filter-bar-harness-filters';\nimport { SkyFilterItemHarness } from './filter-item-harness';\nimport { SkyFilterItemHarnessFilters } from './filter-item-harness-filters';\n\n/**\n * Harness for interacting with a filter bar component in tests.\n */\nexport class SkyFilterBarHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-filter-bar';\n\n #documentRootLocator = this.documentRootLocatorFactory();\n\n #getClearFiltersButton = this.locatorForOptional(\n '.sky-filter-bar-clear-filters',\n );\n #getFilterPickerButton = this.locatorForOptional(\n '.sky-filter-bar-filter-picker',\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyFilterBarHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyFilterBarHarnessFilters,\n ): HarnessPredicate<SkyFilterBarHarness> {\n return SkyFilterBarHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Clicks the clear filters button.\n */\n public async clickClearFilters(): Promise<void> {\n const button = await this.#getClearFiltersButton();\n if (!button) {\n throw new Error(\n 'Unable to find clear filters button because no filters are set',\n );\n }\n await button.click();\n }\n\n /**\n * Gets a specific filter item based on the filter criteria.\n * @param filter The filter criteria.\n */\n public async getItem(\n filter: SkyFilterItemHarnessFilters,\n ): Promise<SkyFilterItemHarness> {\n return await this.locatorFor(SkyFilterItemHarness.with(filter))();\n }\n\n /**\n * Gets an array of filter items based on the filter criteria.\n * If no filter is provided, returns all filter items.\n * @param filters The optional filter criteria.\n */\n public async getItems(\n filters?: SkyFilterItemHarnessFilters,\n ): Promise<SkyFilterItemHarness[]> {\n return await this.locatorForAll(SkyFilterItemHarness.with(filters || {}))();\n }\n\n /**\n * Checks if the filter bar has active filters.\n */\n public async hasActiveFilters(): Promise<boolean> {\n const clearButton = await this.#getClearFiltersButton();\n return !!clearButton;\n }\n\n /**\n * Checks if the filter picker button is visible.\n */\n public async hasFilterPicker(): Promise<boolean> {\n const pickerButton = await this.#getFilterPickerButton();\n return !!pickerButton;\n }\n\n /**\n * Clicks the filter picker button and returns a harness for the selection modal that it opened.\n */\n public async openFilterPicker(): Promise<SkySelectionModalHarness> {\n const button = await this.#getFilterPickerButton();\n if (!button) {\n throw new Error('Filter picker button not found');\n }\n await button.click();\n\n return await this.#documentRootLocator.locatorFor(\n SkySelectionModalHarness,\n )();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAKA;;AAEG;AACG,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;AAC3D;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,kBAAkB,CAAC;AAEhD,IAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC;AACzD,IAAA,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC;AAC7D,IAAA,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,CAAC;AAEvE;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAoC,EAAA;AAEpC,QAAA,OAAO,oBAAoB,CAAC,qBAAqB,CAAC,OAAO;AACtD,aAAA,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,OAAO,EAAE,QAAQ,KAAI;AACnE,YAAA,MAAM,SAAS,GAAG,MAAM,CACtB,MAAM,OAAO,CAAC,UAAU,EAAE,EAC1B,YAAY,CAAC,gBAAgB,CAAC;YAChC,OAAO,MAAM,gBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC;AAClE,SAAC;AACA,aAAA,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,OAAO,EAAE,SAAS,KAAI;AACtE,YAAA,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE;YAChD,OAAO,MAAM,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC;AACrE,SAAC,CAAC;;AAGN;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;QAChB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE;;AAGhD;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;QACzB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,EAAE;;AAGrD;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;QACvB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE;;;;AChDrD;;AAEG;AACG,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAC1D;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,gBAAgB,CAAC;AAE9C,IAAA,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,EAAE;AAExD,IAAA,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAC9C,+BAA+B,CAChC;AACD,IAAA,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAC9C,+BAA+B,CAChC;AAED;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAmC,EAAA;AAEnC,QAAA,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC;;AAG3D;;AAEG;AACI,IAAA,MAAM,iBAAiB,GAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE;QAClD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE;;AAEH,QAAA,MAAM,MAAM,CAAC,KAAK,EAAE;;AAGtB;;;AAGG;IACI,MAAM,OAAO,CAClB,MAAmC,EAAA;AAEnC,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;;AAGnE;;;;AAIG;IACI,MAAM,QAAQ,CACnB,OAAqC,EAAA;AAErC,QAAA,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE;;AAG7E;;AAEG;AACI,IAAA,MAAM,gBAAgB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE;QACvD,OAAO,CAAC,CAAC,WAAW;;AAGtB;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;AAC1B,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE;QACxD,OAAO,CAAC,CAAC,YAAY;;AAGvB;;AAEG;AACI,IAAA,MAAM,gBAAgB,GAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE;QAClD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;;AAEnD,QAAA,MAAM,MAAM,CAAC,KAAK,EAAE;QAEpB,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAC/C,wBAAwB,CACzB,EAAE;;;;AClGP;;AAEG;;;;"}
@@ -44,11 +44,11 @@ SkyLibResourcesService.addResources(RESOURCES);
44
44
  * Import into any component library module that needs to use resource strings.
45
45
  */
46
46
  class SkyFilterBarResourcesModule {
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
48
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarResourcesModule, exports: [SkyI18nModule] }); }
49
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarResourcesModule, imports: [SkyI18nModule] }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
48
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarResourcesModule, exports: [SkyI18nModule] }); }
49
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarResourcesModule, imports: [SkyI18nModule] }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarResourcesModule, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarResourcesModule, decorators: [{
52
52
  type: NgModule,
53
53
  args: [{
54
54
  exports: [SkyI18nModule],
@@ -89,10 +89,10 @@ class SkyFilterBarService {
89
89
  this.#filterValueUpdates.next(filter);
90
90
  }
91
91
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
93
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarService }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
93
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarService }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarService, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarService, decorators: [{
96
96
  type: Injectable
97
97
  }] });
98
98
 
@@ -317,10 +317,10 @@ class SkyFilterBarComponent {
317
317
  })));
318
318
  }
319
319
  }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", 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()) {\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)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyFilterBarResourcesModule }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i4.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i4.λ39, selector: "sky-toolbar-item" }] }); }
320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", 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()) {\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)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyFilterBarResourcesModule }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i4.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i4.λ39, selector: "sky-toolbar-item" }] }); }
322
322
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarComponent, decorators: [{
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarComponent, decorators: [{
324
324
  type: Component,
325
325
  args: [{ selector: 'sky-filter-bar', imports: [
326
326
  CommonModule,
@@ -463,12 +463,12 @@ class SkyFilterItemModalComponent {
463
463
  }
464
464
  return of(undefined);
465
465
  }
466
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterItemModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
467
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", 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: [
466
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterItemModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
467
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", 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: [
468
468
  { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },
469
469
  ], viewQueries: [{ propertyName: "templateRef", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n @let value = filterValue();\n <div class=\"sky-filter-item sky-filter-item-modal\">\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)=\"openFilter()\"\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 </div>\n</ng-template>\n", styles: [".sky-filter-item:not(.sky-theme-modern *){--sky-override-filter-bar-button-gap-spacing: 10px;--sky-override-filter-bar-button-selected-background-color: #c1e8fb}::ng-deep .sky-theme-modern:not(.sky-theme-brand-base) .sky-filter-item{--sky-override-filter-bar-button-border-selected: inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-selected)}.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:var(--sky-override-filter-bar-button-border-selected, 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: CommonModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }] }); }
470
470
  }
471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterItemModalComponent, decorators: [{
471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterItemModalComponent, decorators: [{
472
472
  type: Component,
473
473
  args: [{ selector: 'sky-filter-item-modal', imports: [CommonModule, SkyIconModule], providers: [
474
474
  { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },
@@ -478,11 +478,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
478
478
  }] } });
479
479
 
480
480
  class SkyFilterBarModule {
481
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
482
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent, SkyFilterItemModalComponent], exports: [SkyFilterBarComponent, SkyFilterItemModalComponent] }); }
483
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent, SkyFilterItemModalComponent] }); }
481
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
482
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent, SkyFilterItemModalComponent], exports: [SkyFilterBarComponent, SkyFilterItemModalComponent] }); }
483
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent, SkyFilterItemModalComponent] }); }
484
484
  }
485
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyFilterBarModule, decorators: [{
485
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyFilterBarModule, decorators: [{
486
486
  type: NgModule,
487
487
  args: [{
488
488
  imports: [SkyFilterBarComponent, SkyFilterItemModalComponent],
@@ -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-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/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-item-modal.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/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 * 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};\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(\n filterId: string,\n ): Observable<SkyFilterBarFilterValue | undefined> {\n return this.#filterValueUpdates.pipe(\n filter((update) => update.filterId === filterId),\n map((item) => item.filterValue),\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 { CommonModule, 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 {\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-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 CommonModule,\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 #filterUpdated = toSignal(this.#filterBarSvc.filterItemUpdated);\n readonly #modalSvc = inject(SkySelectionModalService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\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.#filterUpdated();\n if (updatedFilter) {\n this.#updateFilter(updatedFilter);\n }\n });\n\n // Push filter value updates to child filter items\n effect(() => {\n const filters = this.appliedFilters();\n this.#updateFilters(filters);\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 }\n });\n }\n\n #getExistingFilterItems(): SkyFilterBarItem[] {\n /* istanbul ignore next: safety check */\n const selectedIds = this.selectedFilterIds() ?? [];\n return this.filterItems()\n .filter((item) => selectedIds.includes(item.filterId()))\n .map((item) => ({\n filterId: item.filterId(),\n labelText: item.labelText(),\n filterValue: item.filterValue(),\n }));\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.#updateFilters(removedFilterItems);\n const newFilters = newFilterItems.filter(\n (filter) => !!filter.filterValue,\n );\n this.appliedFilters.set(newFilters.length ? newFilters : undefined);\n }\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 }\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 }\n\n #updateFilters(updatedFilters: SkyFilterBarFilterItem[] | undefined): void {\n if (updatedFilters) {\n this.#filterBarSvc.updateFilters(updatedFilters);\n } else {\n this.#filterBarSvc.updateFilters(\n untracked(() => this.filterItems()).map((filterItem) => ({\n filterId: filterItem.filterId(),\n })),\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()) {\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 { SkyFilterBarFilterValue } from './filter-bar-filter-value';\n\n/**\n * The context object that is provided to a filter modal.\n */\nexport class SkyFilterItemModalContext<TData = Record<string, unknown>> {\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;\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;\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 */\nexport abstract class SkyFilterItemModalInstance<\n TData = Record<string, unknown>,\n> {\n /**\n * The context provided to the filter modal component.\n */\n public abstract readonly context: SkyFilterItemModalContext<TData>;\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): void;\n}\n","import { CommonModule } from '@angular/common';\nimport {\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 { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { SkyIconModule } from '@skyux/icon';\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 { SKY_FILTER_ITEM } from './filter-item.token';\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\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: [CommonModule, SkyIconModule],\n templateUrl: './filter-item-modal.component.html',\n styleUrls: ['./filter-item-modal.component.scss'],\n providers: [\n { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },\n ],\n})\nexport class SkyFilterItemModalComponent<\n TData = Record<string, unknown> | undefined,\n> implements SkyFilterItem\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 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>>>();\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(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>({\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>();\n const canceled = new Subject<void>();\n\n const context = inject<SkyFilterItemModalContext<TData>>(\n SkyFilterItemModalContext,\n );\n\n const filterModalInstance: SkyFilterItemModalInstance<TData> = {\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 @let value = filterValue();\n <div class=\"sky-filter-item sky-filter-item-modal\">\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)=\"openFilter()\"\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 </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SkyFilterBarComponent } from './filter-bar.component';\nimport { SkyFilterItemModalComponent } from './filter-item-modal.component';\n\n@NgModule({\n imports: [SkyFilterBarComponent, SkyFilterItemModalComponent],\n exports: [SkyFilterBarComponent, SkyFilterItemModalComponent],\n})\nexport class SkyFilterBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"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-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/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-item-modal.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/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 * 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};\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(\n filterId: string,\n ): Observable<SkyFilterBarFilterValue | undefined> {\n return this.#filterValueUpdates.pipe(\n filter((update) => update.filterId === filterId),\n map((item) => item.filterValue),\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 { CommonModule, 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 {\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-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 CommonModule,\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 #filterUpdated = toSignal(this.#filterBarSvc.filterItemUpdated);\n readonly #modalSvc = inject(SkySelectionModalService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\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.#filterUpdated();\n if (updatedFilter) {\n this.#updateFilter(updatedFilter);\n }\n });\n\n // Push filter value updates to child filter items\n effect(() => {\n const filters = this.appliedFilters();\n this.#updateFilters(filters);\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 }\n });\n }\n\n #getExistingFilterItems(): SkyFilterBarItem[] {\n /* istanbul ignore next: safety check */\n const selectedIds = this.selectedFilterIds() ?? [];\n return this.filterItems()\n .filter((item) => selectedIds.includes(item.filterId()))\n .map((item) => ({\n filterId: item.filterId(),\n labelText: item.labelText(),\n filterValue: item.filterValue(),\n }));\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.#updateFilters(removedFilterItems);\n const newFilters = newFilterItems.filter(\n (filter) => !!filter.filterValue,\n );\n this.appliedFilters.set(newFilters.length ? newFilters : undefined);\n }\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 }\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 }\n\n #updateFilters(updatedFilters: SkyFilterBarFilterItem[] | undefined): void {\n if (updatedFilters) {\n this.#filterBarSvc.updateFilters(updatedFilters);\n } else {\n this.#filterBarSvc.updateFilters(\n untracked(() => this.filterItems()).map((filterItem) => ({\n filterId: filterItem.filterId(),\n })),\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()) {\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 { SkyFilterBarFilterValue } from './filter-bar-filter-value';\n\n/**\n * The context object that is provided to a filter modal.\n */\nexport class SkyFilterItemModalContext<TData = Record<string, unknown>> {\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;\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;\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 */\nexport abstract class SkyFilterItemModalInstance<\n TData = Record<string, unknown>,\n> {\n /**\n * The context provided to the filter modal component.\n */\n public abstract readonly context: SkyFilterItemModalContext<TData>;\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): void;\n}\n","import { CommonModule } from '@angular/common';\nimport {\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 { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { SkyIconModule } from '@skyux/icon';\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 { SKY_FILTER_ITEM } from './filter-item.token';\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\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: [CommonModule, SkyIconModule],\n templateUrl: './filter-item-modal.component.html',\n styleUrls: ['./filter-item-modal.component.scss'],\n providers: [\n { provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },\n ],\n})\nexport class SkyFilterItemModalComponent<\n TData = Record<string, unknown> | undefined,\n> implements SkyFilterItem\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 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>>>();\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(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>({\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>();\n const canceled = new Subject<void>();\n\n const context = inject<SkyFilterItemModalContext<TData>>(\n SkyFilterItemModalContext,\n );\n\n const filterModalInstance: SkyFilterItemModalInstance<TData> = {\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 @let value = filterValue();\n <div class=\"sky-filter-item sky-filter-item-modal\">\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)=\"openFilter()\"\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 </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SkyFilterBarComponent } from './filter-bar.component';\nimport { SkyFilterItemModalComponent } from './filter-item-modal.component';\n\n@NgModule({\n imports: [SkyFilterBarComponent, SkyFilterItemModalComponent],\n exports: [SkyFilterBarComponent, SkyFilterItemModalComponent],\n})\nexport class SkyFilterBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/filter-bar",
3
- "version": "12.41.1",
3
+ "version": "12.44.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -17,14 +17,14 @@
17
17
  "homepage": "https://github.com/blackbaud/skyux#reamde",
18
18
  "peerDependencies": {
19
19
  "@angular/cdk": "^19.2.19",
20
- "@angular/common": "^19.2.14",
21
- "@angular/core": "^19.2.14",
22
- "@skyux/core": "12.41.1",
23
- "@skyux/i18n": "12.41.1",
24
- "@skyux/icon": "12.41.1",
25
- "@skyux/layout": "12.41.1",
26
- "@skyux/lookup": "12.41.1",
27
- "@skyux/modals": "12.41.1"
20
+ "@angular/common": "^19.2.17",
21
+ "@angular/core": "^19.2.17",
22
+ "@skyux/core": "12.44.0",
23
+ "@skyux/i18n": "12.44.0",
24
+ "@skyux/icon": "12.44.0",
25
+ "@skyux/layout": "12.44.0",
26
+ "@skyux/lookup": "12.44.0",
27
+ "@skyux/modals": "12.44.0"
28
28
  },
29
29
  "dependencies": {
30
30
  "tslib": "^2.8.1"