@enigmatry/entry-components 1.2.50 → 1.2.52

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.
Files changed (28) hide show
  1. package/entry-search-filter/enigmatry-entry-components-entry-search-filter.d.ts +5 -0
  2. package/entry-search-filter/entry-search-filter.component.d.ts +16 -0
  3. package/entry-search-filter/entry-search-filter.module.d.ts +13 -0
  4. package/entry-search-filter/package.json +10 -0
  5. package/entry-search-filter/public-api.d.ts +5 -0
  6. package/entry-search-filter/search-filter-base.d.ts +14 -0
  7. package/entry-search-filter/search-filter-input.component.d.ts +9 -0
  8. package/entry-search-filter/search-filter-params.d.ts +3 -0
  9. package/entry-search-filter/search-filter-textbox.d.ts +4 -0
  10. package/esm2020/entry-search-filter/enigmatry-entry-components-entry-search-filter.mjs +5 -0
  11. package/esm2020/entry-search-filter/entry-search-filter.component.mjs +39 -0
  12. package/esm2020/entry-search-filter/entry-search-filter.module.mjs +48 -0
  13. package/esm2020/entry-search-filter/public-api.mjs +6 -0
  14. package/esm2020/entry-search-filter/search-filter-base.mjs +19 -0
  15. package/esm2020/entry-search-filter/search-filter-input.component.mjs +19 -0
  16. package/esm2020/entry-search-filter/search-filter-params.mjs +2 -0
  17. package/esm2020/entry-search-filter/search-filter-textbox.mjs +8 -0
  18. package/esm2020/public-api.mjs +2 -1
  19. package/fesm2015/enigmatry-entry-components-entry-search-filter.mjs +129 -0
  20. package/fesm2015/enigmatry-entry-components-entry-search-filter.mjs.map +1 -0
  21. package/fesm2015/enigmatry-entry-components.mjs +1 -0
  22. package/fesm2015/enigmatry-entry-components.mjs.map +1 -1
  23. package/fesm2020/enigmatry-entry-components-entry-search-filter.mjs +129 -0
  24. package/fesm2020/enigmatry-entry-components-entry-search-filter.mjs.map +1 -0
  25. package/fesm2020/enigmatry-entry-components.mjs +1 -0
  26. package/fesm2020/enigmatry-entry-components.mjs.map +1 -1
  27. package/package.json +9 -1
  28. package/public-api.d.ts +1 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@enigmatry/entry-components/entry-search-filter" />
