@cuby-ui/core 0.0.557 → 0.0.559
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.
- package/components/date-range-calendar/date-range-calendar.component.d.ts +53 -0
- package/components/date-range-calendar/date-range-calendar.interfaces.d.ts +1 -0
- package/components/date-range-calendar/date-range-calendar.module.d.ts +7 -0
- package/components/date-range-calendar/index.d.ts +3 -0
- package/components/filter-bar/components/add-filter-button/add-filter-button.component.d.ts +10 -0
- package/components/filter-bar/components/date-filter/date-filter.component.d.ts +32 -0
- package/components/filter-bar/components/filter-remove-button/filter-remove-button.component.d.ts +8 -0
- package/components/filter-bar/components/index.d.ts +7 -0
- package/components/filter-bar/components/multiselect-filter/multiselect-filter.component.d.ts +16 -0
- package/components/filter-bar/components/range-filter/range-filter.component.d.ts +23 -0
- package/components/filter-bar/components/select-filter/select-filter.component.d.ts +17 -0
- package/components/filter-bar/components/string-filter/string-filter.component.d.ts +17 -0
- package/components/filter-bar/filter-bar.component.d.ts +14 -0
- package/components/filter-bar/filter-bar.interfaces.d.ts +89 -0
- package/components/filter-bar/filter-bar.module.d.ts +7 -0
- package/components/filter-bar/filter-bar.utils.d.ts +3 -0
- package/components/filter-bar/index.d.ts +3 -0
- package/components/index.d.ts +2 -0
- package/components/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -1
- package/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.d.ts +1 -1
- package/esm2022/components/date-range-calendar/date-range-calendar.component.mjs +206 -0
- package/esm2022/components/date-range-calendar/date-range-calendar.interfaces.mjs +2 -0
- package/esm2022/components/date-range-calendar/date-range-calendar.module.mjs +16 -0
- package/esm2022/components/date-range-calendar/index.mjs +3 -0
- package/esm2022/components/filter-bar/components/add-filter-button/add-filter-button.component.mjs +25 -0
- package/esm2022/components/filter-bar/components/date-filter/date-filter.component.mjs +147 -0
- package/esm2022/components/filter-bar/components/filter-remove-button/filter-remove-button.component.mjs +20 -0
- package/esm2022/components/filter-bar/components/index.mjs +8 -0
- package/esm2022/components/filter-bar/components/multiselect-filter/multiselect-filter.component.mjs +70 -0
- package/esm2022/components/filter-bar/components/range-filter/range-filter.component.mjs +99 -0
- package/esm2022/components/filter-bar/components/select-filter/select-filter.component.mjs +63 -0
- package/esm2022/components/filter-bar/components/string-filter/string-filter.component.mjs +66 -0
- package/esm2022/components/filter-bar/filter-bar.component.mjs +52 -0
- package/esm2022/components/filter-bar/filter-bar.interfaces.mjs +3 -0
- package/esm2022/components/filter-bar/filter-bar.module.mjs +16 -0
- package/esm2022/components/filter-bar/filter-bar.utils.mjs +114 -0
- package/esm2022/components/filter-bar/index.mjs +3 -0
- package/esm2022/components/index.mjs +3 -1
- package/esm2022/components/input-number/input-number.component.mjs +2 -2
- package/esm2022/components/input-password/input-password.component.mjs +2 -2
- package/esm2022/components/input-text/input-text.component.mjs +2 -2
- package/esm2022/components/input-time/input-time.component.mjs +2 -2
- package/esm2022/components/textarea/textarea.component.mjs +2 -2
- package/fesm2022/cuby-ui-core.mjs +834 -24
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/package.json +4 -4
- package/styles/mixins/inputs.scss +10 -0
- package/widgets/ui/categories/components/category-item/category-item.component.d.ts +2 -2
- package/widgets/ui/loader/components/stated-loader/stated-loader.component.d.ts +1 -1
- package/widgets/ui/storage-list/components/storage-list-item/storage-list-item.component.d.ts +1 -1
package/esm2022/components/filter-bar/components/multiselect-filter/multiselect-filter.component.mjs
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';
|
|
2
|
+
import { TranslocoPipe } from '@jsverse/transloco';
|
|
3
|
+
import { CuiCheckboxModule } from '../../../../components/checkbox';
|
|
4
|
+
import { CuiDropdownDirective } from '../../../../components/dropdown';
|
|
5
|
+
import { CuiSvgModule } from '../../../../components/svg';
|
|
6
|
+
import { CuiTooltipDirective } from '../../../../directives';
|
|
7
|
+
import { CuiFilterRemoveButtonComponent } from '../filter-remove-button/filter-remove-button.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../../checkbox/checkbox.component";
|
|
10
|
+
import * as i2 from "../../../svg/svg.component";
|
|
11
|
+
export class CuiMultiSelectFilterComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.filter = input.required();
|
|
14
|
+
this.removed = output();
|
|
15
|
+
this.changed = output();
|
|
16
|
+
this.currentValues = computed(() => {
|
|
17
|
+
const f = this.filter();
|
|
18
|
+
return f.value.type === 'multiselect' ? f.value.values : [];
|
|
19
|
+
});
|
|
20
|
+
this.currentLabels = computed(() => {
|
|
21
|
+
const f = this.filter();
|
|
22
|
+
if (f.value.type !== 'multiselect') {
|
|
23
|
+
return '';
|
|
24
|
+
}
|
|
25
|
+
const field = f.field;
|
|
26
|
+
return f.value.values
|
|
27
|
+
.map((val) => field.multiSelectOptions?.find((opt) => opt.value === val)?.label ?? val)
|
|
28
|
+
.join(', ');
|
|
29
|
+
});
|
|
30
|
+
this.hasValue = computed(() => this.currentValues().length > 0);
|
|
31
|
+
this.options = computed(() => {
|
|
32
|
+
const field = this.filter().field;
|
|
33
|
+
return field.multiSelectOptions ?? [];
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
onRemove() {
|
|
37
|
+
this.removed.emit(this.filter().id);
|
|
38
|
+
}
|
|
39
|
+
isOptionSelected(value) {
|
|
40
|
+
return this.currentValues().includes(value);
|
|
41
|
+
}
|
|
42
|
+
toggleOption(value) {
|
|
43
|
+
const f = this.filter();
|
|
44
|
+
if (f.value.type !== 'multiselect') {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const currentValues = f.value.values;
|
|
48
|
+
const newValues = currentValues.includes(value)
|
|
49
|
+
? currentValues.filter((v) => v !== value)
|
|
50
|
+
: [...currentValues, value];
|
|
51
|
+
this.changed.emit({
|
|
52
|
+
...f,
|
|
53
|
+
value: { ...f.value, values: newValues }
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMultiSelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiMultiSelectFilterComponent, isStandalone: true, selector: "cui-multiselect-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"multiselect-filter__trigger\"\n [class.multiselect-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n>\n @if (hasValue()) {\n <span\n class=\"multiselect-filter__value\"\n [cuiTooltip]=\"currentLabels()\"\n >\n {{ currentLabels() }}\n </span>\n } @else {\n <span class=\"multiselect-filter__placeholder\">{{ 'SELECT_VALUES' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"multiselect-filter__dropdown\">\n @for (opt of options(); track opt.value) {\n <label class=\"multiselect-filter__option\">\n <input\n type=\"checkbox\"\n cuiCheckbox\n [checked]=\"isOptionSelected(opt.value)\"\n (change)=\"toggleOption(opt.value)\"\n />\n <span>{{ opt.label }}</span>\n </label>\n }\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.multiselect-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.multiselect-filter__trigger:hover{background:var(--cui-base-200)}.multiselect-filter__trigger:focus{outline:none}.multiselect-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.multiselect-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.multiselect-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiselect-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.multiselect-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.multiselect-filter__option{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.multiselect-filter__option:hover{background:var(--cui-base-50)}.multiselect-filter__option span{font-weight:400;font-size:13px;line-height:16px;color:var(--cui-base-900)}\n"], dependencies: [{ kind: "ngmodule", type: CuiCheckboxModule }, { kind: "component", type: i1.CuiCheckboxComponent, selector: "input[type=\"checkbox\"][cuiCheckbox]" }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i2.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMultiSelectFilterComponent, decorators: [{
|
|
60
|
+
type: Component,
|
|
61
|
+
args: [{ selector: 'cui-multiselect-filter', standalone: true, imports: [
|
|
62
|
+
CuiCheckboxModule,
|
|
63
|
+
CuiDropdownDirective,
|
|
64
|
+
CuiFilterRemoveButtonComponent,
|
|
65
|
+
CuiSvgModule,
|
|
66
|
+
CuiTooltipDirective,
|
|
67
|
+
TranslocoPipe
|
|
68
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"multiselect-filter__trigger\"\n [class.multiselect-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n>\n @if (hasValue()) {\n <span\n class=\"multiselect-filter__value\"\n [cuiTooltip]=\"currentLabels()\"\n >\n {{ currentLabels() }}\n </span>\n } @else {\n <span class=\"multiselect-filter__placeholder\">{{ 'SELECT_VALUES' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"multiselect-filter__dropdown\">\n @for (opt of options(); track opt.value) {\n <label class=\"multiselect-filter__option\">\n <input\n type=\"checkbox\"\n cuiCheckbox\n [checked]=\"isOptionSelected(opt.value)\"\n (change)=\"toggleOption(opt.value)\"\n />\n <span>{{ opt.label }}</span>\n </label>\n }\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.multiselect-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.multiselect-filter__trigger:hover{background:var(--cui-base-200)}.multiselect-filter__trigger:focus{outline:none}.multiselect-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.multiselect-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.multiselect-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiselect-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.multiselect-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.multiselect-filter__option{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.multiselect-filter__option:hover{background:var(--cui-base-50)}.multiselect-filter__option span{font-weight:400;font-size:13px;line-height:16px;color:var(--cui-base-900)}\n"] }]
|
|
69
|
+
}] });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9maWx0ZXItYmFyL2NvbXBvbmVudHMvbXVsdGlzZWxlY3QtZmlsdGVyL211bHRpc2VsZWN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZmlsdGVyLWJhci9jb21wb25lbnRzL211bHRpc2VsZWN0LWZpbHRlci9tdWx0aXNlbGVjdC1maWx0ZXIudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7QUFpQnhHLE1BQU0sT0FBTyw2QkFBNkI7SUFmMUM7UUFnQm9CLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQixDQUFDO1FBQzNDLFlBQU8sR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUMzQixZQUFPLEdBQUcsTUFBTSxFQUFtQixDQUFDO1FBRWpDLGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QyxNQUFNLENBQUMsR0FBRyxJQUFJLENB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d0JBQ1osbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNoQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xvY29QaXBlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcblxuaW1wb3J0IHsgQ3VpQ2hlY2tib3hNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NoZWNrYm94JztcbmltcG9ydCB7IEN1aURyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3N2Zyc7XG5pbXBvcnQgeyBDdWlUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgdHlwZSB7IEN1aUFjdGl2ZUZpbHRlciwgQ3VpTXVsdGlTZWxlY3RGaWx0ZXJGaWVsZCB9IGZyb20gJy4uLy4uL2ZpbHRlci1iYXIuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlGaWx0ZXJSZW1vdmVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItcmVtb3ZlLWJ1dHRvbi9maWx0ZXItcmVtb3ZlLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1tdWx0aXNlbGVjdC1maWx0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlDaGVja2JveE1vZHVsZSxcbiAgICAgICAgQ3VpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIEN1aUZpbHRlclJlbW92ZUJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQ3VpU3ZnTW9kdWxlLFxuICAgICAgICBDdWlUb29sdGlwRGlyZWN0aXZlLFxuICAgICAgICBUcmFuc2xvY29QaXBlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlzZWxlY3QtZmlsdGVyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL211bHRpc2VsZWN0LWZpbHRlci5zdHlsZS5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpTXVsdGlTZWxlY3RGaWx0ZXJDb21wb25lbnQge1xuICAgIHB1YmxpYyByZWFkb25seSBmaWx0ZXIgPSBpbnB1dC5yZXF1aXJlZDxDdWlBY3RpdmVGaWx0ZXI+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW92ZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBjaGFuZ2VkID0gb3V0cHV0PEN1aUFjdGl2ZUZpbHRlcj4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW50VmFsdWVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5maWx0ZXIoKTtcblxuICAgICAgICByZXR1cm4gZi52YWx1ZS50eXBlID09PSAnbXVsdGlzZWxlY3QnID8gZi52YWx1ZS52YWx1ZXMgOiBbXTtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW50TGFiZWxzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5maWx0ZXIoKTtcblxuICAgICAgICBpZiAoZi52YWx1ZS50eXBlICE9PSAnbXVsdGlzZWxlY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWVsZCA9IGYuZmllbGQgYXMgQ3VpTXVsdGlTZWxlY3RGaWx0ZXJGaWVsZDtcblxuICAgICAgICByZXR1cm4gZi52YWx1ZS52YWx1ZXNcbiAgICAgICAgICAgIC5tYXAoKHZhbCkgPT4gZmllbGQubXVsdGlTZWxlY3RPcHRpb25zPy5maW5kKChvcHQpID0+IG9wdC52YWx1ZSA9PT0gdmFsKT8ubGFiZWwgPz8gdmFsKVxuICAgICAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN1cnJlbnRWYWx1ZXMoKS5sZW5ndGggPiAwKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmlsdGVyKCkuZmllbGQgYXMgQ3VpTXVsdGlTZWxlY3RGaWx0ZXJGaWVsZDtcblxuICAgICAgICByZXR1cm4gZmllbGQubXVsdGlTZWxlY3RPcHRpb25zID8/IFtdO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIG9uUmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZWQuZW1pdCh0aGlzLmZpbHRlcigpLmlkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNPcHRpb25TZWxlY3RlZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRWYWx1ZXMoKS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZU9wdGlvbih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLmZpbHRlcigpO1xuXG4gICAgICAgIGlmIChmLnZhbHVlLnR5cGUgIT09ICdtdWx0aXNlbGVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBmLnZhbHVlLnZhbHVlcztcbiAgICAgICAgY29uc3QgbmV3VmFsdWVzID0gY3VycmVudFZhbHVlcy5pbmNsdWRlcyh2YWx1ZSlcbiAgICAgICAgICAgID8gY3VycmVudFZhbHVlcy5maWx0ZXIoKHYpID0+IHYgIT09IHZhbHVlKVxuICAgICAgICAgICAgOiBbLi4uY3VycmVudFZhbHVlcywgdmFsdWVdO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIC4uLmYsXG4gICAgICAgICAgICB2YWx1ZTogeyAuLi5mLnZhbHVlLCB2YWx1ZXM6IG5ld1ZhbHVlcyB9XG4gICAgICAgIH0pO1xuICAgIH1cbn0iLCI8Y3VpLWZpbHRlci1yZW1vdmUtYnV0dG9uXG4gICAgW2xhYmVsXT1cImZpbHRlcigpLmZpZWxkLmxhYmVsIHwgdHJhbnNsb2NvXCJcbiAgICAocmVtb3ZlZCk9XCJvblJlbW92ZSgpXCJcbi8+XG5cbjxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cIm11bHRpc2VsZWN0LWZpbHRlcl9fdHJpZ2dlclwiXG4gICAgW2NsYXNzLm11bHRpc2VsZWN0LWZpbHRlcl9fdHJpZ2dlci0tYWN0aXZlXT1cImhhc1ZhbHVlKClcIlxuICAgIFtjdWlEcm9wZG93bl09XCJkcm9wZG93blRwbFwiXG4+XG4gICAgQGlmIChoYXNWYWx1ZSgpKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cIm11bHRpc2VsZWN0LWZpbHRlcl9fdmFsdWVcIlxuICAgICAgICAgICAgW2N1aVRvb2x0aXBdPVwiY3VycmVudExhYmVscygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgY3VycmVudExhYmVscygpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtdWx0aXNlbGVjdC1maWx0ZXJfX3BsYWNlaG9sZGVyXCI+e3sgJ1NFTEVDVF9WQUxVRVMnIHwgdHJhbnNsb2NvIH19PC9zcGFuPlxuICAgIH1cbiAgICA8Y3VpLXN2ZyBpY29uPVwiY3VpSWNvbkNoZXZyb25Eb3duXCIgLz5cbjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duVHBsPlxuICAgIDxkaXYgY2xhc3M9XCJtdWx0aXNlbGVjdC1maWx0ZXJfX2Ryb3Bkb3duXCI+XG4gICAgICAgIEBmb3IgKG9wdCBvZiBvcHRpb25zKCk7IHRyYWNrIG9wdC52YWx1ZSkge1xuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibXVsdGlzZWxlY3QtZmlsdGVyX19vcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgY3VpQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNPcHRpb25TZWxlY3RlZChvcHQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVPcHRpb24ob3B0LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBvcHQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { TranslocoPipe } from '@jsverse/transloco';
|
|
4
|
+
import { CuiButtonModule } from '../../../../components/button';
|
|
5
|
+
import { CuiDropdownDirective } from '../../../../components/dropdown';
|
|
6
|
+
import { CuiInputNumberModule } from '../../../../components/input-number';
|
|
7
|
+
import { CuiSvgModule } from '../../../../components/svg';
|
|
8
|
+
import { CuiTooltipDirective } from '../../../../directives';
|
|
9
|
+
import { CuiFilterRemoveButtonComponent } from '../filter-remove-button/filter-remove-button.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../../../button/button.component";
|
|
12
|
+
import * as i2 from "../../../input-number/input-number.component";
|
|
13
|
+
import * as i3 from "../../../../directives/text-field-controller/text-field-placeholder.directive";
|
|
14
|
+
import * as i4 from "../../../svg/svg.component";
|
|
15
|
+
import * as i5 from "@angular/forms";
|
|
16
|
+
export class CuiRangeFilterComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.filter = input.required();
|
|
19
|
+
this.removed = output();
|
|
20
|
+
this.changed = output();
|
|
21
|
+
this.tmpMin = signal(null);
|
|
22
|
+
this.tmpMax = signal(null);
|
|
23
|
+
this.currentMin = computed(() => {
|
|
24
|
+
const f = this.filter();
|
|
25
|
+
return f.value.type === 'range' ? f.value.min : null;
|
|
26
|
+
});
|
|
27
|
+
this.currentMax = computed(() => {
|
|
28
|
+
const f = this.filter();
|
|
29
|
+
return f.value.type === 'range' ? f.value.max : null;
|
|
30
|
+
});
|
|
31
|
+
this.hasValue = computed(() => this.currentMin() !== null || this.currentMax() !== null);
|
|
32
|
+
this.displayValue = computed(() => {
|
|
33
|
+
const min = this.currentMin();
|
|
34
|
+
const max = this.currentMax();
|
|
35
|
+
if (min !== null && max !== null) {
|
|
36
|
+
return `${min} – ${max}`;
|
|
37
|
+
}
|
|
38
|
+
if (min !== null) {
|
|
39
|
+
return `≥ ${min}`;
|
|
40
|
+
}
|
|
41
|
+
if (max !== null) {
|
|
42
|
+
return `≤ ${max}`;
|
|
43
|
+
}
|
|
44
|
+
return '';
|
|
45
|
+
});
|
|
46
|
+
this.minPlaceholder = computed(() => {
|
|
47
|
+
const field = this.filter().field;
|
|
48
|
+
return field.rangeConfig?.minPlaceholder ?? 'MIN';
|
|
49
|
+
});
|
|
50
|
+
this.maxPlaceholder = computed(() => {
|
|
51
|
+
const field = this.filter().field;
|
|
52
|
+
return field.rangeConfig?.maxPlaceholder ?? 'MAX';
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
onRemove() {
|
|
56
|
+
this.removed.emit(this.filter().id);
|
|
57
|
+
}
|
|
58
|
+
onDropdownOpened(isOpened) {
|
|
59
|
+
if (isOpened) {
|
|
60
|
+
this.tmpMin.set(this.currentMin());
|
|
61
|
+
this.tmpMax.set(this.currentMax());
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
onTmpMinChange(value) {
|
|
65
|
+
this.tmpMin.set(value);
|
|
66
|
+
}
|
|
67
|
+
onTmpMaxChange(value) {
|
|
68
|
+
this.tmpMax.set(value);
|
|
69
|
+
}
|
|
70
|
+
applyValue(dropdown) {
|
|
71
|
+
const f = this.filter();
|
|
72
|
+
if (f.value.type !== 'range') {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const newValue = {
|
|
76
|
+
type: 'range',
|
|
77
|
+
min: this.tmpMin(),
|
|
78
|
+
max: this.tmpMax()
|
|
79
|
+
};
|
|
80
|
+
this.changed.emit({ ...f, value: newValue });
|
|
81
|
+
dropdown.close();
|
|
82
|
+
}
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiRangeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiRangeFilterComponent, isStandalone: true, selector: "cui-range-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"range-filter__trigger\"\n [class.range-filter__trigger_active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n (isOpened)=\"onDropdownOpened($event)\"\n>\n @if (hasValue()) {\n <span\n class=\"range-filter__value\"\n [cuiTooltip]=\"displayValue()\"\n >\n {{ displayValue() }}\n </span>\n } @else {\n <span class=\"range-filter__placeholder\">{{ 'ENTER_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"range-filter__dropdown\">\n <div class=\"range-filter__label\">\n {{ 'FILTER_BY' | transloco: { field: filter().field.label | transloco } }}\n </div>\n <div class=\"range-filter__inputs\">\n <cui-input-number\n [ngModel]=\"tmpMin()\"\n (ngModelChange)=\"onTmpMinChange($event)\"\n [cuiTextFieldPlaceholder]=\"minPlaceholder() | transloco\"\n />\n <span class=\"range-filter__separator\">\u2013</span>\n <cui-input-number\n [ngModel]=\"tmpMax()\"\n (ngModelChange)=\"onTmpMaxChange($event)\"\n [cuiTextFieldPlaceholder]=\"maxPlaceholder() | transloco\"\n />\n </div>\n <div class=\"range-filter__footer\">\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"secondary\"\n (click)=\"dropdown.close()\"\n >\n {{ 'CANCEL' | transloco }}\n </button>\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"action-cyan\"\n (click)=\"applyValue(dropdown)\"\n >\n {{ 'APPLY' | transloco }}\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.range-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.range-filter__trigger:hover{background:var(--cui-base-200)}.range-filter__trigger:focus{outline:none}.range-filter__trigger_active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.range-filter__trigger_active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.range-filter__value{font-weight:500;font-size:12px;line-height:14px;max-width:200px;overflow:hidden;color:var(--cui-base-900);text-overflow:ellipsis;white-space:nowrap}.range-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.range-filter__dropdown{display:flex;flex-direction:column;gap:12px;padding:8px;width:300px;max-width:calc(100vw - 16px);overflow:hidden;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026}.range-filter__label{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-900)}.range-filter__inputs{display:flex;flex-direction:row;gap:8px;align-items:center}.range-filter__separator{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-500)}.range-filter__footer{display:flex;flex-direction:row;gap:8px;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiInputNumberModule }, { kind: "component", type: i2.CuiInputNumberComponent, selector: "cui-input-number", inputs: ["precision", "min", "max"] }, { kind: "directive", type: i3.CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i4.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiRangeFilterComponent, decorators: [{
|
|
87
|
+
type: Component,
|
|
88
|
+
args: [{ selector: 'cui-range-filter', standalone: true, imports: [
|
|
89
|
+
CuiButtonModule,
|
|
90
|
+
CuiDropdownDirective,
|
|
91
|
+
CuiFilterRemoveButtonComponent,
|
|
92
|
+
CuiInputNumberModule,
|
|
93
|
+
CuiSvgModule,
|
|
94
|
+
CuiTooltipDirective,
|
|
95
|
+
FormsModule,
|
|
96
|
+
TranslocoPipe
|
|
97
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"range-filter__trigger\"\n [class.range-filter__trigger_active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n (isOpened)=\"onDropdownOpened($event)\"\n>\n @if (hasValue()) {\n <span\n class=\"range-filter__value\"\n [cuiTooltip]=\"displayValue()\"\n >\n {{ displayValue() }}\n </span>\n } @else {\n <span class=\"range-filter__placeholder\">{{ 'ENTER_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"range-filter__dropdown\">\n <div class=\"range-filter__label\">\n {{ 'FILTER_BY' | transloco: { field: filter().field.label | transloco } }}\n </div>\n <div class=\"range-filter__inputs\">\n <cui-input-number\n [ngModel]=\"tmpMin()\"\n (ngModelChange)=\"onTmpMinChange($event)\"\n [cuiTextFieldPlaceholder]=\"minPlaceholder() | transloco\"\n />\n <span class=\"range-filter__separator\">\u2013</span>\n <cui-input-number\n [ngModel]=\"tmpMax()\"\n (ngModelChange)=\"onTmpMaxChange($event)\"\n [cuiTextFieldPlaceholder]=\"maxPlaceholder() | transloco\"\n />\n </div>\n <div class=\"range-filter__footer\">\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"secondary\"\n (click)=\"dropdown.close()\"\n >\n {{ 'CANCEL' | transloco }}\n </button>\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"action-cyan\"\n (click)=\"applyValue(dropdown)\"\n >\n {{ 'APPLY' | transloco }}\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.range-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.range-filter__trigger:hover{background:var(--cui-base-200)}.range-filter__trigger:focus{outline:none}.range-filter__trigger_active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.range-filter__trigger_active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.range-filter__value{font-weight:500;font-size:12px;line-height:14px;max-width:200px;overflow:hidden;color:var(--cui-base-900);text-overflow:ellipsis;white-space:nowrap}.range-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.range-filter__dropdown{display:flex;flex-direction:column;gap:12px;padding:8px;width:300px;max-width:calc(100vw - 16px);overflow:hidden;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026}.range-filter__label{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-900)}.range-filter__inputs{display:flex;flex-direction:row;gap:8px;align-items:center}.range-filter__separator{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-500)}.range-filter__footer{display:flex;flex-direction:row;gap:8px;justify-content:flex-end}\n"] }]
|
|
98
|
+
}] });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9maWx0ZXItYmFyL2NvbXBvbmVudHMvcmFuZ2UtZmlsdGVyL3JhbmdlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZmlsdGVyLWJhci9jb21wb25lbnRzL3JhbmdlLWZpbHRlci9yYW5nZS1maWx0ZXIudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7QUFtQnhHLE1BQU0sT0FBTyx1QkFBdUI7SUFqQnBDO1FBa0JvQixXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztRQUMzQyxZQUFPLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFDM0IsWUFBTyxHQUFHLE1BQU0sRUFBbUIs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QUFvQjtRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRVMsVUFBVSxDQUFDLFFBQThCO1FBQy9DLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQW1CO1lBQzdCLElBQUksRUFBRSxPQUFPO1lBQ2IsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbEIsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7U0FDckIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0MsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBdkZRLHVCQUF1QjttR0FBdkIsdUJBQXVCLHVRQzdCcEMsaW5FQWlFYyxxaEREakROLGVBQWUsb09BQ2Ysb0JBQW9CLG9KQUNwQiw4QkFBOEIsNkdBQzlCLG9CQUFvQix3U0FDcEIsWUFBWSx3S0FDWixtQkFBbUIsZ0tBQ25CLFdBQVcsMFZBQ1gsYUFBYTs7NEZBTVIsdUJBQXVCO2tCQWpCbkMsU0FBUzsrQkFDSSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNMLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQiw4QkFBOEI7d0JBQzlCLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTtxQkFDaEIsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbG9jb1BpcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5pbXBvcnQgeyBDdWlCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBDdWlEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQ3VpSW5wdXROdW1iZXJNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2lucHV0LW51bWJlcic7XG5pbXBvcnQgeyBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3N2Zyc7XG5pbXBvcnQgeyBDdWlUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgdHlwZSB7IEN1aUFjdGl2ZUZpbHRlciwgQ3VpRmlsdGVyVmFsdWUsIEN1aVJhbmdlRmlsdGVyRmllbGQgfSBmcm9tICcuLi8uLi9maWx0ZXItYmFyLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ3VpRmlsdGVyUmVtb3ZlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVyLXJlbW92ZS1idXR0b24vZmlsdGVyLXJlbW92ZS1idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjdWktcmFuZ2UtZmlsdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgICAgICBDdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgQ3VpRmlsdGVyUmVtb3ZlQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDdWlJbnB1dE51bWJlck1vZHVsZSxcbiAgICAgICAgQ3VpU3ZnTW9kdWxlLFxuICAgICAgICBDdWlUb29sdGlwRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVHJhbnNsb2NvUGlwZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhbmdlLWZpbHRlci50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYW5nZS1maWx0ZXIuc3R5bGUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEN1aVJhbmdlRmlsdGVyQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyID0gaW5wdXQucmVxdWlyZWQ8Q3VpQWN0aXZlRmlsdGVyPigpO1xuICAgIHB1YmxpYyByZWFkb25seSByZW1vdmVkID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlZCA9IG91dHB1dDxDdWlBY3RpdmVGaWx0ZXI+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG1wTWluID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0bXBNYXggPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudE1pbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZiA9IHRoaXMuZmlsdGVyKCk7XG5cbiAgICAgICAgcmV0dXJuIGYudmFsdWUudHlwZSA9PT0gJ3JhbmdlJyA/IGYudmFsdWUubWluIDogbnVsbDtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW50TWF4ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5maWx0ZXIoKTtcblxuICAgICAgICByZXR1cm4gZi52YWx1ZS50eXBlID09PSAncmFuZ2UnID8gZi52YWx1ZS5tYXggOiBudWxsO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc1ZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jdXJyZW50TWluKCkgIT09IG51bGwgfHwgdGhpcy5jdXJyZW50TWF4KCkgIT09IG51bGwpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc3BsYXlWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgbWluID0gdGhpcy5jdXJyZW50TWluKCk7XG4gICAgICAgIGNvbnN0IG1heCA9IHRoaXMuY3VycmVudE1heCgpO1xuXG4gICAgICAgIGlmIChtaW4gIT09IG51bGwgJiYgbWF4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7bWlufSDigJMgJHttYXh9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtaW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBg4omlICR7bWlufWA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYOKJpCAke21heH1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1pblBsYWNlaG9sZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmlsdGVyKCkuZmllbGQgYXMgQ3VpUmFuZ2VGaWx0ZXJGaWVsZDtcblxuICAgICAgICByZXR1cm4gZmllbGQucmFuZ2VDb25maWc/Lm1pblBsYWNlaG9sZGVyID8/ICdNSU4nO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1heFBsYWNlaG9sZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmlsdGVyKCkuZmllbGQgYXMgQ3VpUmFuZ2VGaWx0ZXJGaWVsZDtcblxuICAgICAgICByZXR1cm4gZmllbGQucmFuZ2VDb25maWc/Lm1heFBsYWNlaG9sZGVyID8/ICdNQVgnO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIG9uUmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZWQuZW1pdCh0aGlzLmZpbHRlcigpLmlkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Ecm9wZG93bk9wZW5lZChpc09wZW5lZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaXNPcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG1wTWluLnNldCh0aGlzLmN1cnJlbnRNaW4oKSk7XG4gICAgICAgICAgICB0aGlzLnRtcE1heC5zZXQodGhpcy5jdXJyZW50TWF4KCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVG1wTWluQ2hhbmdlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG1wTWluLnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVG1wTWF4Q2hhbmdlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG1wTWF4LnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFwcGx5VmFsdWUoZHJvcGRvd246IEN1aURyb3Bkb3duRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLmZpbHRlcigpO1xuXG4gICAgICAgIGlmIChmLnZhbHVlLnR5cGUgIT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlOiBDdWlGaWx0ZXJWYWx1ZSA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdyYW5nZScsXG4gICAgICAgICAgICBtaW46IHRoaXMudG1wTWluKCksXG4gICAgICAgICAgICBtYXg6IHRoaXMudG1wTWF4KClcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmNoYW5nZWQuZW1pdCh7IC4uLmYsIHZhbHVlOiBuZXdWYWx1ZSB9KTtcbiAgICAgICAgZHJvcGRvd24uY2xvc2UoKTtcbiAgICB9XG59IiwiPGN1aS1maWx0ZXItcmVtb3ZlLWJ1dHRvblxuICAgIFtsYWJlbF09XCJmaWx0ZXIoKS5maWVsZC5sYWJlbCB8IHRyYW5zbG9jb1wiXG4gICAgKHJlbW92ZWQpPVwib25SZW1vdmUoKVwiXG4vPlxuXG48YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJyYW5nZS1maWx0ZXJfX3RyaWdnZXJcIlxuICAgIFtjbGFzcy5yYW5nZS1maWx0ZXJfX3RyaWdnZXJfYWN0aXZlXT1cImhhc1ZhbHVlKClcIlxuICAgIFtjdWlEcm9wZG93bl09XCJkcm9wZG93blRwbFwiXG4gICAgI2Ryb3Bkb3duPVwiY3VpRHJvcGRvd25cIlxuICAgIChpc09wZW5lZCk9XCJvbkRyb3Bkb3duT3BlbmVkKCRldmVudClcIlxuPlxuICAgIEBpZiAoaGFzVmFsdWUoKSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJyYW5nZS1maWx0ZXJfX3ZhbHVlXCJcbiAgICAgICAgICAgIFtjdWlUb29sdGlwXT1cImRpc3BsYXlWYWx1ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgZGlzcGxheVZhbHVlKCkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInJhbmdlLWZpbHRlcl9fcGxhY2Vob2xkZXJcIj57eyAnRU5URVJfVkFMVUUnIHwgdHJhbnNsb2NvIH19PC9zcGFuPlxuICAgIH1cbiAgICA8Y3VpLXN2ZyBpY29uPVwiY3VpSWNvbkNoZXZyb25Eb3duXCIgLz5cbjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duVHBsPlxuICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1maWx0ZXJfX2Ryb3Bkb3duXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1maWx0ZXJfX2xhYmVsXCI+XG4gICAgICAgICAgICB7eyAnRklMVEVSX0JZJyB8IHRyYW5zbG9jbzogeyBmaWVsZDogZmlsdGVyKCkuZmllbGQubGFiZWwgfCB0cmFuc2xvY28gfSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJhbmdlLWZpbHRlcl9faW5wdXRzXCI+XG4gICAgICAgICAgICA8Y3VpLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInRtcE1pbigpXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRtcE1pbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbY3VpVGV4dEZpZWxkUGxhY2Vob2xkZXJdPVwibWluUGxhY2Vob2xkZXIoKSB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyYW5nZS1maWx0ZXJfX3NlcGFyYXRvclwiPuKAkzwvc3Bhbj5cbiAgICAgICAgICAgIDxjdWktaW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidG1wTWF4KClcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVG1wTWF4Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjdWlUZXh0RmllbGRQbGFjZWhvbGRlcl09XCJtYXhQbGFjZWhvbGRlcigpIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZmlsdGVyX19mb290ZXJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkcm9wZG93bi5jbG9zZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnQ0FOQ0VMJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiYWN0aW9uLWN5YW5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseVZhbHVlKGRyb3Bkb3duKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgJ0FQUExZJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';
|
|
2
|
+
import { TranslocoPipe } from '@jsverse/transloco';
|
|
3
|
+
import { CuiDropdownDirective } from '../../../../components/dropdown';
|
|
4
|
+
import { CuiSvgModule } from '../../../../components/svg';
|
|
5
|
+
import { CuiTooltipDirective } from '../../../../directives';
|
|
6
|
+
import { CuiFilterRemoveButtonComponent } from '../filter-remove-button/filter-remove-button.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../../svg/svg.component";
|
|
9
|
+
export class CuiSelectFilterComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.filter = input.required();
|
|
12
|
+
this.removed = output();
|
|
13
|
+
this.changed = output();
|
|
14
|
+
this.currentValue = computed(() => {
|
|
15
|
+
const f = this.filter();
|
|
16
|
+
return f.value.type === 'select' ? f.value.value : null;
|
|
17
|
+
});
|
|
18
|
+
this.currentLabel = computed(() => {
|
|
19
|
+
const f = this.filter();
|
|
20
|
+
if (f.value.type !== 'select' || !f.value.value) {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
const selectedValue = f.value.value;
|
|
24
|
+
const field = f.field;
|
|
25
|
+
return field.selectOptions?.find((opt) => opt.value === selectedValue)?.label ?? selectedValue;
|
|
26
|
+
});
|
|
27
|
+
this.hasValue = computed(() => !!this.currentValue());
|
|
28
|
+
this.options = computed(() => {
|
|
29
|
+
const field = this.filter().field;
|
|
30
|
+
return field.selectOptions ?? [];
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
onRemove() {
|
|
34
|
+
this.removed.emit(this.filter().id);
|
|
35
|
+
}
|
|
36
|
+
isOptionSelected(value) {
|
|
37
|
+
return this.currentValue() === value;
|
|
38
|
+
}
|
|
39
|
+
selectOption(value, dropdown) {
|
|
40
|
+
const f = this.filter();
|
|
41
|
+
if (f.value.type !== 'select') {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.changed.emit({
|
|
45
|
+
...f,
|
|
46
|
+
value: { ...f.value, value: f.value.value === value ? null : value }
|
|
47
|
+
});
|
|
48
|
+
dropdown.close();
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiSelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiSelectFilterComponent, isStandalone: true, selector: "cui-select-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"select-filter__trigger\"\n [class.select-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n>\n @if (hasValue()) {\n <span\n class=\"select-filter__value\"\n [cuiTooltip]=\"currentLabel()\"\n >\n {{ currentLabel() }}\n </span>\n } @else {\n <span class=\"select-filter__placeholder\">{{ 'SELECT_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"select-filter__dropdown\">\n @for (opt of options(); track opt.value) {\n <button\n type=\"button\"\n class=\"select-filter__option\"\n [class.select-filter__option--selected]=\"isOptionSelected(opt.value)\"\n (click)=\"selectOption(opt.value, dropdown)\"\n >\n {{ opt.label }}\n </button>\n }\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.select-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.select-filter__trigger:hover{background:var(--cui-base-200)}.select-filter__trigger:focus{outline:none}.select-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.select-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.select-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.select-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.select-filter__option{display:flex;flex-direction:row;gap:0;align-items:center;justify-content:flex-start;border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-weight:400;font-size:13px;line-height:16px;padding:8px 12px;width:100%;text-align:left;color:var(--cui-base-900);cursor:pointer;-webkit-user-select:none;user-select:none}.select-filter__option:hover{background:var(--cui-base-50)}.select-filter__option--selected{background:var(--cui-lavender-bg);font-weight:500}\n"], dependencies: [{ kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i1.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiSelectFilterComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'cui-select-filter', standalone: true, imports: [
|
|
56
|
+
CuiDropdownDirective,
|
|
57
|
+
CuiFilterRemoveButtonComponent,
|
|
58
|
+
CuiSvgModule,
|
|
59
|
+
CuiTooltipDirective,
|
|
60
|
+
TranslocoPipe
|
|
61
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"select-filter__trigger\"\n [class.select-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n>\n @if (hasValue()) {\n <span\n class=\"select-filter__value\"\n [cuiTooltip]=\"currentLabel()\"\n >\n {{ currentLabel() }}\n </span>\n } @else {\n <span class=\"select-filter__placeholder\">{{ 'SELECT_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"select-filter__dropdown\">\n @for (opt of options(); track opt.value) {\n <button\n type=\"button\"\n class=\"select-filter__option\"\n [class.select-filter__option--selected]=\"isOptionSelected(opt.value)\"\n (click)=\"selectOption(opt.value, dropdown)\"\n >\n {{ opt.label }}\n </button>\n }\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.select-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.select-filter__trigger:hover{background:var(--cui-base-200)}.select-filter__trigger:focus{outline:none}.select-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.select-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.select-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.select-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.select-filter__option{display:flex;flex-direction:row;gap:0;align-items:center;justify-content:flex-start;border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-weight:400;font-size:13px;line-height:16px;padding:8px 12px;width:100%;text-align:left;color:var(--cui-base-900);cursor:pointer;-webkit-user-select:none;user-select:none}.select-filter__option:hover{background:var(--cui-base-50)}.select-filter__option--selected{background:var(--cui-lavender-bg);font-weight:500}\n"] }]
|
|
62
|
+
}] });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZmlsdGVyLWJhci9jb21wb25lbnRzL3NlbGVjdC1maWx0ZXIvc2VsZWN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZmlsdGVyLWJhci9jb21wb25lbnRzL3NlbGVjdC1maWx0ZXIvc2VsZWN0LWZpbHRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7O0FBZ0J4RyxNQUFNLE9BQU8sd0JBQXdCO0lBZHJDO1FBZW9CLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQixDQUFDO1FBQzNDLFlBQU8sR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUMzQixZQUFPLEdBQUcsTUFBTSxFQUFtQixDQUFDO1FBRWpDLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFFZ0IsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUV4QixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUE2QixDQUFDO1lBRTlDLE9BQU8sS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLEVBQUUsS0FBSyxJQUFJLGFBQWEsQ0FBQztRQUNuRyxDQUFDLENBQUMsQ0FBQztRQUVnQixhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUVqRCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBNkIsQ0FBQztZQUUxRCxPQUFPLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0tBdUJOO0lBckJhLFFBQVE7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFFUyxZQUFZLENBQUMsS0FBYSxFQUFFLFFBQThCO1FBQ2hFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDZCxHQUFHLENBQUM7WUFDSixLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7U0FDdkUsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBcERRLHdCQUF3QjttR0FBeEIsd0JBQXdCLHdRQ3ZCckMseW9DQXNDYyx3dkREekJOLG9CQUFvQixvSkFDcEIsOEJBQThCLDZHQUM5QixZQUFZLHdLQUNaLG1CQUFtQiw0SkFDbkIsYUFBYTs7NEZBTVIsd0JBQXdCO2tCQWRwQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ0wsb0JBQW9CO3dCQUNwQiw4QkFBOEI7d0JBQzlCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNoQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xvY29QaXBlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcblxuaW1wb3J0IHsgQ3VpRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEN1aVN2Z01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvc3ZnJztcbmltcG9ydCB7IEN1aVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB0eXBlIHsgQ3VpQWN0aXZlRmlsdGVyLCBDdWlTZWxlY3RGaWx0ZXJGaWVsZCB9IGZyb20gJy4uLy4uL2ZpbHRlci1iYXIuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlGaWx0ZXJSZW1vdmVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItcmVtb3ZlLWJ1dHRvbi9maWx0ZXItcmVtb3ZlLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1zZWxlY3QtZmlsdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIEN1aUZpbHRlclJlbW92ZUJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQ3VpU3ZnTW9kdWxlLFxuICAgICAgICBDdWlUb29sdGlwRGlyZWN0aXZlLFxuICAgICAgICBUcmFuc2xvY29QaXBlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZpbHRlci50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtZmlsdGVyLnN0eWxlLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlTZWxlY3RGaWx0ZXJDb21wb25lbnQge1xuICAgIHB1YmxpYyByZWFkb25seSBmaWx0ZXIgPSBpbnB1dC5yZXF1aXJlZDxDdWlBY3RpdmVGaWx0ZXI+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW92ZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBjaGFuZ2VkID0gb3V0cHV0PEN1aUFjdGl2ZUZpbHRlcj4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW50VmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLmZpbHRlcigpO1xuXG4gICAgICAgIHJldHVybiBmLnZhbHVlLnR5cGUgPT09ICdzZWxlY3QnID8gZi52YWx1ZS52YWx1ZSA6IG51bGw7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudExhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5maWx0ZXIoKTtcblxuICAgICAgICBpZiAoZi52YWx1ZS50eXBlICE9PSAnc2VsZWN0JyB8fCAhZi52YWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGYudmFsdWUudmFsdWU7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gZi5maWVsZCBhcyBDdWlTZWxlY3RGaWx0ZXJGaWVsZDtcblxuICAgICAgICByZXR1cm4gZmllbGQuc2VsZWN0T3B0aW9ucz8uZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT09IHNlbGVjdGVkVmFsdWUpPy5sYWJlbCA/PyBzZWxlY3RlZFZhbHVlO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc1ZhbHVlID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLmN1cnJlbnRWYWx1ZSgpKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmlsdGVyKCkuZmllbGQgYXMgQ3VpU2VsZWN0RmlsdGVyRmllbGQ7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkLnNlbGVjdE9wdGlvbnMgPz8gW107XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgb25SZW1vdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlZC5lbWl0KHRoaXMuZmlsdGVyKCkuaWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc09wdGlvblNlbGVjdGVkKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFZhbHVlKCkgPT09IHZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZWxlY3RPcHRpb24odmFsdWU6IHN0cmluZywgZHJvcGRvd246IEN1aURyb3Bkb3duRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLmZpbHRlcigpO1xuXG4gICAgICAgIGlmIChmLnZhbHVlLnR5cGUgIT09ICdzZWxlY3QnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAuLi5mLFxuICAgICAgICAgICAgdmFsdWU6IHsgLi4uZi52YWx1ZSwgdmFsdWU6IGYudmFsdWUudmFsdWUgPT09IHZhbHVlID8gbnVsbCA6IHZhbHVlIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRyb3Bkb3duLmNsb3NlKCk7XG4gICAgfVxufSIsIjxjdWktZmlsdGVyLXJlbW92ZS1idXR0b25cbiAgICBbbGFiZWxdPVwiZmlsdGVyKCkuZmllbGQubGFiZWwgfCB0cmFuc2xvY29cIlxuICAgIChyZW1vdmVkKT1cIm9uUmVtb3ZlKClcIlxuLz5cblxuPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic2VsZWN0LWZpbHRlcl9fdHJpZ2dlclwiXG4gICAgW2NsYXNzLnNlbGVjdC1maWx0ZXJfX3RyaWdnZXItLWFjdGl2ZV09XCJoYXNWYWx1ZSgpXCJcbiAgICBbY3VpRHJvcGRvd25dPVwiZHJvcGRvd25UcGxcIlxuICAgICNkcm9wZG93bj1cImN1aURyb3Bkb3duXCJcbj5cbiAgICBAaWYgKGhhc1ZhbHVlKCkpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWZpbHRlcl9fdmFsdWVcIlxuICAgICAgICAgICAgW2N1aVRvb2x0aXBdPVwiY3VycmVudExhYmVsKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBjdXJyZW50TGFiZWwoKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LWZpbHRlcl9fcGxhY2Vob2xkZXJcIj57eyAnU0VMRUNUX1ZBTFVFJyB8IHRyYW5zbG9jbyB9fTwvc3Bhbj5cbiAgICB9XG4gICAgPGN1aS1zdmcgaWNvbj1cImN1aUljb25DaGV2cm9uRG93blwiIC8+XG48L2J1dHRvbj5cblxuPG5nLXRlbXBsYXRlICNkcm9wZG93blRwbD5cbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWZpbHRlcl9fZHJvcGRvd25cIj5cbiAgICAgICAgQGZvciAob3B0IG9mIG9wdGlvbnMoKTsgdHJhY2sgb3B0LnZhbHVlKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtZmlsdGVyX19vcHRpb25cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3QtZmlsdGVyX19vcHRpb24tLXNlbGVjdGVkXT1cImlzT3B0aW9uU2VsZWN0ZWQob3B0LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE9wdGlvbihvcHQudmFsdWUsIGRyb3Bkb3duKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgb3B0LmxhYmVsIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { TranslocoPipe } from '@jsverse/transloco';
|
|
4
|
+
import { CuiButtonModule } from '../../../../components/button';
|
|
5
|
+
import { CuiDropdownDirective } from '../../../../components/dropdown';
|
|
6
|
+
import { CuiInputModule } from '../../../../components/input-text';
|
|
7
|
+
import { CuiSvgModule } from '../../../../components/svg';
|
|
8
|
+
import { CuiTooltipDirective } from '../../../../directives';
|
|
9
|
+
import { CuiFilterRemoveButtonComponent } from '../filter-remove-button/filter-remove-button.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../../../button/button.component";
|
|
12
|
+
import * as i2 from "../../../input-text/input-text.component";
|
|
13
|
+
import * as i3 from "../../../../directives/text-field-controller/text-field-placeholder.directive";
|
|
14
|
+
import * as i4 from "../../../svg/svg.component";
|
|
15
|
+
import * as i5 from "@angular/forms";
|
|
16
|
+
export class CuiStringFilterComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.filter = input.required();
|
|
19
|
+
this.removed = output();
|
|
20
|
+
this.changed = output();
|
|
21
|
+
this.tmpValue = signal('');
|
|
22
|
+
this.currentValue = computed(() => {
|
|
23
|
+
const f = this.filter();
|
|
24
|
+
return f.value.type === 'string' ? f.value.value : '';
|
|
25
|
+
});
|
|
26
|
+
this.hasValue = computed(() => !!this.currentValue());
|
|
27
|
+
}
|
|
28
|
+
onRemove() {
|
|
29
|
+
this.removed.emit(this.filter().id);
|
|
30
|
+
}
|
|
31
|
+
onDropdownOpened(opened) {
|
|
32
|
+
if (opened) {
|
|
33
|
+
this.tmpValue.set(this.currentValue());
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
onTmpValueChange(value) {
|
|
37
|
+
this.tmpValue.set(value);
|
|
38
|
+
}
|
|
39
|
+
applyValue(dropdown) {
|
|
40
|
+
const f = this.filter();
|
|
41
|
+
if (f.value.type !== 'string') {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.changed.emit({
|
|
45
|
+
...f,
|
|
46
|
+
value: { ...f.value, value: this.tmpValue() }
|
|
47
|
+
});
|
|
48
|
+
dropdown.close();
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiStringFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiStringFilterComponent, isStandalone: true, selector: "cui-string-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"string-filter__trigger\"\n [class.string-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n (isOpened)=\"onDropdownOpened($event)\"\n>\n @if (hasValue()) {\n <span\n class=\"string-filter__value\"\n [cuiTooltip]=\"currentValue()\"\n >\n {{ currentValue() }}\n </span>\n } @else {\n <span class=\"string-filter__placeholder\">{{ 'ENTER_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"string-filter__dropdown\">\n <div class=\"string-filter__label\">\n {{ 'FILTER_BY' | transloco: { field: filter().field.label | transloco } }}\n </div>\n <cui-input-text\n [ngModel]=\"tmpValue()\"\n (ngModelChange)=\"onTmpValueChange($event)\"\n maxlength=\"25\"\n [cuiTextFieldPlaceholder]=\"'ENTER_VALUE' | transloco\"\n />\n <div class=\"string-filter__footer\">\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"secondary\"\n (click)=\"dropdown.close()\"\n >\n {{ 'CANCEL' | transloco }}\n </button>\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"action-cyan\"\n (click)=\"applyValue(dropdown)\"\n >\n {{ 'APPLY' | transloco }}\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.string-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.string-filter__trigger:hover{background:var(--cui-base-200)}.string-filter__trigger:focus{outline:none}.string-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.string-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.string-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.string-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.string-filter__dropdown{display:flex;flex-direction:column;gap:12px;padding:8px;width:300px;max-width:calc(100vw - 16px);background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.string-filter__label{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-900)}.string-filter__footer{display:flex;flex-direction:row;gap:8px;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: i2.CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: i3.CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i4.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiStringFilterComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'cui-string-filter', standalone: true, imports: [
|
|
56
|
+
CuiButtonModule,
|
|
57
|
+
CuiDropdownDirective,
|
|
58
|
+
CuiFilterRemoveButtonComponent,
|
|
59
|
+
CuiInputModule,
|
|
60
|
+
CuiSvgModule,
|
|
61
|
+
CuiTooltipDirective,
|
|
62
|
+
FormsModule,
|
|
63
|
+
TranslocoPipe
|
|
64
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"string-filter__trigger\"\n [class.string-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n (isOpened)=\"onDropdownOpened($event)\"\n>\n @if (hasValue()) {\n <span\n class=\"string-filter__value\"\n [cuiTooltip]=\"currentValue()\"\n >\n {{ currentValue() }}\n </span>\n } @else {\n <span class=\"string-filter__placeholder\">{{ 'ENTER_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"string-filter__dropdown\">\n <div class=\"string-filter__label\">\n {{ 'FILTER_BY' | transloco: { field: filter().field.label | transloco } }}\n </div>\n <cui-input-text\n [ngModel]=\"tmpValue()\"\n (ngModelChange)=\"onTmpValueChange($event)\"\n maxlength=\"25\"\n [cuiTextFieldPlaceholder]=\"'ENTER_VALUE' | transloco\"\n />\n <div class=\"string-filter__footer\">\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"secondary\"\n (click)=\"dropdown.close()\"\n >\n {{ 'CANCEL' | transloco }}\n </button>\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"action-cyan\"\n (click)=\"applyValue(dropdown)\"\n >\n {{ 'APPLY' | transloco }}\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.string-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.string-filter__trigger:hover{background:var(--cui-base-200)}.string-filter__trigger:focus{outline:none}.string-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.string-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.string-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.string-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.string-filter__dropdown{display:flex;flex-direction:column;gap:12px;padding:8px;width:300px;max-width:calc(100vw - 16px);background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.string-filter__label{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-900)}.string-filter__footer{display:flex;flex-direction:row;gap:8px;justify-content:flex-end}\n"] }]
|
|
65
|
+
}] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZmlsdGVyLWJhci9jb21wb25lbnRzL3N0cmluZy1maWx0ZXIvc3RyaW5nLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZmlsdGVyLWJhci9jb21wb25lbnRzL3N0cmluZy1maWx0ZXIvc3RyaW5nLWZpbHRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7QUFtQnhHLE1BQU0sT0FBTyx3QkFBd0I7SUFqQnJDO1FBa0JvQixXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztRQUMzQyxZQUFPLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFDM0IsWUFBTyxHQUFHLE1BQU0sRUFBbUIsQ0FBQztRQUVqQyxhQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRCLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7UUFFZ0IsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7S0E2QnZFO0lBM0JhLFFBQVE7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLGdCQUFnQixDQUFDLE1BQWU7UUFDdEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBRVMsZ0JBQWdCLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRVMsVUFBVSxDQUFDLFFBQThCO1FBQy9DLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDZCxHQUFHLENBQUM7WUFDSixLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtTQUNoRCxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQzsrR0F6Q1Esd0JBQXdCO21HQUF4Qix3QkFBd0Isd1FDN0JyQyxreURBMERjLDYyQ0QxQ04sZUFBZSxvT0FDZixvQkFBb0Isb0pBQ3BCLDhCQUE4Qiw2R0FDOUIsY0FBYywrUEFDZCxZQUFZLHdLQUNaLG1CQUFtQixnS0FDbkIsV0FBVyw2ZkFDWCxhQUFhOzs0RkFNUix3QkFBd0I7a0JBakJwQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ0wsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLDhCQUE4Qjt3QkFDOUIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3FCQUNoQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsb2NvUGlwZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IEN1aUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEN1aURyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBDdWlJbnB1dE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvaW5wdXQtdGV4dCc7XG5pbXBvcnQgeyBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3N2Zyc7XG5pbXBvcnQgeyBDdWlUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgdHlwZSB7IEN1aUFjdGl2ZUZpbHRlciB9IGZyb20gJy4uLy4uL2ZpbHRlci1iYXIuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlGaWx0ZXJSZW1vdmVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItcmVtb3ZlLWJ1dHRvbi9maWx0ZXItcmVtb3ZlLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1zdHJpbmctZmlsdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgICAgICBDdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgQ3VpRmlsdGVyUmVtb3ZlQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDdWlJbnB1dE1vZHVsZSxcbiAgICAgICAgQ3VpU3ZnTW9kdWxlLFxuICAgICAgICBDdWlUb29sdGlwRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVHJhbnNsb2NvUGlwZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0cmluZy1maWx0ZXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RyaW5nLWZpbHRlci5zdHlsZS5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpU3RyaW5nRmlsdGVyQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyID0gaW5wdXQucmVxdWlyZWQ8Q3VpQWN0aXZlRmlsdGVyPigpO1xuICAgIHB1YmxpYyByZWFkb25seSByZW1vdmVkID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlZCA9IG91dHB1dDxDdWlBY3RpdmVGaWx0ZXI+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG1wVmFsdWUgPSBzaWduYWwoJycpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZiA9IHRoaXMuZmlsdGVyKCk7XG5cbiAgICAgICAgcmV0dXJuIGYudmFsdWUudHlwZSA9PT0gJ3N0cmluZycgPyBmLnZhbHVlLnZhbHVlIDogJyc7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMuY3VycmVudFZhbHVlKCkpO1xuXG4gICAgcHJvdGVjdGVkIG9uUmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZWQuZW1pdCh0aGlzLmZpbHRlcigpLmlkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Ecm9wZG93bk9wZW5lZChvcGVuZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy50bXBWYWx1ZS5zZXQodGhpcy5jdXJyZW50VmFsdWUoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UbXBWYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG1wVmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXBwbHlWYWx1ZShkcm9wZG93bjogQ3VpRHJvcGRvd25EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZiA9IHRoaXMuZmlsdGVyKCk7XG5cbiAgICAgICAgaWYgKGYudmFsdWUudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIC4uLmYsXG4gICAgICAgICAgICB2YWx1ZTogeyAuLi5mLnZhbHVlLCB2YWx1ZTogdGhpcy50bXBWYWx1ZSgpIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRyb3Bkb3duLmNsb3NlKCk7XG4gICAgfVxufSIsIjxjdWktZmlsdGVyLXJlbW92ZS1idXR0b25cbiAgICBbbGFiZWxdPVwiZmlsdGVyKCkuZmllbGQubGFiZWwgfCB0cmFuc2xvY29cIlxuICAgIChyZW1vdmVkKT1cIm9uUmVtb3ZlKClcIlxuLz5cblxuPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic3RyaW5nLWZpbHRlcl9fdHJpZ2dlclwiXG4gICAgW2NsYXNzLnN0cmluZy1maWx0ZXJfX3RyaWdnZXItLWFjdGl2ZV09XCJoYXNWYWx1ZSgpXCJcbiAgICBbY3VpRHJvcGRvd25dPVwiZHJvcGRvd25UcGxcIlxuICAgICNkcm9wZG93bj1cImN1aURyb3Bkb3duXCJcbiAgICAoaXNPcGVuZWQpPVwib25Ecm9wZG93bk9wZW5lZCgkZXZlbnQpXCJcbj5cbiAgICBAaWYgKGhhc1ZhbHVlKCkpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwic3RyaW5nLWZpbHRlcl9fdmFsdWVcIlxuICAgICAgICAgICAgW2N1aVRvb2x0aXBdPVwiY3VycmVudFZhbHVlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBjdXJyZW50VmFsdWUoKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3RyaW5nLWZpbHRlcl9fcGxhY2Vob2xkZXJcIj57eyAnRU5URVJfVkFMVUUnIHwgdHJhbnNsb2NvIH19PC9zcGFuPlxuICAgIH1cbiAgICA8Y3VpLXN2ZyBpY29uPVwiY3VpSWNvbkNoZXZyb25Eb3duXCIgLz5cbjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duVHBsPlxuICAgIDxkaXYgY2xhc3M9XCJzdHJpbmctZmlsdGVyX19kcm9wZG93blwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RyaW5nLWZpbHRlcl9fbGFiZWxcIj5cbiAgICAgICAgICAgIHt7ICdGSUxURVJfQlknIHwgdHJhbnNsb2NvOiB7IGZpZWxkOiBmaWx0ZXIoKS5maWVsZC5sYWJlbCB8IHRyYW5zbG9jbyB9IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8Y3VpLWlucHV0LXRleHRcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInRtcFZhbHVlKClcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UbXBWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1XCJcbiAgICAgICAgICAgIFtjdWlUZXh0RmllbGRQbGFjZWhvbGRlcl09XCInRU5URVJfVkFMVUUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0cmluZy1maWx0ZXJfX2Zvb3RlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGN1aUJ1dHRvblxuICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRyb3Bkb3duLmNsb3NlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdDQU5DRUwnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJhY3Rpb24tY3lhblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5VmFsdWUoZHJvcGRvd24pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnQVBQTFknIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core';
|
|
2
|
+
import { CuiAddFilterButtonComponent, CuiDateFilterComponent, CuiFilterRemoveButtonComponent, CuiMultiSelectFilterComponent, CuiRangeFilterComponent, CuiSelectFilterComponent, CuiStringFilterComponent } from './components';
|
|
3
|
+
import { buildDefaultValue, buildOutputObject } from './filter-bar.utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CuiFilterBarComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.fields = input.required();
|
|
8
|
+
this.filterChange = output();
|
|
9
|
+
this._filters = signal([]);
|
|
10
|
+
this.availableFields = computed(() => {
|
|
11
|
+
const usedIds = new Set(this._filters().map(f => f.id));
|
|
12
|
+
return this.fields().filter(f => !usedIds.has(f.id));
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
selectField(field) {
|
|
16
|
+
const newFilter = {
|
|
17
|
+
id: crypto.randomUUID(),
|
|
18
|
+
field,
|
|
19
|
+
value: buildDefaultValue(field)
|
|
20
|
+
};
|
|
21
|
+
this._filters.set([...this._filters(), newFilter]);
|
|
22
|
+
this.emitFilterChange();
|
|
23
|
+
}
|
|
24
|
+
onFilterChanged(updated) {
|
|
25
|
+
const next = this._filters().map(f => (f.id === updated.id ? updated : f));
|
|
26
|
+
this._filters.set(next);
|
|
27
|
+
this.emitFilterChange();
|
|
28
|
+
}
|
|
29
|
+
onFilterRemoved(id) {
|
|
30
|
+
const next = this._filters().filter(f => f.id !== id);
|
|
31
|
+
this._filters.set(next);
|
|
32
|
+
this.emitFilterChange();
|
|
33
|
+
}
|
|
34
|
+
emitFilterChange() {
|
|
35
|
+
this.filterChange.emit(buildOutputObject(this._filters()));
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiFilterBarComponent, isStandalone: true, selector: "cui-filter-bar", inputs: { fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filterChange: "filterChange" }, ngImport: i0, template: "<div class=\"cui-filter-bar\">\n <div class=\"cui-filter-bar__list\">\n @for (filter of _filters(); track filter.id) {\n @switch (filter.field.type) {\n @case ('string') {\n <cui-string-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('date') {\n <cui-date-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('range') {\n <cui-range-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('select') {\n <cui-select-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('multiselect') {\n <cui-multiselect-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n }\n }\n\n @if (availableFields().length > 0) {\n <cui-add-filter-button\n [availableFields]=\"availableFields()\"\n (fieldSelected)=\"selectField($event)\"\n />\n }\n </div>\n</div>\n", styles: [".cui-filter-bar{display:flex;flex-direction:row;gap:12px}.cui-filter-bar__list{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: CuiAddFilterButtonComponent, selector: "cui-add-filter-button", inputs: ["availableFields"], outputs: ["fieldSelected"] }, { kind: "component", type: CuiDateFilterComponent, selector: "cui-date-filter", inputs: ["filter"], outputs: ["removed", "changed"] }, { kind: "component", type: CuiMultiSelectFilterComponent, selector: "cui-multiselect-filter", inputs: ["filter"], outputs: ["removed", "changed"] }, { kind: "component", type: CuiRangeFilterComponent, selector: "cui-range-filter", inputs: ["filter"], outputs: ["removed", "changed"] }, { kind: "component", type: CuiSelectFilterComponent, selector: "cui-select-filter", inputs: ["filter"], outputs: ["removed", "changed"] }, { kind: "component", type: CuiStringFilterComponent, selector: "cui-string-filter", inputs: ["filter"], outputs: ["removed", "changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{ selector: 'cui-filter-bar', standalone: true, imports: [
|
|
43
|
+
CuiAddFilterButtonComponent,
|
|
44
|
+
CuiDateFilterComponent,
|
|
45
|
+
CuiFilterRemoveButtonComponent,
|
|
46
|
+
CuiMultiSelectFilterComponent,
|
|
47
|
+
CuiRangeFilterComponent,
|
|
48
|
+
CuiSelectFilterComponent,
|
|
49
|
+
CuiStringFilterComponent
|
|
50
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cui-filter-bar\">\n <div class=\"cui-filter-bar__list\">\n @for (filter of _filters(); track filter.id) {\n @switch (filter.field.type) {\n @case ('string') {\n <cui-string-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('date') {\n <cui-date-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('range') {\n <cui-range-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('select') {\n <cui-select-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('multiselect') {\n <cui-multiselect-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n }\n }\n\n @if (availableFields().length > 0) {\n <cui-add-filter-button\n [availableFields]=\"availableFields()\"\n (fieldSelected)=\"selectField($event)\"\n />\n }\n </div>\n</div>\n", styles: [".cui-filter-bar{display:flex;flex-direction:row;gap:12px}.cui-filter-bar__list{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap}\n"] }]
|
|
51
|
+
}] });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZmlsdGVyLWJhci9maWx0ZXItYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9maWx0ZXItYmFyL2ZpbHRlci1iYXIudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQ0gsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDOUIsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQzNCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQWtCMUUsTUFBTSxPQUFPLHFCQUFxQjtJQWhCbEM7UUFpQmEsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQW9CLENBQUM7UUFFNUMsaUJBQVksR0FBRyxNQUFNLEVBQTJCLENBQUM7UUFFakQsYUFBUSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFFekMsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7S0E0Qk47SUExQmEsV0FBVyxDQUFDLEtBQXFCO1FBQ3ZDLE1BQU0sU0FBUyxHQUFvQjtZQUMvQixFQUFFLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUN2QixLQUFLO1lBQ0wsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQztTQUNsQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFUyxlQUFlLENBQUMsT0FBd0I7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVTLGVBQWUsQ0FBQyxFQUFVO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOytHQXJDUSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwyUEM5QmxDLDQyREFrREEsa01EaENRLDJCQUEyQiwySEFDM0Isc0JBQXNCLGlIQUV0Qiw2QkFBNkIsd0hBQzdCLHVCQUF1QixrSEFDdkIsd0JBQXdCLG1IQUN4Qix3QkFBd0I7OzRGQU1uQixxQkFBcUI7a0JBaEJqQyxTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDTCwyQkFBMkI7d0JBQzNCLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7cUJBQzNCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEN1aUFkZEZpbHRlckJ1dHRvbkNvbXBvbmVudCxcbiAgICBDdWlEYXRlRmlsdGVyQ29tcG9uZW50LFxuICAgIEN1aUZpbHRlclJlbW92ZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBDdWlNdWx0aVNlbGVjdEZpbHRlckNvbXBvbmVudCxcbiAgICBDdWlSYW5nZUZpbHRlckNvbXBvbmVudCxcbiAgICBDdWlTZWxlY3RGaWx0ZXJDb21wb25lbnQsXG4gICAgQ3VpU3RyaW5nRmlsdGVyQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IEN1aUFjdGl2ZUZpbHRlciwgQ3VpRmlsdGVyRmllbGQgfSBmcm9tICcuL2ZpbHRlci1iYXIuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBidWlsZERlZmF1bHRWYWx1ZSwgYnVpbGRPdXRwdXRPYmplY3QgfSBmcm9tICcuL2ZpbHRlci1iYXIudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1maWx0ZXItYmFyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpQWRkRmlsdGVyQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDdWlEYXRlRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlGaWx0ZXJSZW1vdmVCdXR0b25Db21wb25lbnQsXG4gICAgICAgIEN1aU11bHRpU2VsZWN0RmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlSYW5nZUZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgQ3VpU2VsZWN0RmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlTdHJpbmdGaWx0ZXJDb21wb25lbnRcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItYmFyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbHRlci1iYXIuc3R5bGUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEN1aUZpbHRlckJhckNvbXBvbmVudCB7XG4gICAgcmVhZG9ubHkgZmllbGRzID0gaW5wdXQucmVxdWlyZWQ8Q3VpRmlsdGVyRmllbGRbXT4oKTtcblxuICAgIHJlYWRvbmx5IGZpbHRlckNoYW5nZSA9IG91dHB1dDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKTtcblxuICAgIHJlYWRvbmx5IF9maWx0ZXJzID0gc2lnbmFsPEN1aUFjdGl2ZUZpbHRlcltdPihbXSk7XG5cbiAgICByZWFkb25seSBhdmFpbGFibGVGaWVsZHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZWRJZHMgPSBuZXcgU2V0KHRoaXMuX2ZpbHRlcnMoKS5tYXAoZiA9PiBmLmlkKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkcygpLmZpbHRlcihmID0+ICF1c2VkSWRzLmhhcyhmLmlkKSk7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgc2VsZWN0RmllbGQoZmllbGQ6IEN1aUZpbHRlckZpZWxkKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld0ZpbHRlcjogQ3VpQWN0aXZlRmlsdGVyID0ge1xuICAgICAgICAgICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIHZhbHVlOiBidWlsZERlZmF1bHRWYWx1ZShmaWVsZClcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9maWx0ZXJzLnNldChbLi4udGhpcy5fZmlsdGVycygpLCBuZXdGaWx0ZXJdKTtcbiAgICAgICAgdGhpcy5lbWl0RmlsdGVyQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRmlsdGVyQ2hhbmdlZCh1cGRhdGVkOiBDdWlBY3RpdmVGaWx0ZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuX2ZpbHRlcnMoKS5tYXAoZiA9PiAoZi5pZCA9PT0gdXBkYXRlZC5pZCA/IHVwZGF0ZWQgOiBmKSk7XG4gICAgICAgIHRoaXMuX2ZpbHRlcnMuc2V0KG5leHQpO1xuICAgICAgICB0aGlzLmVtaXRGaWx0ZXJDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25GaWx0ZXJSZW1vdmVkKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuX2ZpbHRlcnMoKS5maWx0ZXIoZiA9PiBmLmlkICE9PSBpZCk7XG4gICAgICAgIHRoaXMuX2ZpbHRlcnMuc2V0KG5leHQpO1xuICAgICAgICB0aGlzLmVtaXRGaWx0ZXJDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRGaWx0ZXJDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQoYnVpbGRPdXRwdXRPYmplY3QodGhpcy5fZmlsdGVycygpKSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImN1aS1maWx0ZXItYmFyXCI+XG4gICAgPGRpdiBjbGFzcz1cImN1aS1maWx0ZXItYmFyX19saXN0XCI+XG4gICAgICAgIEBmb3IgKGZpbHRlciBvZiBfZmlsdGVycygpOyB0cmFjayBmaWx0ZXIuaWQpIHtcbiAgICAgICAgICAgIEBzd2l0Y2ggKGZpbHRlci5maWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxjdWktc3RyaW5nLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwib25GaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwib25GaWx0ZXJSZW1vdmVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoJ2RhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxjdWktZGF0ZS1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cIm9uRmlsdGVyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cIm9uRmlsdGVyUmVtb3ZlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdyYW5nZScpIHtcbiAgICAgICAgICAgICAgICAgICAgPGN1aS1yYW5nZS1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cIm9uRmlsdGVyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cIm9uRmlsdGVyUmVtb3ZlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdzZWxlY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxjdWktc2VsZWN0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwib25GaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwib25GaWx0ZXJSZW1vdmVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoJ211bHRpc2VsZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICA8Y3VpLW11bHRpc2VsZWN0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwib25GaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwib25GaWx0ZXJSZW1vdmVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoYXZhaWxhYmxlRmllbGRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPGN1aS1hZGQtZmlsdGVyLWJ1dHRvblxuICAgICAgICAgICAgICAgIFthdmFpbGFibGVGaWVsZHNdPVwiYXZhaWxhYmxlRmllbGRzKClcIlxuICAgICAgICAgICAgICAgIChmaWVsZFNlbGVjdGVkKT1cInNlbGVjdEZpZWxkKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// --- Public types (exported in public API) ---
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJhci5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2ZpbHRlci1iYXIvZmlsdGVyLWJhci5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdEQUFnRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLSBQdWJsaWMgdHlwZXMgKGV4cG9ydGVkIGluIHB1YmxpYyBBUEkpIC0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1aUJhc2VGaWx0ZXJGaWVsZCB7XG4gICAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IG9wZXJhdG9yTGFiZWxzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdWlTdHJpbmdGaWx0ZXJGaWVsZCBleHRlbmRzIEN1aUJhc2VGaWx0ZXJGaWVsZCB7XG4gICAgcmVhZG9ubHkgdHlwZTogJ3N0cmluZyc7XG4gICAgcmVhZG9ubHkgb3V0cHV0TWFwcGluZzogQ3VpU3RyaW5nT3V0cHV0TWFwcGluZztcbiAgICByZWFkb25seSBzdHJpbmdPcGVyYXRvcnM/OiBDdWlTdHJpbmdPcGVyYXRvcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1aVNlbGVjdEZpbHRlckZpZWxkIGV4dGVuZHMgQ3VpQmFzZUZpbHRlckZpZWxkIHtcbiAgICByZWFkb25seSB0eXBlOiAnc2VsZWN0JztcbiAgICByZWFkb25seSBvdXRwdXRNYXBwaW5nOiBDdWlTZWxlY3RPdXRwdXRNYXBwaW5nO1xuICAgIHJlYWRvbmx5IHNlbGVjdE9wdGlvbnM6IEN1aUZpbHRlck9wdGlvbltdO1xuICAgIHJlYWRvbmx5IHNlbGVjdE9wZXJhdG9ycz86IEN1aVNlbGVjdE9wZXJhdG9yW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VpTXVsdGlTZWxlY3RGaWx0ZXJGaWVsZCBleHRlbmRzIEN1aUJhc2VGaWx0ZXJGaWVsZCB7XG4gICAgcmVhZG9ubHkgdHlwZTogJ211bHRpc2VsZWN0JztcbiAgICByZWFkb25seSBvdXRwdXRNYXBwaW5nOiBDdWlNdWx0aVNlbGVjdE91dHB1dE1hcHBpbmc7XG4gICAgcmVhZG9ubHkgbXVsdGlTZWxlY3RPcHRpb25zOiBDdWlGaWx0ZXJPcHRpb25bXTtcbiAgICByZWFkb25seSBtdWx0aVNlbGVjdE9wZXJhdG9ycz86IEN1aU11bHRpU2VsZWN0T3BlcmF0b3JbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdWlEYXRlRmlsdGVyRmllbGQgZXh0ZW5kcyBDdWlCYXNlRmlsdGVyRmllbGQge1xuICAgIHJlYWRvbmx5IHR5cGU6ICdkYXRlJztcbiAgICByZWFkb25seSBvdXRwdXRNYXBwaW5nOiBDdWlEYXRlT3V0cHV0TWFwcGluZztcbiAgICByZWFkb25seSBkYXRlT3BlcmF0b3JzPzogQ3VpRGF0ZU9wZXJhdG9yW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VpUmFuZ2VGaWx0ZXJGaWVsZCBleHRlbmRzIEN1aUJhc2VGaWx0ZXJGaWVsZCB7XG4gICAgcmVhZG9ubHkgdHlwZTogJ3JhbmdlJztcbiAgICByZWFkb25seSBvdXRwdXRNYXBwaW5nOiBDdWlSYW5nZU91dHB1dE1hcHBpbmc7XG4gICAgcmVhZG9ubHkgcmFuZ2VDb25maWc/OiB7IHJlYWRvbmx5IG1pblBsYWNlaG9sZGVyPzogc3RyaW5nOyByZWFkb25seSBtYXhQbGFjZWhvbGRlcj86IHN0cmluZyB9O1xufVxuXG5leHBvcnQgdHlwZSBDdWlGaWx0ZXJGaWVsZCA9XG4gICAgfCBDdWlTdHJpbmdGaWx0ZXJGaWVsZFxuICAgIHwgQ3VpU2VsZWN0RmlsdGVyRmllbGRcbiAgICB8IEN1aU11bHRpU2VsZWN0RmlsdGVyRmllbGRcbiAgICB8IEN1aURhdGVGaWx0ZXJGaWVsZFxuICAgIHwgQ3VpUmFuZ2VGaWx0ZXJGaWVsZDtcblxuZXhwb3J0IHR5cGUgQ3VpU3RyaW5nT3V0cHV0TWFwcGluZyA9IHsgcmVhZG9ubHkgdmFsdWU6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgQ3VpU2VsZWN0T3V0cHV0TWFwcGluZyA9IHsgcmVhZG9ubHkgdmFsdWU6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgQ3VpTXVsdGlTZWxlY3RPdXRwdXRNYXBwaW5nID0geyByZWFkb25seSB2YWx1ZXM6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgQ3VpRGF0ZU91dHB1dE1hcHBpbmcgPSB7IHJlYWRvbmx5IHN0YXJ0OiBzdHJpbmc7IHJlYWRvbmx5IGVuZDogc3RyaW5nIH07XG5leHBvcnQgdHlwZSBDdWlSYW5nZU91dHB1dE1hcHBpbmcgPSB7IHJlYWRvbmx5IG1pbjogc3RyaW5nOyByZWFkb25seSBtYXg6IHN0cmluZyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1aUZpbHRlck9wdGlvbiB7XG4gICAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDdWlTdHJpbmdPcGVyYXRvciA9ICdjb250YWlucycgfCAnZXF1YWxzJyB8ICdzdGFydHNXaXRoJyB8ICdlbmRzV2l0aCc7XG5leHBvcnQgdHlwZSBDdWlTZWxlY3RPcGVyYXRvciA9ICdlcXVhbHMnIHwgJ25vdEVxdWFscyc7XG5leHBvcnQgdHlwZSBDdWlNdWx0aVNlbGVjdE9wZXJhdG9yID0gJ2luJyB8ICdub3RJbicgfCAnY29udGFpbnNBbGwnO1xuZXhwb3J0IHR5cGUgQ3VpRGF0ZU9wZXJhdG9yID0gJ2JldHdlZW4nIHwgJ29uJyB8ICdhZnRlcicgfCAnYmVmb3JlJztcblxuLy8gLS0tIEludGVybmFsIHR5cGVzIChOT1QgZXhwb3J0ZWQgaW4gcHVibGljIEFQSSkgLS0tXG5cbmV4cG9ydCB0eXBlIEN1aUZpbHRlclZhbHVlID1cbiAgICB8IHsgcmVhZG9ubHkgdHlwZTogJ3N0cmluZyc7IHJlYWRvbmx5IG9wZXJhdG9yOiBDdWlTdHJpbmdPcGVyYXRvcjsgcmVhZG9ubHkgdmFsdWU6IHN0cmluZyB9XG4gICAgfCB7IHJlYWRvbmx5IHR5cGU6ICdzZWxlY3QnOyByZWFkb25seSBvcGVyYXRvcjogQ3VpU2VsZWN0T3BlcmF0b3I7IHJlYWRvbmx5IHZhbHVlOiBzdHJpbmcgfCBudWxsIH1cbiAgICB8IHsgcmVhZG9ubHkgdHlwZTogJ211bHRpc2VsZWN0JzsgcmVhZG9ubHkgb3BlcmF0b3I6IEN1aU11bHRpU2VsZWN0T3BlcmF0b3I7IHJlYWRvbmx5IHZhbHVlczogc3RyaW5nW10gfVxuICAgIHwgeyByZWFkb25seSB0eXBlOiAnZGF0ZSc7IHJlYWRvbmx5IG9wZXJhdG9yOiBDdWlEYXRlT3BlcmF0b3I7IHJlYWRvbmx5IHZhbHVlOiBEYXRlIHwgbnVsbDsgcmVhZG9ubHkgcmFuZ2VTdGFydDogRGF0ZSB8IG51bGw7IHJlYWRvbmx5IHJhbmdlRW5kOiBEYXRlIHwgbnVsbCB9XG4gICAgfCB7IHJlYWRvbmx5IHR5cGU6ICdyYW5nZSc7IHJlYWRvbmx5IG1pbjogbnVtYmVyIHwgbnVsbDsgcmVhZG9ubHkgbWF4OiBudW1iZXIgfCBudWxsIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VpQWN0aXZlRmlsdGVyIHtcbiAgICByZWFkb25seSBpZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGZpZWxkOiBDdWlGaWx0ZXJGaWVsZDtcbiAgICByZWFkb25seSB2YWx1ZTogQ3VpRmlsdGVyVmFsdWU7XG59XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CuiFilterBarComponent } from './filter-bar.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CuiFilterBarModule {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarModule, imports: [CuiFilterBarComponent], exports: [CuiFilterBarComponent] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarModule, imports: [CuiFilterBarComponent] }); }
|
|
8
|
+
}
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
imports: [CuiFilterBarComponent],
|
|
13
|
+
exports: [CuiFilterBarComponent]
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZmlsdGVyLWJhci9maWx0ZXItYmFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQU0vRCxNQUFNLE9BQU8sa0JBQWtCOytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixZQUhqQixxQkFBcUIsYUFDckIscUJBQXFCO2dIQUV0QixrQkFBa0IsWUFIakIscUJBQXFCOzs0RkFHdEIsa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDdWlGaWx0ZXJCYXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci1iYXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ3VpRmlsdGVyQmFyQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbQ3VpRmlsdGVyQmFyQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBDdWlGaWx0ZXJCYXJNb2R1bGUge31cbiJdfQ==
|