@skyux/filter-bar 13.14.3 → 13.16.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.
@@ -197,10 +197,20 @@ class SkyFilterBarComponent {
197
197
  this.#updateFilter(updatedFilter);
198
198
  }
199
199
  });
200
- // Push filter value updates to child filter items
200
+ // Push filter value updates to child filter items. When applied filters
201
+ // are changed, use the previous value to determine which items to reset
202
+ // rather than reading filterId() from content children, which may
203
+ // not have their required inputs bound yet (e.g. when used with @for).
204
+ let previousFilterIds = [];
201
205
  effect(() => {
202
- const filters = this.appliedFilters();
203
- this.#updateFilters(filters);
206
+ const appliedFilters = this.appliedFilters() ?? [];
207
+ const newFilterIds = new Set(appliedFilters.map((f) => f.filterId));
208
+ // Send clear signals for filters that were previously set but are no longer present.
209
+ const removedFilters = previousFilterIds
210
+ .filter((id) => !newFilterIds.has(id))
211
+ .map((filterId) => ({ filterId }));
212
+ this.#filterBarSvc.updateFilters([...appliedFilters, ...removedFilters]);
213
+ previousFilterIds = [...newFilterIds];
204
214
  });
205
215
  // If a filter state service is present, subscribe to its updates and reflect into local signals.
206
216
  if (this.#filterStateSvc) {
@@ -290,7 +300,7 @@ class SkyFilterBarComponent {
290
300
  const selectedIds = newFilterItems.map((item) => item.filterId);
291
301
  this.selectedFilterIds.set(selectedIds);
292
302
  if (removedFilterItems.length) {
293
- this.#updateFilters(removedFilterItems);
303
+ this.#filterBarSvc.updateFilters(removedFilterItems);
294
304
  const newFilters = newFilterItems.filter((filter) => !!filter.filterValue);
295
305
  this.appliedFilters.set(newFilters.length ? newFilters : undefined);
296
306
  }
@@ -339,7 +349,7 @@ class SkyFilterBarComponent {
339
349
  newFilterValues.push(updatedFilter);
340
350
  }
341
351
  else {
342
- this.#updateFilters([updatedFilter]);
352
+ this.#filterBarSvc.updateFilters([updatedFilter]);
343
353
  }
344
354
  replaceFilter = true;
345
355
  }
@@ -353,16 +363,6 @@ class SkyFilterBarComponent {
353
363
  this.appliedFilters.set(newFilterValues.length ? newFilterValues : undefined);
354
364
  this.#updateFilterData();
355
365
  }
356
- #updateFilters(updatedFilters) {
357
- if (updatedFilters?.length) {
358
- this.#filterBarSvc.updateFilters(updatedFilters);
359
- }
360
- else {
361
- this.#filterBarSvc.updateFilters(untracked(() => this.filterItems()).map((filterItem) => ({
362
- filterId: filterItem.filterId(),
363
- })));
364
- }
365
- }
366
366
  #updateFilterData() {
367
367
  if (this.#filterStateSvc) {
368
368
  const appliedFilters = untracked(() => this.appliedFilters());
@@ -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 * 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\n effect(() => {\n const filters = this.appliedFilters();\n this.#updateFilters(filters);\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.#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.#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 #updateFilters(updatedFilters: SkyFilterBarFilterItem[] | undefined): void {\n if (updatedFilters?.length) {\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 #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 { toSignal } from '@angular/core/rxjs-interop';\nimport { toObservable } 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 { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { toObservable } 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 /**\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 * 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 { toSignal } from '@angular/core/rxjs-interop';\nimport { toObservable } 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 { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { toObservable } 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 /**\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": "13.14.3",
3
+ "version": "13.16.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -19,13 +19,13 @@
19
19
  "@angular/cdk": "^20.2.14",
20
20
  "@angular/common": "^20.3.17",
21
21
  "@angular/core": "^20.3.17",
22
- "@skyux/core": "13.14.3",
23
- "@skyux/i18n": "13.14.3",
24
- "@skyux/icon": "13.14.3",
25
- "@skyux/layout": "13.14.3",
26
- "@skyux/lists": "13.14.3",
27
- "@skyux/lookup": "13.14.3",
28
- "@skyux/modals": "13.14.3"
22
+ "@skyux/core": "13.16.0",
23
+ "@skyux/i18n": "13.16.0",
24
+ "@skyux/icon": "13.16.0",
25
+ "@skyux/layout": "13.16.0",
26
+ "@skyux/lists": "13.16.0",
27
+ "@skyux/lookup": "13.16.0",
28
+ "@skyux/modals": "13.16.0"
29
29
  },
30
30
  "dependencies": {
31
31
  "tslib": "^2.8.1"