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 +24 -0
- package/esm2022/filter-selection-input.mjs +5 -0
- package/esm2022/lib/filter-demo/filter-demo.component.mjs +77 -0
- package/esm2022/lib/filter-selection-input/filter-selection-input.component.mjs +181 -0
- package/esm2022/lib/filter-selection-input.module.mjs +97 -0
- package/esm2022/lib/models/index.mjs +6 -0
- package/esm2022/lib/models/selection-basic.model.mjs +10 -0
- package/esm2022/lib/models/selection-item.model.mjs +12 -0
- package/esm2022/lib/pipes/remove-underscore.pipe.mjs +17 -0
- package/esm2022/public-api.mjs +9 -0
- package/fesm2022/filter-selection-input.mjs +394 -0
- package/fesm2022/filter-selection-input.mjs.map +1 -0
- package/filter-selection-input-15.0.4.tgz +0 -0
- package/index.d.ts +5 -0
- package/lib/filter-demo/filter-demo.component.d.ts +36 -0
- package/lib/filter-selection-input/filter-selection-input.component.d.ts +53 -0
- package/lib/filter-selection-input.module.d.ts +26 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/selection-basic.model.d.ts +10 -0
- package/lib/models/selection-item.model.d.ts +14 -0
- package/lib/pipes/remove-underscore.pipe.d.ts +7 -0
- package/package.json +25 -0
- package/public-api.d.ts +5 -0
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
|