@enigmatry/entry-components 1.2.69 → 1.2.70
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/esm2020/search-filter/entry-search-filter.component.mjs +8 -1
- package/esm2020/search-filter/public-api.mjs +6 -7
- package/esm2020/search-filter/search-filter-base.mjs +4 -1
- package/esm2020/search-filter/search-filter-config.model.mjs +4 -1
- package/esm2020/search-filter/search-filter-input.component.mjs +1 -1
- package/esm2020/search-filter/search-filter-params.mjs +1 -1
- package/fesm2015/enigmatry-entry-components-search-filter.mjs +42 -29
- package/fesm2015/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/fesm2020/enigmatry-entry-components-search-filter.mjs +42 -29
- package/fesm2020/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/package.json +1 -1
- package/search-filter/README.md +0 -11
- package/search-filter/entry-search-filter.component.d.ts +7 -0
- package/search-filter/public-api.d.ts +6 -6
- package/search-filter/search-filter-base.d.ts +10 -0
- package/search-filter/search-filter-config.model.d.ts +4 -0
- package/search-filter/search-filter-input.component.d.ts +2 -0
- package/search-filter/search-filter-params.d.ts +4 -0
|
@@ -6,10 +6,17 @@ import * as i1 from "./search-filter-input.component";
|
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
7
7
|
import * as i3 from "@angular/common";
|
|
8
8
|
import * as i4 from "./search-filter-config.model";
|
|
9
|
+
/**
|
|
10
|
+
* Entry SearchFilter component.
|
|
11
|
+
*/
|
|
9
12
|
export class EntrySearchFilterComponent {
|
|
10
13
|
constructor(config) {
|
|
11
14
|
this.config = config;
|
|
15
|
+
/** Configuration of the search filters inputs that will be displayed in the search-filter component. */
|
|
12
16
|
this.searchFilters = [];
|
|
17
|
+
/**
|
|
18
|
+
* Emits the change in SearchFilterParams so the containing component can apply them and retreive the filtered results.
|
|
19
|
+
*/
|
|
13
20
|
this.searchFilterChange = new EventEmitter();
|
|
14
21
|
}
|
|
15
22
|
ngOnInit() {
|
|
@@ -42,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
42
49
|
}], searchFilterChange: [{
|
|
43
50
|
type: Output
|
|
44
51
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSwwQkFBMEIsRUFBMkIsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBRW5HOztHQUVHO0FBT0gsTUFBTSxPQUFPLDBCQUEwQjtJQVdyQyxZQUF1RCxNQUErQjtRQUEvQixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQVR0Rix3R0FBd0c7UUFDL0Ysa0JBQWEsR0FBK0IsRUFBRSxDQUFDO1FBQ3hEOztXQUVHO1FBQ08sdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7SUFJb0IsQ0FBQztJQUUzRixRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXLENBQUMsYUFBeUM7UUFDbkQsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXRCLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5RCxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUN0QyxZQUFZLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7d0hBL0JVLDBCQUEwQixrQkFXakIsMEJBQTBCOzRHQVhuQywwQkFBMEIsOEpDZnZDLDRvQkFZTTs0RkRHTywwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OzBCQWFsQyxNQUFNOzJCQUFDLDBCQUEwQjs0Q0FSckMsYUFBYTtzQkFBckIsS0FBSztnQkFJSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNlYXJjaEZpbHRlckJhc2UgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItYmFzZSc7XHJcbmltcG9ydCB7IFNlYXJjaEZpbHRlclBhcmFtcyB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1wYXJhbXMnO1xyXG5pbXBvcnQgeyBFTlRSWV9TRUFSQ0hfRklMVEVSX0NPTkZJRywgRW50cnlTZWFyY2hGaWx0ZXJDb25maWcgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItY29uZmlnLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBFbnRyeSBTZWFyY2hGaWx0ZXIgY29tcG9uZW50LlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlbnRyeS1zZWFyY2gtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZW50cnktc2VhcmNoLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbnRyeVNlYXJjaEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8qKiBDb25maWd1cmF0aW9uIG9mIHRoZSBzZWFyY2ggZmlsdGVycyBpbnB1dHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgc2VhcmNoLWZpbHRlciBjb21wb25lbnQuICovXHJcbiAgQElucHV0KCkgc2VhcmNoRmlsdGVyczogU2VhcmNoRmlsdGVyQmFzZTxzdHJpbmc+W10gPSBbXTtcclxuICAvKipcclxuICAgKiBFbWl0cyB0aGUgY2hhbmdlIGluIFNlYXJjaEZpbHRlclBhcmFtcyBzbyB0aGUgY29udGFpbmluZyBjb21wb25lbnQgY2FuIGFwcGx5IHRoZW0gYW5kIHJldHJlaXZlIHRoZSBmaWx0ZXJlZCByZXN1bHRzLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hGaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaEZpbHRlclBhcmFtcz4oKTtcclxuXHJcbiAgc2VhcmNoRmlsdGVyRm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChFTlRSWV9TRUFSQ0hfRklMVEVSX0NPTkZJRykgcHVibGljIGNvbmZpZzogRW50cnlTZWFyY2hGaWx0ZXJDb25maWcpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2VhcmNoRmlsdGVyRm9ybSA9IHRoaXMudG9Gb3JtR3JvdXAodGhpcy5zZWFyY2hGaWx0ZXJzKTtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5zZWFyY2hGaWx0ZXJGb3JtLnZhbHVlO1xyXG4gICAgdGhpcy5zZWFyY2hGaWx0ZXJDaGFuZ2UuZW1pdChmb3JtVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdG9Gb3JtR3JvdXAoc2VhcmNoRmlsdGVyczogU2VhcmNoRmlsdGVyQmFzZTxzdHJpbmc+W10pIHtcclxuICAgIGNvbnN0IGdyb3VwOiBhbnkgPSB7fTtcclxuXHJcbiAgICBzZWFyY2hGaWx0ZXJzLmZvckVhY2goc2VhcmNoRmlsdGVyID0+IHtcclxuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woc2VhcmNoRmlsdGVyLnZhbHVlIHx8ICcnKTtcclxuICAgICAgZ3JvdXBbc2VhcmNoRmlsdGVyLmtleV0gPSBmb3JtQ29udHJvbDtcclxuICAgICAgc2VhcmNoRmlsdGVyLmZvcm1Db250cm9sID0gZm9ybUNvbnRyb2w7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGdyb3VwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlYXJjaC1mb3JtLWNvbnRhaW5lclwiPlxyXG4gICAgPGZvcm0gKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBbZm9ybUdyb3VwXT1cInNlYXJjaEZpbHRlckZvcm1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWZvcm0tZmllbGRzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlYXJjaEZpbHRlciBvZiBzZWFyY2hGaWx0ZXJzXCIgY2xhc3M9XCJzZWFyY2gtZm9ybS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGVudHJ5LXNlYXJjaC1maWx0ZXItaW5wdXQgW3NlYXJjaEZpbHRlcl09XCJzZWFyY2hGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cInNlYXJjaEZpbHRlckZvcm1cIj48L2VudHJ5LXNlYXJjaC1maWx0ZXItaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtYXQtcmFpc2VkLWJ1dHRvbiBtYXQtYWNjZW50XCIgdHlwZT1cInN1Ym1pdFwiPnt7Y29uZmlnLmFwcGx5QnV0dG9uVGV4dH19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG48L2Rpdj4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnRyeS1zZWFyY2gtZmlsdGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2VudHJ5LXNlYXJjaC1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZpbHRlci1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZpbHRlci1wYXJhbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtZmlsdGVyLXRleHRib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtZmlsdGVyLWNvbmZpZy5tb2RlbCc7XG4iXX0=
|
|
1
|
+
export { EntrySearchFilterComponent } from './entry-search-filter.component';
|
|
2
|
+
export { SearchFilterBase } from './search-filter-base';
|
|
3
|
+
export { SearchFilterInput } from './search-filter-textbox';
|
|
4
|
+
export { EntrySearchFilterModule } from './entry-search-filter.module';
|
|
5
|
+
export { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterConfig } from './search-filter-config.model';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXZFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRW50cnlTZWFyY2hGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2VudHJ5LXNlYXJjaC1maWx0ZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHsgU2VhcmNoRmlsdGVyUGFyYW1zIH0gZnJvbSAnLi9zZWFyY2gtZmlsdGVyLXBhcmFtcyc7XG5leHBvcnQgeyBTZWFyY2hGaWx0ZXJCYXNlIH0gZnJvbSAnLi9zZWFyY2gtZmlsdGVyLWJhc2UnO1xuZXhwb3J0IHsgU2VhcmNoRmlsdGVySW5wdXQgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItdGV4dGJveCc7XG5cbmV4cG9ydCB7IEVudHJ5U2VhcmNoRmlsdGVyTW9kdWxlIH0gZnJvbSAnLi9lbnRyeS1zZWFyY2gtZmlsdGVyLm1vZHVsZSc7XG5cbmV4cG9ydCB7IEVOVFJZX1NFQVJDSF9GSUxURVJfQ09ORklHLCBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZyB9IGZyb20gJy4vc2VhcmNoLWZpbHRlci1jb25maWcubW9kZWwnO1xuIl19
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Entry search filter input component.
|
|
3
|
+
*/
|
|
1
4
|
export class SearchFilterBase {
|
|
2
5
|
constructor(options = {}) {
|
|
3
6
|
this.value = options.value;
|
|
@@ -16,4 +19,4 @@ export class SearchFilterBase {
|
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW50cnktY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyL3NlYXJjaC1maWx0ZXItYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFrQjNCLFlBQVksVUFBd0MsRUFBRTtRQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDO0lBQzVDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBb0I7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogQmFzZSBFbnRyeSBzZWFyY2ggZmlsdGVyIGlucHV0IGNvbXBvbmVudC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWx0ZXJCYXNlPFQ+IHtcclxuICAvKiogVW5pcXVlIHNlYXJjaC1maWx0ZXIgaW5wdXQga2V5ICovXHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgLyoqIERlZmF1bHQgdmFsdWUgdG8gYmUgZGlzcGxheWVkL3NlbGVjdGVkIGluIHRoZSBpbnB1dCBjb250cm9sICovXHJcbiAgdmFsdWU6IFQgfCB1bmRlZmluZWQ7XHJcbiAgLyoqIERlZmF1bHQgKi9cclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIC8qKiBMYWJlbCB0ZXh0IHRvIGJlIGRpc3BsYXllZCBmb3IgdGhlIHNlYXJjaC1maWx0ZXIgaW5wdXQgY29udHJvbCAqL1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgaW5wdXQgY29udHJvbCBlLmcuICdlbWFpbCcgKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgb3JkZXI6IG51bWJlcjtcclxuICAvKiogQ29udHJvbCB0eXBlIHRvIGJlIG92ZXJyaWRlbiBpbiBpbXBsZW1lbnRpbmcgY2xhc3MsIHVzZWQgdG8gcmVuZGVyIHRoZSBwcm9wZXIgaW5wdXQgdHlwZSBlLmcuICd0ZXh0Ym94JyAqL1xyXG4gIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgLyoqIE1heCB0ZXh0IGxlbmd0aCB0byBiZSBlbnRlcmQgaW4gdGhlIGlucHV0IGNvbXBvbmVudCAoZGVmYXVsdCBpcyAyNTYpICovXHJcbiAgbWF4TGVuZ3RoOiBudW1iZXI7XHJcbiAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPFNlYXJjaEZpbHRlckJhc2U8VD4+ID0ge30pIHtcclxuICAgIHRoaXMudmFsdWUgPSBvcHRpb25zLnZhbHVlO1xyXG4gICAgdGhpcy5rZXkgPSBvcHRpb25zLmtleSB8fCAnJztcclxuICAgIHRoaXMubGFiZWwgPSBvcHRpb25zLmxhYmVsIHx8ICcnO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IG9wdGlvbnMucGxhY2Vob2xkZXIgfHwgJyc7XHJcbiAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlciA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMub3JkZXI7XHJcbiAgICB0aGlzLmNvbnRyb2xUeXBlID0gb3B0aW9ucy5jb250cm9sVHlwZSB8fCAnJztcclxuICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnJztcclxuICAgIHRoaXMubWF4TGVuZ3RoID0gb3B0aW9ucy5tYXhMZW5ndGggfHwgMjU2O1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUodmFsdWU6IFQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Used to provide default configurations on module level.
|
|
4
|
+
*/
|
|
2
5
|
export class EntrySearchFilterConfig {
|
|
3
6
|
constructor(config = {}) {
|
|
4
7
|
this.applyButtonText = config.applyButtonText ?? 'Apply';
|
|
@@ -8,4 +11,4 @@ export const ENTRY_SEARCH_FILTER_CONFIG = new InjectionToken('EntrySearchFilterC
|
|
|
8
11
|
providedIn: 'root',
|
|
9
12
|
factory: () => new EntrySearchFilterConfig()
|
|
10
13
|
});
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1jb25maWcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFJaEMsWUFBWSxTQUEyQyxFQUFFO1FBQ3JELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUM7SUFDN0QsQ0FBQztDQUNKO0FBQ0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQTBCLHlCQUF5QixFQUMzRztJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHVCQUF1QixFQUFFO0NBQy9DLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVXNlZCB0byBwcm92aWRlIGRlZmF1bHQgY29uZmlndXJhdGlvbnMgb24gbW9kdWxlIGxldmVsLlxuICovXG5leHBvcnQgY2xhc3MgRW50cnlTZWFyY2hGaWx0ZXJDb25maWcge1xuICAgIC8qKiBBcHBseSBzZWFyY2ggZmlsdGVycyBidXR0b24gbGFiZWwgKGRlZmF1bHQgJ0FwcGx5JykgKi9cbiAgICBhcHBseUJ1dHRvblRleHQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogUGFydGlhbDxFbnRyeVNlYXJjaEZpbHRlckNvbmZpZz4gPSB7fSkge1xuICAgICAgICB0aGlzLmFwcGx5QnV0dG9uVGV4dCA9IGNvbmZpZy5hcHBseUJ1dHRvblRleHQgPz8gJ0FwcGx5JztcbiAgICB9XG59XG5leHBvcnQgY29uc3QgRU5UUllfU0VBUkNIX0ZJTFRFUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48RW50cnlTZWFyY2hGaWx0ZXJDb25maWc+KCdFbnRyeVNlYXJjaEZpbHRlckNvbmZpZycsXG4gICAge1xuICAgICAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IG5ldyBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZygpXG4gICAgfVxuKTtcbiJdfQ==
|
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
16
16
|
}], form: [{
|
|
17
17
|
type: Input
|
|
18
18
|
}] } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUzFFLE1BQU0sT0FBTywrQkFBK0I7OzZIQUEvQiwrQkFBK0I7aUhBQS9CLCtCQUErQix5SENUNUMsdWNBU2lCOzRGREFKLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSwyQkFBMkIsbUJBRXBCLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJCYXNlIH0gZnJvbSAnLi9zZWFyY2gtZmlsdGVyLWJhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlbnRyeS1zZWFyY2gtZmlsdGVyLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEVudHJ5U2VhcmNoRmlsdGVySW5wdXRDb21wb25lbnQge1xyXG4gIC8qKiBDb25maWd1cmF0aW9uIG9mIHRoZSBzZWFyY2ggZmlsdGVycyBpbnB1dHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgc2VhcmNoLWZpbHRlciBjb21wb25lbnQuICovXHJcbiAgQElucHV0KCkgc2VhcmNoRmlsdGVyITogU2VhcmNoRmlsdGVyQmFzZTxzdHJpbmc+O1xyXG4gIC8qKiBGb3JtIGdyb3VwIHRvIHdoaWNoIHRoZSBzZWFyY2gtZmlsdGVyIGlucHV0IGNvbXBvbmVudCB3aWxsIGJlIGFkZGVkLiAqL1xyXG4gIEBJbnB1dCgpIGZvcm0hOiBGb3JtR3JvdXA7XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxtYXQtbGFiZWwgW2F0dHIuZm9yXT1cInNlYXJjaEZpbHRlci5rZXlcIj57e3NlYXJjaEZpbHRlci5sYWJlbH19PC9tYXQtbGFiZWw+XHJcblxyXG4gIDxkaXYgW25nU3dpdGNoXT1cInNlYXJjaEZpbHRlci5jb250cm9sVHlwZVwiPlxyXG5cclxuICAgIDxpbnB1dCAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRib3gnXCIgW2Zvcm1Db250cm9sTmFtZV09XCJzZWFyY2hGaWx0ZXIua2V5XCIgW2lkXT1cInNlYXJjaEZpbHRlci5rZXlcIlxyXG4gICAgICBbdHlwZV09XCJzZWFyY2hGaWx0ZXIudHlwZVwiIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJzZWFyY2hGaWx0ZXIucGxhY2Vob2xkZXJcIiBbbWF4bGVuZ3RoXT1cInNlYXJjaEZpbHRlci5tYXhMZW5ndGhcIj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvbWF0LWZvcm0tZmllbGQ+Il19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1wYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBTZWFyY2hGaWx0ZXJQYXJhbXMgYXJlIHRoZSBzYW1lIHR5cGUgYXMgQGFuZ3VsYXIvcm91dGVyIHR5cGUgUGFyYW1zLFxyXG4gKiBjb250YWluaW5nIGEgY29sbGVjdGlvbiBvZiBxdWVyeSBVUkwgcGFyYW1ldGVycyBmb3IgZWFzeSBpbnRlZ3JhdGlvbi5cclxuICovXHJcbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlclBhcmFtcyA9IHtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn07XHJcbiJdfQ==
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Component, ChangeDetectionStrategy, Input, EventEmitter, Inject, Output, NgModule } from '@angular/core';
|
|
3
|
-
import * as i3 from '@angular/common';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
3
|
import * as i2 from '@angular/forms';
|
|
6
4
|
import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import * as i1 from '@angular/material/form-field';
|
|
6
|
+
import * as i3 from '@angular/common';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
7
8
|
import * as i4 from '@angular/material/input';
|
|
8
9
|
import { MatInputModule } from '@angular/material/input';
|
|
9
10
|
import { MatButtonModule } from '@angular/material/button';
|
|
10
11
|
import { MatListModule } from '@angular/material/list';
|
|
11
|
-
import * as i1 from '@angular/material/form-field';
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Used to provide default configurations on module level.
|
|
15
|
+
*/
|
|
13
16
|
class EntrySearchFilterConfig {
|
|
14
17
|
constructor(config = {}) {
|
|
15
18
|
var _a;
|
|
@@ -34,10 +37,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
34
37
|
type: Input
|
|
35
38
|
}] } });
|
|
36
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Entry SearchFilter component.
|
|
42
|
+
*/
|
|
37
43
|
class EntrySearchFilterComponent {
|
|
38
44
|
constructor(config) {
|
|
39
45
|
this.config = config;
|
|
46
|
+
/** Configuration of the search filters inputs that will be displayed in the search-filter component. */
|
|
40
47
|
this.searchFilters = [];
|
|
48
|
+
/**
|
|
49
|
+
* Emits the change in SearchFilterParams so the containing component can apply them and retreive the filtered results.
|
|
50
|
+
*/
|
|
41
51
|
this.searchFilterChange = new EventEmitter();
|
|
42
52
|
}
|
|
43
53
|
ngOnInit() {
|
|
@@ -73,6 +83,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
73
83
|
type: Output
|
|
74
84
|
}] } });
|
|
75
85
|
|
|
86
|
+
/**
|
|
87
|
+
* Base Entry search filter input component.
|
|
88
|
+
*/
|
|
89
|
+
class SearchFilterBase {
|
|
90
|
+
constructor(options = {}) {
|
|
91
|
+
this.value = options.value;
|
|
92
|
+
this.key = options.key || '';
|
|
93
|
+
this.label = options.label || '';
|
|
94
|
+
this.placeholder = options.placeholder || '';
|
|
95
|
+
this.order = options.order === undefined ? 1 : options.order;
|
|
96
|
+
this.controlType = options.controlType || '';
|
|
97
|
+
this.type = options.type || '';
|
|
98
|
+
this.maxLength = options.maxLength || 256;
|
|
99
|
+
}
|
|
100
|
+
setValue(value) {
|
|
101
|
+
this.value = value;
|
|
102
|
+
if (this.formControl) {
|
|
103
|
+
this.formControl.patchValue(value);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
class SearchFilterInput extends SearchFilterBase {
|
|
109
|
+
constructor() {
|
|
110
|
+
super(...arguments);
|
|
111
|
+
this.controlType = 'textbox';
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
76
115
|
class EntrySearchFilterModule {
|
|
77
116
|
}
|
|
78
117
|
EntrySearchFilterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -112,32 +151,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
112
151
|
}]
|
|
113
152
|
}] });
|
|
114
153
|
|
|
115
|
-
class SearchFilterBase {
|
|
116
|
-
constructor(options = {}) {
|
|
117
|
-
this.value = options.value;
|
|
118
|
-
this.key = options.key || '';
|
|
119
|
-
this.label = options.label || '';
|
|
120
|
-
this.placeholder = options.placeholder || '';
|
|
121
|
-
this.order = options.order === undefined ? 1 : options.order;
|
|
122
|
-
this.controlType = options.controlType || '';
|
|
123
|
-
this.type = options.type || '';
|
|
124
|
-
this.maxLength = options.maxLength || 256;
|
|
125
|
-
}
|
|
126
|
-
setValue(value) {
|
|
127
|
-
this.value = value;
|
|
128
|
-
if (this.formControl) {
|
|
129
|
-
this.formControl.patchValue(value);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
class SearchFilterInput extends SearchFilterBase {
|
|
135
|
-
constructor() {
|
|
136
|
-
super(...arguments);
|
|
137
|
-
this.controlType = 'textbox';
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
154
|
/**
|
|
142
155
|
* Generated bundle index. Do not edit.
|
|
143
156
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enigmatry-entry-components-search-filter.mjs","sources":["../../../../projects/entry-components/search-filter/search-filter-config.model.ts","../../../../projects/entry-components/search-filter/search-filter-input.component.ts","../../../../projects/entry-components/search-filter/search-filter-input.component.html","../../../../projects/entry-components/search-filter/entry-search-filter.component.ts","../../../../projects/entry-components/search-filter/entry-search-filter.component.html","../../../../projects/entry-components/search-filter/entry-search-filter.module.ts","../../../../projects/entry-components/search-filter/search-filter-base.ts","../../../../projects/entry-components/search-filter/search-filter-textbox.ts","../../../../projects/entry-components/search-filter/enigmatry-entry-components-search-filter.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport class EntrySearchFilterConfig {\n applyButtonText: string;\n\n constructor(config: Partial<EntrySearchFilterConfig> = {}) {\n this.applyButtonText = config.applyButtonText ?? 'Apply';\n }\n}\nexport const ENTRY_SEARCH_FILTER_CONFIG = new InjectionToken<EntrySearchFilterConfig>('EntrySearchFilterConfig',\n {\n providedIn: 'root',\n factory: () => new EntrySearchFilterConfig()\n }\n);\n","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, Inject, 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\nimport { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterConfig } from './search-filter-config.model';\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(@Inject(ENTRY_SEARCH_FILTER_CONFIG) public config: EntrySearchFilterConfig) { }\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\">{{config.applyButtonText}}</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
|
+
{"version":3,"file":"enigmatry-entry-components-search-filter.mjs","sources":["../../../../projects/entry-components/search-filter/search-filter-config.model.ts","../../../../projects/entry-components/search-filter/search-filter-input.component.ts","../../../../projects/entry-components/search-filter/search-filter-input.component.html","../../../../projects/entry-components/search-filter/entry-search-filter.component.ts","../../../../projects/entry-components/search-filter/entry-search-filter.component.html","../../../../projects/entry-components/search-filter/search-filter-base.ts","../../../../projects/entry-components/search-filter/search-filter-textbox.ts","../../../../projects/entry-components/search-filter/entry-search-filter.module.ts","../../../../projects/entry-components/search-filter/enigmatry-entry-components-search-filter.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Used to provide default configurations on module level.\n */\nexport class EntrySearchFilterConfig {\n /** Apply search filters button label (default 'Apply') */\n applyButtonText: string;\n\n constructor(config: Partial<EntrySearchFilterConfig> = {}) {\n this.applyButtonText = config.applyButtonText ?? 'Apply';\n }\n}\nexport const ENTRY_SEARCH_FILTER_CONFIG = new InjectionToken<EntrySearchFilterConfig>('EntrySearchFilterConfig',\n {\n providedIn: 'root',\n factory: () => new EntrySearchFilterConfig()\n }\n);\n","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 /** Configuration of the search filters inputs that will be displayed in the search-filter component. */\r\n @Input() searchFilter!: SearchFilterBase<string>;\r\n /** Form group to which the search-filter input component will be added. */\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, Inject, 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\nimport { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterConfig } from './search-filter-config.model';\r\n\r\n/**\r\n * Entry SearchFilter component.\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 /** Configuration of the search filters inputs that will be displayed in the search-filter component. */\r\n @Input() searchFilters: SearchFilterBase<string>[] = [];\r\n /**\r\n * Emits the change in SearchFilterParams so the containing component can apply them and retreive the filtered results.\r\n */\r\n @Output() searchFilterChange = new EventEmitter<SearchFilterParams>();\r\n\r\n searchFilterForm!: FormGroup;\r\n\r\n constructor(@Inject(ENTRY_SEARCH_FILTER_CONFIG) public config: EntrySearchFilterConfig) { }\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\">{{config.applyButtonText}}</button>\r\n </div>\r\n </div>\r\n </form>\r\n</div>","import { FormControl } from '@angular/forms';\r\n\r\n/**\r\n * Base Entry search filter input component.\r\n */\r\nexport class SearchFilterBase<T> {\r\n /** Unique search-filter input key */\r\n key: string;\r\n /** Default value to be displayed/selected in the input control */\r\n value: T | undefined;\r\n /** Default */\r\n label: string;\r\n /** Label text to be displayed for the search-filter input control */\r\n placeholder: string;\r\n /** Type of input control e.g. 'email' */\r\n type: string;\r\n order: number;\r\n /** Control type to be overriden in implementing class, used to render the proper input type e.g. 'textbox' */\r\n controlType: string;\r\n /** Max text length to be enterd in the input component (default is 256) */\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","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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntrySearchFilterInputComponent"],"mappings":"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"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Component, ChangeDetectionStrategy, Input, EventEmitter, Inject, Output, NgModule } from '@angular/core';
|
|
3
|
-
import * as i3 from '@angular/common';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
3
|
import * as i2 from '@angular/forms';
|
|
6
4
|
import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import * as i1 from '@angular/material/form-field';
|
|
6
|
+
import * as i3 from '@angular/common';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
7
8
|
import * as i4 from '@angular/material/input';
|
|
8
9
|
import { MatInputModule } from '@angular/material/input';
|
|
9
10
|
import { MatButtonModule } from '@angular/material/button';
|
|
10
11
|
import { MatListModule } from '@angular/material/list';
|
|
11
|
-
import * as i1 from '@angular/material/form-field';
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Used to provide default configurations on module level.
|
|
15
|
+
*/
|
|
13
16
|
class EntrySearchFilterConfig {
|
|
14
17
|
constructor(config = {}) {
|
|
15
18
|
this.applyButtonText = config.applyButtonText ?? 'Apply';
|
|
@@ -33,10 +36,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
33
36
|
type: Input
|
|
34
37
|
}] } });
|
|
35
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Entry SearchFilter component.
|
|
41
|
+
*/
|
|
36
42
|
class EntrySearchFilterComponent {
|
|
37
43
|
constructor(config) {
|
|
38
44
|
this.config = config;
|
|
45
|
+
/** Configuration of the search filters inputs that will be displayed in the search-filter component. */
|
|
39
46
|
this.searchFilters = [];
|
|
47
|
+
/**
|
|
48
|
+
* Emits the change in SearchFilterParams so the containing component can apply them and retreive the filtered results.
|
|
49
|
+
*/
|
|
40
50
|
this.searchFilterChange = new EventEmitter();
|
|
41
51
|
}
|
|
42
52
|
ngOnInit() {
|
|
@@ -70,6 +80,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
70
80
|
type: Output
|
|
71
81
|
}] } });
|
|
72
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Base Entry search filter input component.
|
|
85
|
+
*/
|
|
86
|
+
class SearchFilterBase {
|
|
87
|
+
constructor(options = {}) {
|
|
88
|
+
this.value = options.value;
|
|
89
|
+
this.key = options.key || '';
|
|
90
|
+
this.label = options.label || '';
|
|
91
|
+
this.placeholder = options.placeholder || '';
|
|
92
|
+
this.order = options.order === undefined ? 1 : options.order;
|
|
93
|
+
this.controlType = options.controlType || '';
|
|
94
|
+
this.type = options.type || '';
|
|
95
|
+
this.maxLength = options.maxLength || 256;
|
|
96
|
+
}
|
|
97
|
+
setValue(value) {
|
|
98
|
+
this.value = value;
|
|
99
|
+
if (this.formControl) {
|
|
100
|
+
this.formControl.patchValue(value);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
class SearchFilterInput extends SearchFilterBase {
|
|
106
|
+
constructor() {
|
|
107
|
+
super(...arguments);
|
|
108
|
+
this.controlType = 'textbox';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
73
112
|
class EntrySearchFilterModule {
|
|
74
113
|
}
|
|
75
114
|
EntrySearchFilterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: EntrySearchFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -109,32 +148,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
109
148
|
}]
|
|
110
149
|
}] });
|
|
111
150
|
|
|
112
|
-
class SearchFilterBase {
|
|
113
|
-
constructor(options = {}) {
|
|
114
|
-
this.value = options.value;
|
|
115
|
-
this.key = options.key || '';
|
|
116
|
-
this.label = options.label || '';
|
|
117
|
-
this.placeholder = options.placeholder || '';
|
|
118
|
-
this.order = options.order === undefined ? 1 : options.order;
|
|
119
|
-
this.controlType = options.controlType || '';
|
|
120
|
-
this.type = options.type || '';
|
|
121
|
-
this.maxLength = options.maxLength || 256;
|
|
122
|
-
}
|
|
123
|
-
setValue(value) {
|
|
124
|
-
this.value = value;
|
|
125
|
-
if (this.formControl) {
|
|
126
|
-
this.formControl.patchValue(value);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
class SearchFilterInput extends SearchFilterBase {
|
|
132
|
-
constructor() {
|
|
133
|
-
super(...arguments);
|
|
134
|
-
this.controlType = 'textbox';
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
151
|
/**
|
|
139
152
|
* Generated bundle index. Do not edit.
|
|
140
153
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enigmatry-entry-components-search-filter.mjs","sources":["../../../../projects/entry-components/search-filter/search-filter-config.model.ts","../../../../projects/entry-components/search-filter/search-filter-input.component.ts","../../../../projects/entry-components/search-filter/search-filter-input.component.html","../../../../projects/entry-components/search-filter/entry-search-filter.component.ts","../../../../projects/entry-components/search-filter/entry-search-filter.component.html","../../../../projects/entry-components/search-filter/entry-search-filter.module.ts","../../../../projects/entry-components/search-filter/search-filter-base.ts","../../../../projects/entry-components/search-filter/search-filter-textbox.ts","../../../../projects/entry-components/search-filter/enigmatry-entry-components-search-filter.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport class EntrySearchFilterConfig {\n applyButtonText: string;\n\n constructor(config: Partial<EntrySearchFilterConfig> = {}) {\n this.applyButtonText = config.applyButtonText ?? 'Apply';\n }\n}\nexport const ENTRY_SEARCH_FILTER_CONFIG = new InjectionToken<EntrySearchFilterConfig>('EntrySearchFilterConfig',\n {\n providedIn: 'root',\n factory: () => new EntrySearchFilterConfig()\n }\n);\n","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, Inject, 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\nimport { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterConfig } from './search-filter-config.model';\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(@Inject(ENTRY_SEARCH_FILTER_CONFIG) public config: EntrySearchFilterConfig) { }\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\">{{config.applyButtonText}}</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
|
+
{"version":3,"file":"enigmatry-entry-components-search-filter.mjs","sources":["../../../../projects/entry-components/search-filter/search-filter-config.model.ts","../../../../projects/entry-components/search-filter/search-filter-input.component.ts","../../../../projects/entry-components/search-filter/search-filter-input.component.html","../../../../projects/entry-components/search-filter/entry-search-filter.component.ts","../../../../projects/entry-components/search-filter/entry-search-filter.component.html","../../../../projects/entry-components/search-filter/search-filter-base.ts","../../../../projects/entry-components/search-filter/search-filter-textbox.ts","../../../../projects/entry-components/search-filter/entry-search-filter.module.ts","../../../../projects/entry-components/search-filter/enigmatry-entry-components-search-filter.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Used to provide default configurations on module level.\n */\nexport class EntrySearchFilterConfig {\n /** Apply search filters button label (default 'Apply') */\n applyButtonText: string;\n\n constructor(config: Partial<EntrySearchFilterConfig> = {}) {\n this.applyButtonText = config.applyButtonText ?? 'Apply';\n }\n}\nexport const ENTRY_SEARCH_FILTER_CONFIG = new InjectionToken<EntrySearchFilterConfig>('EntrySearchFilterConfig',\n {\n providedIn: 'root',\n factory: () => new EntrySearchFilterConfig()\n }\n);\n","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 /** Configuration of the search filters inputs that will be displayed in the search-filter component. */\r\n @Input() searchFilter!: SearchFilterBase<string>;\r\n /** Form group to which the search-filter input component will be added. */\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, Inject, 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\nimport { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterConfig } from './search-filter-config.model';\r\n\r\n/**\r\n * Entry SearchFilter component.\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 /** Configuration of the search filters inputs that will be displayed in the search-filter component. */\r\n @Input() searchFilters: SearchFilterBase<string>[] = [];\r\n /**\r\n * Emits the change in SearchFilterParams so the containing component can apply them and retreive the filtered results.\r\n */\r\n @Output() searchFilterChange = new EventEmitter<SearchFilterParams>();\r\n\r\n searchFilterForm!: FormGroup;\r\n\r\n constructor(@Inject(ENTRY_SEARCH_FILTER_CONFIG) public config: EntrySearchFilterConfig) { }\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\">{{config.applyButtonText}}</button>\r\n </div>\r\n </div>\r\n </form>\r\n</div>","import { FormControl } from '@angular/forms';\r\n\r\n/**\r\n * Base Entry search filter input component.\r\n */\r\nexport class SearchFilterBase<T> {\r\n /** Unique search-filter input key */\r\n key: string;\r\n /** Default value to be displayed/selected in the input control */\r\n value: T | undefined;\r\n /** Default */\r\n label: string;\r\n /** Label text to be displayed for the search-filter input control */\r\n placeholder: string;\r\n /** Type of input control e.g. 'email' */\r\n type: string;\r\n order: number;\r\n /** Control type to be overriden in implementing class, used to render the proper input type e.g. 'textbox' */\r\n controlType: string;\r\n /** Max text length to be enterd in the input component (default is 256) */\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","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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntrySearchFilterInputComponent"],"mappings":";;;;;;;;;;;;AAEA;;AAEG;MACU,uBAAuB,CAAA;AAIhC,IAAA,WAAA,CAAY,SAA2C,EAAE,EAAA;QACrD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;KAC5D;AACJ,CAAA;MACY,0BAA0B,GAAG,IAAI,cAAc,CAA0B,yBAAyB,EAC3G;AACI,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,IAAI,uBAAuB,EAAE;AAC/C,CAAA;;MCRQ,+BAA+B,CAAA;;6HAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,yHCT5C,ucASiB,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDAJ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ucAAA,EAAA,CAAA;8BAItC,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;AEPR;;AAEG;MAOU,0BAA0B,CAAA;AAWrC,IAAA,WAAA,CAAuD,MAA+B,EAAA;QAA/B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAyB;;QAR7E,IAAa,CAAA,aAAA,GAA+B,EAAE,CAAC;AACxD;;AAEG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAsB,CAAC;KAIqB;IAE3F,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC9D;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC9C,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzC;AAED,IAAA,WAAW,CAAC,aAAyC,EAAA;QACnD,MAAM,KAAK,GAAQ,EAAE,CAAC;AAEtB,QAAA,aAAa,CAAC,OAAO,CAAC,YAAY,IAAG;YACnC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAC9D,YAAA,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;AACtC,YAAA,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;AACzC,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;KAC7B;;AA/BU,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,kBAWjB,0BAA0B,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAXnC,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,8JCfvC,4oBAYM,EAAA,MAAA,EAAA,CAAA,+GAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,+BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDGO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4oBAAA,EAAA,MAAA,EAAA,CAAA,+GAAA,CAAA,EAAA,CAAA;;0BAalC,MAAM;2BAAC,0BAA0B,CAAA;4CARrC,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAII,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;AEpBT;;AAEG;MACU,gBAAgB,CAAA;AAkB3B,IAAA,WAAA,CAAY,UAAwC,EAAE,EAAA;AACpD,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC;KAC3C;AAED,IAAA,QAAQ,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACpC,SAAA;KACF;AACF;;ACtCK,MAAO,iBAAkB,SAAQ,gBAAwB,CAAA;AAA/D,IAAA,WAAA,GAAA;;QACW,IAAW,CAAA,WAAA,GAAG,SAAS,CAAC;KAClC;AAAA;;MCuBY,uBAAuB,CAAA;;qHAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBAfhC,0BAA0B;AAC1B,QAAA,+BAA+B,aAG/B,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,eAAe;AACf,QAAA,aAAa,aAGb,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAGjB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAZzB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,aAAa;AACd,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjBnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,0BAA0B;wBAC1B,+BAA+B;AAChC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,0BAA0B;AAC3B,qBAAA;AACF,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enigmatry/entry-components",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.70",
|
|
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",
|
package/search-filter/README.md
CHANGED
|
@@ -46,14 +46,3 @@ import {
|
|
|
46
46
|
})
|
|
47
47
|
export class AppModule { }
|
|
48
48
|
```
|
|
49
|
-
|
|
50
|
-
## Classes and Interfaces
|
|
51
|
-
|
|
52
|
-
| `EntrySearchFilterComponent` | |
|
|
53
|
-
| - | - |
|
|
54
|
-
| @Input() searchFilters: `SearchFilterBase<string>[]` | Accepts the configuration of the search filters inputs that will be displayed in the search-filter component. |
|
|
55
|
-
| @Output() searchFilterChange: `EventEmitter<SearchFilterParams>` | Emits the change in SearchFilterParams so the containing component can apply them and retreive the filtered results. SearchFilterParams are the same type as @angular/router type Params for easy integration. |
|
|
56
|
-
|
|
57
|
-
| `EntryDialogConfig` | |
|
|
58
|
-
| - | - |
|
|
59
|
-
| applyButtonText: `string` | Apply filters button text (default: 'Apply') |
|
|
@@ -4,9 +4,16 @@ import { SearchFilterBase } from './search-filter-base';
|
|
|
4
4
|
import { SearchFilterParams } from './search-filter-params';
|
|
5
5
|
import { EntrySearchFilterConfig } from './search-filter-config.model';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Entry SearchFilter component.
|
|
9
|
+
*/
|
|
7
10
|
export declare class EntrySearchFilterComponent implements OnInit {
|
|
8
11
|
config: EntrySearchFilterConfig;
|
|
12
|
+
/** Configuration of the search filters inputs that will be displayed in the search-filter component. */
|
|
9
13
|
searchFilters: SearchFilterBase<string>[];
|
|
14
|
+
/**
|
|
15
|
+
* Emits the change in SearchFilterParams so the containing component can apply them and retreive the filtered results.
|
|
16
|
+
*/
|
|
10
17
|
searchFilterChange: EventEmitter<SearchFilterParams>;
|
|
11
18
|
searchFilterForm: FormGroup;
|
|
12
19
|
constructor(config: EntrySearchFilterConfig);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
1
|
+
export { EntrySearchFilterComponent } from './entry-search-filter.component';
|
|
2
|
+
export { SearchFilterParams } from './search-filter-params';
|
|
3
|
+
export { SearchFilterBase } from './search-filter-base';
|
|
4
|
+
export { SearchFilterInput } from './search-filter-textbox';
|
|
5
|
+
export { EntrySearchFilterModule } from './entry-search-filter.module';
|
|
6
|
+
export { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterConfig } from './search-filter-config.model';
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { FormControl } from '@angular/forms';
|
|
2
|
+
/**
|
|
3
|
+
* Base Entry search filter input component.
|
|
4
|
+
*/
|
|
2
5
|
export declare class SearchFilterBase<T> {
|
|
6
|
+
/** Unique search-filter input key */
|
|
3
7
|
key: string;
|
|
8
|
+
/** Default value to be displayed/selected in the input control */
|
|
4
9
|
value: T | undefined;
|
|
10
|
+
/** Default */
|
|
5
11
|
label: string;
|
|
12
|
+
/** Label text to be displayed for the search-filter input control */
|
|
6
13
|
placeholder: string;
|
|
14
|
+
/** Type of input control e.g. 'email' */
|
|
7
15
|
type: string;
|
|
8
16
|
order: number;
|
|
17
|
+
/** Control type to be overriden in implementing class, used to render the proper input type e.g. 'textbox' */
|
|
9
18
|
controlType: string;
|
|
19
|
+
/** Max text length to be enterd in the input component (default is 256) */
|
|
10
20
|
maxLength: number;
|
|
11
21
|
formControl: FormControl;
|
|
12
22
|
constructor(options?: Partial<SearchFilterBase<T>>);
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Used to provide default configurations on module level.
|
|
4
|
+
*/
|
|
2
5
|
export declare class EntrySearchFilterConfig {
|
|
6
|
+
/** Apply search filters button label (default 'Apply') */
|
|
3
7
|
applyButtonText: string;
|
|
4
8
|
constructor(config?: Partial<EntrySearchFilterConfig>);
|
|
5
9
|
}
|
|
@@ -2,7 +2,9 @@ import { FormGroup } from '@angular/forms';
|
|
|
2
2
|
import { SearchFilterBase } from './search-filter-base';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class EntrySearchFilterInputComponent {
|
|
5
|
+
/** Configuration of the search filters inputs that will be displayed in the search-filter component. */
|
|
5
6
|
searchFilter: SearchFilterBase<string>;
|
|
7
|
+
/** Form group to which the search-filter input component will be added. */
|
|
6
8
|
form: FormGroup;
|
|
7
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<EntrySearchFilterInputComponent, never>;
|
|
8
10
|
static ɵcmp: i0.ɵɵComponentDeclaration<EntrySearchFilterInputComponent, "entry-search-filter-input", never, { "searchFilter": "searchFilter"; "form": "form"; }, {}, never, never>;
|