@enigmatry/entry-components 1.2.84 → 1.14.6
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/dialog/README.md +2 -2
- package/esm2020/search-filter/entry-search-filter.component.mjs +6 -6
- package/esm2020/search-filter/entry-search-filter.module.mjs +6 -6
- package/esm2020/search-filter/public-api.mjs +5 -3
- package/esm2020/search-filter/search-filter-config.model.mjs +2 -1
- package/esm2020/search-filter/search-filter-input/control-type.model.mjs +5 -0
- package/esm2020/search-filter/search-filter-input/inputs/select-filter-option.model.mjs +12 -0
- package/esm2020/search-filter/search-filter-input/inputs/select-search-filter.model.mjs +23 -0
- package/esm2020/search-filter/search-filter-input/inputs/text-search-filter.model.mjs +12 -0
- package/esm2020/search-filter/search-filter-input/search-filter-base.model.mjs +25 -0
- package/esm2020/search-filter/search-filter-input/search-filter-input.component.mjs +31 -0
- package/esm2020/search-filter/search-filter-params.type.mjs +2 -0
- package/fesm2015/enigmatry-entry-components-search-filter.mjs +73 -18
- package/fesm2015/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/fesm2020/enigmatry-entry-components-search-filter.mjs +70 -17
- package/fesm2020/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/header/README.md +2 -3
- package/package.json +8 -6
- package/search-filter/README.md +8 -4
- package/search-filter/entry-search-filter.component.d.ts +4 -4
- package/search-filter/entry-search-filter.module.d.ts +3 -3
- package/search-filter/public-api.d.ts +5 -3
- package/search-filter/search-filter-config.model.d.ts +2 -0
- package/search-filter/search-filter-input/control-type.model.d.ts +4 -0
- package/search-filter/search-filter-input/inputs/select-filter-option.model.d.ts +12 -0
- package/search-filter/search-filter-input/inputs/select-search-filter.model.d.ts +20 -0
- package/search-filter/search-filter-input/inputs/text-search-filter.model.d.ts +7 -0
- package/search-filter/{search-filter-base.d.ts → search-filter-input/search-filter-base.model.d.ts} +6 -5
- package/search-filter/search-filter-input/search-filter-input.component.d.ts +16 -0
- package/toolbar/README.md +2 -2
- package/esm2020/search-filter/search-filter-base.mjs +0 -22
- package/esm2020/search-filter/search-filter-input.component.mjs +0 -19
- package/esm2020/search-filter/search-filter-params.mjs +0 -2
- package/esm2020/search-filter/search-filter-textbox.mjs +0 -8
- package/search-filter/search-filter-input.component.d.ts +0 -11
- package/search-filter/search-filter-textbox.d.ts +0 -4
- /package/search-filter/{search-filter-params.d.ts → search-filter-params.type.d.ts} +0 -0
package/dialog/README.md
CHANGED
|
@@ -10,8 +10,8 @@ import { EntryDialogModule } from '@enigmatry/entry-components/dialog';
|
|
|
10
10
|
|
|
11
11
|
Styles import:
|
|
12
12
|
|
|
13
|
-
```
|
|
14
|
-
@use '
|
|
13
|
+
```scss
|
|
14
|
+
@use 'entry-components/styles/generate' as entry;
|
|
15
15
|
|
|
16
16
|
@include entry.generate(APP_THEME, APP_TYPOGRAPHY);
|
|
17
17
|
```
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { UntypedFormGroup } from '@angular/forms';
|
|
3
3
|
import { ENTRY_SEARCH_FILTER_CONFIG } from './search-filter-config.model';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
7
|
-
import * as i3 from "./search-filter-input.component";
|
|
7
|
+
import * as i3 from "./search-filter-input/search-filter-input.component";
|
|
8
8
|
import * as i4 from "./search-filter-config.model";
|
|
9
9
|
/**
|
|
10
10
|
* Entry SearchFilter component.
|
|
@@ -29,7 +29,7 @@ export class EntrySearchFilterComponent {
|
|
|
29
29
|
toFormGroup(searchFilters) {
|
|
30
30
|
const group = {};
|
|
31
31
|
searchFilters.forEach(searchFilter => {
|
|
32
|
-
const formControl =
|
|
32
|
+
const formControl = searchFilter.toFormControl();
|
|
33
33
|
group[searchFilter.key] = formControl;
|
|
34
34
|
searchFilter.formControl = formControl;
|
|
35
35
|
});
|
|
@@ -37,10 +37,10 @@ export class EntrySearchFilterComponent {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
EntrySearchFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterComponent, deps: [{ token: ENTRY_SEARCH_FILTER_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
EntrySearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EntrySearchFilterComponent, selector: "entry-search-filter", inputs: { searchFilters: "searchFilters" }, outputs: { searchFilterChange: "searchFilterChange" }, ngImport: i0, template: "<div class=\"search-form-container\">\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"searchFilterForm\">\r\n <div class=\"search-form-fields\">\r\n <div *ngFor=\"let searchFilter of searchFilters\" class=\"search-form-field\">\r\n <entry-search-filter-input [searchFilter]=\"searchFilter\"
|
|
40
|
+
EntrySearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EntrySearchFilterComponent, selector: "entry-search-filter", inputs: { searchFilters: "searchFilters" }, outputs: { searchFilterChange: "searchFilterChange" }, ngImport: i0, template: "<div class=\"search-form-container\">\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"searchFilterForm\">\r\n <div class=\"search-form-fields\">\r\n <div *ngFor=\"let searchFilter of searchFilters\" class=\"search-form-field\">\r\n <entry-search-filter-input [searchFilter]=\"searchFilter\" [form]=\"searchFilterForm\">\r\n </entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">\r\n {{config.applyButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: [".search-form-fields{display:flex;align-items:flex-start}.search-form-fields .search-form-field{width:200px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: ["searchFilter", "form"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
|
-
args: [{ selector: 'entry-search-filter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"search-form-container\">\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"searchFilterForm\">\r\n <div class=\"search-form-fields\">\r\n <div *ngFor=\"let searchFilter of searchFilters\" class=\"search-form-field\">\r\n <entry-search-filter-input [searchFilter]=\"searchFilter\"
|
|
43
|
+
args: [{ selector: 'entry-search-filter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"search-form-container\">\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"searchFilterForm\">\r\n <div class=\"search-form-fields\">\r\n <div *ngFor=\"let searchFilter of searchFilters\" class=\"search-form-field\">\r\n <entry-search-filter-input [searchFilter]=\"searchFilter\" [form]=\"searchFilterForm\">\r\n </entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">\r\n {{config.applyButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: [".search-form-fields{display:flex;align-items:flex-start}.search-form-fields .search-form-field{width:200px}\n"] }]
|
|
44
44
|
}], ctorParameters: function () { return [{ type: i4.EntrySearchFilterConfig, decorators: [{
|
|
45
45
|
type: Inject,
|
|
46
46
|
args: [ENTRY_SEARCH_FILTER_CONFIG]
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
49
49
|
}], searchFilterChange: [{
|
|
50
50
|
type: Output
|
|
51
51
|
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9lbnRyeS1zZWFyY2gtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyL2VudHJ5LXNlYXJjaC1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLDBCQUEwQixFQUEyQixNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFHbkc7O0dBRUc7QUFPSCxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQXVELE1BQStCO1FBQS9CLFdBQU0sR0FBTixNQUFNLENBQXlCO1FBVHRGLHdHQUF3RztRQUMvRixrQkFBYSxHQUE0QixFQUFFLENBQUM7UUFDckQ7O1dBRUc7UUFDTyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQUlvQixDQUFDO0lBRTNGLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxhQUFzQztRQUNoRCxNQUFNLEtBQUssR0FBUSxFQUFFLENBQUM7UUFDdEIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNuQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakQsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDdEMsWUFBWSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7dUhBOUJVLDBCQUEwQixrQkFXakIsMEJBQTBCOzJHQVhuQywwQkFBMEIsOEpDZnZDLHFyQkFjTTsyRkRDTywwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OzBCQWFsQyxNQUFNOzJCQUFDLDBCQUEwQjs0Q0FSckMsYUFBYTtzQkFBckIsS0FBSztnQkFJSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNlYXJjaEZpbHRlclBhcmFtcyB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1wYXJhbXMudHlwZSc7XHJcbmltcG9ydCB7IEVOVFJZX1NFQVJDSF9GSUxURVJfQ09ORklHLCBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZyB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJCYXNlIH0gZnJvbSAnLi9zZWFyY2gtZmlsdGVyLWlucHV0L3NlYXJjaC1maWx0ZXItYmFzZS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogRW50cnkgU2VhcmNoRmlsdGVyIGNvbXBvbmVudC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZW50cnktc2VhcmNoLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VudHJ5LXNlYXJjaC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VudHJ5LXNlYXJjaC1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW50cnlTZWFyY2hGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGUgc2VhcmNoIGZpbHRlcnMgaW5wdXRzIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHNlYXJjaC1maWx0ZXIgY29tcG9uZW50LiAqL1xyXG4gIEBJbnB1dCgpIHNlYXJjaEZpbHRlcnM6IFNlYXJjaEZpbHRlckJhc2U8YW55PltdID0gW107XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgdGhlIGNoYW5nZSBpbiBTZWFyY2hGaWx0ZXJQYXJhbXMgc28gdGhlIGNvbnRhaW5pbmcgY29tcG9uZW50IGNhbiBhcHBseSB0aGVtIGFuZCByZXRyaWV2ZSB0aGUgZmlsdGVyZWQgcmVzdWx0cy5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgc2VhcmNoRmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hGaWx0ZXJQYXJhbXM+KCk7XHJcblxyXG4gIHNlYXJjaEZpbHRlckZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEVOVFJZX1NFQVJDSF9GSUxURVJfQ09ORklHKSBwdWJsaWMgY29uZmlnOiBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZykgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZWFyY2hGaWx0ZXJGb3JtID0gdGhpcy50b0Zvcm1Hcm91cCh0aGlzLnNlYXJjaEZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnNlYXJjaEZpbHRlckZvcm0udmFsdWU7XHJcbiAgICB0aGlzLnNlYXJjaEZpbHRlckNoYW5nZS5lbWl0KGZvcm1WYWx1ZSk7XHJcbiAgfVxyXG5cclxuICB0b0Zvcm1Hcm91cChzZWFyY2hGaWx0ZXJzOiBTZWFyY2hGaWx0ZXJCYXNlPGFueT5bXSkge1xyXG4gICAgY29uc3QgZ3JvdXA6IGFueSA9IHt9O1xyXG4gICAgc2VhcmNoRmlsdGVycy5mb3JFYWNoKHNlYXJjaEZpbHRlciA9PiB7XHJcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gc2VhcmNoRmlsdGVyLnRvRm9ybUNvbnRyb2woKTtcclxuICAgICAgZ3JvdXBbc2VhcmNoRmlsdGVyLmtleV0gPSBmb3JtQ29udHJvbDtcclxuICAgICAgc2VhcmNoRmlsdGVyLmZvcm1Db250cm9sID0gZm9ybUNvbnRyb2w7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBuZXcgVW50eXBlZEZvcm1Hcm91cChncm91cCk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwic2VhcmNoLWZvcm0tY29udGFpbmVyXCI+XHJcbiAgICA8Zm9ybSAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiIFtmb3JtR3JvdXBdPVwic2VhcmNoRmlsdGVyRm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtZm9ybS1maWVsZHNcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc2VhcmNoRmlsdGVyIG9mIHNlYXJjaEZpbHRlcnNcIiBjbGFzcz1cInNlYXJjaC1mb3JtLWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZW50cnktc2VhcmNoLWZpbHRlci1pbnB1dCBbc2VhcmNoRmlsdGVyXT1cInNlYXJjaEZpbHRlclwiIFtmb3JtXT1cInNlYXJjaEZpbHRlckZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvZW50cnktc2VhcmNoLWZpbHRlci1pbnB1dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm1hdC1yYWlzZWQtYnV0dG9uIG1hdC1hY2NlbnRcIiB0eXBlPVwic3VibWl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tjb25maWcuYXBwbHlCdXR0b25UZXh0fX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuPC9kaXY+Il19
|
|
@@ -3,9 +3,9 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { MatInputModule } from '@angular/material/input';
|
|
5
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
-
import {
|
|
6
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
7
7
|
import { EntrySearchFilterComponent } from './entry-search-filter.component';
|
|
8
|
-
import { EntrySearchFilterInputComponent } from './search-filter-input.component';
|
|
8
|
+
import { EntrySearchFilterInputComponent } from './search-filter-input/search-filter-input.component';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class EntrySearchFilterModule {
|
|
11
11
|
}
|
|
@@ -16,13 +16,13 @@ EntrySearchFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
16
16
|
ReactiveFormsModule,
|
|
17
17
|
MatInputModule,
|
|
18
18
|
MatButtonModule,
|
|
19
|
-
|
|
19
|
+
MatSelectModule], exports: [EntrySearchFilterComponent] });
|
|
20
20
|
EntrySearchFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterModule, imports: [CommonModule,
|
|
21
21
|
FormsModule,
|
|
22
22
|
ReactiveFormsModule,
|
|
23
23
|
MatInputModule,
|
|
24
24
|
MatButtonModule,
|
|
25
|
-
|
|
25
|
+
MatSelectModule] });
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterModule, decorators: [{
|
|
27
27
|
type: NgModule,
|
|
28
28
|
args: [{
|
|
@@ -36,11 +36,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
36
36
|
ReactiveFormsModule,
|
|
37
37
|
MatInputModule,
|
|
38
38
|
MatButtonModule,
|
|
39
|
-
|
|
39
|
+
MatSelectModule
|
|
40
40
|
],
|
|
41
41
|
exports: [
|
|
42
42
|
EntrySearchFilterComponent
|
|
43
43
|
]
|
|
44
44
|
}]
|
|
45
45
|
}] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VhcmNoLWZpbHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9lbnRyeS1zZWFyY2gtZmlsdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBbUJ0RyxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBZmhDLDBCQUEwQjtRQUMxQiwrQkFBK0IsYUFHL0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlLGFBR2YsMEJBQTBCO3FIQUdqQix1QkFBdUIsWUFYaEMsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlOzJGQU1OLHVCQUF1QjtrQkFqQm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjt3QkFDMUIsK0JBQStCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7cUJBQzNCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5cclxuaW1wb3J0IHsgRW50cnlTZWFyY2hGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2VudHJ5LXNlYXJjaC1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50cnlTZWFyY2hGaWx0ZXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1pbnB1dC9zZWFyY2gtZmlsdGVyLWlucHV0LmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRW50cnlTZWFyY2hGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBFbnRyeVNlYXJjaEZpbHRlcklucHV0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRW50cnlTZWFyY2hGaWx0ZXJDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbnRyeVNlYXJjaEZpbHRlck1vZHVsZSB7IH1cclxuIl19
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { EntrySearchFilterComponent } from './entry-search-filter.component';
|
|
2
|
-
export { SearchFilterBase } from './search-filter-base';
|
|
3
|
-
export {
|
|
2
|
+
export { SearchFilterBase } from './search-filter-input/search-filter-base.model';
|
|
3
|
+
export { TextSearchFilter } from './search-filter-input/inputs/text-search-filter.model';
|
|
4
|
+
export { SelectSearchFilter } from './search-filter-input/inputs/select-search-filter.model';
|
|
5
|
+
export { SelectFilterOption } from './search-filter-input/inputs/select-filter-option.model';
|
|
4
6
|
export { EntrySearchFilterModule } from './entry-search-filter.module';
|
|
5
7
|
export { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterConfig } from './search-filter-config.model';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFN0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBFbnRyeVNlYXJjaEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQnO1xuXG5leHBvcnQgeyBTZWFyY2hGaWx0ZXJQYXJhbXMgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItcGFyYW1zLnR5cGUnO1xuZXhwb3J0IHsgU2VhcmNoRmlsdGVyQmFzZSB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1pbnB1dC9zZWFyY2gtZmlsdGVyLWJhc2UubW9kZWwnO1xuZXhwb3J0IHsgVGV4dFNlYXJjaEZpbHRlciB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1pbnB1dC9pbnB1dHMvdGV4dC1zZWFyY2gtZmlsdGVyLm1vZGVsJztcbmV4cG9ydCB7IFNlbGVjdFNlYXJjaEZpbHRlciB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1pbnB1dC9pbnB1dHMvc2VsZWN0LXNlYXJjaC1maWx0ZXIubW9kZWwnO1xuZXhwb3J0IHsgU2VsZWN0RmlsdGVyT3B0aW9uIH0gZnJvbSAnLi9zZWFyY2gtZmlsdGVyLWlucHV0L2lucHV0cy9zZWxlY3QtZmlsdGVyLW9wdGlvbi5tb2RlbCc7XG5cbmV4cG9ydCB7IEVudHJ5U2VhcmNoRmlsdGVyTW9kdWxlIH0gZnJvbSAnLi9lbnRyeS1zZWFyY2gtZmlsdGVyLm1vZHVsZSc7XG5cbmV4cG9ydCB7IEVOVFJZX1NFQVJDSF9GSUxURVJfQ09ORklHLCBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZyB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1jb25maWcubW9kZWwnO1xuIl19
|
|
@@ -5,10 +5,11 @@ import { InjectionToken } from '@angular/core';
|
|
|
5
5
|
export class EntrySearchFilterConfig {
|
|
6
6
|
constructor(config = {}) {
|
|
7
7
|
this.applyButtonText = config.applyButtonText ?? 'Apply';
|
|
8
|
+
this.noneSelectedOptionText = config.noneSelectedOptionText ?? 'None';
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
11
|
export const ENTRY_SEARCH_FILTER_CONFIG = new InjectionToken('EntrySearchFilterConfig', {
|
|
11
12
|
providedIn: 'root',
|
|
12
13
|
factory: () => new EntrySearchFilterConfig()
|
|
13
14
|
});
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1jb25maWcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQU1oQyxZQUFZLFNBQTJDLEVBQUU7UUFDckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUN6RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixJQUFJLE1BQU0sQ0FBQztJQUMxRSxDQUFDO0NBQ0o7QUFDRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FDeEQseUJBQXlCLEVBQ3pCO0lBQ0ksVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksdUJBQXVCLEVBQUU7Q0FDL0MsQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBVc2VkIHRvIHByb3ZpZGUgZGVmYXVsdCBjb25maWd1cmF0aW9ucyBvbiBtb2R1bGUgbGV2ZWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZyB7XG4gICAgLyoqIEFwcGx5IHNlYXJjaCBmaWx0ZXJzIGJ1dHRvbiBsYWJlbCAoZGVmYXVsdCAnQXBwbHknKSAqL1xuICAgIGFwcGx5QnV0dG9uVGV4dDogc3RyaW5nO1xuICAgIC8qKiBMYWJlbCBmb3IgJ25vbmUgc2VsZWN0ZWQnIHNlbGVjdCBmaWx0ZXIgb3B0aW9uICovXG4gICAgbm9uZVNlbGVjdGVkT3B0aW9uVGV4dDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBQYXJ0aWFsPEVudHJ5U2VhcmNoRmlsdGVyQ29uZmlnPiA9IHt9KSB7XG4gICAgICAgIHRoaXMuYXBwbHlCdXR0b25UZXh0ID0gY29uZmlnLmFwcGx5QnV0dG9uVGV4dCA/PyAnQXBwbHknO1xuICAgICAgICB0aGlzLm5vbmVTZWxlY3RlZE9wdGlvblRleHQgPSBjb25maWcubm9uZVNlbGVjdGVkT3B0aW9uVGV4dCA/PyAnTm9uZSc7XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IEVOVFJZX1NFQVJDSF9GSUxURVJfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEVudHJ5U2VhcmNoRmlsdGVyQ29uZmlnPihcbiAgICAnRW50cnlTZWFyY2hGaWx0ZXJDb25maWcnLFxuICAgIHtcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgICAgICBmYWN0b3J5OiAoKSA9PiBuZXcgRW50cnlTZWFyY2hGaWx0ZXJDb25maWcoKVxuICAgIH1cbik7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export class ControlType {
|
|
2
|
+
}
|
|
3
|
+
ControlType.text = 'text-input';
|
|
4
|
+
ControlType.select = 'select-input';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC10eXBlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC9jb250cm9sLXR5cGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7O0FBQ2IsZ0JBQUksR0FBRyxZQUFZLENBQUM7QUFDcEIsa0JBQU0sR0FBRyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ29udHJvbFR5cGUge1xuICAgIHN0YXRpYyB0ZXh0ID0gJ3RleHQtaW5wdXQnO1xuICAgIHN0YXRpYyBzZWxlY3QgPSAnc2VsZWN0LWlucHV0Jztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Model used to populate select filter options. */
|
|
2
|
+
export class SelectFilterOption {
|
|
3
|
+
constructor(
|
|
4
|
+
/** Key used as a value for selected option */
|
|
5
|
+
key,
|
|
6
|
+
/** String value used as display label of select option */
|
|
7
|
+
label) {
|
|
8
|
+
this.key = key;
|
|
9
|
+
this.label = label;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpbHRlci1vcHRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLWlucHV0L2lucHV0cy9zZWxlY3QtZmlsdGVyLW9wdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQjtJQUNJLDhDQUE4QztJQUN2QyxHQUFNO0lBQ2IsMERBQTBEO0lBQ25ELEtBQWE7UUFGYixRQUFHLEdBQUgsR0FBRyxDQUFHO1FBRU4sVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUFHLENBQUM7Q0FDL0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTW9kZWwgdXNlZCB0byBwb3B1bGF0ZSBzZWxlY3QgZmlsdGVyIG9wdGlvbnMuICovXG5leHBvcnQgY2xhc3MgU2VsZWN0RmlsdGVyT3B0aW9uPFQ+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgLyoqIEtleSB1c2VkIGFzIGEgdmFsdWUgZm9yIHNlbGVjdGVkIG9wdGlvbiAqL1xuICAgICAgICBwdWJsaWMga2V5OiBULFxuICAgICAgICAvKiogU3RyaW5nIHZhbHVlIHVzZWQgYXMgZGlzcGxheSBsYWJlbCBvZiBzZWxlY3Qgb3B0aW9uICovXG4gICAgICAgIHB1YmxpYyBsYWJlbDogc3RyaW5nKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ControlType } from '../control-type.model';
|
|
2
|
+
import { SearchFilterBase } from '../search-filter-base.model';
|
|
3
|
+
/**
|
|
4
|
+
* Search filter select input field configuration. Select options can be provided as fixed list (`options`)
|
|
5
|
+
* or observable (dynamic) list (`options$`).
|
|
6
|
+
*/
|
|
7
|
+
export class SelectSearchFilter extends SearchFilterBase {
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
super(options);
|
|
10
|
+
this.controlType = ControlType.select;
|
|
11
|
+
/** Fixed list of select filter options (default is empty list) */
|
|
12
|
+
this.options = [];
|
|
13
|
+
/**
|
|
14
|
+
* Enables selection of multiple options (default is true).
|
|
15
|
+
* If it is set to false, 'none selected' option becomes available as a first option.
|
|
16
|
+
* */
|
|
17
|
+
this.multiSelect = true;
|
|
18
|
+
this.options = options.options;
|
|
19
|
+
this.options$ = options.options$;
|
|
20
|
+
this.multiSelect = options.multiSelect;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC1maWx0ZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLWlucHV0L2lucHV0cy9zZWxlY3Qtc2VhcmNoLWZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHL0Q7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtCQUFzQixTQUFRLGdCQUFtQjtJQVk1RCxZQUFZLFVBQTBDLEVBQUU7UUFDdEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBWlIsZ0JBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQzFDLGtFQUFrRTtRQUNsRSxZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUd0Qzs7O2FBR0s7UUFDTCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUlqQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUN6QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250cm9sVHlwZSB9IGZyb20gJy4uL2NvbnRyb2wtdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJCYXNlIH0gZnJvbSAnLi4vc2VhcmNoLWZpbHRlci1iYXNlLm1vZGVsJztcbmltcG9ydCB7IFNlbGVjdEZpbHRlck9wdGlvbiB9IGZyb20gJy4vc2VsZWN0LWZpbHRlci1vcHRpb24ubW9kZWwnO1xuXG4vKipcbiAqIFNlYXJjaCBmaWx0ZXIgc2VsZWN0IGlucHV0IGZpZWxkIGNvbmZpZ3VyYXRpb24uIFNlbGVjdCBvcHRpb25zIGNhbiBiZSBwcm92aWRlZCBhcyBmaXhlZCBsaXN0IChgb3B0aW9uc2ApXG4gKiBvciBvYnNlcnZhYmxlIChkeW5hbWljKSBsaXN0IChgb3B0aW9ucyRgKS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlbGVjdFNlYXJjaEZpbHRlcjxUPiBleHRlbmRzIFNlYXJjaEZpbHRlckJhc2U8VD4ge1xuICBvdmVycmlkZSBjb250cm9sVHlwZSA9IENvbnRyb2xUeXBlLnNlbGVjdDtcbiAgLyoqIEZpeGVkIGxpc3Qgb2Ygc2VsZWN0IGZpbHRlciBvcHRpb25zIChkZWZhdWx0IGlzIGVtcHR5IGxpc3QpICovXG4gIG9wdGlvbnM6IFNlbGVjdEZpbHRlck9wdGlvbjxUPltdID0gW107XG4gIC8qKiBPYnNlcnZhYmxlIChkeW5hbWljKSBsaXN0IG9mIHNlbGVjdCBmaWx0ZXIgb3B0aW9ucyAqL1xuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxTZWxlY3RGaWx0ZXJPcHRpb248VD5bXT4gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBFbmFibGVzIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIChkZWZhdWx0IGlzIHRydWUpLlxuICAgKiBJZiBpdCBpcyBzZXQgdG8gZmFsc2UsICdub25lIHNlbGVjdGVkJyBvcHRpb24gYmVjb21lcyBhdmFpbGFibGUgYXMgYSBmaXJzdCBvcHRpb24uXG4gICAqICovXG4gIG11bHRpU2VsZWN0ID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPFNlbGVjdFNlYXJjaEZpbHRlcjxUPj4gPSB7fSkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucztcbiAgICB0aGlzLm9wdGlvbnMkID0gb3B0aW9ucy5vcHRpb25zJDtcbiAgICB0aGlzLm11bHRpU2VsZWN0ID0gb3B0aW9ucy5tdWx0aVNlbGVjdDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ControlType } from '../control-type.model';
|
|
2
|
+
import { SearchFilterBase } from '../search-filter-base.model';
|
|
3
|
+
/**
|
|
4
|
+
* Search filter text input filed configuration.
|
|
5
|
+
*/
|
|
6
|
+
export class TextSearchFilter extends SearchFilterBase {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.controlType = ControlType.text;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zZWFyY2gtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC9pbnB1dHMvdGV4dC1zZWFyY2gtZmlsdGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBd0I7SUFBOUQ7O1FBQ1csZ0JBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xUeXBlIH0gZnJvbSAnLi4vY29udHJvbC10eXBlLm1vZGVsJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckJhc2UgfSBmcm9tICcuLi9zZWFyY2gtZmlsdGVyLWJhc2UubW9kZWwnO1xuXG4vKipcbiAqIFNlYXJjaCBmaWx0ZXIgdGV4dCBpbnB1dCBmaWxlZCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgVGV4dFNlYXJjaEZpbHRlciBleHRlbmRzIFNlYXJjaEZpbHRlckJhc2U8c3RyaW5nPiB7XG4gIG92ZXJyaWRlIGNvbnRyb2xUeXBlID0gQ29udHJvbFR5cGUudGV4dDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FormControl } from '@angular/forms';
|
|
2
|
+
/**
|
|
3
|
+
* Base Entry search filter input component.
|
|
4
|
+
*/
|
|
5
|
+
export class SearchFilterBase {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
this.value = options.value;
|
|
8
|
+
this.key = options.key || '';
|
|
9
|
+
this.label = options.label || '';
|
|
10
|
+
this.placeholder = options.placeholder || '';
|
|
11
|
+
this.controlType = options.controlType || '';
|
|
12
|
+
this.type = options.type || '';
|
|
13
|
+
this.maxLength = options.maxLength || 256;
|
|
14
|
+
}
|
|
15
|
+
setValue(value) {
|
|
16
|
+
this.value = value;
|
|
17
|
+
if (this.formControl) {
|
|
18
|
+
this.formControl.patchValue(value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
toFormControl() {
|
|
22
|
+
return new FormControl(this.value);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1iYXNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC9zZWFyY2gtZmlsdGVyLWJhc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQWtCM0IsWUFBWSxVQUF3QyxFQUFFO1FBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQW9CO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLFdBQVcsQ0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogQmFzZSBFbnRyeSBzZWFyY2ggZmlsdGVyIGlucHV0IGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlYXJjaEZpbHRlckJhc2U8VD4ge1xuICAvKiogVW5pcXVlIHNlYXJjaC1maWx0ZXIgaW5wdXQga2V5ICovXG4gIGtleTogc3RyaW5nO1xuICAvKiogRGVmYXVsdCB2YWx1ZSB0byBiZSBkaXNwbGF5ZWQvc2VsZWN0ZWQgaW4gdGhlIGlucHV0IGNvbnRyb2wgKi9cbiAgdmFsdWU6IFQgfCB1bmRlZmluZWQ7XG4gIC8qKiBMYWJlbCB0ZXh0IHRvIGJlIGRpc3BsYXllZCBmb3IgdGhlIHNlYXJjaC1maWx0ZXIgaW5wdXQgY29udHJvbCAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogUGxhY2Vob2xkZXIgdGV4dCBmb3Igc2VhcmNoLWZpbHRlciBpbnB1dCBjb250cm9sICAqL1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvKiogVHlwZSBvZiBpbnB1dCBjb250cm9sIGUuZy4gJ2VtYWlsJyAqL1xuICB0eXBlOiBzdHJpbmc7XG4gIC8qKiBDb250cm9sIHR5cGUgdG8gYmUgb3ZlcnJpZGRlbiBpbiBpbXBsZW1lbnRpbmcgY2xhc3MsIHVzZWQgdG8gcmVuZGVyIHRoZSBwcm9wZXIgaW5wdXQgdHlwZSBlLmcuICd0ZXh0LWlucHV0JyAqL1xuICBjb250cm9sVHlwZTogc3RyaW5nO1xuICAvKiogTWF4IHRleHQgbGVuZ3RoIHRvIGJlIGVudGVyZWQgaW4gdGhlIGlucHV0IGNvbXBvbmVudCAoZGVmYXVsdCBpcyAyNTYpICovXG4gIG1heExlbmd0aDogbnVtYmVyO1xuICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIGZvcm0gY29udHJvbCBpdCByZXByZXNlbnRzICovXG4gIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDxUPjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPFNlYXJjaEZpbHRlckJhc2U8VD4+ID0ge30pIHtcbiAgICB0aGlzLnZhbHVlID0gb3B0aW9ucy52YWx1ZTtcbiAgICB0aGlzLmtleSA9IG9wdGlvbnMua2V5IHx8ICcnO1xuICAgIHRoaXMubGFiZWwgPSBvcHRpb25zLmxhYmVsIHx8ICcnO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBvcHRpb25zLnBsYWNlaG9sZGVyIHx8ICcnO1xuICAgIHRoaXMuY29udHJvbFR5cGUgPSBvcHRpb25zLmNvbnRyb2xUeXBlIHx8ICcnO1xuICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnJztcbiAgICB0aGlzLm1heExlbmd0aCA9IG9wdGlvbnMubWF4TGVuZ3RoIHx8IDI1NjtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHRvRm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2w8VD4ge1xuICAgIHJldHVybiBuZXcgRm9ybUNvbnRyb2w8VD4odGhpcy52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Inject, Input } from '@angular/core';
|
|
2
|
+
import { ControlType } from './control-type.model';
|
|
3
|
+
import { ENTRY_SEARCH_FILTER_CONFIG } from '../search-filter-config.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
import * as i3 from "@angular/material/form-field";
|
|
8
|
+
import * as i4 from "@angular/material/input";
|
|
9
|
+
import * as i5 from "@angular/material/select";
|
|
10
|
+
import * as i6 from "@angular/material/core";
|
|
11
|
+
import * as i7 from "../search-filter-config.model";
|
|
12
|
+
export class EntrySearchFilterInputComponent {
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.controlType = ControlType;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
EntrySearchFilterInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterInputComponent, deps: [{ token: ENTRY_SEARCH_FILTER_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
EntrySearchFilterInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: { searchFilter: "searchFilter", form: "form" }, ngImport: i0, template: "<mat-form-field [formGroup]=\"form\">\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\n\n <div [ngSwitch]=\"searchFilter.controlType\">\n\n <input *ngSwitchCase=\"controlType.text\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\n\n <mat-select *ngSwitchCase=\"controlType.select\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [multiple]=\"searchFilter.multiSelect\">\n <mat-option *ngIf=\"!searchFilter.multiSelect\" [value]=\"undefined\">\n {{config.noneSelectedOptionText}}\n </mat-option>\n <div *ngIf=\"searchFilter.options$ !== undefined; else fixedSelectValues\">\n <mat-option *ngFor=\"let option of searchFilter.options$ | async\" [value]=\"option.key\">{{option.label}}</mat-option>\n </div>\n <ng-template #fixedSelectValues>\n <mat-option *ngFor=\"let option of searchFilter.options\" [value]=\"option.key\">{{option.label}}</mat-option>\n </ng-template>\n </mat-select>\n\n </div>\n</mat-form-field>", 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: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.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: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterInputComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'entry-search-filter-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [formGroup]=\"form\">\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\n\n <div [ngSwitch]=\"searchFilter.controlType\">\n\n <input *ngSwitchCase=\"controlType.text\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\n\n <mat-select *ngSwitchCase=\"controlType.select\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [multiple]=\"searchFilter.multiSelect\">\n <mat-option *ngIf=\"!searchFilter.multiSelect\" [value]=\"undefined\">\n {{config.noneSelectedOptionText}}\n </mat-option>\n <div *ngIf=\"searchFilter.options$ !== undefined; else fixedSelectValues\">\n <mat-option *ngFor=\"let option of searchFilter.options$ | async\" [value]=\"option.key\">{{option.label}}</mat-option>\n </div>\n <ng-template #fixedSelectValues>\n <mat-option *ngFor=\"let option of searchFilter.options\" [value]=\"option.key\">{{option.label}}</mat-option>\n </ng-template>\n </mat-select>\n\n </div>\n</mat-form-field>" }]
|
|
23
|
+
}], ctorParameters: function () { return [{ type: i7.EntrySearchFilterConfig, decorators: [{
|
|
24
|
+
type: Inject,
|
|
25
|
+
args: [ENTRY_SEARCH_FILTER_CONFIG]
|
|
26
|
+
}] }]; }, propDecorators: { searchFilter: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], form: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}] } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLWlucHV0L3NlYXJjaC1maWx0ZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC9zZWFyY2gtZmlsdGVyLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBCQUEwQixFQUEyQixNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFRcEcsTUFBTSxPQUFPLCtCQUErQjtJQVExQyxZQUF1RCxNQUErQjtRQUEvQixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUZ0RixnQkFBVyxHQUFHLFdBQVcsQ0FBQztJQUVnRSxDQUFDOzs0SEFSaEYsK0JBQStCLGtCQVF0QiwwQkFBMEI7Z0hBUm5DLCtCQUErQix5SENYNUMscXFDQXVCaUI7MkZEWkosK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDJCQUEyQixtQkFFcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBVWxDLE1BQU07MkJBQUMsMEJBQTBCOzRDQU5yQyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250cm9sVHlwZSB9IGZyb20gJy4vY29udHJvbC10eXBlLm1vZGVsJztcbmltcG9ydCB7IEVOVFJZX1NFQVJDSF9GSUxURVJfQ09ORklHLCBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZyB9IGZyb20gJy4uL3NlYXJjaC1maWx0ZXItY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckJhc2UgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItYmFzZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VudHJ5LXNlYXJjaC1maWx0ZXItaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVudHJ5U2VhcmNoRmlsdGVySW5wdXRDb21wb25lbnQ8VD4ge1xuICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGUgc2VhcmNoIGZpbHRlcnMgaW5wdXRzIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHNlYXJjaC1maWx0ZXIgY29tcG9uZW50LiAqL1xuICBASW5wdXQoKSBzZWFyY2hGaWx0ZXI6IFNlYXJjaEZpbHRlckJhc2U8VD47XG4gIC8qKiBGb3JtIGdyb3VwIHRvIHdoaWNoIHRoZSBzZWFyY2gtZmlsdGVyIGlucHV0IGNvbXBvbmVudCB3aWxsIGJlIGFkZGVkLiAqL1xuICBASW5wdXQoKSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGNvbnRyb2xUeXBlID0gQ29udHJvbFR5cGU7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChFTlRSWV9TRUFSQ0hfRklMVEVSX0NPTkZJRykgcHVibGljIGNvbmZpZzogRW50cnlTZWFyY2hGaWx0ZXJDb25maWcpIHsgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8bWF0LWxhYmVsIFthdHRyLmZvcl09XCJzZWFyY2hGaWx0ZXIua2V5XCI+e3tzZWFyY2hGaWx0ZXIubGFiZWx9fTwvbWF0LWxhYmVsPlxuXG4gIDxkaXYgW25nU3dpdGNoXT1cInNlYXJjaEZpbHRlci5jb250cm9sVHlwZVwiPlxuXG4gICAgPGlucHV0ICpuZ1N3aXRjaENhc2U9XCJjb250cm9sVHlwZS50ZXh0XCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwic2VhcmNoRmlsdGVyLmtleVwiIFtpZF09XCJzZWFyY2hGaWx0ZXIua2V5XCJcbiAgICAgIFt0eXBlXT1cInNlYXJjaEZpbHRlci50eXBlXCIgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInNlYXJjaEZpbHRlci5wbGFjZWhvbGRlclwiIFttYXhsZW5ndGhdPVwic2VhcmNoRmlsdGVyLm1heExlbmd0aFwiPlxuXG4gICAgPG1hdC1zZWxlY3QgKm5nU3dpdGNoQ2FzZT1cImNvbnRyb2xUeXBlLnNlbGVjdFwiXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInNlYXJjaEZpbHRlci5rZXlcIiBbaWRdPVwic2VhcmNoRmlsdGVyLmtleVwiIFttdWx0aXBsZV09XCJzZWFyY2hGaWx0ZXIubXVsdGlTZWxlY3RcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIXNlYXJjaEZpbHRlci5tdWx0aVNlbGVjdFwiIFt2YWx1ZV09XCJ1bmRlZmluZWRcIj5cbiAgICAgICAge3tjb25maWcubm9uZVNlbGVjdGVkT3B0aW9uVGV4dH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoRmlsdGVyLm9wdGlvbnMkICE9PSB1bmRlZmluZWQ7IGVsc2UgZml4ZWRTZWxlY3RWYWx1ZXNcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWFyY2hGaWx0ZXIub3B0aW9ucyQgfCBhc3luY1wiIFt2YWx1ZV09XCJvcHRpb24ua2V5XCI+e3tvcHRpb24ubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNmaXhlZFNlbGVjdFZhbHVlcz5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWFyY2hGaWx0ZXIub3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24ua2V5XCI+e3tvcHRpb24ubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtc2VsZWN0PlxuXG4gIDwvZGl2PlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1wYXJhbXMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyL3NlYXJjaC1maWx0ZXItcGFyYW1zLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VhcmNoRmlsdGVyUGFyYW1zIGFyZSB0aGUgc2FtZSB0eXBlIGFzIEBhbmd1bGFyL3JvdXRlciB0eXBlIFBhcmFtcyxcbiAqIGNvbnRhaW5pbmcgYSBjb2xsZWN0aW9uIG9mIHF1ZXJ5IFVSTCBwYXJhbWV0ZXJzIGZvciBlYXN5IGludGVncmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTZWFyY2hGaWx0ZXJQYXJhbXMgPSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn07XG4iXX0=
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Component, ChangeDetectionStrategy, Input, EventEmitter,
|
|
2
|
+
import { InjectionToken, Component, ChangeDetectionStrategy, Inject, Input, EventEmitter, Output, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/forms';
|
|
4
|
-
import {
|
|
4
|
+
import { UntypedFormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
import * as i1 from '@angular/common';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
import * as i3 from '@angular/material/form-field';
|
|
8
8
|
import * as i4 from '@angular/material/input';
|
|
9
9
|
import { MatInputModule } from '@angular/material/input';
|
|
10
|
+
import * as i5 from '@angular/material/select';
|
|
11
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
12
|
+
import * as i6 from '@angular/material/core';
|
|
10
13
|
import { MatButtonModule } from '@angular/material/button';
|
|
11
|
-
import { MatListModule } from '@angular/material/list';
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
16
|
* Used to provide default configurations on module level.
|
|
15
17
|
*/
|
|
16
18
|
class EntrySearchFilterConfig {
|
|
17
19
|
constructor(config = {}) {
|
|
18
|
-
var _a;
|
|
20
|
+
var _a, _b;
|
|
19
21
|
this.applyButtonText = (_a = config.applyButtonText) !== null && _a !== void 0 ? _a : 'Apply';
|
|
22
|
+
this.noneSelectedOptionText = (_b = config.noneSelectedOptionText) !== null && _b !== void 0 ? _b : 'None';
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
25
|
const ENTRY_SEARCH_FILTER_CONFIG = new InjectionToken('EntrySearchFilterConfig', {
|
|
@@ -24,14 +27,28 @@ const ENTRY_SEARCH_FILTER_CONFIG = new InjectionToken('EntrySearchFilterConfig',
|
|
|
24
27
|
factory: () => new EntrySearchFilterConfig()
|
|
25
28
|
});
|
|
26
29
|
|
|
30
|
+
class ControlType {
|
|
31
|
+
}
|
|
32
|
+
ControlType.text = 'text-input';
|
|
33
|
+
ControlType.select = 'select-input';
|
|
34
|
+
|
|
27
35
|
class EntrySearchFilterInputComponent {
|
|
36
|
+
constructor(config) {
|
|
37
|
+
this.config = config;
|
|
38
|
+
this.controlType = ControlType;
|
|
39
|
+
}
|
|
28
40
|
}
|
|
29
|
-
EntrySearchFilterInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
EntrySearchFilterInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: { searchFilter: "searchFilter", form: "form" }, ngImport: i0, template: "<mat-form-field [formGroup]=\"form\">\
|
|
41
|
+
EntrySearchFilterInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterInputComponent, deps: [{ token: ENTRY_SEARCH_FILTER_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
EntrySearchFilterInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: { searchFilter: "searchFilter", form: "form" }, ngImport: i0, template: "<mat-form-field [formGroup]=\"form\">\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\n\n <div [ngSwitch]=\"searchFilter.controlType\">\n\n <input *ngSwitchCase=\"controlType.text\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\n\n <mat-select *ngSwitchCase=\"controlType.select\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [multiple]=\"searchFilter.multiSelect\">\n <mat-option *ngIf=\"!searchFilter.multiSelect\" [value]=\"undefined\">\n {{config.noneSelectedOptionText}}\n </mat-option>\n <div *ngIf=\"searchFilter.options$ !== undefined; else fixedSelectValues\">\n <mat-option *ngFor=\"let option of searchFilter.options$ | async\" [value]=\"option.key\">{{option.label}}</mat-option>\n </div>\n <ng-template #fixedSelectValues>\n <mat-option *ngFor=\"let option of searchFilter.options\" [value]=\"option.key\">{{option.label}}</mat-option>\n </ng-template>\n </mat-select>\n\n </div>\n</mat-form-field>", 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: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.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: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterInputComponent, decorators: [{
|
|
32
44
|
type: Component,
|
|
33
|
-
args: [{ selector: 'entry-search-filter-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [formGroup]=\"form\">\
|
|
34
|
-
}],
|
|
45
|
+
args: [{ selector: 'entry-search-filter-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [formGroup]=\"form\">\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\n\n <div [ngSwitch]=\"searchFilter.controlType\">\n\n <input *ngSwitchCase=\"controlType.text\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\n\n <mat-select *ngSwitchCase=\"controlType.select\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [multiple]=\"searchFilter.multiSelect\">\n <mat-option *ngIf=\"!searchFilter.multiSelect\" [value]=\"undefined\">\n {{config.noneSelectedOptionText}}\n </mat-option>\n <div *ngIf=\"searchFilter.options$ !== undefined; else fixedSelectValues\">\n <mat-option *ngFor=\"let option of searchFilter.options$ | async\" [value]=\"option.key\">{{option.label}}</mat-option>\n </div>\n <ng-template #fixedSelectValues>\n <mat-option *ngFor=\"let option of searchFilter.options\" [value]=\"option.key\">{{option.label}}</mat-option>\n </ng-template>\n </mat-select>\n\n </div>\n</mat-form-field>" }]
|
|
46
|
+
}], ctorParameters: function () {
|
|
47
|
+
return [{ type: EntrySearchFilterConfig, decorators: [{
|
|
48
|
+
type: Inject,
|
|
49
|
+
args: [ENTRY_SEARCH_FILTER_CONFIG]
|
|
50
|
+
}] }];
|
|
51
|
+
}, propDecorators: { searchFilter: [{
|
|
35
52
|
type: Input
|
|
36
53
|
}], form: [{
|
|
37
54
|
type: Input
|
|
@@ -60,7 +77,7 @@ class EntrySearchFilterComponent {
|
|
|
60
77
|
toFormGroup(searchFilters) {
|
|
61
78
|
const group = {};
|
|
62
79
|
searchFilters.forEach(searchFilter => {
|
|
63
|
-
const formControl =
|
|
80
|
+
const formControl = searchFilter.toFormControl();
|
|
64
81
|
group[searchFilter.key] = formControl;
|
|
65
82
|
searchFilter.formControl = formControl;
|
|
66
83
|
});
|
|
@@ -68,10 +85,10 @@ class EntrySearchFilterComponent {
|
|
|
68
85
|
}
|
|
69
86
|
}
|
|
70
87
|
EntrySearchFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterComponent, deps: [{ token: ENTRY_SEARCH_FILTER_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
-
EntrySearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EntrySearchFilterComponent, selector: "entry-search-filter", inputs: { searchFilters: "searchFilters" }, outputs: { searchFilterChange: "searchFilterChange" }, ngImport: i0, template: "<div class=\"search-form-container\">\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"searchFilterForm\">\r\n <div class=\"search-form-fields\">\r\n <div *ngFor=\"let searchFilter of searchFilters\" class=\"search-form-field\">\r\n <entry-search-filter-input [searchFilter]=\"searchFilter\"
|
|
88
|
+
EntrySearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EntrySearchFilterComponent, selector: "entry-search-filter", inputs: { searchFilters: "searchFilters" }, outputs: { searchFilterChange: "searchFilterChange" }, ngImport: i0, template: "<div class=\"search-form-container\">\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"searchFilterForm\">\r\n <div class=\"search-form-fields\">\r\n <div *ngFor=\"let searchFilter of searchFilters\" class=\"search-form-field\">\r\n <entry-search-filter-input [searchFilter]=\"searchFilter\" [form]=\"searchFilterForm\">\r\n </entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">\r\n {{config.applyButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: [".search-form-fields{display:flex;align-items:flex-start}.search-form-fields .search-form-field{width:200px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: ["searchFilter", "form"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
72
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterComponent, decorators: [{
|
|
73
90
|
type: Component,
|
|
74
|
-
args: [{ selector: 'entry-search-filter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"search-form-container\">\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"searchFilterForm\">\r\n <div class=\"search-form-fields\">\r\n <div *ngFor=\"let searchFilter of searchFilters\" class=\"search-form-field\">\r\n <entry-search-filter-input [searchFilter]=\"searchFilter\"
|
|
91
|
+
args: [{ selector: 'entry-search-filter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"search-form-container\">\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"searchFilterForm\">\r\n <div class=\"search-form-fields\">\r\n <div *ngFor=\"let searchFilter of searchFilters\" class=\"search-form-field\">\r\n <entry-search-filter-input [searchFilter]=\"searchFilter\" [form]=\"searchFilterForm\">\r\n </entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">\r\n {{config.applyButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: [".search-form-fields{display:flex;align-items:flex-start}.search-form-fields .search-form-field{width:200px}\n"] }]
|
|
75
92
|
}], ctorParameters: function () {
|
|
76
93
|
return [{ type: EntrySearchFilterConfig, decorators: [{
|
|
77
94
|
type: Inject,
|
|
@@ -92,7 +109,6 @@ class SearchFilterBase {
|
|
|
92
109
|
this.key = options.key || '';
|
|
93
110
|
this.label = options.label || '';
|
|
94
111
|
this.placeholder = options.placeholder || '';
|
|
95
|
-
this.order = options.order === undefined ? 1 : options.order;
|
|
96
112
|
this.controlType = options.controlType || '';
|
|
97
113
|
this.type = options.type || '';
|
|
98
114
|
this.maxLength = options.maxLength || 256;
|
|
@@ -103,12 +119,51 @@ class SearchFilterBase {
|
|
|
103
119
|
this.formControl.patchValue(value);
|
|
104
120
|
}
|
|
105
121
|
}
|
|
122
|
+
toFormControl() {
|
|
123
|
+
return new FormControl(this.value);
|
|
124
|
+
}
|
|
106
125
|
}
|
|
107
126
|
|
|
108
|
-
|
|
127
|
+
/**
|
|
128
|
+
* Search filter text input filed configuration.
|
|
129
|
+
*/
|
|
130
|
+
class TextSearchFilter extends SearchFilterBase {
|
|
109
131
|
constructor() {
|
|
110
132
|
super(...arguments);
|
|
111
|
-
this.controlType =
|
|
133
|
+
this.controlType = ControlType.text;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Search filter select input field configuration. Select options can be provided as fixed list (`options`)
|
|
139
|
+
* or observable (dynamic) list (`options$`).
|
|
140
|
+
*/
|
|
141
|
+
class SelectSearchFilter extends SearchFilterBase {
|
|
142
|
+
constructor(options = {}) {
|
|
143
|
+
super(options);
|
|
144
|
+
this.controlType = ControlType.select;
|
|
145
|
+
/** Fixed list of select filter options (default is empty list) */
|
|
146
|
+
this.options = [];
|
|
147
|
+
/**
|
|
148
|
+
* Enables selection of multiple options (default is true).
|
|
149
|
+
* If it is set to false, 'none selected' option becomes available as a first option.
|
|
150
|
+
* */
|
|
151
|
+
this.multiSelect = true;
|
|
152
|
+
this.options = options.options;
|
|
153
|
+
this.options$ = options.options$;
|
|
154
|
+
this.multiSelect = options.multiSelect;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/** Model used to populate select filter options. */
|
|
159
|
+
class SelectFilterOption {
|
|
160
|
+
constructor(
|
|
161
|
+
/** Key used as a value for selected option */
|
|
162
|
+
key,
|
|
163
|
+
/** String value used as display label of select option */
|
|
164
|
+
label) {
|
|
165
|
+
this.key = key;
|
|
166
|
+
this.label = label;
|
|
112
167
|
}
|
|
113
168
|
}
|
|
114
169
|
|
|
@@ -121,13 +176,13 @@ EntrySearchFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
121
176
|
ReactiveFormsModule,
|
|
122
177
|
MatInputModule,
|
|
123
178
|
MatButtonModule,
|
|
124
|
-
|
|
179
|
+
MatSelectModule], exports: [EntrySearchFilterComponent] });
|
|
125
180
|
EntrySearchFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterModule, imports: [CommonModule,
|
|
126
181
|
FormsModule,
|
|
127
182
|
ReactiveFormsModule,
|
|
128
183
|
MatInputModule,
|
|
129
184
|
MatButtonModule,
|
|
130
|
-
|
|
185
|
+
MatSelectModule] });
|
|
131
186
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EntrySearchFilterModule, decorators: [{
|
|
132
187
|
type: NgModule,
|
|
133
188
|
args: [{
|
|
@@ -141,7 +196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
141
196
|
ReactiveFormsModule,
|
|
142
197
|
MatInputModule,
|
|
143
198
|
MatButtonModule,
|
|
144
|
-
|
|
199
|
+
MatSelectModule
|
|
145
200
|
],
|
|
146
201
|
exports: [
|
|
147
202
|
EntrySearchFilterComponent
|
|
@@ -153,5 +208,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
153
208
|
* Generated bundle index. Do not edit.
|
|
154
209
|
*/
|
|
155
210
|
|
|
156
|
-
export { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterComponent, EntrySearchFilterConfig, EntrySearchFilterModule, SearchFilterBase,
|
|
211
|
+
export { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterComponent, EntrySearchFilterConfig, EntrySearchFilterModule, SearchFilterBase, SelectFilterOption, SelectSearchFilter, TextSearchFilter };
|
|
157
212
|
//# sourceMappingURL=enigmatry-entry-components-search-filter.mjs.map
|