5
+ export * from './public-api';
@@ -0,0 +1,16 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { SearchFilterBase } from './search-filter-base';
4
+ import { SearchFilterParams } from './search-filter-params';
5
+ import * as i0 from "@angular/core";
6
+ export declare class EntrySearchFilterComponent implements OnInit {
7
+ searchFilters: SearchFilterBase<string>[];
8
+ searchFilterChange: EventEmitter<SearchFilterParams>;
9
+ searchFilterForm: FormGroup;
10
+ constructor();
11
+ ngOnInit(): void;
12
+ onSubmit(): void;
13
+ toFormGroup(searchFilters: SearchFilterBase<string>[]): FormGroup;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<EntrySearchFilterComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntrySearchFilterComponent, "entry-search-filter", never, { "searchFilters": "searchFilters"; }, { "searchFilterChange": "searchFilterChange"; }, never, never>;
16
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./entry-search-filter.component";
3
+ import * as i2 from "./search-filter-input.component";
4
+ import * as i3 from "@angular/common";
5
+ import * as i4 from "@angular/forms";
6
+ import * as i5 from "@angular/material/input";
7
+ import * as i6 from "@angular/material/button";
8
+ import * as i7 from "@angular/material/list";
9
+ export declare class EntrySearchFilterModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<EntrySearchFilterModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EntrySearchFilterModule, [typeof i1.EntrySearchFilterComponent, typeof i2.EntrySearchFilterInputComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.MatInputModule, typeof i6.MatButtonModule, typeof i7.MatListModule], [typeof i1.EntrySearchFilterComponent]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<EntrySearchFilterModule>;
13
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "module": "../fesm2015/enigmatry-entry-components-entry-search-filter.mjs",
3
+ "es2020": "../fesm2020/enigmatry-entry-components-entry-search-filter.mjs",
4
+ "esm2020": "../esm2020/entry-search-filter/enigmatry-entry-components-entry-search-filter.mjs",
5
+ "fesm2020": "../fesm2020/enigmatry-entry-components-entry-search-filter.mjs",
6
+ "fesm2015": "../fesm2015/enigmatry-entry-components-entry-search-filter.mjs",
7
+ "typings": "enigmatry-entry-components-entry-search-filter.d.ts",
8
+ "sideEffects": false,
9
+ "name": "@enigmatry/entry-components/entry-search-filter"
10
+ }
@@ -0,0 +1,5 @@
1
+ export * from './entry-search-filter.module';
2
+ export * from './entry-search-filter.component';
3
+ export * from './search-filter-base';
4
+ export * from './search-filter-params';
5
+ export * from './search-filter-textbox';
@@ -0,0 +1,14 @@
1
+ import { FormControl } from '@angular/forms';
2
+ export declare class SearchFilterBase<T> {
3
+ key: string;
4
+ value: T | undefined;
5
+ label: string;
6
+ placeholder: string;
7
+ type: string;
8
+ order: number;
9
+ controlType: string;
10
+ maxLength: number;
11
+ formControl: FormControl;
12
+ constructor(options?: Partial<SearchFilterBase<T>>);
13
+ setValue(value: T | undefined): void;
14
+ }
@@ -0,0 +1,9 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { SearchFilterBase } from './search-filter-base';
3
+ import * as i0 from "@angular/core";
4
+ export declare class EntrySearchFilterInputComponent {
5
+ searchFilter: SearchFilterBase<string>;
6
+ form: FormGroup;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<EntrySearchFilterInputComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntrySearchFilterInputComponent, "entry-search-filter-input", never, { "searchFilter": "searchFilter"; "form": "form"; }, {}, never, never>;
9
+ }
@@ -0,0 +1,3 @@
1
+ export declare type SearchFilterParams = {
2
+ [key: string]: any;
3
+ };
@@ -0,0 +1,4 @@
1
+ import { SearchFilterBase } from './search-filter-base';
2
+ export declare class SearchFilterInput extends SearchFilterBase<string> {
3
+ controlType: string;
4
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5pZ21hdHJ5LWVudHJ5LWNvbXBvbmVudHMtZW50cnktc2VhcmNoLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VudHJ5LWNvbXBvbmVudHMvZW50cnktc2VhcmNoLWZpbHRlci9lbmlnbWF0cnktZW50cnktY29tcG9uZW50cy1lbnRyeS1zZWFyY2gtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormControl, FormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./search-filter-input.component";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/common";
7
+ export class EntrySearchFilterComponent {
8
+ constructor() {
9
+ this.searchFilters = [];
10
+ this.searchFilterChange = new EventEmitter();
11
+ }
12
+ ngOnInit() {
13
+ this.searchFilterForm = this.toFormGroup(this.searchFilters);
14
+ }
15
+ onSubmit() {
16
+ const formValue = this.searchFilterForm.value;
17
+ this.searchFilterChange.emit(formValue);
18
+ }
19
+ toFormGroup(searchFilters) {
20
+ const group = {};
21
+ searchFilters.forEach(searchFilter => {
22
+ const formControl = new FormControl(searchFilter.value || '');
23
+ group[searchFilter.key] = formControl;
24
+ searchFilter.formControl = formControl;
25
+ });
26
+ return new FormGroup(group);
27
+ }
28
+ }
29
+ EntrySearchFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ EntrySearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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\"\r\n [form]=\"searchFilterForm\"></entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">Apply</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"], components: [{ type: i1.EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: ["searchFilter", "form"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterComponent, decorators: [{
32
+ type: Component,
33
+ 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\"\r\n [form]=\"searchFilterForm\"></entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">Apply</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"] }]
34
+ }], ctorParameters: function () { return []; }, propDecorators: { searchFilters: [{
35
+ type: Input
36
+ }], searchFilterChange: [{
37
+ type: Output
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL2VudHJ5LXNlYXJjaC1maWx0ZXIvZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL2VudHJ5LXNlYXJjaC1maWx0ZXIvZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBVXhELE1BQU0sT0FBTywwQkFBMEI7SUFPckM7UUFMUyxrQkFBYSxHQUErQixFQUFFLENBQUM7UUFDOUMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7SUFJdEQsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXLENBQUMsYUFBeUM7UUFDbkQsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXRCLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5RCxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUN0QyxZQUFZLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7d0hBM0JVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLDhKQ1h2Qyx1bkJBWU07NEZERE8sMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzBFQUl0QyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNlYXJjaEZpbHRlckJhc2UgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItYmFzZSc7XHJcbmltcG9ydCB7IFNlYXJjaEZpbHRlclBhcmFtcyB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1wYXJhbXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlbnRyeS1zZWFyY2gtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbnRyeVNlYXJjaEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaEZpbHRlcnM6IFNlYXJjaEZpbHRlckJhc2U8c3RyaW5nPltdID0gW107XHJcbiAgQE91dHB1dCgpIHNlYXJjaEZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoRmlsdGVyUGFyYW1zPigpO1xyXG5cclxuICBzZWFyY2hGaWx0ZXJGb3JtITogRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2VhcmNoRmlsdGVyRm9ybSA9IHRoaXMudG9Gb3JtR3JvdXAodGhpcy5zZWFyY2hGaWx0ZXJzKTtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5zZWFyY2hGaWx0ZXJGb3JtLnZhbHVlO1xyXG4gICAgdGhpcy5zZWFyY2hGaWx0ZXJDaGFuZ2UuZW1pdChmb3JtVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdG9Gb3JtR3JvdXAoc2VhcmNoRmlsdGVyczogU2VhcmNoRmlsdGVyQmFzZTxzdHJpbmc+W10pIHtcclxuICAgIGNvbnN0IGdyb3VwOiBhbnkgPSB7fTtcclxuXHJcbiAgICBzZWFyY2hGaWx0ZXJzLmZvckVhY2goc2VhcmNoRmlsdGVyID0+IHtcclxuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woc2VhcmNoRmlsdGVyLnZhbHVlIHx8ICcnKTtcclxuICAgICAgZ3JvdXBbc2VhcmNoRmlsdGVyLmtleV0gPSBmb3JtQ29udHJvbDtcclxuICAgICAgc2VhcmNoRmlsdGVyLmZvcm1Db250cm9sID0gZm9ybUNvbnRyb2w7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGdyb3VwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlYXJjaC1mb3JtLWNvbnRhaW5lclwiPlxyXG4gICAgPGZvcm0gKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBbZm9ybUdyb3VwXT1cInNlYXJjaEZpbHRlckZvcm1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWZvcm0tZmllbGRzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlYXJjaEZpbHRlciBvZiBzZWFyY2hGaWx0ZXJzXCIgY2xhc3M9XCJzZWFyY2gtZm9ybS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGVudHJ5LXNlYXJjaC1maWx0ZXItaW5wdXQgW3NlYXJjaEZpbHRlcl09XCJzZWFyY2hGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cInNlYXJjaEZpbHRlckZvcm1cIj48L2VudHJ5LXNlYXJjaC1maWx0ZXItaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtYXQtcmFpc2VkLWJ1dHRvbiBtYXQtYWNjZW50XCIgdHlwZT1cInN1Ym1pdFwiPkFwcGx5PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,48 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatInputModule } from '@angular/material/input';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { MatListModule } from '@angular/material/list';
7
+ import { EntrySearchFilterComponent } from './entry-search-filter.component';
8
+ import { EntrySearchFilterInputComponent } from './search-filter-input.component';
9
+ import * as i0 from "@angular/core";
10
+ export class EntrySearchFilterModule {
11
+ }
12
+ EntrySearchFilterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ EntrySearchFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, declarations: [EntrySearchFilterComponent,
14
+ EntrySearchFilterInputComponent], imports: [CommonModule,
15
+ FormsModule,
16
+ ReactiveFormsModule,
17
+ MatInputModule,
18
+ MatButtonModule,
19
+ MatListModule], exports: [EntrySearchFilterComponent] });
20
+ EntrySearchFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, imports: [[
21
+ CommonModule,
22
+ FormsModule,
23
+ ReactiveFormsModule,
24
+ MatInputModule,
25
+ MatButtonModule,
26
+ MatListModule
27
+ ]] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ declarations: [
32
+ EntrySearchFilterComponent,
33
+ EntrySearchFilterInputComponent
34
+ ],
35
+ imports: [
36
+ CommonModule,
37
+ FormsModule,
38
+ ReactiveFormsModule,
39
+ MatInputModule,
40
+ MatButtonModule,
41
+ MatListModule
42
+ ],
43
+ exports: [
44
+ EntrySearchFilterComponent
45
+ ]
46
+ }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VhcmNoLWZpbHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL2VudHJ5LXNlYXJjaC1maWx0ZXIvZW50cnktc2VhcmNoLWZpbHRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQW1CbEYsTUFBTSxPQUFPLHVCQUF1Qjs7cUhBQXZCLHVCQUF1QjtzSEFBdkIsdUJBQXVCLGlCQWZoQywwQkFBMEI7UUFDMUIsK0JBQStCLGFBRy9CLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxlQUFlO1FBQ2YsYUFBYSxhQUdiLDBCQUEwQjtzSEFHakIsdUJBQXVCLFlBWnpCO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGVBQWU7WUFDZixhQUFhO1NBQ2Q7NEZBS1UsdUJBQXVCO2tCQWpCbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMEJBQTBCO3dCQUMxQiwrQkFBK0I7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5cclxuaW1wb3J0IHsgRW50cnlTZWFyY2hGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2VudHJ5LXNlYXJjaC1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50cnlTZWFyY2hGaWx0ZXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEVudHJ5U2VhcmNoRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgRW50cnlTZWFyY2hGaWx0ZXJJbnB1dENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBFbnRyeVNlYXJjaEZpbHRlckNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVudHJ5U2VhcmNoRmlsdGVyTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export * from './entry-search-filter.module';
2
+ export * from './entry-search-filter.component';
3
+ export * from './search-filter-base';
4
+ export * from './search-filter-params';
5
+ export * from './search-filter-textbox';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VudHJ5LWNvbXBvbmVudHMvZW50cnktc2VhcmNoLWZpbHRlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW50cnktc2VhcmNoLWZpbHRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnRyeS1zZWFyY2gtZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1maWx0ZXItYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1maWx0ZXItcGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZpbHRlci10ZXh0Ym94JztcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ export class SearchFilterBase {
2
+ constructor(options = {}) {
3
+ this.value = options.value;
4
+ this.key = options.key || '';
5
+ this.label = options.label || '';
6
+ this.placeholder = options.placeholder || '';
7
+ this.order = options.order === undefined ? 1 : options.order;
8
+ this.controlType = options.controlType || '';
9
+ this.type = options.type || '';
10
+ this.maxLength = options.maxLength || 256;
11
+ }
12
+ setValue(value) {
13
+ this.value = value;
14
+ if (this.formControl) {
15
+ this.formControl.patchValue(value);
16
+ }
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW50cnktY29tcG9uZW50cy9lbnRyeS1zZWFyY2gtZmlsdGVyL3NlYXJjaC1maWx0ZXItYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sZ0JBQWdCO0lBVzNCLFlBQVksVUFBd0MsRUFBRTtRQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDO0lBQzVDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBb0I7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoRmlsdGVyQmFzZTxUPiB7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWU6IFQgfCB1bmRlZmluZWQ7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBvcmRlcjogbnVtYmVyO1xyXG4gIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgbWF4TGVuZ3RoOiBudW1iZXI7XHJcbiAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPFNlYXJjaEZpbHRlckJhc2U8VD4+ID0ge30pIHtcclxuICAgIHRoaXMudmFsdWUgPSBvcHRpb25zLnZhbHVlO1xyXG4gICAgdGhpcy5rZXkgPSBvcHRpb25zLmtleSB8fCAnJztcclxuICAgIHRoaXMubGFiZWwgPSBvcHRpb25zLmxhYmVsIHx8ICcnO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IG9wdGlvbnMucGxhY2Vob2xkZXIgfHwgJyc7XHJcbiAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlciA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMub3JkZXI7XHJcbiAgICB0aGlzLmNvbnRyb2xUeXBlID0gb3B0aW9ucy5jb250cm9sVHlwZSB8fCAnJztcclxuICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnJztcclxuICAgIHRoaXMubWF4TGVuZ3RoID0gb3B0aW9ucy5tYXhMZW5ndGggfHwgMjU2O1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUodmFsdWU6IFQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/form-field";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@angular/material/input";
7
+ export class EntrySearchFilterInputComponent {
8
+ }
9
+ EntrySearchFilterInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ EntrySearchFilterInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: { searchFilter: "searchFilter", form: "form" }, ngImport: i0, template: "<mat-form-field [formGroup]=\"form\">\r\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\r\n\r\n <div [ngSwitch]=\"searchFilter.controlType\">\r\n\r\n <input *ngSwitchCase=\"'textbox'\" [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\r\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\r\n\r\n </div>\r\n</mat-form-field>", components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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"] }, { 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]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterInputComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'entry-search-filter-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [formGroup]=\"form\">\r\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\r\n\r\n <div [ngSwitch]=\"searchFilter.controlType\">\r\n\r\n <input *ngSwitchCase=\"'textbox'\" [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\r\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\r\n\r\n </div>\r\n</mat-form-field>" }]
14
+ }], propDecorators: { searchFilter: [{
15
+ type: Input
16
+ }], form: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL2VudHJ5LXNlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL2VudHJ5LXNlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUzFFLE1BQU0sT0FBTywrQkFBK0I7OzZIQUEvQiwrQkFBK0I7aUhBQS9CLCtCQUErQix5SENUNUMsdWNBU2lCOzRGREFKLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSwyQkFBMkIsbUJBRXBCLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJCYXNlIH0gZnJvbSAnLi9zZWFyY2gtZmlsdGVyLWJhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlbnRyeS1zZWFyY2gtZmlsdGVyLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEVudHJ5U2VhcmNoRmlsdGVySW5wdXRDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBzZWFyY2hGaWx0ZXIhOiBTZWFyY2hGaWx0ZXJCYXNlPHN0cmluZz47XHJcbiAgQElucHV0KCkgZm9ybSE6IEZvcm1Hcm91cDtcclxufVxyXG4iLCI8bWF0LWZvcm0tZmllbGQgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPG1hdC1sYWJlbCBbYXR0ci5mb3JdPVwic2VhcmNoRmlsdGVyLmtleVwiPnt7c2VhcmNoRmlsdGVyLmxhYmVsfX08L21hdC1sYWJlbD5cclxuXHJcbiAgPGRpdiBbbmdTd2l0Y2hdPVwic2VhcmNoRmlsdGVyLmNvbnRyb2xUeXBlXCI+XHJcblxyXG4gICAgPGlucHV0ICpuZ1N3aXRjaENhc2U9XCIndGV4dGJveCdcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInNlYXJjaEZpbHRlci5rZXlcIiBbaWRdPVwic2VhcmNoRmlsdGVyLmtleVwiXHJcbiAgICAgIFt0eXBlXT1cInNlYXJjaEZpbHRlci50eXBlXCIgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInNlYXJjaEZpbHRlci5wbGFjZWhvbGRlclwiIFttYXhsZW5ndGhdPVwic2VhcmNoRmlsdGVyLm1heExlbmd0aFwiPlxyXG5cclxuICA8L2Rpdj5cclxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1wYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL2VudHJ5LXNlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlclBhcmFtcyA9IHtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { SearchFilterBase } from './search-filter-base';
2
+ export class SearchFilterInput extends SearchFilterBase {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.controlType = 'textbox';
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci10ZXh0Ym94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW50cnktY29tcG9uZW50cy9lbnRyeS1zZWFyY2gtZmlsdGVyL3NlYXJjaC1maWx0ZXItdGV4dGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQXdCO0lBQS9EOztRQUNXLGdCQUFXLEdBQUcsU0FBUyxDQUFDO0lBQ25DLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlYXJjaEZpbHRlckJhc2UgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItYmFzZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoRmlsdGVySW5wdXQgZXh0ZW5kcyBTZWFyY2hGaWx0ZXJCYXNlPHN0cmluZz4ge1xyXG4gIG92ZXJyaWRlIGNvbnRyb2xUeXBlID0gJ3RleHRib3gnO1xyXG59XHJcbiJdfQ==
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from '@enigmatry/entry-components/entry-header';
5
5
  export * from '@enigmatry/entry-components/entry-dialog';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VudHJ5LWNvbXBvbmVudHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZW50cnktY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCAqIGZyb20gJ0BlbmlnbWF0cnkvZW50cnktY29tcG9uZW50cy9lbnRyeS1oZWFkZXInO1xuZXhwb3J0ICogZnJvbSAnQGVuaWdtYXRyeS9lbnRyeS1jb21wb25lbnRzL2VudHJ5LWRpYWxvZyc7XG4iXX0=
6
+ export * from '@enigmatry/entry-components/entry-search-filter';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VudHJ5LWNvbXBvbmVudHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBlbnRyeS1jb21wb25lbnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnQGVuaWdtYXRyeS9lbnRyeS1jb21wb25lbnRzL2VudHJ5LWhlYWRlcic7XG5leHBvcnQgKiBmcm9tICdAZW5pZ21hdHJ5L2VudHJ5LWNvbXBvbmVudHMvZW50cnktZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJ0BlbmlnbWF0cnkvZW50cnktY29tcG9uZW50cy9lbnRyeS1zZWFyY2gtZmlsdGVyJztcbiJdfQ==
@@ -0,0 +1,129 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output, NgModule } from '@angular/core';
3
+ import * as i3 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from '@angular/forms';
6
+ import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import * as i4 from '@angular/material/input';
8
+ import { MatInputModule } from '@angular/material/input';
9
+ import { MatButtonModule } from '@angular/material/button';
10
+ import { MatListModule } from '@angular/material/list';
11
+ import * as i1 from '@angular/material/form-field';
12
+
13
+ class EntrySearchFilterInputComponent {
14
+ }
15
+ EntrySearchFilterInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ EntrySearchFilterInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: { searchFilter: "searchFilter", form: "form" }, ngImport: i0, template: "<mat-form-field [formGroup]=\"form\">\r\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\r\n\r\n <div [ngSwitch]=\"searchFilter.controlType\">\r\n\r\n <input *ngSwitchCase=\"'textbox'\" [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\r\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\r\n\r\n </div>\r\n</mat-form-field>", components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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"] }, { 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]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterInputComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'entry-search-filter-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [formGroup]=\"form\">\r\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\r\n\r\n <div [ngSwitch]=\"searchFilter.controlType\">\r\n\r\n <input *ngSwitchCase=\"'textbox'\" [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\r\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\r\n\r\n </div>\r\n</mat-form-field>" }]
20
+ }], propDecorators: { searchFilter: [{
21
+ type: Input
22
+ }], form: [{
23
+ type: Input
24
+ }] } });
25
+
26
+ class EntrySearchFilterComponent {
27
+ constructor() {
28
+ this.searchFilters = [];
29
+ this.searchFilterChange = new EventEmitter();
30
+ }
31
+ ngOnInit() {
32
+ this.searchFilterForm = this.toFormGroup(this.searchFilters);
33
+ }
34
+ onSubmit() {
35
+ const formValue = this.searchFilterForm.value;
36
+ this.searchFilterChange.emit(formValue);
37
+ }
38
+ toFormGroup(searchFilters) {
39
+ const group = {};
40
+ searchFilters.forEach(searchFilter => {
41
+ const formControl = new FormControl(searchFilter.value || '');
42
+ group[searchFilter.key] = formControl;
43
+ searchFilter.formControl = formControl;
44
+ });
45
+ return new FormGroup(group);
46
+ }
47
+ }
48
+ EntrySearchFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
+ EntrySearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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\"\r\n [form]=\"searchFilterForm\"></entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">Apply</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"], components: [{ type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: ["searchFilter", "form"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterComponent, decorators: [{
51
+ type: Component,
52
+ 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\"\r\n [form]=\"searchFilterForm\"></entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">Apply</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"] }]
53
+ }], ctorParameters: function () { return []; }, propDecorators: { searchFilters: [{
54
+ type: Input
55
+ }], searchFilterChange: [{
56
+ type: Output
57
+ }] } });
58
+
59
+ class EntrySearchFilterModule {
60
+ }
61
+ EntrySearchFilterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
62
+ EntrySearchFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, declarations: [EntrySearchFilterComponent,
63
+ EntrySearchFilterInputComponent], imports: [CommonModule,
64
+ FormsModule,
65
+ ReactiveFormsModule,
66
+ MatInputModule,
67
+ MatButtonModule,
68
+ MatListModule], exports: [EntrySearchFilterComponent] });
69
+ EntrySearchFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, imports: [[
70
+ CommonModule,
71
+ FormsModule,
72
+ ReactiveFormsModule,
73
+ MatInputModule,
74
+ MatButtonModule,
75
+ MatListModule
76
+ ]] });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, decorators: [{
78
+ type: NgModule,
79
+ args: [{
80
+ declarations: [
81
+ EntrySearchFilterComponent,
82
+ EntrySearchFilterInputComponent
83
+ ],
84
+ imports: [
85
+ CommonModule,
86
+ FormsModule,
87
+ ReactiveFormsModule,
88
+ MatInputModule,
89
+ MatButtonModule,
90
+ MatListModule
91
+ ],
92
+ exports: [
93
+ EntrySearchFilterComponent
94
+ ]
95
+ }]
96
+ }] });
97
+
98
+ class SearchFilterBase {
99
+ constructor(options = {}) {
100
+ this.value = options.value;
101
+ this.key = options.key || '';
102
+ this.label = options.label || '';
103
+ this.placeholder = options.placeholder || '';
104
+ this.order = options.order === undefined ? 1 : options.order;
105
+ this.controlType = options.controlType || '';
106
+ this.type = options.type || '';
107
+ this.maxLength = options.maxLength || 256;
108
+ }
109
+ setValue(value) {
110
+ this.value = value;
111
+ if (this.formControl) {
112
+ this.formControl.patchValue(value);
113
+ }
114
+ }
115
+ }
116
+
117
+ class SearchFilterInput extends SearchFilterBase {
118
+ constructor() {
119
+ super(...arguments);
120
+ this.controlType = 'textbox';
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Generated bundle index. Do not edit.
126
+ */
127
+
128
+ export { EntrySearchFilterComponent, EntrySearchFilterModule, SearchFilterBase, SearchFilterInput };
129
+ //# sourceMappingURL=enigmatry-entry-components-entry-search-filter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enigmatry-entry-components-entry-search-filter.mjs","sources":["../../../../projects/entry-components/entry-search-filter/search-filter-input.component.ts","../../../../projects/entry-components/entry-search-filter/search-filter-input.component.html","../../../../projects/entry-components/entry-search-filter/entry-search-filter.component.ts","../../../../projects/entry-components/entry-search-filter/entry-search-filter.component.html","../../../../projects/entry-components/entry-search-filter/entry-search-filter.module.ts","../../../../projects/entry-components/entry-search-filter/search-filter-base.ts","../../../../projects/entry-components/entry-search-filter/search-filter-textbox.ts","../../../../projects/entry-components/entry-search-filter/enigmatry-entry-components-entry-search-filter.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { SearchFilterBase } from './search-filter-base';\r\n\r\n@Component({\r\n selector: 'entry-search-filter-input',\r\n templateUrl: './search-filter-input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EntrySearchFilterInputComponent {\r\n\r\n @Input() searchFilter!: SearchFilterBase<string>;\r\n @Input() form!: FormGroup;\r\n}\r\n","<mat-form-field [formGroup]=\"form\">\r\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\r\n\r\n <div [ngSwitch]=\"searchFilter.controlType\">\r\n\r\n <input *ngSwitchCase=\"'textbox'\" [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\r\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\r\n\r\n </div>\r\n</mat-form-field>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { SearchFilterBase } from './search-filter-base';\r\nimport { SearchFilterParams } from './search-filter-params';\r\n\r\n@Component({\r\n selector: 'entry-search-filter',\r\n templateUrl: './entry-search-filter.component.html',\r\n styleUrls: ['./entry-search-filter.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EntrySearchFilterComponent implements OnInit {\r\n\r\n @Input() searchFilters: SearchFilterBase<string>[] = [];\r\n @Output() searchFilterChange = new EventEmitter<SearchFilterParams>();\r\n\r\n searchFilterForm!: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.searchFilterForm = this.toFormGroup(this.searchFilters);\r\n }\r\n\r\n onSubmit() {\r\n const formValue = this.searchFilterForm.value;\r\n this.searchFilterChange.emit(formValue);\r\n }\r\n\r\n toFormGroup(searchFilters: SearchFilterBase<string>[]) {\r\n const group: any = {};\r\n\r\n searchFilters.forEach(searchFilter => {\r\n const formControl = new FormControl(searchFilter.value || '');\r\n group[searchFilter.key] = formControl;\r\n searchFilter.formControl = formControl;\r\n });\r\n return new FormGroup(group);\r\n }\r\n}\r\n","<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\"\r\n [form]=\"searchFilterForm\"></entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">Apply</button>\r\n </div>\r\n </div>\r\n </form>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\n\r\nimport { EntrySearchFilterComponent } from './entry-search-filter.component';\r\nimport { EntrySearchFilterInputComponent } from './search-filter-input.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n EntrySearchFilterComponent,\r\n EntrySearchFilterInputComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatListModule\r\n ],\r\n exports: [\r\n EntrySearchFilterComponent\r\n ]\r\n})\r\nexport class EntrySearchFilterModule { }\r\n","import { FormControl } from '@angular/forms';\r\n\r\nexport class SearchFilterBase<T> {\r\n key: string;\r\n value: T | undefined;\r\n label: string;\r\n placeholder: string;\r\n type: string;\r\n order: number;\r\n controlType: string;\r\n maxLength: number;\r\n formControl: FormControl;\r\n\r\n constructor(options: Partial<SearchFilterBase<T>> = {}) {\r\n this.value = options.value;\r\n this.key = options.key || '';\r\n this.label = options.label || '';\r\n this.placeholder = options.placeholder || '';\r\n this.order = options.order === undefined ? 1 : options.order;\r\n this.controlType = options.controlType || '';\r\n this.type = options.type || '';\r\n this.maxLength = options.maxLength || 256;\r\n }\r\n\r\n setValue(value: T | undefined) {\r\n this.value = value;\r\n if (this.formControl) {\r\n this.formControl.patchValue(value);\r\n }\r\n }\r\n}\r\n","import { SearchFilterBase } from './search-filter-base';\r\n\r\nexport class SearchFilterInput extends SearchFilterBase<string> {\r\n override controlType = 'textbox';\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntrySearchFilterInputComponent"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from '@enigmatry/entry-components/entry-header';
2
2
  export * from '@enigmatry/entry-components/entry-dialog';
3
+ export * from '@enigmatry/entry-components/entry-search-filter';
3
4
 
4
5
  /*
5
6
  * Public API Surface of entry-components
@@ -1 +1 @@
1
- {"version":3,"file":"enigmatry-entry-components.mjs","sources":["../../../../projects/entry-components/public-api.ts","../../../../projects/entry-components/enigmatry-entry-components.ts"],"sourcesContent":["/*\n * Public API Surface of entry-components\n */\n\nexport * from '@enigmatry/entry-components/entry-header';\nexport * from '@enigmatry/entry-components/entry-dialog';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAAA;;AAEG;;ACFH;;AAEG"}
1
+ {"version":3,"file":"enigmatry-entry-components.mjs","sources":["../../../../projects/entry-components/public-api.ts","../../../../projects/entry-components/enigmatry-entry-components.ts"],"sourcesContent":["/*\n * Public API Surface of entry-components\n */\n\nexport * from '@enigmatry/entry-components/entry-header';\nexport * from '@enigmatry/entry-components/entry-dialog';\nexport * from '@enigmatry/entry-components/entry-search-filter';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAA;;AAEG;;ACFH;;AAEG"}
@@ -0,0 +1,129 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output, NgModule } from '@angular/core';
3
+ import * as i3 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from '@angular/forms';
6
+ import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import * as i4 from '@angular/material/input';
8
+ import { MatInputModule } from '@angular/material/input';
9
+ import { MatButtonModule } from '@angular/material/button';
10
+ import { MatListModule } from '@angular/material/list';
11
+ import * as i1 from '@angular/material/form-field';
12
+
13
+ class EntrySearchFilterInputComponent {
14
+ }
15
+ EntrySearchFilterInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ EntrySearchFilterInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: { searchFilter: "searchFilter", form: "form" }, ngImport: i0, template: "<mat-form-field [formGroup]=\"form\">\r\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\r\n\r\n <div [ngSwitch]=\"searchFilter.controlType\">\r\n\r\n <input *ngSwitchCase=\"'textbox'\" [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\r\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\r\n\r\n </div>\r\n</mat-form-field>", components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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"] }, { 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]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterInputComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'entry-search-filter-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [formGroup]=\"form\">\r\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\r\n\r\n <div [ngSwitch]=\"searchFilter.controlType\">\r\n\r\n <input *ngSwitchCase=\"'textbox'\" [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\r\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\r\n\r\n </div>\r\n</mat-form-field>" }]
20
+ }], propDecorators: { searchFilter: [{
21
+ type: Input
22
+ }], form: [{
23
+ type: Input
24
+ }] } });
25
+
26
+ class EntrySearchFilterComponent {
27
+ constructor() {
28
+ this.searchFilters = [];
29
+ this.searchFilterChange = new EventEmitter();
30
+ }
31
+ ngOnInit() {
32
+ this.searchFilterForm = this.toFormGroup(this.searchFilters);
33
+ }
34
+ onSubmit() {
35
+ const formValue = this.searchFilterForm.value;
36
+ this.searchFilterChange.emit(formValue);
37
+ }
38
+ toFormGroup(searchFilters) {
39
+ const group = {};
40
+ searchFilters.forEach(searchFilter => {
41
+ const formControl = new FormControl(searchFilter.value || '');
42
+ group[searchFilter.key] = formControl;
43
+ searchFilter.formControl = formControl;
44
+ });
45
+ return new FormGroup(group);
46
+ }
47
+ }
48
+ EntrySearchFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
+ EntrySearchFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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\"\r\n [form]=\"searchFilterForm\"></entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">Apply</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"], components: [{ type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: ["searchFilter", "form"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterComponent, decorators: [{
51
+ type: Component,
52
+ 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\"\r\n [form]=\"searchFilterForm\"></entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">Apply</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"] }]
53
+ }], ctorParameters: function () { return []; }, propDecorators: { searchFilters: [{
54
+ type: Input
55
+ }], searchFilterChange: [{
56
+ type: Output
57
+ }] } });
58
+
59
+ class EntrySearchFilterModule {
60
+ }
61
+ EntrySearchFilterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
62
+ EntrySearchFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, declarations: [EntrySearchFilterComponent,
63
+ EntrySearchFilterInputComponent], imports: [CommonModule,
64
+ FormsModule,
65
+ ReactiveFormsModule,
66
+ MatInputModule,
67
+ MatButtonModule,
68
+ MatListModule], exports: [EntrySearchFilterComponent] });
69
+ EntrySearchFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, imports: [[
70
+ CommonModule,
71
+ FormsModule,
72
+ ReactiveFormsModule,
73
+ MatInputModule,
74
+ MatButtonModule,
75
+ MatListModule
76
+ ]] });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, decorators: [{
78
+ type: NgModule,
79
+ args: [{
80
+ declarations: [
81
+ EntrySearchFilterComponent,
82
+ EntrySearchFilterInputComponent
83
+ ],
84
+ imports: [
85
+ CommonModule,
86
+ FormsModule,
87
+ ReactiveFormsModule,
88
+ MatInputModule,
89
+ MatButtonModule,
90
+ MatListModule
91
+ ],
92
+ exports: [
93
+ EntrySearchFilterComponent
94
+ ]
95
+ }]
96
+ }] });
97
+
98
+ class SearchFilterBase {
99
+ constructor(options = {}) {
100
+ this.value = options.value;
101
+ this.key = options.key || '';
102
+ this.label = options.label || '';
103
+ this.placeholder = options.placeholder || '';
104
+ this.order = options.order === undefined ? 1 : options.order;
105
+ this.controlType = options.controlType || '';
106
+ this.type = options.type || '';
107
+ this.maxLength = options.maxLength || 256;
108
+ }
109
+ setValue(value) {
110
+ this.value = value;
111
+ if (this.formControl) {
112
+ this.formControl.patchValue(value);
113
+ }
114
+ }
115
+ }
116
+
117
+ class SearchFilterInput extends SearchFilterBase {
118
+ constructor() {
119
+ super(...arguments);
120
+ this.controlType = 'textbox';
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Generated bundle index. Do not edit.
126
+ */
127
+
128
+ export { EntrySearchFilterComponent, EntrySearchFilterModule, SearchFilterBase, SearchFilterInput };
129
+ //# sourceMappingURL=enigmatry-entry-components-entry-search-filter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enigmatry-entry-components-entry-search-filter.mjs","sources":["../../../../projects/entry-components/entry-search-filter/search-filter-input.component.ts","../../../../projects/entry-components/entry-search-filter/search-filter-input.component.html","../../../../projects/entry-components/entry-search-filter/entry-search-filter.component.ts","../../../../projects/entry-components/entry-search-filter/entry-search-filter.component.html","../../../../projects/entry-components/entry-search-filter/entry-search-filter.module.ts","../../../../projects/entry-components/entry-search-filter/search-filter-base.ts","../../../../projects/entry-components/entry-search-filter/search-filter-textbox.ts","../../../../projects/entry-components/entry-search-filter/enigmatry-entry-components-entry-search-filter.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { SearchFilterBase } from './search-filter-base';\r\n\r\n@Component({\r\n selector: 'entry-search-filter-input',\r\n templateUrl: './search-filter-input.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EntrySearchFilterInputComponent {\r\n\r\n @Input() searchFilter!: SearchFilterBase<string>;\r\n @Input() form!: FormGroup;\r\n}\r\n","<mat-form-field [formGroup]=\"form\">\r\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\r\n\r\n <div [ngSwitch]=\"searchFilter.controlType\">\r\n\r\n <input *ngSwitchCase=\"'textbox'\" [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\r\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\r\n\r\n </div>\r\n</mat-form-field>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { SearchFilterBase } from './search-filter-base';\r\nimport { SearchFilterParams } from './search-filter-params';\r\n\r\n@Component({\r\n selector: 'entry-search-filter',\r\n templateUrl: './entry-search-filter.component.html',\r\n styleUrls: ['./entry-search-filter.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EntrySearchFilterComponent implements OnInit {\r\n\r\n @Input() searchFilters: SearchFilterBase<string>[] = [];\r\n @Output() searchFilterChange = new EventEmitter<SearchFilterParams>();\r\n\r\n searchFilterForm!: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.searchFilterForm = this.toFormGroup(this.searchFilters);\r\n }\r\n\r\n onSubmit() {\r\n const formValue = this.searchFilterForm.value;\r\n this.searchFilterChange.emit(formValue);\r\n }\r\n\r\n toFormGroup(searchFilters: SearchFilterBase<string>[]) {\r\n const group: any = {};\r\n\r\n searchFilters.forEach(searchFilter => {\r\n const formControl = new FormControl(searchFilter.value || '');\r\n group[searchFilter.key] = formControl;\r\n searchFilter.formControl = formControl;\r\n });\r\n return new FormGroup(group);\r\n }\r\n}\r\n","<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\"\r\n [form]=\"searchFilterForm\"></entry-search-filter-input>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"mat-raised-button mat-accent\" type=\"submit\">Apply</button>\r\n </div>\r\n </div>\r\n </form>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\n\r\nimport { EntrySearchFilterComponent } from './entry-search-filter.component';\r\nimport { EntrySearchFilterInputComponent } from './search-filter-input.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n EntrySearchFilterComponent,\r\n EntrySearchFilterInputComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatListModule\r\n ],\r\n exports: [\r\n EntrySearchFilterComponent\r\n ]\r\n})\r\nexport class EntrySearchFilterModule { }\r\n","import { FormControl } from '@angular/forms';\r\n\r\nexport class SearchFilterBase<T> {\r\n key: string;\r\n value: T | undefined;\r\n label: string;\r\n placeholder: string;\r\n type: string;\r\n order: number;\r\n controlType: string;\r\n maxLength: number;\r\n formControl: FormControl;\r\n\r\n constructor(options: Partial<SearchFilterBase<T>> = {}) {\r\n this.value = options.value;\r\n this.key = options.key || '';\r\n this.label = options.label || '';\r\n this.placeholder = options.placeholder || '';\r\n this.order = options.order === undefined ? 1 : options.order;\r\n this.controlType = options.controlType || '';\r\n this.type = options.type || '';\r\n this.maxLength = options.maxLength || 256;\r\n }\r\n\r\n setValue(value: T | undefined) {\r\n this.value = value;\r\n if (this.formControl) {\r\n this.formControl.patchValue(value);\r\n }\r\n }\r\n}\r\n","import { SearchFilterBase } from './search-filter-base';\r\n\r\nexport class SearchFilterInput extends SearchFilterBase<string> {\r\n override controlType = 'textbox';\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntrySearchFilterInputComponent"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from '@enigmatry/entry-components/entry-header';
2
2
  export * from '@enigmatry/entry-components/entry-dialog';
3
+ export * from '@enigmatry/entry-components/entry-search-filter';
3
4
 
4
5
  /*
5
6
  * Public API Surface of entry-components
@@ -1 +1 @@
1
- {"version":3,"file":"enigmatry-entry-components.mjs","sources":["../../../../projects/entry-components/public-api.ts","../../../../projects/entry-components/enigmatry-entry-components.ts"],"sourcesContent":["/*\n * Public API Surface of entry-components\n */\n\nexport * from '@enigmatry/entry-components/entry-header';\nexport * from '@enigmatry/entry-components/entry-dialog';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAAA;;AAEG;;ACFH;;AAEG"}
1
+ {"version":3,"file":"enigmatry-entry-components.mjs","sources":["../../../../projects/entry-components/public-api.ts","../../../../projects/entry-components/enigmatry-entry-components.ts"],"sourcesContent":["/*\n * Public API Surface of entry-components\n */\n\nexport * from '@enigmatry/entry-components/entry-header';\nexport * from '@enigmatry/entry-components/entry-dialog';\nexport * from '@enigmatry/entry-components/entry-search-filter';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAA;;AAEG;;ACFH;;AAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enigmatry/entry-components",
3
- "version": "1.2.50",
3
+ "version": "1.2.52",
4
4
  "author": "Enigmatry",
5
5
  "description": "Enigmatry entry angular material components",
6
6
  "homepage": "https://github.com/enigmatry/entry-angular-building-blocks/tree/master/projects/entry-components#readme",
@@ -55,6 +55,14 @@
55
55
  "es2015": "./fesm2015/enigmatry-entry-components-entry-header.mjs",
56
56
  "node": "./fesm2015/enigmatry-entry-components-entry-header.mjs",
57
57
  "default": "./fesm2020/enigmatry-entry-components-entry-header.mjs"
58
+ },
59
+ "./entry-search-filter": {
60
+ "types": "./entry-search-filter/enigmatry-entry-components-entry-search-filter.d.ts",
61
+ "esm2020": "./esm2020/entry-search-filter/enigmatry-entry-components-entry-search-filter.mjs",
62
+ "es2020": "./fesm2020/enigmatry-entry-components-entry-search-filter.mjs",
63
+ "es2015": "./fesm2015/enigmatry-entry-components-entry-search-filter.mjs",
64
+ "node": "./fesm2015/enigmatry-entry-components-entry-search-filter.mjs",
65
+ "default": "./fesm2020/enigmatry-entry-components-entry-search-filter.mjs"
58
66
  }
59
67
  },
60
68
  "sideEffects": false
package/public-api.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from '@enigmatry/entry-components/entry-header';
2
2
  export * from '@enigmatry/entry-components/entry-dialog';
3
+ export * from '@enigmatry/entry-components/entry-search-filter';