filter-selection-input 15.0.4

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/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # FilterSelectionInput
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project filter-selection-input` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project filter-selection-input`.
8
+ > Note: Don't forget to add `--project filter-selection-input` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build filter-selection-input` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build filter-selection-input`, go to the dist folder `cd dist/filter-selection-input` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test filter-selection-input` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdGlvbi1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2ZpbHRlci1zZWxlY3Rpb24taW5wdXQvc3JjL2ZpbHRlci1zZWxlY3Rpb24taW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { FormBuilder, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/material/button";
7
+ import * as i4 from "@angular/material/form-field";
8
+ import * as i5 from "@angular/material/button-toggle";
9
+ import * as i6 from "@angular/material/divider";
10
+ import * as i7 from "@angular/material/slide-toggle";
11
+ import * as i8 from "../filter-selection-input/filter-selection-input.component";
12
+ export class FilterSelectionDemoComponent {
13
+ constructor() {
14
+ this.fb = inject(FormBuilder);
15
+ this.data_1 = [
16
+ { id: 11, value: 'Telus' },
17
+ { id: 12, value: 'AT&T', disabled: true },
18
+ { id: 14, value: 'Bell', selected: true },
19
+ { id: 63, value: 'Rogers', selected: true }
20
+ ];
21
+ this.data_2 = ['Telus', 'AT&T', 'Bell', 'Rogers'];
22
+ // SELECTIONS
23
+ this.selectionControl_1 = this.fb.control(null);
24
+ this.selectionControl_2 = this.fb.control(null, Validators.required);
25
+ //CHANGE DETECTION
26
+ this.changeDetection_1 = this.fb.control(false);
27
+ this.changeDetection_2 = this.fb.control(false);
28
+ this.data = this.data_2;
29
+ }
30
+ ngOnInit() {
31
+ // SELECTIONS
32
+ this.selectionControl_1.valueChanges.subscribe(data => {
33
+ if (this.changeDetection_1.value)
34
+ console.log('CHANGE:', data);
35
+ });
36
+ this.selectionControl_2.valueChanges.subscribe(data => {
37
+ if (this.changeDetection_2.value)
38
+ console.log('CHANGE:', data);
39
+ });
40
+ }
41
+ onPerformPatch() {
42
+ this.selectionControl_1.patchValue(['Bell']);
43
+ this.selectionControl_2.patchValue(['AT&T']);
44
+ }
45
+ onChangeDataType(type) {
46
+ if (type === 'strings') {
47
+ this.data = this.data_2; //strings
48
+ }
49
+ else {
50
+ this.data = this.data_1; //objects
51
+ }
52
+ }
53
+ // DISABLE
54
+ onDisabled_1(disable) {
55
+ if (disable) {
56
+ this.selectionControl_1.disable();
57
+ }
58
+ else {
59
+ this.selectionControl_1.enable();
60
+ }
61
+ }
62
+ onDisabled_2(disable) {
63
+ if (disable) {
64
+ this.selectionControl_2.disable();
65
+ }
66
+ else {
67
+ this.selectionControl_2.enable();
68
+ }
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterSelectionDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterSelectionDemoComponent, selector: "app-filter-selection-demo", ngImport: i0, template: "<div style=\"display: flex;\">\n <h1>Filter Selection (Autocomplete) FormControl</h1>\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"strings\" checked=\"true\">Strings</mat-button-toggle>\n <mat-button-toggle value=\"objects\" checked=\"false\">Objects</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n</div>\n\n<h3>No Data - Projection of Error</h3>\n<app-filter-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-filter-selection-input>\n\n<div style=\"margin-top: 2rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Autocomplete - {{ varTypes.value | uppercase }}</h3>\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_1.reset()\">Reset</button>\n </div>\n <app-filter-selection-input\n style=\"flex:1\"\n appearance=\"outline\"\n placeholder=\"Select an Option\"\n label=\"Choices\"\n [data]=\"data\"\n [formControl]=\"selectionControl_1\"\n ></app-filter-selection-input>\n <div style=\"display: flex; gap: 2rem; margin-top: 1rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error1>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable1 (change)=\"onDisabled_1(disable1.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n Label and Placeholder<br>\n Not Required<br>\n Valid {{ selectionControl_1.valid }}<br>\n </div>\n </div>\n\n <div style=\"margin-top: 2rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_2.reset()\">Reset</button>\n </div>\n <app-filter-selection-input\n style=\"flex:1\"\n appearance=\"outline\"\n [data]=\"data\"\n [formControl]=\"selectionControl_2\"\n ></app-filter-selection-input>\n <div *ngIf=\"error2.checked\">\n <mat-error *ngIf=\"selectionControl_2.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 1rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_2\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error2>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable2 (change)=\"onDisabled_1(disable2.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n No Label or Placeholder<br>\n Required<br>\n Valid {{ selectionControl_2.valid }}<br>\n </div>\n </div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i7.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.FilterSelectionInputComponent, selector: "app-filter-selection-input", inputs: ["data", "appearance", "label", "placeholder", "forceSelection"], outputs: ["selected"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }] }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterSelectionDemoComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'app-filter-selection-demo', template: "<div style=\"display: flex;\">\n <h1>Filter Selection (Autocomplete) FormControl</h1>\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"strings\" checked=\"true\">Strings</mat-button-toggle>\n <mat-button-toggle value=\"objects\" checked=\"false\">Objects</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n</div>\n\n<h3>No Data - Projection of Error</h3>\n<app-filter-selection-input error=\"No Data Provided\">\n <h3 style=\"color: red; margin-top: 0; margin-bottom: 0;\">No Data</h3>\n</app-filter-selection-input>\n\n<div style=\"margin-top: 2rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div>\n <h3 style=\"margin-bottom: 0;\">Autocomplete - {{ varTypes.value | uppercase }}</h3>\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_1.reset()\">Reset</button>\n </div>\n <app-filter-selection-input\n style=\"flex:1\"\n appearance=\"outline\"\n placeholder=\"Select an Option\"\n label=\"Choices\"\n [data]=\"data\"\n [formControl]=\"selectionControl_1\"\n ></app-filter-selection-input>\n <div style=\"display: flex; gap: 2rem; margin-top: 1rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error1>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable1 (change)=\"onDisabled_1(disable1.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n Label and Placeholder<br>\n Not Required<br>\n Valid {{ selectionControl_1.valid }}<br>\n </div>\n </div>\n\n <div style=\"margin-top: 2rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div>\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_2.reset()\">Reset</button>\n </div>\n <app-filter-selection-input\n style=\"flex:1\"\n appearance=\"outline\"\n [data]=\"data\"\n [formControl]=\"selectionControl_2\"\n ></app-filter-selection-input>\n <div *ngIf=\"error2.checked\">\n <mat-error *ngIf=\"selectionControl_2.hasError('required')\">This field is Required</mat-error>\n </div>\n <div style=\"display: flex; gap: 2rem; margin-top: 1rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_2\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #error2>Display Error</mat-slide-toggle>\n <mat-slide-toggle #disable2 (change)=\"onDisabled_1(disable2.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n </div>\n <div style=\"margin-top: 2rem;\">\n No Label or Placeholder<br>\n Required<br>\n Valid {{ selectionControl_2.valid }}<br>\n </div>\n </div>\n\n" }]
76
+ }], ctorParameters: function () { return []; } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWRlbW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmlsdGVyLXNlbGVjdGlvbi1pbnB1dC9zcmMvbGliL2ZpbHRlci1kZW1vL2ZpbHRlci1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZpbHRlci1zZWxlY3Rpb24taW5wdXQvc3JjL2xpYi9maWx0ZXItZGVtby9maWx0ZXItZGVtby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyw0QkFBNEI7SUF3QnZDO1FBdEJBLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFeEIsV0FBTSxHQUFHO1lBQ1AsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDMUIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUN6QyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDO1lBQ3hDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7U0FDM0MsQ0FBQTtRQUVELFdBQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBRTVDLGNBQWM7UUFDZCx1QkFBa0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBZ0IsSUFBSSxDQUFDLENBQUE7UUFDekQsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFOUUsa0JBQWtCO1FBQ2xCLHNCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzFDLHNCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRzFDLFNBQUksR0FBUSxJQUFJLENBQUMsTUFBTSxDQUFBO0lBRVIsQ0FBQztJQUVqQixRQUFRO1FBRU4sYUFBYTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BELElBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUQsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRCxJQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO2dCQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxDQUFBO1FBQzlELENBQUMsQ0FBQyxDQUFBO0lBRUosQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWTtRQUMzQixJQUFHLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBLENBQUMsU0FBUztTQUNsQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBLENBQUMsU0FBUztTQUNsQztJQUNILENBQUM7SUFFRCxVQUFVO0lBQ1YsWUFBWSxDQUFDLE9BQWdCO1FBRTNCLElBQUcsT0FBTyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFBO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUE7U0FDakM7SUFFSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWdCO1FBRTNCLElBQUcsT0FBTyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFBO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUE7U0FDakM7SUFFSCxDQUFDOytHQXZFVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixpRUNSekMsc29HQWtGQTs7NEZEMUVhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZpbHRlci1zZWxlY3Rpb24tZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItZGVtby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci1kZW1vLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyU2VsZWN0aW9uRGVtb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXG5cbiAgZGF0YV8xID0gW1xuICAgIHsgaWQ6IDExLCB2YWx1ZTogJ1RlbHVzJyB9LFxuICAgIHsgaWQ6IDEyLCB2YWx1ZTogJ0FUJlQnLCBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgIHsgaWQ6IDE0LCB2YWx1ZTogJ0JlbGwnLCBzZWxlY3RlZDogdHJ1ZX0sXG4gICAgeyBpZDogNjMsIHZhbHVlOiAnUm9nZXJzJywgc2VsZWN0ZWQ6IHRydWUgfVxuICAgXVxuXG4gICBkYXRhXzIgPSBbJ1RlbHVzJywgJ0FUJlQnLCAnQmVsbCcsICdSb2dlcnMnXVxuXG4gICAvLyAgU0VMRUNUSU9OU1xuICAgc2VsZWN0aW9uQ29udHJvbF8xID0gdGhpcy5mYi5jb250cm9sPHN0cmluZ1tdfG51bGw+KG51bGwpXG4gICBzZWxlY3Rpb25Db250cm9sXzIgPSB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nW118bnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZClcblxuICAgLy9DSEFOR0UgREVURUNUSU9OXG4gICBjaGFuZ2VEZXRlY3Rpb25fMSA9IHRoaXMuZmIuY29udHJvbChmYWxzZSlcbiAgIGNoYW5nZURldGVjdGlvbl8yID0gdGhpcy5mYi5jb250cm9sKGZhbHNlKVxuXG5cbiAgIGRhdGE6IGFueSA9IHRoaXMuZGF0YV8yXG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIC8vIFNFTEVDVElPTlNcbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xfMS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgaWYodGhpcy5jaGFuZ2VEZXRlY3Rpb25fMS52YWx1ZSkgY29uc29sZS5sb2coJ0NIQU5HRTonLGRhdGEpXG4gICAgfSlcblxuICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbF8yLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICBpZih0aGlzLmNoYW5nZURldGVjdGlvbl8yLnZhbHVlKSBjb25zb2xlLmxvZygnQ0hBTkdFOicsZGF0YSlcbiAgICB9KVxuXG4gIH1cblxuICBvblBlcmZvcm1QYXRjaCgpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xfMS5wYXRjaFZhbHVlKFsnQmVsbCddKVxuICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbF8yLnBhdGNoVmFsdWUoWydBVCZUJ10pXG4gIH1cblxuICBvbkNoYW5nZURhdGFUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGlmKHR5cGUgPT09ICdzdHJpbmdzJykge1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhXzIgLy9zdHJpbmdzXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YV8xIC8vb2JqZWN0c1xuICAgIH1cbiAgfVxuXG4gIC8vIERJU0FCTEVcbiAgb25EaXNhYmxlZF8xKGRpc2FibGU6IGJvb2xlYW4pIHtcblxuICAgIGlmKGRpc2FibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbF8xLmRpc2FibGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xfMS5lbmFibGUoKVxuICAgIH1cblxuICB9XG5cbiAgb25EaXNhYmxlZF8yKGRpc2FibGU6IGJvb2xlYW4pIHtcblxuICAgIGlmKGRpc2FibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbF8yLmRpc2FibGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xfMi5lbmFibGUoKVxuICAgIH1cblxuICB9XG5cbn1cbiIsIjxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICA8aDE+RmlsdGVyIFNlbGVjdGlvbiAoQXV0b2NvbXBsZXRlKSBGb3JtQ29udHJvbDwvaDE+XG4gIDxkaXYgc3R5bGU9XCJmbGV4OjE7IHRleHQtYWxpZ246IHJpZ2h0O1wiPlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDJyZW07IGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcIj5cbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAoY2xpY2spPVwib25QZXJmb3JtUGF0Y2goKVwiPlBhdGNoPC9tYXQtYnV0dG9uLXRvZ2dsZT5cblxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwICN2YXJUeXBlcz1cIm1hdEJ1dHRvblRvZ2dsZUdyb3VwXCIgKGNoYW5nZSk9XCJvbkNoYW5nZURhdGFUeXBlKHZhclR5cGVzLnZhbHVlKVwiPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJzdHJpbmdzXCIgY2hlY2tlZD1cInRydWVcIj5TdHJpbmdzPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwib2JqZWN0c1wiIGNoZWNrZWQ9XCJmYWxzZVwiPk9iamVjdHM8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGgzPk5vIERhdGEgLSBQcm9qZWN0aW9uIG9mIEVycm9yPC9oMz5cbjxhcHAtZmlsdGVyLXNlbGVjdGlvbi1pbnB1dCBlcnJvcj1cIk5vIERhdGEgUHJvdmlkZWRcIj5cbiAgPGgzIHN0eWxlPVwiY29sb3I6IHJlZDsgbWFyZ2luLXRvcDogMDsgbWFyZ2luLWJvdHRvbTogMDtcIj5ObyBEYXRhPC9oMz5cbjwvYXBwLWZpbHRlci1zZWxlY3Rpb24taW5wdXQ+XG5cbjxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtO1wiPlxuICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbjwvZGl2PlxuXG48ZGl2PlxuICA8aDMgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwO1wiPkF1dG9jb21wbGV0ZSAtIHt7IHZhclR5cGVzLnZhbHVlIHwgdXBwZXJjYXNlIH19PC9oMz5cbiAgPGRpdj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxzcGFuIHN0eWxlPVwiZmxleDoxXCI+PC9zcGFuPlxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzZWxlY3Rpb25Db250cm9sXzEucmVzZXQoKVwiPlJlc2V0PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1maWx0ZXItc2VsZWN0aW9uLWlucHV0XG4gICAgICBzdHlsZT1cImZsZXg6MVwiXG4gICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhbiBPcHRpb25cIlxuICAgICAgbGFiZWw9XCJDaG9pY2VzXCJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cInNlbGVjdGlvbkNvbnRyb2xfMVwiXG4gICAgPjwvYXBwLWZpbHRlci1zZWxlY3Rpb24taW5wdXQ+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMnJlbTsgbWFyZ2luLXRvcDogMXJlbTtcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFtmb3JtQ29udHJvbF09XCJjaGFuZ2VEZXRlY3Rpb25fMVwiPkNoYW5nZSBEZXRlY3Rpb248L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSAjZXJyb3IxPkRpc3BsYXkgRXJyb3I8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSAjZGlzYWJsZTEgKGNoYW5nZSk9XCJvbkRpc2FibGVkXzEoZGlzYWJsZTEuY2hlY2tlZClcIj5EaXNhYmxlPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPHNwYW4gc3R5bGU9XCJmbGV4OjFcIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW07XCI+XG4gICAgICBMYWJlbCBhbmQgUGxhY2Vob2xkZXI8YnI+XG4gICAgICBOb3QgUmVxdWlyZWQ8YnI+XG4gICAgICBWYWxpZCB7eyBzZWxlY3Rpb25Db250cm9sXzEudmFsaWQgfX08YnI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtO1wiPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgPHNwYW4gc3R5bGU9XCJmbGV4OjFcIj48L3NwYW4+XG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInNlbGVjdGlvbkNvbnRyb2xfMi5yZXNldCgpXCI+UmVzZXQ8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWZpbHRlci1zZWxlY3Rpb24taW5wdXRcbiAgICAgIHN0eWxlPVwiZmxleDoxXCJcbiAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cInNlbGVjdGlvbkNvbnRyb2xfMlwiXG4gICAgPjwvYXBwLWZpbHRlci1zZWxlY3Rpb24taW5wdXQ+XG4gICAgPGRpdiAqbmdJZj1cImVycm9yMi5jaGVja2VkXCI+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwic2VsZWN0aW9uQ29udHJvbF8yLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+VGhpcyBmaWVsZCBpcyBSZXF1aXJlZDwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDJyZW07IG1hcmdpbi10b3A6IDFyZW07XCI+XG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbZm9ybUNvbnRyb2xdPVwiY2hhbmdlRGV0ZWN0aW9uXzJcIj5DaGFuZ2UgRGV0ZWN0aW9uPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGUgI2Vycm9yMj5EaXNwbGF5IEVycm9yPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGUgI2Rpc2FibGUyIChjaGFuZ2UpPVwib25EaXNhYmxlZF8xKGRpc2FibGUyLmNoZWNrZWQpXCI+RGlzYWJsZTwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgIDxzcGFuIHN0eWxlPVwiZmxleDoxXCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtO1wiPlxuICAgICAgTm8gTGFiZWwgb3IgUGxhY2Vob2xkZXI8YnI+XG4gICAgICBSZXF1aXJlZDxicj5cbiAgICAgIFZhbGlkIHt7IHNlbGVjdGlvbkNvbnRyb2xfMi52YWxpZCB9fTxicj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiJdfQ==
@@ -0,0 +1,181 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, forwardRef, inject } from '@angular/core';
2
+ import { FormBuilder, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
3
+ import { startWith, map, of } from 'rxjs';
4
+ import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
5
+ import { SelectionItem } from '../models/selection-item.model';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/material/icon";
10
+ import * as i4 from "@angular/material/form-field";
11
+ import * as i5 from "@angular/material/input";
12
+ import * as i6 from "@angular/material/autocomplete";
13
+ import * as i7 from "@angular/material/core";
14
+ export class FilterSelectionInputComponent {
15
+ set data(value) {
16
+ value = (value) ? value : [];
17
+ this.isObjects = this.hasObjects(value);
18
+ this._data = (value) ? value.map(item => SelectionItem.adapt(item)) : [];
19
+ const selectedObjects = value.filter(item => item.selected).map(item => item.value);
20
+ this.defaultDisabled = (!this.defaultDisabled) ? value.map(item => SelectionItem.adapt(item)).filter(item => item.disabled) : this.defaultDisabled;
21
+ const selected = this.findFirst(selectedObjects);
22
+ this.selectionControl.patchValue(selected, { emitEvent: false });
23
+ }
24
+ get data() {
25
+ return this._data;
26
+ }
27
+ constructor() {
28
+ this.fb = inject(FormBuilder);
29
+ this.selected = new EventEmitter();
30
+ this.isObjects = false;
31
+ this.defaultDisabled = [];
32
+ this.formInitialized = false;
33
+ this.panelOpened = false;
34
+ this.disabled = false;
35
+ this._data = [];
36
+ this.isArray = (obj) => Array.isArray(obj);
37
+ this.hasObjects = (obj) => (this.isArray(obj) && obj.length > 0) ? this.isObject(obj[0]) : false;
38
+ this.isObject = (obj) => typeof obj === 'object' && obj !== null && !Array.isArray(obj);
39
+ this.isEmpty = (obj) => (!obj) ? false : (Object.keys(obj).length === 0);
40
+ this.findFirst = (obj) => {
41
+ const found = this.data.find(item => obj.includes(item.value));
42
+ return (found) ? found.value : null;
43
+ };
44
+ this.firstElement = (arr) => (arr.length > 0) ? arr[0] : '';
45
+ this.isSelected = (value) => {
46
+ const compareTo = this.selectedOption instanceof (SelectionItem) ? this.selectedOption.value : this.selectedOption;
47
+ return value === compareTo;
48
+ };
49
+ this.selectionControl = this.fb.control(null, Validators.required);
50
+ this.appearance = 'outline';
51
+ this.label = '';
52
+ this.placeholder = '';
53
+ this.forceSelection = true; // TODO
54
+ this.filteredOptions = of([]);
55
+ this.isDisabled = (selection) => {
56
+ const foundDisabled = this.findSelection(selection);
57
+ return (foundDisabled?.disabled) ? true : false;
58
+ };
59
+ this.onChange = () => { };
60
+ this.onTouch = () => { };
61
+ }
62
+ ngOnInit() {
63
+ this.filteredOptions = this.selectionControl.valueChanges
64
+ .pipe(startWith(''), map(value => this._filter(value || '')));
65
+ }
66
+ ngAfterViewInit() {
67
+ this.formInitialized = true;
68
+ }
69
+ writeValue(value) {
70
+ const option = (this.isArray(value)) ? this.firstElement(value) : value;
71
+ this.selectedOption = option instanceof (SelectionItem) ? option.value : option;
72
+ this.selectionControl.patchValue(this.selectedOption);
73
+ this.formInitialized = true;
74
+ }
75
+ validate(control) {
76
+ const isRequired = control.hasValidator(Validators.required) ? true : false;
77
+ if (!isRequired)
78
+ this.selectionControl.clearValidators();
79
+ return (isRequired) ? (this.selectionControl.valid) ? null : { 'required': true } : null;
80
+ }
81
+ registerOnChange(fn) {
82
+ this.onChange = fn;
83
+ }
84
+ registerOnTouched(fn) {
85
+ this.onTouch = fn;
86
+ }
87
+ setDisabledState(isDisabled) {
88
+ this.disabled = isDisabled;
89
+ if (this.disabled) {
90
+ this.selectionControl.disable();
91
+ }
92
+ else {
93
+ this.selectionControl.enable();
94
+ }
95
+ }
96
+ onOpened() {
97
+ if (this.panelOpened)
98
+ this.selectionControl.patchValue(null);
99
+ this.panelOpened = true;
100
+ this.selectionControl.patchValue(null);
101
+ }
102
+ onClosed() {
103
+ this.panelOpened = false;
104
+ const selectedValue = this.selectedOption instanceof (SelectionItem) ? this.selectedOption.value : this.selectedOption;
105
+ this.selectionControl.patchValue(selectedValue);
106
+ }
107
+ onSelected(value) {
108
+ this.onEnteredValue(value.option.value);
109
+ }
110
+ onEnteredValue(value) {
111
+ const foundIndex = this.data.findIndex(item => item.value.toLowerCase().includes(value.toLowerCase()));
112
+ const found = (foundIndex >= 0) ? this.data[foundIndex] : value;
113
+ const selected = (foundIndex >= 0 && this.forceSelection) ? found : { id: 0, value: found };
114
+ this.selectedOption = selected instanceof (SelectionItem) ? selected.value : selected;
115
+ if (this.forceSelection && foundIndex === -1) {
116
+ this.selectionControl.patchValue(null);
117
+ }
118
+ else {
119
+ this.selectionControl.patchValue(selected.value);
120
+ }
121
+ const dataValue = this.findSelection(this.selectedOption);
122
+ const selectedValue = (this.isObjects) ? dataValue : dataValue.value;
123
+ this.onChange(selectedValue);
124
+ this.selected.next(selectedValue);
125
+ if (this.panelOpened)
126
+ this.autoCompleteInput?.closePanel();
127
+ this.panelOpened = false;
128
+ }
129
+ findSelection(selection) {
130
+ return this.data.find(item => item.value === selection);
131
+ }
132
+ _filter(value) {
133
+ const filterValue = value.toLowerCase();
134
+ return (this.data) ? this.data.filter(option => option.value.toLowerCase().includes(filterValue)).map(item => item.value) : [];
135
+ }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterSelectionInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterSelectionInputComponent, selector: "app-filter-selection-input", inputs: { data: "data", appearance: "appearance", label: "label", placeholder: "placeholder", forceSelection: "forceSelection" }, outputs: { selected: "selected" }, providers: [
138
+ {
139
+ provide: NG_VALUE_ACCESSOR,
140
+ useExisting: forwardRef(() => FilterSelectionInputComponent),
141
+ multi: true
142
+ },
143
+ {
144
+ provide: NG_VALIDATORS,
145
+ useExisting: forwardRef(() => FilterSelectionInputComponent),
146
+ multi: true
147
+ }
148
+ ], viewQueries: [{ propertyName: "autoCompleteInput", first: true, predicate: ["autoCompleteInput"], descendants: true, read: MatAutocompleteTrigger }], ngImport: i0, template: "<div *ngIf=\"data\" style=\"display: flex;\">\n <mat-form-field style=\"flex:1\" [appearance]=\"appearance\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input\n matInput\n #autoCompleteInput\n type=\"text\"\n [placeholder]=\"(panelOpened) ? selectedOption : placeholder\"\n [formControl]=\"selectionControl\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"onEnteredValue(autoCompleteInput.value)\"\n >\n <mat-autocomplete #auto=\"matAutocomplete\" (opened)=\"onOpened()\" (closed)=\"onClosed()\" (optionSelected)=\"onSelected($event)\">\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n [disabled]=\"isDisabled(option)\"\n >\n <div style=\"display: flex;\" *ngIf=\"isSelected(option); else NOT_SELECTED\">\n <span style=\"flex:1; font-weight: 400; color: #673ab7;\">{{option}}</span>\n <mat-icon color=\"primary\">check</mat-icon>\n </div>\n <ng-template #NOT_SELECTED>\n {{option}}\n </ng-template>\n\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n</div>\n\n\n\n", styles: [".mdc-list-item__primary-text{margin:0;flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
149
+ }
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterSelectionInputComponent, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'app-filter-selection-input', providers: [
153
+ {
154
+ provide: NG_VALUE_ACCESSOR,
155
+ useExisting: forwardRef(() => FilterSelectionInputComponent),
156
+ multi: true
157
+ },
158
+ {
159
+ provide: NG_VALIDATORS,
160
+ useExisting: forwardRef(() => FilterSelectionInputComponent),
161
+ multi: true
162
+ }
163
+ ], encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"data\" style=\"display: flex;\">\n <mat-form-field style=\"flex:1\" [appearance]=\"appearance\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input\n matInput\n #autoCompleteInput\n type=\"text\"\n [placeholder]=\"(panelOpened) ? selectedOption : placeholder\"\n [formControl]=\"selectionControl\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"onEnteredValue(autoCompleteInput.value)\"\n >\n <mat-autocomplete #auto=\"matAutocomplete\" (opened)=\"onOpened()\" (closed)=\"onClosed()\" (optionSelected)=\"onSelected($event)\">\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n [disabled]=\"isDisabled(option)\"\n >\n <div style=\"display: flex;\" *ngIf=\"isSelected(option); else NOT_SELECTED\">\n <span style=\"flex:1; font-weight: 400; color: #673ab7;\">{{option}}</span>\n <mat-icon color=\"primary\">check</mat-icon>\n </div>\n <ng-template #NOT_SELECTED>\n {{option}}\n </ng-template>\n\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n</div>\n\n\n\n", styles: [".mdc-list-item__primary-text{margin:0;flex:1}\n"] }]
164
+ }], ctorParameters: function () { return []; }, propDecorators: { autoCompleteInput: [{
165
+ type: ViewChild,
166
+ args: ['autoCompleteInput', { read: MatAutocompleteTrigger, static: false }]
167
+ }], selected: [{
168
+ type: Output,
169
+ args: ['selected']
170
+ }], data: [{
171
+ type: Input
172
+ }], appearance: [{
173
+ type: Input
174
+ }], label: [{
175
+ type: Input
176
+ }], placeholder: [{
177
+ type: Input
178
+ }], forceSelection: [{
179
+ type: Input
180
+ }] } });
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdGlvbi1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9maWx0ZXItc2VsZWN0aW9uLWlucHV0L3NyYy9saWIvZmlsdGVyLXNlbGVjdGlvbi1pbnB1dC9maWx0ZXItc2VsZWN0aW9uLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZpbHRlci1zZWxlY3Rpb24taW5wdXQvc3JjL2xpYi9maWx0ZXItc2VsZWN0aW9uLWlucHV0L2ZpbHRlci1zZWxlY3Rpb24taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQXlDLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BKLE9BQU8sRUFBYyxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RCxPQUFPLEVBQWdDLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7QUFvQi9ELE1BQU0sT0FBTyw2QkFBNkI7SUFpQnhDLElBQWEsSUFBSSxDQUFDLEtBQTJCO1FBRTNDLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUU1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLEtBQUss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QUNGLDZIQUt1QyxzQkFBc0IsNkJDNUJoRSxpcENBaUNBOzs0RkRQYSw2QkFBNkI7a0JBbEJ6QyxTQUFTOytCQUNFLDRCQUE0QixhQUczQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzs0QkFDNUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDhCQUE4QixDQUFDOzRCQUM1RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJOzBFQUk0QyxpQkFBaUI7c0JBQWpHLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJM0QsUUFBUTtzQkFBM0IsTUFBTTt1QkFBQyxVQUFVO2dCQVdMLElBQUk7c0JBQWhCLEtBQUs7Z0JBc0NHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcblxuaW1wb3J0IHsgU2VsZWN0aW9uSXRlbSB9IGZyb20gJy4uL21vZGVscy9zZWxlY3Rpb24taXRlbS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWx0ZXItc2VsZWN0aW9uLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1zZWxlY3Rpb24taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItc2VsZWN0aW9uLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWx0ZXJTZWxlY3Rpb25JbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbHRlclNlbGVjdGlvbklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclNlbGVjdGlvbklucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlSW5wdXQnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHN0YXRpYzogZmFsc2UgfSkgYXV0b0NvbXBsZXRlSW5wdXQ/OiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xuXG4gIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKVxuXG4gIEBPdXRwdXQoJ3NlbGVjdGVkJykgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkl0ZW18YW55PigpXG5cbiAgaXNPYmplY3RzID0gZmFsc2VcbiAgZGVmYXVsdERpc2FibGVkOiBTZWxlY3Rpb25JdGVtW10gPSBbXVxuICBmb3JtSW5pdGlhbGl6ZWQgPSBmYWxzZVxuXG4gIHBhbmVsT3BlbmVkID0gZmFsc2VcblxuICBkaXNhYmxlZCA9IGZhbHNlXG5cbiAgcHJpdmF0ZSBfZGF0YTogKGFueXxzdHJpbmcpW10gPSBbXVxuICBASW5wdXQoKSBzZXQgZGF0YSh2YWx1ZTogYW55W118dW5kZWZpbmVkfG51bGwpIHtcblxuICAgIHZhbHVlID0gKHZhbHVlKSA/IHZhbHVlIDogW11cblxuICAgIHRoaXMuaXNPYmplY3RzID0gdGhpcy5oYXNPYmplY3RzKHZhbHVlKVxuICAgIHRoaXMuX2RhdGEgPSAodmFsdWUpID8gdmFsdWUubWFwKGl0ZW0gPT4gU2VsZWN0aW9uSXRlbS5hZGFwdChpdGVtKSkgOiBbXVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRPYmplY3RzID0gdmFsdWUuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCkubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSlcbiAgICB0aGlzLmRlZmF1bHREaXNhYmxlZCA9ICghdGhpcy5kZWZhdWx0RGlzYWJsZWQpID8gdmFsdWUubWFwKGl0ZW0gPT4gU2VsZWN0aW9uSXRlbS5hZGFwdChpdGVtKSkuZmlsdGVyKGl0ZW0gPT4gaXRlbS5kaXNhYmxlZCkgOiB0aGlzLmRlZmF1bHREaXNhYmxlZFxuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmZpbmRGaXJzdChzZWxlY3RlZE9iamVjdHMpXG4gICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLnBhdGNoVmFsdWUoc2VsZWN0ZWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxuXG4gIH1cblxuICBnZXQgZGF0YSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFcbiAgfVxuXG4gIGlzQXJyYXkgPSAob2JqOiBhbnkpID0+IEFycmF5LmlzQXJyYXkob2JqKVxuICBoYXNPYmplY3RzID0gKG9iajogYW55KSA9PiAodGhpcy5pc0FycmF5KG9iaikgJiYgb2JqLmxlbmd0aCA+IDApID8gdGhpcy5pc09iamVjdChvYmpbMF0pIDogZmFsc2VcbiAgaXNPYmplY3QgPSAob2JqOiBhbnkpID0+IHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShvYmopXG4gIGlzRW1wdHkgPSAob2JqOiBhbnkpID0+ICghb2JqKSA/IGZhbHNlIDogKE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwKVxuXG4gIGZpbmRGaXJzdCA9IChvYmo6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLmRhdGEuZmluZChpdGVtID0+IG9iai5pbmNsdWRlcyhpdGVtLnZhbHVlKSlcbiAgICByZXR1cm4gKGZvdW5kKSA/IGZvdW5kLnZhbHVlIDogbnVsbFxuICB9XG5cbiAgZmlyc3RFbGVtZW50ID0gKGFycjogc3RyaW5nW10pID0+IChhcnIubGVuZ3RoID4gMCkgPyBhcnJbMF0gOiAnJ1xuXG4gIGlzU2VsZWN0ZWQgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgIGNvbnN0IGNvbXBhcmVUbyA9ICB0aGlzLnNlbGVjdGVkT3B0aW9uIGluc3RhbmNlb2YoU2VsZWN0aW9uSXRlbSkgPyB0aGlzLnNlbGVjdGVkT3B0aW9uLnZhbHVlIDogdGhpcy5zZWxlY3RlZE9wdGlvblxuICAgIHJldHVybiB2YWx1ZSA9PT0gY29tcGFyZVRvXG4gIH1cblxuICBzZWxlY3Rpb25Db250cm9sID0gdGhpcy5mYi5jb250cm9sPHN0cmluZ3x1bmRlZmluZWR8bnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZClcblxuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlID0gJ291dGxpbmUnXG5cbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmd8bnVsbHx1bmRlZmluZWQgPSAnJ1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nICA9ICcnXG5cbiAgQElucHV0KCkgZm9yY2VTZWxlY3Rpb24gPSB0cnVlIC8vIFRPRE9cblxuICBmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8c3RyaW5nW118YW55PiA9IG9mKFtdKVxuXG4gIHNlbGVjdGVkT3B0aW9uPzogc3RyaW5nfGFueVxuXG4gIGlzRGlzYWJsZWQgPSAoc2VsZWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmb3VuZERpc2FibGVkID0gdGhpcy5maW5kU2VsZWN0aW9uKHNlbGVjdGlvbilcbiAgICByZXR1cm4oZm91bmREaXNhYmxlZD8uZGlzYWJsZWQpID8gdHJ1ZSA6IGZhbHNlXG4gIH1cblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge31cbiAgb25Ub3VjaDogYW55ID0gKCkgPT4ge31cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgLnBpcGUoXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuX2ZpbHRlcih2YWx1ZSB8fCAnJykpLFxuICAgIClcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUluaXRpYWxpemVkID0gdHJ1ZVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KXtcblxuICAgIGNvbnN0IG9wdGlvbiA9ICh0aGlzLmlzQXJyYXkodmFsdWUpKSA/IHRoaXMuZmlyc3RFbGVtZW50KHZhbHVlKSA6IHZhbHVlXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbiBpbnN0YW5jZW9mKFNlbGVjdGlvbkl0ZW0pID8gb3B0aW9uLnZhbHVlIDogb3B0aW9uXG5cbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnNlbGVjdGVkT3B0aW9uKVxuXG4gICAgdGhpcy5mb3JtSW5pdGlhbGl6ZWQgPSB0cnVlXG5cbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcblxuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/IHRydWUgOiBmYWxzZVxuXG4gICAgaWYoIWlzUmVxdWlyZWQpIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKVxuICAgIHJldHVybiAoaXNSZXF1aXJlZCkgPyAodGhpcy5zZWxlY3Rpb25Db250cm9sLnZhbGlkKSA/IG51bGwgOiB7ICdyZXF1aXJlZCc6IHRydWUgfSA6IG51bGxcblxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KXtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm5cbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpe1xuICAgIHRoaXMub25Ub3VjaCA9IGZuXG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKSB7XG5cbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuXG4gICAgaWYodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLmRpc2FibGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuZW5hYmxlKClcbiAgICB9XG5cbiAgfVxuXG4gIG9uT3BlbmVkKCkge1xuICAgIGlmKHRoaXMucGFuZWxPcGVuZWQpIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5wYXRjaFZhbHVlKG51bGwpXG4gICAgdGhpcy5wYW5lbE9wZW5lZCA9IHRydWVcbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKVxuICB9XG5cbiAgb25DbG9zZWQoKSB7XG4gICAgdGhpcy5wYW5lbE9wZW5lZCA9IGZhbHNlXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRPcHRpb24gaW5zdGFuY2VvZihTZWxlY3Rpb25JdGVtKSA/IHRoaXMuc2VsZWN0ZWRPcHRpb24udmFsdWUgOiB0aGlzLnNlbGVjdGVkT3B0aW9uXG4gICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLnBhdGNoVmFsdWUoc2VsZWN0ZWRWYWx1ZSlcbiAgfVxuXG4gIG9uU2VsZWN0ZWQodmFsdWU6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICB0aGlzLm9uRW50ZXJlZFZhbHVlKHZhbHVlLm9wdGlvbi52YWx1ZSlcbiAgfVxuXG4gIG9uRW50ZXJlZFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IGZvdW5kSW5kZXggPSB0aGlzLmRhdGEuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpKVxuICAgIGNvbnN0IGZvdW5kID0gKGZvdW5kSW5kZXggPj0gMCkgPyB0aGlzLmRhdGFbZm91bmRJbmRleF0gOiB2YWx1ZVxuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSAoZm91bmRJbmRleCA+PSAwICYmIHRoaXMuZm9yY2VTZWxlY3Rpb24pID8gZm91bmQgOiB7IGlkOiAwLCB2YWx1ZTogZm91bmQgfVxuXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHNlbGVjdGVkIGluc3RhbmNlb2YoU2VsZWN0aW9uSXRlbSkgPyBzZWxlY3RlZC52YWx1ZSA6IHNlbGVjdGVkXG5cbiAgICBpZih0aGlzLmZvcmNlU2VsZWN0aW9uICYmIGZvdW5kSW5kZXggPT09IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZShzZWxlY3RlZC52YWx1ZSlcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhVmFsdWUgPSB0aGlzLmZpbmRTZWxlY3Rpb24odGhpcy5zZWxlY3RlZE9wdGlvbilcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gKHRoaXMuaXNPYmplY3RzKSA/IGRhdGFWYWx1ZSA6IGRhdGFWYWx1ZS52YWx1ZVxuXG4gICAgdGhpcy5vbkNoYW5nZShzZWxlY3RlZFZhbHVlKVxuICAgIHRoaXMuc2VsZWN0ZWQubmV4dChzZWxlY3RlZFZhbHVlKVxuXG4gICAgaWYodGhpcy5wYW5lbE9wZW5lZCkgdGhpcy5hdXRvQ29tcGxldGVJbnB1dD8uY2xvc2VQYW5lbCgpXG4gICAgdGhpcy5wYW5lbE9wZW5lZCA9IGZhbHNlXG5cbiAgfVxuXG4gIGZpbmRTZWxlY3Rpb24oc2VsZWN0aW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnZhbHVlID09PSBzZWxlY3Rpb24pXG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gKHRoaXMuZGF0YSkgPyB0aGlzLmRhdGEuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpIDogW11cbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGF0YVwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwiZmxleDoxXCIgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWx9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgICNhdXRvQ29tcGxldGVJbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIihwYW5lbE9wZW5lZCkgPyBzZWxlY3RlZE9wdGlvbiA6IHBsYWNlaG9sZGVyXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3Rpb25Db250cm9sXCJcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwib25FbnRlcmVkVmFsdWUoYXV0b0NvbXBsZXRlSW5wdXQudmFsdWUpXCJcbiAgICA+XG4gICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3BlbmVkKT1cIm9uT3BlbmVkKClcIiAoY2xvc2VkKT1cIm9uQ2xvc2VkKClcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucyB8IGFzeW5jXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKG9wdGlvbilcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIiAqbmdJZj1cImlzU2VsZWN0ZWQob3B0aW9uKTsgZWxzZSBOT1RfU0VMRUNURURcIj5cbiAgICAgICAgICA8c3BhbiBzdHlsZT1cImZsZXg6MTsgZm9udC13ZWlnaHQ6IDQwMDsgY29sb3I6ICM2NzNhYjc7XCI+e3tvcHRpb259fTwvc3Bhbj5cbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+Y2hlY2s8L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNOT1RfU0VMRUNURUQ+XG4gICAgICAgICAge3tvcHRpb259fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG5cblxuXG4iXX0=
@@ -0,0 +1,97 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatSliderModule } from '@angular/material/slider';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { MatFormFieldModule } from '@angular/material/form-field';
8
+ import { MatMenuModule } from '@angular/material/menu';
9
+ import { MatRadioModule } from '@angular/material/radio';
10
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
11
+ import { MatCheckboxModule } from '@angular/material/checkbox';
12
+ import { MatInputModule } from '@angular/material/input';
13
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
14
+ import { MatDividerModule } from '@angular/material/divider';
15
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
16
+ import { MatToolbarModule } from '@angular/material/toolbar';
17
+ import { MatOptionModule } from '@angular/material/core';
18
+ import { MatSelectModule } from '@angular/material/select';
19
+ import { FilterSelectionDemoComponent, FilterSelectionInputComponent, RemoveUnderscorePipe } from '../public-api';
20
+ import * as i0 from "@angular/core";
21
+ export class FilterSelectionInputModule {
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterSelectionInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FilterSelectionInputModule, declarations: [FilterSelectionDemoComponent,
24
+ FilterSelectionInputComponent], imports: [CommonModule,
25
+ FormsModule,
26
+ ReactiveFormsModule,
27
+ MatSliderModule,
28
+ MatButtonModule,
29
+ MatIconModule,
30
+ MatFormFieldModule,
31
+ MatToolbarModule,
32
+ MatCheckboxModule,
33
+ MatMenuModule,
34
+ MatButtonToggleModule,
35
+ MatDividerModule,
36
+ MatRadioModule,
37
+ MatInputModule,
38
+ MatAutocompleteModule,
39
+ RemoveUnderscorePipe,
40
+ MatSelectModule,
41
+ MatOptionModule,
42
+ MatSlideToggleModule], exports: [FilterSelectionDemoComponent,
43
+ FilterSelectionInputComponent] }); }
44
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterSelectionInputModule, imports: [CommonModule,
45
+ FormsModule,
46
+ ReactiveFormsModule,
47
+ MatSliderModule,
48
+ MatButtonModule,
49
+ MatIconModule,
50
+ MatFormFieldModule,
51
+ MatToolbarModule,
52
+ MatCheckboxModule,
53
+ MatMenuModule,
54
+ MatButtonToggleModule,
55
+ MatDividerModule,
56
+ MatRadioModule,
57
+ MatInputModule,
58
+ MatAutocompleteModule,
59
+ MatSelectModule,
60
+ MatOptionModule,
61
+ MatSlideToggleModule] }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterSelectionInputModule, decorators: [{
64
+ type: NgModule,
65
+ args: [{
66
+ imports: [
67
+ CommonModule,
68
+ FormsModule,
69
+ ReactiveFormsModule,
70
+ MatSliderModule,
71
+ MatButtonModule,
72
+ MatIconModule,
73
+ MatFormFieldModule,
74
+ MatToolbarModule,
75
+ MatCheckboxModule,
76
+ MatMenuModule,
77
+ MatButtonToggleModule,
78
+ MatDividerModule,
79
+ MatRadioModule,
80
+ MatInputModule,
81
+ MatAutocompleteModule,
82
+ RemoveUnderscorePipe,
83
+ MatSelectModule,
84
+ MatOptionModule,
85
+ MatSlideToggleModule,
86
+ ],
87
+ declarations: [
88
+ FilterSelectionDemoComponent,
89
+ FilterSelectionInputComponent,
90
+ ],
91
+ exports: [
92
+ FilterSelectionDemoComponent,
93
+ FilterSelectionInputComponent,
94
+ ]
95
+ }]
96
+ }] });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdGlvbi1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9maWx0ZXItc2VsZWN0aW9uLWlucHV0L3NyYy9saWIvZmlsdGVyLXNlbGVjdGlvbi1pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDZCQUE2QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWtDbEgsTUFBTSxPQUFPLDBCQUEwQjsrR0FBMUIsMEJBQTBCO2dIQUExQiwwQkFBMEIsaUJBUm5DLDRCQUE0QjtZQUM1Qiw2QkFBNkIsYUF0QjdCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixlQUFlO1lBQ2YsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixxQkFBcUI7WUFDckIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsZUFBZTtZQUNmLG9CQUFvQixhQU9wQiw0QkFBNEI7WUFDNUIsNkJBQTZCO2dIQUdwQiwwQkFBMEIsWUE3Qm5DLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixlQUFlO1lBQ2YsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixxQkFBcUI7WUFDckIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxjQUFjO1lBQ2QscUJBQXFCO1lBRXJCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysb0JBQW9COzs0RkFXWCwwQkFBMEI7a0JBL0J0QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixvQkFBb0I7cUJBQ3JCO29CQUNELFlBQVksRUFBRTt3QkFDWiw0QkFBNEI7d0JBQzVCLDZCQUE2QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsNkJBQTZCO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcblxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbmltcG9ydCB7IEZpbHRlclNlbGVjdGlvbkRlbW9Db21wb25lbnQsIEZpbHRlclNlbGVjdGlvbklucHV0Q29tcG9uZW50LCBSZW1vdmVVbmRlcnNjb3JlUGlwZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRTbGlkZXJNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdFRvb2xiYXJNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgUmVtb3ZlVW5kZXJzY29yZVBpcGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRmlsdGVyU2VsZWN0aW9uRGVtb0NvbXBvbmVudCxcbiAgICBGaWx0ZXJTZWxlY3Rpb25JbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEZpbHRlclNlbGVjdGlvbkRlbW9Db21wb25lbnQsXG4gICAgRmlsdGVyU2VsZWN0aW9uSW5wdXRDb21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyU2VsZWN0aW9uSW5wdXRNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Public API Surface of selections
3
+ */
4
+ export * from './selection-basic.model';
5
+ export * from './selection-item.model';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9maWx0ZXItc2VsZWN0aW9uLWlucHV0L3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzZWxlY3Rpb25zXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tYmFzaWMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24taXRlbS5tb2RlbCc7XG5cblxuIl19
@@ -0,0 +1,10 @@
1
+ export class SelectionBasic {
2
+ constructor(id = 0, value = '') {
3
+ this.id = id;
4
+ this.value = value;
5
+ }
6
+ static adapt(item) {
7
+ return new SelectionBasic(item?.id, (item?.value) ? item.value : item);
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJhc2ljLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmlsdGVyLXNlbGVjdGlvbi1pbnB1dC9zcmMvbGliL21vZGVscy9zZWxlY3Rpb24tYmFzaWMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFDUyxLQUFLLENBQUMsRUFDTixRQUFRLEVBQUU7UUFEVixPQUFFLEdBQUYsRUFBRSxDQUFJO1FBQ04sVUFBSyxHQUFMLEtBQUssQ0FBSztJQUNoQixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE9BQU8sSUFBSSxjQUFjLENBQ3ZCLElBQUksRUFBRSxFQUFFLEVBQ1IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbEMsQ0FBQztJQUNKLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uQmFzaWNJbnRlcmZhY2Uge1xuICBpZDogbnVtYmVyfHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkJhc2ljIGltcGxlbWVudHMgU2VsZWN0aW9uQmFzaWNJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZCA9IDAsXG4gICAgcHVibGljIHZhbHVlID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSkge1xuXG4gICAgcmV0dXJuIG5ldyBTZWxlY3Rpb25CYXNpYyhcbiAgICAgIGl0ZW0/LmlkLFxuICAgICAgKGl0ZW0/LnZhbHVlKSA/IGl0ZW0udmFsdWUgOiBpdGVtLFxuICAgICk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,12 @@
1
+ export class SelectionItem {
2
+ constructor(id = crypto.randomUUID(), value = '', disabled, selected) {
3
+ this.id = id;
4
+ this.value = value;
5
+ this.disabled = disabled;
6
+ this.selected = selected;
7
+ }
8
+ static adapt(item) {
9
+ return new SelectionItem(item?.id, (item?.value) ? item.value : item, (item?.disabled) ? true : false, (item?.selected) ? true : false);
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9maWx0ZXItc2VsZWN0aW9uLWlucHV0L3NyYy9saWIvbW9kZWxzL3NlbGVjdGlvbi1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQ1MsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQ3hCLFFBQVEsRUFBRSxFQUNWLFFBQWtCLEVBQ2xCLFFBQWtCO1FBSGxCLE9BQUUsR0FBRixFQUFFLENBQXNCO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQUs7UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDeEIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksYUFBYSxDQUN0QixJQUFJLEVBQUUsRUFBRSxFQUNSLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ2pDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFDL0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25JdGVtSW50ZXJmYWNlIHtcbiAgaWQ6IG51bWJlcnxzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uSXRlbSBpbXBsZW1lbnRzIFNlbGVjdGlvbkl0ZW1JbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZCA9IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgcHVibGljIHZhbHVlID0gJycsXG4gICAgcHVibGljIGRpc2FibGVkPzogYm9vbGVhbixcbiAgICBwdWJsaWMgc2VsZWN0ZWQ/OiBib29sZWFuLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpIHtcblxuICAgIHJldHVybiBuZXcgU2VsZWN0aW9uSXRlbShcbiAgICAgIGl0ZW0/LmlkLFxuICAgICAgKGl0ZW0/LnZhbHVlKSA/IGl0ZW0udmFsdWUgOiBpdGVtLFxuICAgICAgKGl0ZW0/LmRpc2FibGVkKSA/IHRydWUgOiBmYWxzZSxcbiAgICAgIChpdGVtPy5zZWxlY3RlZCkgPyB0cnVlIDogZmFsc2UsXG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RemoveUnderscorePipe {
4
+ transform(value) {
5
+ return value ? value.replace(/_/g, " ") : value;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, isStandalone: true, name: "removeUnderscore" }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RemoveUnderscorePipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: 'removeUnderscore',
14
+ standalone: true
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLXVuZGVyc2NvcmUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZpbHRlci1zZWxlY3Rpb24taW5wdXQvc3JjL2xpYi9waXBlcy9yZW1vdmUtdW5kZXJzY29yZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sS0FBSyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pELENBQUM7K0dBSFUsb0JBQW9COzZHQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGtCQUFrQjtvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdyZW1vdmVVbmRlcnNjb3JlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBSZW1vdmVVbmRlcnNjb3JlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlPyB2YWx1ZS5yZXBsYWNlKC9fL2csIFwiIFwiKSA6IHZhbHVlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Public API Surface of checkbox-selection-input
3
+ */
4
+ export * from './lib/models/index';
5
+ export * from './lib/pipes/remove-underscore.pipe';
6
+ export * from './lib/filter-demo/filter-demo.component';
7
+ export * from './lib/filter-selection-input/filter-selection-input.component';
8
+ export * from './lib/filter-selection-input.module';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2ZpbHRlci1zZWxlY3Rpb24taW5wdXQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxjQUFjLCtEQUErRCxDQUFDO0FBRTlFLGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNoZWNrYm94LXNlbGVjdGlvbi1pbnB1dFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pbmRleCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3JlbW92ZS11bmRlcnNjb3JlLnBpcGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXItZGVtby9maWx0ZXItZGVtby5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXItc2VsZWN0aW9uLWlucHV0L2ZpbHRlci1zZWxlY3Rpb24taW5wdXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsdGVyLXNlbGVjdGlvbi1pbnB1dC5tb2R1bGUnO1xuIl19