@skyux/filter-bar 13.12.0 → 14.0.0-alpha.1
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.
|
@@ -62,11 +62,11 @@ SkyLibResourcesService.addResources(RESOURCES);
|
|
|
62
62
|
* Import into any component library module that needs to use resource strings.
|
|
63
63
|
*/
|
|
64
64
|
class SkyFilterBarResourcesModule {
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
66
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
67
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
66
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarResourcesModule, exports: [SkyI18nModule] }); }
|
|
67
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarResourcesModule, imports: [SkyI18nModule] }); }
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarResourcesModule, decorators: [{
|
|
70
70
|
type: NgModule,
|
|
71
71
|
args: [{
|
|
72
72
|
exports: [SkyI18nModule],
|
|
@@ -107,10 +107,10 @@ class SkyFilterBarService {
|
|
|
107
107
|
this.#filterValueUpdates.next(filter);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
111
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
111
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarService }); }
|
|
112
112
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarService, decorators: [{
|
|
114
114
|
type: Injectable
|
|
115
115
|
}] });
|
|
116
116
|
|
|
@@ -270,13 +270,20 @@ class SkyFilterBarComponent {
|
|
|
270
270
|
#getExistingFilterItems() {
|
|
271
271
|
/* istanbul ignore next: safety check */
|
|
272
272
|
const selectedIds = this.selectedFilterIds() ?? [];
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
.map((
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
273
|
+
const filterItems = this.filterItems();
|
|
274
|
+
return selectedIds
|
|
275
|
+
.map((selectedId) => {
|
|
276
|
+
const filterItem = filterItems.find((item) => item.filterId() === selectedId);
|
|
277
|
+
/* istanbul ignore next: safety check */
|
|
278
|
+
return filterItem
|
|
279
|
+
? {
|
|
280
|
+
filterId: filterItem.filterId(),
|
|
281
|
+
labelText: filterItem.labelText(),
|
|
282
|
+
filterValue: filterItem.filterValue(),
|
|
283
|
+
}
|
|
284
|
+
: undefined;
|
|
285
|
+
})
|
|
286
|
+
.filter((item) => !!item);
|
|
280
287
|
}
|
|
281
288
|
#handleFilterSelection(selectedFilters, existingFilters) {
|
|
282
289
|
const { newFilterItems, removedFilterItems } = this.#processFilterChanges(selectedFilters, existingFilters);
|
|
@@ -366,10 +373,10 @@ class SkyFilterBarComponent {
|
|
|
366
373
|
}, this.#sourceId);
|
|
367
374
|
}
|
|
368
375
|
}
|
|
369
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
370
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
376
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
377
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: SkyFilterBarComponent, isStandalone: true, selector: "sky-filter-bar", inputs: { appliedFilters: { classPropertyName: "appliedFilters", publicName: "appliedFilters", isSignal: true, isRequired: false, transformFunction: null }, selectedFilterIds: { classPropertyName: "selectedFilterIds", publicName: "selectedFilterIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { appliedFilters: "appliedFiltersChange", selectedFilterIds: "selectedFilterIdsChange" }, providers: [SkyFilterBarService], queries: [{ propertyName: "filterItems", predicate: SKY_FILTER_ITEM, isSignal: true }], ngImport: i0, template: "<sky-toolbar class=\"sky-filter-bar-toolbar\">\n <sky-toolbar-item>\n <span class=\"sky-font-data-label\">{{\n 'skyux_filter_bar_filter_label' | skyLibResources\n }}</span>\n </sky-toolbar-item>\n @if (!!selectedFilterIds()) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-filter-picker sky-btn sky-filter-bar-btn sky-btn-default sky-btn-icon\"\n (click)=\"openFilters()\"\n >\n <sky-icon iconName=\"filter\" />\n </button>\n </sky-toolbar-item>\n }\n @for (filter of visibleFilters(); track filter.filterId()) {\n <sky-toolbar-item>\n <ng-container *ngTemplateOutlet=\"filter.templateRef() ?? null\" />\n </sky-toolbar-item>\n }\n @if (appliedFilters()?.length) {\n <sky-toolbar-item>\n <button\n type=\"button\"\n class=\"sky-filter-bar-clear-filters sky-btn sky-filter-bar-btn sky-btn-link\"\n (click)=\"clearFilters()\"\n >\n {{ 'skyux_filter_bar_clear_filters_label' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n</sky-toolbar>\n", styles: [":host{display:block}:host-context(.sky-theme-modern) .sky-filter-bar-toolbar{--sky-override-toolbar-container-padding: var( --sky-comp-filter_bar-space-inset-top ) var(--sky-comp-filter_bar-space-inset-right) var(--sky-comp-filter_bar-space-inset-bottom) var(--sky-comp-filter_bar-space-inset-left)}:host-context(.sky-data-manager-toolbar){border-top:var(--sky-override-toolbar-border-top-bottom, var(--sky-border-width-divider) var(--sky-border-style-divider) var(--sky-color-border-divider))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyFilterBarResourcesModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i2.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i2.λ39, selector: "sky-toolbar-item" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
|
|
371
378
|
}
|
|
372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
379
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarComponent, decorators: [{
|
|
373
380
|
type: Component,
|
|
374
381
|
args: [{ selector: 'sky-filter-bar', imports: [
|
|
375
382
|
NgTemplateOutlet,
|
|
@@ -407,10 +414,10 @@ class SkyFilterItemBaseComponent {
|
|
|
407
414
|
onClick() {
|
|
408
415
|
this.itemClick.emit();
|
|
409
416
|
}
|
|
410
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
411
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
417
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterItemBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
418
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: SkyFilterItemBaseComponent, isStandalone: true, selector: "sky-filter-item-base", inputs: { filterId: { classPropertyName: "filterId", publicName: "filterId", isSignal: true, isRequired: true, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: true, isRequired: false, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: "@let value = filterValue();\n<button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-filter-bar-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-pressed]=\"!!value\"\n [attr.data-filter-id]=\"filterId()\"\n [class.sky-filter-bar-btn-selected]=\"!!value\"\n (click)=\"onClick()\"\n>\n <span class=\"sky-filter-item-title\"\n ><span class=\"sky-filter-item-name\">{{ labelText() }}</span>\n @if (value) {\n <span>:</span>\n }\n </span>\n @if (value) {\n <span class=\"sky-filter-item-value\">{{\n value.displayValue ?? value.value\n }}</span>\n }\n <span class=\"sky-filter-item-caret\">\n <sky-icon iconName=\"chevron-down\" />\n </span>\n</button>\n", styles: ["button.sky-filter-bar-btn:not(.sky-theme-modern *){--sky-override-filter-bar-button-gap-spacing: 10px;--sky-override-filter-bar-button-selected-background-color: #c1e8fb}:host{display:block}.sky-filter-bar-btn{display:flex;max-width:300px}.sky-filter-item-title,.sky-filter-item-value{margin-right:var(--sky-override-filter-bar-button-gap-spacing, var(--sky-space-gap-action_group-m))}.sky-filter-item-value{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-filter-item-caret{flex-grow:1}.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:hover,:focus-visible,:active,:disabled){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-selected_soft)}.sky-filter-bar-btn.sky-filter-bar-btn-selected,.sky-filter-bar-btn.sky-filter-bar-btn-selected:hover,.sky-filter-bar-btn.sky-filter-bar-btn-selected:focus-visible,.sky-filter-bar-btn.sky-filter-bar-btn-selected:active,.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:disabled){background-color:var(--sky-override-filter-bar-button-selected-background-color, var(--sky-color-background-selected-soft))}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-title{color:var(--sky-color-text-deemphasized)}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-value,.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-caret{color:var(--sky-color-text-action);font-weight:var(--sky-font-style-emphasized)}\n"], dependencies: [{ kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }] }); }
|
|
412
419
|
}
|
|
413
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
420
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterItemBaseComponent, decorators: [{
|
|
414
421
|
type: Component,
|
|
415
422
|
args: [{ selector: 'sky-filter-item-base', imports: [SkyIconModule], template: "@let value = filterValue();\n<button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-filter-bar-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-pressed]=\"!!value\"\n [attr.data-filter-id]=\"filterId()\"\n [class.sky-filter-bar-btn-selected]=\"!!value\"\n (click)=\"onClick()\"\n>\n <span class=\"sky-filter-item-title\"\n ><span class=\"sky-filter-item-name\">{{ labelText() }}</span>\n @if (value) {\n <span>:</span>\n }\n </span>\n @if (value) {\n <span class=\"sky-filter-item-value\">{{\n value.displayValue ?? value.value\n }}</span>\n }\n <span class=\"sky-filter-item-caret\">\n <sky-icon iconName=\"chevron-down\" />\n </span>\n</button>\n", styles: ["button.sky-filter-bar-btn:not(.sky-theme-modern *){--sky-override-filter-bar-button-gap-spacing: 10px;--sky-override-filter-bar-button-selected-background-color: #c1e8fb}:host{display:block}.sky-filter-bar-btn{display:flex;max-width:300px}.sky-filter-item-title,.sky-filter-item-value{margin-right:var(--sky-override-filter-bar-button-gap-spacing, var(--sky-space-gap-action_group-m))}.sky-filter-item-value{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-filter-item-caret{flex-grow:1}.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:hover,:focus-visible,:active,:disabled){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-selected_soft)}.sky-filter-bar-btn.sky-filter-bar-btn-selected,.sky-filter-bar-btn.sky-filter-bar-btn-selected:hover,.sky-filter-bar-btn.sky-filter-bar-btn-selected:focus-visible,.sky-filter-bar-btn.sky-filter-bar-btn-selected:active,.sky-filter-bar-btn.sky-filter-bar-btn-selected:not(:disabled){background-color:var(--sky-override-filter-bar-button-selected-background-color, var(--sky-color-background-selected-soft))}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-title{color:var(--sky-color-text-deemphasized)}.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-value,.sky-filter-bar-btn.sky-filter-bar-btn-selected .sky-filter-item-caret{color:var(--sky-color-text-action);font-weight:var(--sky-font-style-emphasized)}\n"] }]
|
|
416
423
|
}], propDecorators: { filterId: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterId", required: true }] }], filterValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterValue", required: false }] }], labelText: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelText", required: true }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
|
|
@@ -524,12 +531,12 @@ class SkyFilterItemLookupComponent {
|
|
|
524
531
|
}
|
|
525
532
|
});
|
|
526
533
|
}
|
|
527
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
528
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
534
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterItemLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
535
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.2", type: SkyFilterItemLookupComponent, isStandalone: true, selector: "sky-filter-item-lookup", inputs: { filterId: { classPropertyName: "filterId", publicName: "filterId", isSignal: true, isRequired: true, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null }, searchDescriptorProperty: { classPropertyName: "searchDescriptorProperty", publicName: "searchDescriptorProperty", isSignal: true, isRequired: true, transformFunction: null }, searchIdProperty: { classPropertyName: "searchIdProperty", publicName: "searchIdProperty", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { searchAsync: "searchAsync" }, providers: [
|
|
529
536
|
{ provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemLookupComponent },
|
|
530
537
|
], viewQueries: [{ propertyName: "templateRef", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n", dependencies: [{ kind: "component", type: SkyFilterItemBaseComponent, selector: "sky-filter-item-base", inputs: ["filterId", "filterValue", "labelText"], outputs: ["itemClick"] }] }); }
|
|
531
538
|
}
|
|
532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
539
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterItemLookupComponent, decorators: [{
|
|
533
540
|
type: Component,
|
|
534
541
|
args: [{ selector: 'sky-filter-item-lookup', imports: [SkyFilterItemBaseComponent], providers: [
|
|
535
542
|
{ provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemLookupComponent },
|
|
@@ -540,6 +547,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
540
547
|
|
|
541
548
|
/**
|
|
542
549
|
* The context object that is provided to a filter modal.
|
|
550
|
+
* @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.
|
|
543
551
|
* @typeParam TData - The type of the additional context data. Defaults to `Record<string, unknown>`.
|
|
544
552
|
*/
|
|
545
553
|
class SkyFilterItemModalContext {
|
|
@@ -552,6 +560,7 @@ class SkyFilterItemModalContext {
|
|
|
552
560
|
|
|
553
561
|
/**
|
|
554
562
|
* A specialized `SkyModalInstance` wrapper.
|
|
563
|
+
* @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.
|
|
555
564
|
* @typeParam TData - The type of the additional context data. Defaults to `Record<string, unknown>`.
|
|
556
565
|
*/
|
|
557
566
|
class SkyFilterItemModalInstance {
|
|
@@ -672,12 +681,12 @@ class SkyFilterItemModalComponent {
|
|
|
672
681
|
}
|
|
673
682
|
return of(undefined);
|
|
674
683
|
}
|
|
675
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
676
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
684
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterItemModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
685
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.2", 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: [
|
|
677
686
|
{ provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },
|
|
678
687
|
], viewQueries: [{ propertyName: "templateRef", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n <sky-filter-item-base\n [filterId]=\"filterId()\"\n [filterValue]=\"filterValue()\"\n [labelText]=\"labelText()\"\n (itemClick)=\"openFilter()\"\n />\n</ng-template>\n", dependencies: [{ kind: "component", type: SkyFilterItemBaseComponent, selector: "sky-filter-item-base", inputs: ["filterId", "filterValue", "labelText"], outputs: ["itemClick"] }] }); }
|
|
679
688
|
}
|
|
680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterItemModalComponent, decorators: [{
|
|
681
690
|
type: Component,
|
|
682
691
|
args: [{ selector: 'sky-filter-item-modal', imports: [SkyFilterItemBaseComponent], providers: [
|
|
683
692
|
{ provide: SKY_FILTER_ITEM, useExisting: SkyFilterItemModalComponent },
|
|
@@ -687,17 +696,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
687
696
|
}], templateRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
688
697
|
|
|
689
698
|
class SkyFilterBarModule {
|
|
690
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
691
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
699
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
700
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent,
|
|
692
701
|
SkyFilterItemModalComponent,
|
|
693
702
|
SkyFilterItemLookupComponent], exports: [SkyFilterBarComponent,
|
|
694
703
|
SkyFilterItemModalComponent,
|
|
695
704
|
SkyFilterItemLookupComponent] }); }
|
|
696
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
705
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarModule, imports: [SkyFilterBarComponent,
|
|
697
706
|
SkyFilterItemModalComponent,
|
|
698
707
|
SkyFilterItemLookupComponent] }); }
|
|
699
708
|
}
|
|
700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
709
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyFilterBarModule, decorators: [{
|
|
701
710
|
type: NgModule,
|
|
702
711
|
args: [{
|
|
703
712
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-filter-bar.mjs","sources":["../../../../../libs/components/filter-bar/src/lib/modules/shared/sky-filter-bar-resources.module.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.service.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item.token.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-base.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-base.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-lookup.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-lookup.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/models/filter-item-modal-context.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/models/filter-item-modal-instance.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-modal.component.ts","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-items/filter-item-modal.component.html","../../../../../libs/components/filter-bar/src/lib/modules/filter-bar/filter-bar.module.ts","../../../../../libs/components/filter-bar/src/skyux-filter-bar.ts"],"sourcesContent":["/* istanbul ignore file */\n/**\n * 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(\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 { 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 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 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\n implements SkyFilterItem, 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<SkyFilterItemLookupSearchAsyncArgs>();\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(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 = {\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 as unknown[] | undefined,\n });\n\n instance.closed\n .pipe(\n switchMap((args): Observable<SkyFilterBarFilterValue | undefined> => {\n if (args.reason !== 'save') {\n return of(undefined);\n }\n\n const selected = args.selectedItems;\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 .subscribe((filter) => {\n // no filter means the modal was not saved\n if (filter) {\n let filterValue: SkyFilterBarFilterValue | undefined;\n // no filter value means the save result was empty, so emit undefined\n if (filter.value) {\n filterValue = filter;\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 TData - The type of the additional context data. Defaults to `Record<string, unknown>`.\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 * @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> {\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 {\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> 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 <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\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 * 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": "
|
|
3
|
+
"version": "14.0.0-alpha.1",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -16,33 +16,33 @@
|
|
|
16
16
|
},
|
|
17
17
|
"homepage": "https://github.com/blackbaud/skyux#reamde",
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@angular/cdk": "^
|
|
20
|
-
"@angular/common": "^
|
|
21
|
-
"@angular/core": "^
|
|
22
|
-
"@skyux/core": "
|
|
23
|
-
"@skyux/i18n": "
|
|
24
|
-
"@skyux/icon": "
|
|
25
|
-
"@skyux/layout": "
|
|
26
|
-
"@skyux/lists": "
|
|
27
|
-
"@skyux/lookup": "
|
|
28
|
-
"@skyux/modals": "
|
|
19
|
+
"@angular/cdk": "^21.1.2",
|
|
20
|
+
"@angular/common": "^21.1.2",
|
|
21
|
+
"@angular/core": "^21.1.2",
|
|
22
|
+
"@skyux/core": "14.0.0-alpha.1",
|
|
23
|
+
"@skyux/i18n": "14.0.0-alpha.1",
|
|
24
|
+
"@skyux/icon": "14.0.0-alpha.1",
|
|
25
|
+
"@skyux/layout": "14.0.0-alpha.1",
|
|
26
|
+
"@skyux/lists": "14.0.0-alpha.1",
|
|
27
|
+
"@skyux/lookup": "14.0.0-alpha.1",
|
|
28
|
+
"@skyux/modals": "14.0.0-alpha.1"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"tslib": "^2.8.1"
|
|
32
32
|
},
|
|
33
33
|
"sideEffects": false,
|
|
34
34
|
"module": "fesm2022/skyux-filter-bar.mjs",
|
|
35
|
-
"typings": "
|
|
35
|
+
"typings": "types/skyux-filter-bar.d.ts",
|
|
36
36
|
"exports": {
|
|
37
37
|
"./package.json": {
|
|
38
38
|
"default": "./package.json"
|
|
39
39
|
},
|
|
40
40
|
".": {
|
|
41
|
-
"types": "./
|
|
41
|
+
"types": "./types/skyux-filter-bar.d.ts",
|
|
42
42
|
"default": "./fesm2022/skyux-filter-bar.mjs"
|
|
43
43
|
},
|
|
44
44
|
"./testing": {
|
|
45
|
-
"types": "./testing
|
|
45
|
+
"types": "./types/skyux-filter-bar-testing.d.ts",
|
|
46
46
|
"default": "./fesm2022/skyux-filter-bar-testing.mjs"
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -23,9 +23,10 @@ interface SkyFilterBarFilterItem<TValue = unknown> extends SkyFilterStateFilterI
|
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Defines the common properties various filter item types must implement to work with the filter bar component.
|
|
26
|
+
* @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.
|
|
26
27
|
* @internal
|
|
27
28
|
*/
|
|
28
|
-
interface SkyFilterItem {
|
|
29
|
+
interface SkyFilterItem<TValue = unknown> {
|
|
29
30
|
/**
|
|
30
31
|
* A unique identifier for the filter item.
|
|
31
32
|
*/
|
|
@@ -43,7 +44,7 @@ interface SkyFilterItem {
|
|
|
43
44
|
* The value of the filter item.
|
|
44
45
|
* @internal
|
|
45
46
|
*/
|
|
46
|
-
filterValue: Signal<SkyFilterBarFilterValue | undefined>;
|
|
47
|
+
filterValue: Signal<SkyFilterBarFilterValue<TValue> | undefined>;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
/**
|
|
@@ -59,8 +60,8 @@ declare class SkyFilterBarComponent {
|
|
|
59
60
|
* 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.
|
|
60
61
|
*/
|
|
61
62
|
readonly selectedFilterIds: _angular_core.ModelSignal<string[] | undefined>;
|
|
62
|
-
protected readonly filterItems: _angular_core.Signal<readonly SkyFilterItem[]>;
|
|
63
|
-
protected readonly visibleFilters: _angular_core.Signal<SkyFilterItem[]>;
|
|
63
|
+
protected readonly filterItems: _angular_core.Signal<readonly SkyFilterItem<unknown>[]>;
|
|
64
|
+
protected readonly visibleFilters: _angular_core.Signal<SkyFilterItem<unknown>[]>;
|
|
64
65
|
constructor();
|
|
65
66
|
protected openFilters(): void;
|
|
66
67
|
protected clearFilters(): void;
|
|
@@ -70,9 +71,10 @@ declare class SkyFilterBarComponent {
|
|
|
70
71
|
|
|
71
72
|
/**
|
|
72
73
|
* The context object that is provided to a filter modal.
|
|
74
|
+
* @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.
|
|
73
75
|
* @typeParam TData - The type of the additional context data. Defaults to `Record<string, unknown>`.
|
|
74
76
|
*/
|
|
75
|
-
declare class SkyFilterItemModalContext<TData = Record<string, unknown
|
|
77
|
+
declare class SkyFilterItemModalContext<TData = Record<string, unknown>, TValue = unknown> {
|
|
76
78
|
/**
|
|
77
79
|
* The name of the filter. We recommend using this value for the modal's heading.
|
|
78
80
|
*/
|
|
@@ -80,7 +82,7 @@ declare class SkyFilterItemModalContext<TData = Record<string, unknown>> {
|
|
|
80
82
|
/**
|
|
81
83
|
* The value of the filter.
|
|
82
84
|
*/
|
|
83
|
-
readonly filterValue?: SkyFilterBarFilterValue
|
|
85
|
+
readonly filterValue?: SkyFilterBarFilterValue<TValue>;
|
|
84
86
|
/**
|
|
85
87
|
* An untyped property that can track any config information relevant to the filter modal
|
|
86
88
|
* that existing options do not include.
|
|
@@ -88,30 +90,32 @@ declare class SkyFilterItemModalContext<TData = Record<string, unknown>> {
|
|
|
88
90
|
readonly additionalContext?: TData;
|
|
89
91
|
constructor(args: {
|
|
90
92
|
filterLabelText: string;
|
|
91
|
-
filterValue?: SkyFilterBarFilterValue
|
|
93
|
+
filterValue?: SkyFilterBarFilterValue<TValue>;
|
|
92
94
|
additionalContext?: TData;
|
|
93
95
|
});
|
|
94
96
|
}
|
|
95
97
|
|
|
96
98
|
/**
|
|
97
99
|
* Arguments passed back from a filter modal when the user has saved.
|
|
100
|
+
* @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.
|
|
98
101
|
*/
|
|
99
|
-
interface SkyFilterItemModalSavedArgs {
|
|
102
|
+
interface SkyFilterItemModalSavedArgs<TValue = unknown> {
|
|
100
103
|
/**
|
|
101
104
|
* The filter value.
|
|
102
105
|
*/
|
|
103
|
-
filterValue: SkyFilterBarFilterValue | undefined;
|
|
106
|
+
filterValue: SkyFilterBarFilterValue<TValue> | undefined;
|
|
104
107
|
}
|
|
105
108
|
|
|
106
109
|
/**
|
|
107
110
|
* A specialized `SkyModalInstance` wrapper.
|
|
111
|
+
* @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.
|
|
108
112
|
* @typeParam TData - The type of the additional context data. Defaults to `Record<string, unknown>`.
|
|
109
113
|
*/
|
|
110
|
-
declare abstract class SkyFilterItemModalInstance<TData = Record<string, unknown
|
|
114
|
+
declare abstract class SkyFilterItemModalInstance<TData = Record<string, unknown>, TValue = unknown> {
|
|
111
115
|
/**
|
|
112
116
|
* The context provided to the filter modal component.
|
|
113
117
|
*/
|
|
114
|
-
abstract readonly context: SkyFilterItemModalContext<TData>;
|
|
118
|
+
abstract readonly context: SkyFilterItemModalContext<TData, TValue>;
|
|
115
119
|
/**
|
|
116
120
|
* Closes the modal instance with `reason="cancel"`.
|
|
117
121
|
*/
|
|
@@ -120,17 +124,17 @@ declare abstract class SkyFilterItemModalInstance<TData = Record<string, unknown
|
|
|
120
124
|
* Closes the modal instance with `reason="save"`.
|
|
121
125
|
* @param args
|
|
122
126
|
*/
|
|
123
|
-
abstract save(args: SkyFilterItemModalSavedArgs): void;
|
|
127
|
+
abstract save(args: SkyFilterItemModalSavedArgs<TValue>): void;
|
|
124
128
|
}
|
|
125
129
|
|
|
126
130
|
/**
|
|
127
131
|
* A type marker for passing context object data types into the filter modal component.
|
|
128
132
|
*/
|
|
129
|
-
interface SkyFilterItemModal<TData = Record<string, unknown> | undefined> {
|
|
133
|
+
interface SkyFilterItemModal<TData = Record<string, unknown> | undefined, TValue = unknown> {
|
|
130
134
|
/**
|
|
131
135
|
* The filter modal instance to be injected into the component.
|
|
132
136
|
*/
|
|
133
|
-
readonly modalInstance: SkyFilterItemModalInstance<TData>;
|
|
137
|
+
readonly modalInstance: SkyFilterItemModalInstance<TData, TValue>;
|
|
134
138
|
}
|
|
135
139
|
|
|
136
140
|
/**
|
|
@@ -154,7 +158,7 @@ type SkyFilterItemModalSizeType = 'small' | 'medium' | 'large' | 'fullScreen';
|
|
|
154
158
|
* Use this component when your filter requires a rich UI with multiple inputs,
|
|
155
159
|
* date pickers, or other complex controls that don't fit in an inline filter.
|
|
156
160
|
*/
|
|
157
|
-
declare class SkyFilterItemModalComponent<TData = Record<string, unknown> | undefined> implements SkyFilterItem {
|
|
161
|
+
declare class SkyFilterItemModalComponent<TData = Record<string, unknown> | undefined, TValue = unknown> implements SkyFilterItem<TValue> {
|
|
158
162
|
#private;
|
|
159
163
|
/**
|
|
160
164
|
* A unique identifier for the filter item.
|
|
@@ -172,7 +176,7 @@ declare class SkyFilterItemModalComponent<TData = Record<string, unknown> | unde
|
|
|
172
176
|
* The return value of the modal save action needs to be a `SkyFilterBarFilterValue`.
|
|
173
177
|
* @required
|
|
174
178
|
*/
|
|
175
|
-
readonly modalComponent: _angular_core.InputSignal<Type<SkyFilterItemModal<TData>>>;
|
|
179
|
+
readonly modalComponent: _angular_core.InputSignal<Type<SkyFilterItemModal<TData, TValue>>>;
|
|
176
180
|
/**
|
|
177
181
|
* The size of the modal to display. The valid options are `"small"`, `"medium"`, `"large"`, and `"fullScreen"`.
|
|
178
182
|
*/
|
|
@@ -183,16 +187,17 @@ declare class SkyFilterItemModalComponent<TData = Record<string, unknown> | unde
|
|
|
183
187
|
*/
|
|
184
188
|
modalOpened: EventEmitter<SkyFilterItemModalOpenedArgs<TData>>;
|
|
185
189
|
readonly templateRef: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
186
|
-
readonly filterValue: _angular_core.Signal<_skyux_filter_bar.SkyFilterBarFilterValue | undefined>;
|
|
190
|
+
readonly filterValue: _angular_core.Signal<_skyux_filter_bar.SkyFilterBarFilterValue<TValue> | undefined>;
|
|
187
191
|
protected openFilter(): void;
|
|
188
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkyFilterItemModalComponent<any>, never>;
|
|
189
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkyFilterItemModalComponent<any>, "sky-filter-item-modal", never, { "filterId": { "alias": "filterId"; "required": true; "isSignal": true; }; "labelText": { "alias": "labelText"; "required": true; "isSignal": true; }; "modalComponent": { "alias": "modalComponent"; "required": true; "isSignal": true; }; "modalSize": { "alias": "modalSize"; "required": true; "isSignal": true; }; }, { "modalOpened": "modalOpened"; }, never, never, true, never>;
|
|
192
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkyFilterItemModalComponent<any, any>, never>;
|
|
193
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkyFilterItemModalComponent<any, any>, "sky-filter-item-modal", never, { "filterId": { "alias": "filterId"; "required": true; "isSignal": true; }; "labelText": { "alias": "labelText"; "required": true; "isSignal": true; }; "modalComponent": { "alias": "modalComponent"; "required": true; "isSignal": true; }; "modalSize": { "alias": "modalSize"; "required": true; "isSignal": true; }; }, { "modalOpened": "modalOpened"; }, never, never, true, never>;
|
|
190
194
|
}
|
|
191
195
|
|
|
192
196
|
/**
|
|
193
197
|
* The result of searching for items to display in a filter item lookup selection modal.
|
|
198
|
+
* @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.
|
|
194
199
|
*/
|
|
195
|
-
interface SkyFilterItemLookupSearchAsyncResult {
|
|
200
|
+
interface SkyFilterItemLookupSearchAsyncResult<TValue = unknown> {
|
|
196
201
|
/**
|
|
197
202
|
* Data provided on "load more" search result requests. Use this property for
|
|
198
203
|
* information such as a continuation token for paged database queries.
|
|
@@ -207,7 +212,7 @@ interface SkyFilterItemLookupSearchAsyncResult {
|
|
|
207
212
|
* the search criteria, set the `hasMore` property to `true`. More records can be lazy-loaded
|
|
208
213
|
* as users scrolls through the search results.
|
|
209
214
|
*/
|
|
210
|
-
items:
|
|
215
|
+
items: TValue[];
|
|
211
216
|
/**
|
|
212
217
|
* The total number of records that match the search criteria, including items not returned in
|
|
213
218
|
* the current list.
|
|
@@ -218,8 +223,9 @@ interface SkyFilterItemLookupSearchAsyncResult {
|
|
|
218
223
|
/**
|
|
219
224
|
* Arguments passed when an asynchronous search is executed from the selection modal opened by a
|
|
220
225
|
* filter item lookup component.
|
|
226
|
+
* @typeParam TValue - The type of the filter value. Defaults to `unknown` for backward compatibility.
|
|
221
227
|
*/
|
|
222
|
-
interface SkyFilterItemLookupSearchAsyncArgs {
|
|
228
|
+
interface SkyFilterItemLookupSearchAsyncArgs<TValue = unknown> {
|
|
223
229
|
/**
|
|
224
230
|
* The unique identifier for the filter.
|
|
225
231
|
*/
|
|
@@ -244,7 +250,7 @@ interface SkyFilterItemLookupSearchAsyncArgs {
|
|
|
244
250
|
* when the event fires so the filter item lookup component can subscribe
|
|
245
251
|
* to it and then display the results.
|
|
246
252
|
*/
|
|
247
|
-
result?: Observable<SkyFilterItemLookupSearchAsyncResult
|
|
253
|
+
result?: Observable<SkyFilterItemLookupSearchAsyncResult<TValue>>;
|
|
248
254
|
}
|
|
249
255
|
|
|
250
256
|
/**
|
|
@@ -252,7 +258,7 @@ interface SkyFilterItemLookupSearchAsyncArgs {
|
|
|
252
258
|
* Use this component for lookup-type filter fields where users select one or more
|
|
253
259
|
* options from a list of values.
|
|
254
260
|
*/
|
|
255
|
-
declare class SkyFilterItemLookupComponent implements SkyFilterItem
|
|
261
|
+
declare class SkyFilterItemLookupComponent<TValue = unknown> implements SkyFilterItem<TValue[]>, AfterViewInit {
|
|
256
262
|
#private;
|
|
257
263
|
/**
|
|
258
264
|
* A unique identifier for the filter item.
|
|
@@ -280,13 +286,13 @@ declare class SkyFilterItemLookupComponent implements SkyFilterItem, AfterViewIn
|
|
|
280
286
|
* when the filter is opened.
|
|
281
287
|
* @required
|
|
282
288
|
*/
|
|
283
|
-
searchAsync: EventEmitter<SkyFilterItemLookupSearchAsyncArgs
|
|
289
|
+
searchAsync: EventEmitter<SkyFilterItemLookupSearchAsyncArgs<TValue>>;
|
|
284
290
|
readonly templateRef: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
285
|
-
readonly filterValue: _angular_core.Signal<SkyFilterBarFilterValue | undefined>;
|
|
291
|
+
readonly filterValue: _angular_core.Signal<SkyFilterBarFilterValue<TValue[]> | undefined>;
|
|
286
292
|
ngAfterViewInit(): void;
|
|
287
293
|
protected openFilter(): void;
|
|
288
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkyFilterItemLookupComponent
|
|
289
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkyFilterItemLookupComponent
|
|
294
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkyFilterItemLookupComponent<any>, never>;
|
|
295
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkyFilterItemLookupComponent<any>, "sky-filter-item-lookup", never, { "filterId": { "alias": "filterId"; "required": true; "isSignal": true; }; "labelText": { "alias": "labelText"; "required": true; "isSignal": true; }; "searchDescriptorProperty": { "alias": "searchDescriptorProperty"; "required": true; "isSignal": true; }; "searchIdProperty": { "alias": "searchIdProperty"; "required": true; "isSignal": true; }; }, { "searchAsync": "searchAsync"; }, never, never, true, never>;
|
|
290
296
|
}
|
|
291
297
|
|
|
292
298
|
declare class SkyFilterBarModule {
|
|
File without changes
|