@recursyve/nice-data-filter-kit 14.0.7 → 14.1.1

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 (46) hide show
  1. package/esm2020/lib/components/nice-filter-view/components/common/data.directive.mjs +14 -0
  2. package/esm2020/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.mjs +22 -0
  3. package/esm2020/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.mjs +85 -0
  4. package/esm2020/lib/components/nice-filter-view/components/export-buttons/export.directive.mjs +27 -0
  5. package/esm2020/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.mjs +33 -0
  6. package/esm2020/lib/components/nice-filter-view/components/search/search.component.mjs +54 -0
  7. package/esm2020/lib/components/nice-filter-view/directives/mat-paginator.mjs +48 -0
  8. package/esm2020/lib/components/nice-filter-view/directives/mat-sort.mjs +58 -0
  9. package/esm2020/lib/components/nice-filter-view/directives/mat-tables.mjs +22 -0
  10. package/esm2020/lib/components/nice-filter-view/directives/query-params.directive.mjs +81 -0
  11. package/esm2020/lib/components/nice-filter-view/nice-base-filter-view.component.mjs +89 -0
  12. package/esm2020/lib/components/nice-filter-view/nice-filter-view.component.mjs +34 -0
  13. package/esm2020/lib/components/nice-filter-view/nice-filter-view.constant.mjs +5 -0
  14. package/esm2020/lib/components/nice-filter-view/nice-filter-view.module.mjs +143 -0
  15. package/esm2020/lib/components/nice-filter-view/public-api.mjs +16 -0
  16. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.query.mjs +29 -0
  17. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +229 -0
  18. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +119 -0
  19. package/esm2020/lib/components/public-api.mjs +2 -1
  20. package/esm2020/lib/utils/query-params.utils.mjs +5 -1
  21. package/fesm2015/recursyve-nice-data-filter-kit.mjs +958 -17
  22. package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +1 -1
  23. package/fesm2020/recursyve-nice-data-filter-kit.mjs +972 -16
  24. package/fesm2020/recursyve-nice-data-filter-kit.mjs.map +1 -1
  25. package/lib/components/nice-filter-view/components/common/data.directive.d.ts +8 -0
  26. package/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.d.ts +11 -0
  27. package/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.d.ts +25 -0
  28. package/lib/components/nice-filter-view/components/export-buttons/export.directive.d.ts +11 -0
  29. package/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.d.ts +14 -0
  30. package/lib/components/nice-filter-view/components/search/search.component.d.ts +20 -0
  31. package/lib/components/nice-filter-view/directives/mat-paginator.d.ts +16 -0
  32. package/lib/components/nice-filter-view/directives/mat-sort.d.ts +16 -0
  33. package/lib/components/nice-filter-view/directives/mat-tables.d.ts +12 -0
  34. package/lib/components/nice-filter-view/directives/query-params.directive.d.ts +21 -0
  35. package/lib/components/nice-filter-view/nice-base-filter-view.component.d.ts +55 -0
  36. package/lib/components/nice-filter-view/nice-filter-view.component.d.ts +12 -0
  37. package/lib/components/nice-filter-view/nice-filter-view.constant.d.ts +4 -0
  38. package/lib/components/nice-filter-view/nice-filter-view.module.d.ts +40 -0
  39. package/lib/components/nice-filter-view/public-api.d.ts +15 -0
  40. package/lib/components/nice-filter-view/store/nice-filter-view.query.d.ts +15 -0
  41. package/lib/components/nice-filter-view/store/nice-filter-view.service.d.ts +36 -0
  42. package/lib/components/nice-filter-view/store/nice-filter-view.store.d.ts +31 -0
  43. package/lib/components/public-api.d.ts +1 -0
  44. package/lib/utils/query-params.utils.d.ts +3 -0
  45. package/package.json +1 -1
  46. package/src/lib/nice-data-filter.theme.scss +25 -0
@@ -0,0 +1,89 @@
1
+ import { Component, ViewChild } from "@angular/core";
2
+ import { NiceFilterViewComponent } from "./nice-filter-view.component";
3
+ import { NiceFilterViewQuery } from "./store/nice-filter-view.query";
4
+ import { NiceFilterViewService } from "./store/nice-filter-view.service";
5
+ import * as i0 from "@angular/core";
6
+ export class NiceBaseFilterViewComponent {
7
+ ngOnInit(autoLoad = true, { mode, loadConfig, configQueryParams } = {}) {
8
+ if (mode) {
9
+ this.filterViewService.setMode(mode);
10
+ }
11
+ const { autoLoad: defaultAutoLoad } = this.filterViewQuery.getValue();
12
+ if (autoLoad && defaultAutoLoad) {
13
+ this.filterViewService.filter();
14
+ }
15
+ else {
16
+ this.filterViewService.setAutoLoad(autoLoad);
17
+ }
18
+ if (loadConfig) {
19
+ this.filterViewService.loadConfig(configQueryParams);
20
+ }
21
+ this.filterViewLoading$ = this.filterViewQuery.selectLoading();
22
+ }
23
+ /**
24
+ * Call the filter endpoint with the current filter parameters.
25
+ */
26
+ loadData() {
27
+ this.filterViewService.filter();
28
+ }
29
+ /**
30
+ * Disable the filter view. This will stop calling any api routes.
31
+ */
32
+ disable() {
33
+ this.filterViewService.disable();
34
+ }
35
+ /**
36
+ * Enable the filter view. This will resume calling any api routes.
37
+ */
38
+ enable() {
39
+ this.filterViewService.enable();
40
+ }
41
+ /**
42
+ * Update the loading state
43
+ */
44
+ setLoading(loading) {
45
+ this.filterViewService.setLoading(loading);
46
+ }
47
+ /**
48
+ * Set a set of rules that won't be saved in the current filterParameters config.
49
+ * NOTE: These rules will be injected in each filter request.
50
+ */
51
+ setBaseRules(rule, reload = true) {
52
+ this.filterViewService.setBaseRules(rule, reload);
53
+ }
54
+ /**
55
+ * Reset all rules with a new set of rules.
56
+ */
57
+ setRules(rules, reload = true) {
58
+ this.filterViewService.setRules(rules, reload);
59
+ }
60
+ /**
61
+ * Add or update a rule.
62
+ * NOTE: This will only check for rules in the first element of the rules array in the current filterParameters.
63
+ */
64
+ upsertRule(id, newRule, reload = true) {
65
+ this.filterViewService.upsertRule(id, newRule, reload);
66
+ }
67
+ /**
68
+ * Remove a rule.
69
+ * NOTE: This will only check for rules in the first element of the rules array in the current filterParameters.
70
+ */
71
+ removeRule(id, reload = true) {
72
+ this.filterViewService.removeRule(id, reload);
73
+ }
74
+ }
75
+ NiceBaseFilterViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceBaseFilterViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
76
+ NiceBaseFilterViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceBaseFilterViewComponent, selector: "ng-component", viewQueries: [{ propertyName: "filterViewService", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewService, static: true }, { propertyName: "filterViewQuery", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewQuery, static: true }], ngImport: i0, template: ``, isInline: true });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceBaseFilterViewComponent, decorators: [{
78
+ type: Component,
79
+ args: [{
80
+ template: ``
81
+ }]
82
+ }], propDecorators: { filterViewService: [{
83
+ type: ViewChild,
84
+ args: [NiceFilterViewComponent, { read: NiceFilterViewService, static: true }]
85
+ }], filterViewQuery: [{
86
+ type: ViewChild,
87
+ args: [NiceFilterViewComponent, { read: NiceFilterViewQuery, static: true }]
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1iYXNlLWZpbHRlci12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L25pY2UtYmFzZS1maWx0ZXItdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBV3pFLE1BQU0sT0FBZ0IsMkJBQTJCO0lBU3RDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsS0FBb0MsRUFBRTtRQUN4RyxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxNQUFNLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEUsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO1lBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNuQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoRDtRQUVELElBQUksVUFBVSxFQUFFO1lBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3hEO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLE9BQWdCO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxJQUFxQyxFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVEsQ0FBQyxLQUFnQyxFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQzNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsRUFBVSxFQUFFLE9BQWtCLEVBQUUsTUFBTSxHQUFHLElBQUk7UUFDNUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsRUFBVSxFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7O3dIQXJGaUIsMkJBQTJCOzRHQUEzQiwyQkFBMkIsdUdBQ2xDLHVCQUF1QiwyQkFBVSxxQkFBcUIsNkVBR3RELHVCQUF1QiwyQkFBVSxtQkFBbUIsMkNBTnJELEVBQUU7MkZBRU0sMkJBQTJCO2tCQUhoRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzhCQUdhLGlCQUFpQjtzQkFEMUIsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl2RSxlQUFlO3NCQUR4QixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgUXVlcnlQYXJhbXMgfSBmcm9tIFwiLi4vLi4vYXBpL2ZpbHRlci5hcGlcIjtcbmltcG9ydCB7IFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsLCBSdWxlTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3F1ZXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld0NvbXBvbmVudCB9IGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1F1ZXJ5IH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5xdWVyeVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmljZUJhc2VGaWx0ZXJWaWV3SW5pdE9wdGlvbnMge1xuICAgIG1vZGU/OiBcInBhZ2luYXRlZFwiIHwgXCJhY2N1bXVsYXRlZFwiO1xuICAgIGxvYWRDb25maWc/OiBib29sZWFuO1xuICAgIGNvbmZpZ1F1ZXJ5UGFyYW1zPzogUXVlcnlQYXJhbXM7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiBgYFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOaWNlQmFzZUZpbHRlclZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoTmljZUZpbHRlclZpZXdDb21wb25lbnQsIHsgcmVhZDogTmljZUZpbHRlclZpZXdTZXJ2aWNlLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVmlld1NlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZTtcblxuICAgIEBWaWV3Q2hpbGQoTmljZUZpbHRlclZpZXdDb21wb25lbnQsIHsgcmVhZDogTmljZUZpbHRlclZpZXdRdWVyeSwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGZpbHRlclZpZXdRdWVyeTogTmljZUZpbHRlclZpZXdRdWVyeTtcblxuICAgIHB1YmxpYyBmaWx0ZXJWaWV3TG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoYXV0b0xvYWQgPSB0cnVlLCB7IG1vZGUsIGxvYWRDb25maWcsIGNvbmZpZ1F1ZXJ5UGFyYW1zIH06IE5pY2VCYXNlRmlsdGVyVmlld0luaXRPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICAgICAgaWYgKG1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2Uuc2V0TW9kZShtb2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgYXV0b0xvYWQ6IGRlZmF1bHRBdXRvTG9hZCB9ID0gdGhpcy5maWx0ZXJWaWV3UXVlcnkuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKGF1dG9Mb2FkICYmIGRlZmF1bHRBdXRvTG9hZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5maWx0ZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2Uuc2V0QXV0b0xvYWQoYXV0b0xvYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxvYWRDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UubG9hZENvbmZpZyhjb25maWdRdWVyeVBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpbHRlclZpZXdMb2FkaW5nJCA9IHRoaXMuZmlsdGVyVmlld1F1ZXJ5LnNlbGVjdExvYWRpbmcoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsIHRoZSBmaWx0ZXIgZW5kcG9pbnQgd2l0aCB0aGUgY3VycmVudCBmaWx0ZXIgcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZmlsdGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzYWJsZSB0aGUgZmlsdGVyIHZpZXcuIFRoaXMgd2lsbCBzdG9wIGNhbGxpbmcgYW55IGFwaSByb3V0ZXMuXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSB0aGUgZmlsdGVyIHZpZXcuIFRoaXMgd2lsbCByZXN1bWUgY2FsbGluZyBhbnkgYXBpIHJvdXRlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZW5hYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlclZpZXdTZXJ2aWNlLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgbG9hZGluZyBzdGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRMb2FkaW5nKGxvYWRpbmcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhIHNldCBvZiBydWxlcyB0aGF0IHdvbid0IGJlIHNhdmVkIGluIHRoZSBjdXJyZW50IGZpbHRlclBhcmFtZXRlcnMgY29uZmlnLlxuICAgICAqIE5PVEU6IFRoZXNlIHJ1bGVzIHdpbGwgYmUgaW5qZWN0ZWQgaW4gZWFjaCBmaWx0ZXIgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QmFzZVJ1bGVzKHJ1bGU6IChRdWVyeVJ1bGVNb2RlbCB8IFF1ZXJ5TW9kZWwpW10sIHJlbG9hZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRCYXNlUnVsZXMocnVsZSwgcmVsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldCBhbGwgcnVsZXMgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMuXG4gICAgICovXG4gICAgcHVibGljIHNldFJ1bGVzKHJ1bGVzOiBRdWVyeU1vZGVsIHwgUXVlcnlNb2RlbFtdLCByZWxvYWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2Uuc2V0UnVsZXMocnVsZXMsIHJlbG9hZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIG9yIHVwZGF0ZSBhIHJ1bGUuXG4gICAgICogTk9URTogVGhpcyB3aWxsIG9ubHkgY2hlY2sgZm9yIHJ1bGVzIGluIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBydWxlcyBhcnJheSBpbiB0aGUgY3VycmVudCBmaWx0ZXJQYXJhbWV0ZXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cHNlcnRSdWxlKGlkOiBzdHJpbmcsIG5ld1J1bGU6IFJ1bGVNb2RlbCwgcmVsb2FkID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UudXBzZXJ0UnVsZShpZCwgbmV3UnVsZSwgcmVsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYSBydWxlLlxuICAgICAqIE5PVEU6IFRoaXMgd2lsbCBvbmx5IGNoZWNrIGZvciBydWxlcyBpbiB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgcnVsZXMgYXJyYXkgaW4gdGhlIGN1cnJlbnQgZmlsdGVyUGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlUnVsZShpZDogc3RyaW5nLCByZWxvYWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UucmVtb3ZlUnVsZShpZCwgcmVsb2FkKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { Component, Input, ViewEncapsulation } from "@angular/core";
2
+ import { NiceFilterViewQuery } from "./store/nice-filter-view.query";
3
+ import { NiceFilterViewService } from "./store/nice-filter-view.service";
4
+ import { NiceFilterViewStore } from "./store/nice-filter-view.store";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./store/nice-filter-view.service";
7
+ export class NiceFilterViewComponent {
8
+ constructor(service) {
9
+ this.service = service;
10
+ this.queryParams = {};
11
+ }
12
+ ngOnChanges(changes) {
13
+ if ("queryParams" in changes) {
14
+ this.service.setQueryParams(this.queryParams);
15
+ }
16
+ }
17
+ }
18
+ NiceFilterViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewComponent, deps: [{ token: i1.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
19
+ NiceFilterViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceFilterViewComponent, selector: "nice-filter-view", inputs: { queryParams: "queryParams" }, providers: [
20
+ NiceFilterViewQuery,
21
+ NiceFilterViewService,
22
+ NiceFilterViewStore
23
+ ], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: "nice-filter-view", encapsulation: ViewEncapsulation.None, providers: [
27
+ NiceFilterViewQuery,
28
+ NiceFilterViewService,
29
+ NiceFilterViewStore
30
+ ], template: "<ng-content></ng-content>\n" }]
31
+ }], ctorParameters: function () { return [{ type: i1.NiceFilterViewService }]; }, propDecorators: { queryParams: [{
32
+ type: Input
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9uaWNlLWZpbHRlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L25pY2UtZmlsdGVyLXZpZXcudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQWFyRSxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDLFlBQW9CLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBRjNDLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztJQUVnQixDQUFDO0lBRS9DLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLGFBQWEsSUFBSSxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQzs7b0hBVlEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsbUZBTnJCO1FBQ1AsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixtQkFBbUI7S0FDdEIsK0NDZkwsNkJBQ0E7MkZEZ0JhLHVCQUF1QjtrQkFYbkMsU0FBUzsrQkFDSSxrQkFBa0IsaUJBR2IsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUCxtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUN0Qjs0R0FJTSxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1F1ZXJ5IH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5xdWVyeVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1N0b3JlIH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zdG9yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLWZpbHRlci12aWV3XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwibmljZS1maWx0ZXItdmlldy50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJuaWNlLWZpbHRlci12aWV3LnN0eWxlLnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmljZUZpbHRlclZpZXdRdWVyeSxcbiAgICAgICAgTmljZUZpbHRlclZpZXdTZXJ2aWNlLFxuICAgICAgICBOaWNlRmlsdGVyVmlld1N0b3JlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlRmlsdGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZSkge31cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcInF1ZXJ5UGFyYW1zXCIgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldFF1ZXJ5UGFyYW1zKHRoaXMucXVlcnlQYXJhbXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const EXPORTS_SETTINGS = new InjectionToken("exports_settings");
3
+ export const FILTER_VIEW_ICONS = new InjectionToken("filter_view_icons");
4
+ export const FILTER_VIEW_STATE = new InjectionToken("filter_view_state");
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L25pY2UtZmlsdGVyLXZpZXcuY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDekUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVFNfU0VUVElOR1MgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJleHBvcnRzX3NldHRpbmdzXCIpO1xuZXhwb3J0IGNvbnN0IEZJTFRFUl9WSUVXX0lDT05TID0gbmV3IEluamVjdGlvblRva2VuKFwiZmlsdGVyX3ZpZXdfaWNvbnNcIik7XG5leHBvcnQgY29uc3QgRklMVEVSX1ZJRVdfU1RBVEUgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJmaWx0ZXJfdmlld19zdGF0ZVwiKTtcbiJdfQ==
@@ -0,0 +1,143 @@
1
+ import { AsyncPipe, NgIf, NgTemplateOutlet } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule } from "@angular/forms";
4
+ import { MatBottomSheetModule } from "@angular/material/bottom-sheet";
5
+ import { MatButtonModule } from "@angular/material/button";
6
+ import { MatIconModule } from "@angular/material/icon";
7
+ import { MatTooltipModule } from "@angular/material/tooltip";
8
+ import { TranslateModule } from "@ngx-translate/core";
9
+ import { NiceExportBottomSheetModule } from "@recursyve/nice-ui-kit.v2";
10
+ import { defaultIcons } from "../base-list/models/icons.model";
11
+ import { NiceFilterService } from "../base-list/providers/base-filter.service";
12
+ import { NiceFilterDataDirective } from "./components/common/data.directive";
13
+ import { NiceFilterCustomDataViewComponent } from "./components/custom-data-view/custom-data-view.component";
14
+ import { NiceFilterExportButtonsComponent } from "./components/export-buttons/export-buttons.component";
15
+ import { NiceFilterExportDirective } from "./components/export-buttons/export.directive";
16
+ import { NiceFilterInfiniteScrollDataViewComponent } from "./components/infinite-scroll-data-view/infinite-scroll-data-view.component";
17
+ import { NiceFilterSearchComponent } from "./components/search/search.component";
18
+ import { NiceFilterMatPaginatorPaginationDirective } from "./directives/mat-paginator";
19
+ import { NiceFilterMatSortSortingDirective } from "./directives/mat-sort";
20
+ import { NiceFilterMatTableViewDirective } from "./directives/mat-tables";
21
+ import { NiceFilterQueryParamsDirective } from "./directives/query-params.directive";
22
+ import { NiceFilterViewComponent } from "./nice-filter-view.component";
23
+ import { EXPORTS_SETTINGS, FILTER_VIEW_ICONS, FILTER_VIEW_STATE } from "./nice-filter-view.constant";
24
+ import * as i0 from "@angular/core";
25
+ export class NiceFilterViewModule {
26
+ static forRoot(options) {
27
+ return {
28
+ ngModule: NiceFilterViewModule,
29
+ providers: [
30
+ {
31
+ provide: FILTER_VIEW_ICONS,
32
+ useValue: {
33
+ ...defaultIcons,
34
+ ...(options?.icons ?? {})
35
+ }
36
+ }
37
+ ].filter(x => !!x)
38
+ };
39
+ }
40
+ static providerFactory(options) {
41
+ return [
42
+ {
43
+ provide: NiceFilterService,
44
+ useClass: options.filterService
45
+ },
46
+ {
47
+ provide: EXPORTS_SETTINGS,
48
+ useValue: options.exports ?? {
49
+ pdf: true,
50
+ xlsx: true,
51
+ csv: true
52
+ }
53
+ },
54
+ {
55
+ provide: FILTER_VIEW_STATE,
56
+ useValue: options.state ?? {}
57
+ }
58
+ ].filter(x => !!x);
59
+ }
60
+ }
61
+ NiceFilterViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
62
+ NiceFilterViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewModule, declarations: [NiceFilterViewComponent,
63
+ NiceFilterCustomDataViewComponent,
64
+ NiceFilterExportButtonsComponent,
65
+ NiceFilterInfiniteScrollDataViewComponent,
66
+ NiceFilterSearchComponent,
67
+ NiceFilterDataDirective,
68
+ NiceFilterExportDirective,
69
+ NiceFilterMatTableViewDirective,
70
+ NiceFilterMatSortSortingDirective,
71
+ NiceFilterMatPaginatorPaginationDirective,
72
+ NiceFilterQueryParamsDirective], imports: [TranslateModule,
73
+ MatIconModule,
74
+ FormsModule,
75
+ AsyncPipe,
76
+ NgIf,
77
+ NgTemplateOutlet,
78
+ MatTooltipModule,
79
+ MatButtonModule,
80
+ MatBottomSheetModule,
81
+ NiceExportBottomSheetModule], exports: [NiceFilterViewComponent,
82
+ NiceFilterCustomDataViewComponent,
83
+ NiceFilterExportButtonsComponent,
84
+ NiceFilterInfiniteScrollDataViewComponent,
85
+ NiceFilterSearchComponent,
86
+ NiceFilterDataDirective,
87
+ NiceFilterExportDirective,
88
+ NiceFilterMatTableViewDirective,
89
+ NiceFilterMatSortSortingDirective,
90
+ NiceFilterMatPaginatorPaginationDirective,
91
+ NiceFilterQueryParamsDirective] });
92
+ NiceFilterViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewModule, imports: [TranslateModule,
93
+ MatIconModule,
94
+ FormsModule,
95
+ MatTooltipModule,
96
+ MatButtonModule,
97
+ MatBottomSheetModule,
98
+ NiceExportBottomSheetModule] });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewModule, decorators: [{
100
+ type: NgModule,
101
+ args: [{
102
+ imports: [
103
+ TranslateModule,
104
+ MatIconModule,
105
+ FormsModule,
106
+ AsyncPipe,
107
+ NgIf,
108
+ NgTemplateOutlet,
109
+ MatTooltipModule,
110
+ MatButtonModule,
111
+ MatBottomSheetModule,
112
+ NiceExportBottomSheetModule
113
+ ],
114
+ declarations: [
115
+ NiceFilterViewComponent,
116
+ NiceFilterCustomDataViewComponent,
117
+ NiceFilterExportButtonsComponent,
118
+ NiceFilterInfiniteScrollDataViewComponent,
119
+ NiceFilterSearchComponent,
120
+ NiceFilterDataDirective,
121
+ NiceFilterExportDirective,
122
+ NiceFilterMatTableViewDirective,
123
+ NiceFilterMatSortSortingDirective,
124
+ NiceFilterMatPaginatorPaginationDirective,
125
+ NiceFilterQueryParamsDirective
126
+ ],
127
+ providers: [],
128
+ exports: [
129
+ NiceFilterViewComponent,
130
+ NiceFilterCustomDataViewComponent,
131
+ NiceFilterExportButtonsComponent,
132
+ NiceFilterInfiniteScrollDataViewComponent,
133
+ NiceFilterSearchComponent,
134
+ NiceFilterDataDirective,
135
+ NiceFilterExportDirective,
136
+ NiceFilterMatTableViewDirective,
137
+ NiceFilterMatSortSortingDirective,
138
+ NiceFilterMatPaginatorPaginationDirective,
139
+ NiceFilterQueryParamsDirective
140
+ ],
141
+ }]
142
+ }] });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9uaWNlLWZpbHRlci12aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBdUIsUUFBUSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFeEUsT0FBTyxFQUFFLFlBQVksRUFBdUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6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WSxFQUFFO3dCQUNWLHVCQUF1Qjt3QkFDdkIsaUNBQWlDO3dCQUNqQyxnQ0FBZ0M7d0JBQ2hDLHlDQUF5Qzt3QkFDekMseUJBQXlCO3dCQUV6Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQixpQ0FBaUM7d0JBQ2pDLHlDQUF5Qzt3QkFDekMsOEJBQThCO3FCQUNqQztvQkFDRCxTQUFTLEVBQUUsRUFBRTtvQkFDYixPQUFPLEVBQUU7d0JBQ0wsdUJBQXVCO3dCQUN2QixpQ0FBaUM7d0JBQ2pDLGdDQUFnQzt3QkFDaEMseUNBQXlDO3dCQUN6Qyx5QkFBeUI7d0JBRXpCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QiwrQkFBK0I7d0JBQy9CLGlDQUFpQzt3QkFDakMseUNBQXlDO3dCQUN6Qyw4QkFBOEI7cUJBQ2pDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFByb3ZpZGVyLCBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXRcIjtcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTmljZUV4cG9ydEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IEV4cG9ydFNldHRpbmdzIH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9tb2RlbHMvZXhwb3J0Lm1vZGVsXCI7XG5pbXBvcnQgeyBkZWZhdWx0SWNvbnMsIE5pY2VCYXNlSWNvbk9wdGlvbnMgfSBmcm9tIFwiLi4vYmFzZS1saXN0L21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclNlcnZpY2UgfSBmcm9tIFwiLi4vYmFzZS1saXN0L3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyRGF0YURpcmVjdGl2ZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29tbW9uL2RhdGEuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyQ3VzdG9tRGF0YVZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2N1c3RvbS1kYXRhLXZpZXcvY3VzdG9tLWRhdGEtdmlldy5jb21wb25lbnRcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJFeHBvcnRCdXR0b25zQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9leHBvcnQtYnV0dG9ucy9leHBvcnQtYnV0dG9ucy5jb21wb25lbnRcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJFeHBvcnREaXJlY3RpdmUgfSBmcm9tIFwiLi9jb21wb25lbnRzL2V4cG9ydC1idXR0b25zL2V4cG9ydC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJJbmZpbml0ZVNjcm9sbERhdGFWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9pbmZpbml0ZS1zY3JvbGwtZGF0YS12aWV3L2luZmluaXRlLXNjcm9sbC1kYXRhLXZpZXcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyU2VhcmNoQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlck1hdFBhZ2luYXRvclBhZ2luYXRpb25EaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL21hdC1wYWdpbmF0b3JcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJNYXRTb3J0U29ydGluZ0RpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvbWF0LXNvcnRcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJNYXRUYWJsZVZpZXdEaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL21hdC10YWJsZXNcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvcXVlcnktcGFyYW1zLmRpcmVjdGl2ZVwiO1xuXG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld0NvbXBvbmVudCB9IGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBFWFBPUlRTX1NFVFRJTkdTLCBGSUxURVJfVklFV19JQ09OUywgRklMVEVSX1ZJRVdfU1RBVEUgfSBmcm9tIFwiLi9uaWNlLWZpbHRlci12aWV3LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1N0YXRlIH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zdG9yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VGaWx0ZXJWaWV3T3B0aW9uczxUPiB7XG4gICAgZmlsdGVyU2VydmljZTogVHlwZTxOaWNlRmlsdGVyU2VydmljZTxUPj47XG4gICAgZXhwb3J0cz86IEV4cG9ydFNldHRpbmdzO1xuICAgIHN0YXRlPzogUGFydGlhbDxOaWNlRmlsdGVyVmlld1N0YXRlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOaWNlRmlsdGVyVmlld0dsb2JhbE9wdGlvbnMge1xuICAgIGljb25zPzogTmljZUJhc2VJY29uT3B0aW9ucztcbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRCb3R0b21TaGVldE1vZHVsZSxcblxuICAgICAgICBOaWNlRXhwb3J0Qm90dG9tU2hlZXRNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBOaWNlRmlsdGVyVmlld0NvbXBvbmVudCxcbiAgICAgICAgTmljZUZpbHRlckN1c3RvbURhdGFWaWV3Q29tcG9uZW50LFxuICAgICAgICBOaWNlRmlsdGVyRXhwb3J0QnV0dG9uc0NvbXBvbmVudCxcbiAgICAgICAgTmljZUZpbHRlckluZmluaXRlU2Nyb2xsRGF0YVZpZXdDb21wb25lbnQsXG4gICAgICAgIE5pY2VGaWx0ZXJTZWFyY2hDb21wb25lbnQsXG5cbiAgICAgICAgTmljZUZpbHRlckRhdGFEaXJlY3RpdmUsXG4gICAgICAgIE5pY2VGaWx0ZXJFeHBvcnREaXJlY3RpdmUsXG4gICAgICAgIE5pY2VGaWx0ZXJNYXRUYWJsZVZpZXdEaXJlY3RpdmUsXG4gICAgICAgIE5pY2VGaWx0ZXJNYXRTb3J0U29ydGluZ0RpcmVjdGl2ZSxcbiAgICAgICAgTmljZUZpbHRlck1hdFBhZ2luYXRvclBhZ2luYXRpb25EaXJlY3RpdmUsXG4gICAgICAgIE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIE5pY2VGaWx0ZXJWaWV3Q29tcG9uZW50LFxuICAgICAgICBOaWNlRmlsdGVyQ3VzdG9tRGF0YVZpZXdDb21wb25lbnQsXG4gICAgICAgIE5pY2VGaWx0ZXJFeHBvcnRCdXR0b25zQ29tcG9uZW50LFxuICAgICAgICBOaWNlRmlsdGVySW5maW5pdGVTY3JvbGxEYXRhVmlld0NvbXBvbmVudCxcbiAgICAgICAgTmljZUZpbHRlclNlYXJjaENvbXBvbmVudCxcblxuICAgICAgICBOaWNlRmlsdGVyRGF0YURpcmVjdGl2ZSxcbiAgICAgICAgTmljZUZpbHRlckV4cG9ydERpcmVjdGl2ZSxcbiAgICAgICAgTmljZUZpbHRlck1hdFRhYmxlVmlld0RpcmVjdGl2ZSxcbiAgICAgICAgTmljZUZpbHRlck1hdFNvcnRTb3J0aW5nRGlyZWN0aXZlLFxuICAgICAgICBOaWNlRmlsdGVyTWF0UGFnaW5hdG9yUGFnaW5hdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgTmljZUZpbHRlclF1ZXJ5UGFyYW1zRGlyZWN0aXZlXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmljZUZpbHRlclZpZXdNb2R1bGUge1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChvcHRpb25zPzogTmljZUZpbHRlclZpZXdHbG9iYWxPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOaWNlRmlsdGVyVmlld01vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5pY2VGaWx0ZXJWaWV3TW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBGSUxURVJfVklFV19JQ09OUyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmRlZmF1bHRJY29ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihvcHRpb25zPy5pY29ucyA/PyB7fSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0uZmlsdGVyKHggPT4gISF4KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcHJvdmlkZXJGYWN0b3J5PFQ+KG9wdGlvbnM6IE5pY2VGaWx0ZXJWaWV3T3B0aW9uczxUPik6IFByb3ZpZGVyW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5pY2VGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLmZpbHRlclNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogRVhQT1JUU19TRVRUSU5HUyxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5leHBvcnRzID8/IHtcbiAgICAgICAgICAgICAgICAgICAgcGRmOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB4bHN4OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjc3Y6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEZJTFRFUl9WSUVXX1NUQVRFLFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLnN0YXRlID8/IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgIF0uZmlsdGVyKHggPT4gISF4KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ export * from "./components/common/data.directive";
2
+ export * from "./components/custom-data-view/custom-data-view.component";
3
+ export * from "./components/export-buttons/export-buttons.component";
4
+ export * from "./components/export-buttons/export.directive";
5
+ export * from "./components/infinite-scroll-data-view/infinite-scroll-data-view.component";
6
+ export * from "./components/search/search.component";
7
+ export * from "./directives/mat-paginator";
8
+ export * from "./directives/mat-sort";
9
+ export * from "./directives/mat-tables";
10
+ export * from "./directives/query-params.directive";
11
+ export * from "./store/nice-filter-view.service";
12
+ export * from "./store/nice-filter-view.query";
13
+ export * from "./nice-base-filter-view.component";
14
+ export * from "./nice-filter-view.component";
15
+ export * from "./nice-filter-view.module";
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2NvbW1vbi9kYXRhLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9jdXN0b20tZGF0YS12aWV3L2N1c3RvbS1kYXRhLXZpZXcuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2V4cG9ydC1idXR0b25zL2V4cG9ydC1idXR0b25zLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9leHBvcnQtYnV0dG9ucy9leHBvcnQuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC1kYXRhLXZpZXcvaW5maW5pdGUtc2Nyb2xsLWRhdGEtdmlldy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jb21wb25lbnRcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vZGlyZWN0aXZlcy9tYXQtcGFnaW5hdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmVzL21hdC1zb3J0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmVzL21hdC10YWJsZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZXMvcXVlcnktcGFyYW1zLmRpcmVjdGl2ZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbmljZS1iYXNlLWZpbHRlci12aWV3LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmljZS1maWx0ZXItdmlldy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcubW9kdWxlXCI7XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { QueryEntity } from "@datorama/akita";
3
+ import { NiceFilterViewStore } from "./nice-filter-view.store";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./nice-filter-view.store";
6
+ export class NiceFilterViewQuery extends QueryEntity {
7
+ constructor(store) {
8
+ super(store);
9
+ this.store = store;
10
+ }
11
+ selectFilterConfigLoading() {
12
+ return this.select("filterConfigLoading");
13
+ }
14
+ selectFilterConfig() {
15
+ return this.select("filterConfig");
16
+ }
17
+ selectFilterParameters() {
18
+ return this.select("filterParameters");
19
+ }
20
+ selectFilterResult() {
21
+ return this.select("filterResult");
22
+ }
23
+ }
24
+ NiceFilterViewQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewQuery, deps: [{ token: i1.NiceFilterViewStore }], target: i0.ɵɵFactoryTarget.Injectable });
25
+ NiceFilterViewQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewQuery });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewQuery, decorators: [{
27
+ type: Injectable
28
+ }], ctorParameters: function () { return [{ type: i1.NiceFilterViewStore }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHOUMsT0FBTyxFQUF1QixtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHcEYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQWdDO0lBQ3JFLFlBQXNCLEtBQTBCO1FBQzVDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQURLLFVBQUssR0FBTCxLQUFLLENBQXFCO0lBRWhELENBQUM7SUFFTSx5QkFBeUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLHNCQUFzQjtRQUN6QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxDQUFDOztnSEFuQlEsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUXVlcnlFbnRpdHkgfSBmcm9tIFwiQGRhdG9yYW1hL2FraXRhXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCwgRmlsdGVyUGFyYW1ldGVyc01vZGVsLCBGaWx0ZXJSZXN1bHRNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1N0YXRlLCBOaWNlRmlsdGVyVmlld1N0b3JlIH0gZnJvbSBcIi4vbmljZS1maWx0ZXItdmlldy5zdG9yZVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUZpbHRlclZpZXdRdWVyeSBleHRlbmRzIFF1ZXJ5RW50aXR5PE5pY2VGaWx0ZXJWaWV3U3RhdGU+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc3RvcmU6IE5pY2VGaWx0ZXJWaWV3U3RvcmUpIHtcbiAgICAgICAgc3VwZXIoc3RvcmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RGaWx0ZXJDb25maWdMb2FkaW5nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3QoXCJmaWx0ZXJDb25maWdMb2FkaW5nXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RGaWx0ZXJDb25maWcoKTogT2JzZXJ2YWJsZTxGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3QoXCJmaWx0ZXJDb25maWdcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdEZpbHRlclBhcmFtZXRlcnMoKTogT2JzZXJ2YWJsZTxGaWx0ZXJQYXJhbWV0ZXJzTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0KFwiZmlsdGVyUGFyYW1ldGVyc1wiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0RmlsdGVyUmVzdWx0KCk6IE9ic2VydmFibGU8RmlsdGVyUmVzdWx0TW9kZWwgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdChcImZpbHRlclJlc3VsdFwiKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,229 @@
1
+ import { Inject, Injectable } from "@angular/core";
2
+ import { FileUtils } from "@recursyve/nice-ui-kit.v2";
3
+ import { firstValueFrom } from "rxjs";
4
+ import { NiceFilterService } from "../../base-list/providers/base-filter.service";
5
+ import { NiceFilterViewStore } from "./nice-filter-view.store";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./nice-filter-view.store";
8
+ export class NiceFilterViewService {
9
+ constructor(store, filterService) {
10
+ this.store = store;
11
+ this.filterService = filterService;
12
+ }
13
+ reset() {
14
+ this.store.reset();
15
+ }
16
+ disable() {
17
+ this.store.update({
18
+ disabled: true
19
+ });
20
+ }
21
+ enable() {
22
+ this.store.update({
23
+ disabled: false
24
+ });
25
+ }
26
+ setAutoLoad(autoLoad) {
27
+ this.store.update({ autoLoad });
28
+ }
29
+ setLoading(loading) {
30
+ this.store.setLoading(loading);
31
+ }
32
+ setMode(mode) {
33
+ this.store.update({ mode });
34
+ }
35
+ async loadConfig(configQueryParams = {}) {
36
+ this.store.setFilterConfigLoading(true);
37
+ try {
38
+ const filterConfig = await firstValueFrom(this.filterService.getFilterConfig({ params: configQueryParams }));
39
+ this.store.update({
40
+ filterConfig
41
+ });
42
+ }
43
+ catch (e) {
44
+ this.store.setError(e);
45
+ }
46
+ finally {
47
+ this.store.setFilterConfigLoading(false);
48
+ }
49
+ }
50
+ async filter() {
51
+ const { filterParameters, disabled } = this.store.getValue();
52
+ if (disabled) {
53
+ return;
54
+ }
55
+ try {
56
+ this.store.setLoading(true);
57
+ const result = await firstValueFrom(this.filterService.filter(this.getParameters(filterParameters)));
58
+ this.store.setResult(result);
59
+ }
60
+ catch (e) {
61
+ this.store.setError(e);
62
+ }
63
+ finally {
64
+ this.store.setLoading(false);
65
+ }
66
+ }
67
+ async downloadData(type, downloadFileName) {
68
+ const { filterParameters, disabled } = this.store.getValue();
69
+ if (disabled) {
70
+ return;
71
+ }
72
+ try {
73
+ this.store.setLoading(true);
74
+ const result = await firstValueFrom(this.filterService.getFile(type, this.getParameters(filterParameters)));
75
+ FileUtils.downloadFile(`${downloadFileName}.${type}`, result);
76
+ }
77
+ catch (e) {
78
+ this.store.setError(e);
79
+ }
80
+ finally {
81
+ this.store.setLoading(false);
82
+ }
83
+ }
84
+ async printData() {
85
+ const { filterParameters, disabled } = this.store.getValue();
86
+ if (disabled) {
87
+ return;
88
+ }
89
+ try {
90
+ this.store.setLoading(true);
91
+ const result = await firstValueFrom(this.filterService.getPrintableHtml(this.getParameters(filterParameters)));
92
+ FileUtils.openPrintableWindow(result);
93
+ }
94
+ catch (e) {
95
+ this.store.setError(e);
96
+ }
97
+ finally {
98
+ this.store.setLoading(false);
99
+ }
100
+ }
101
+ setParameters(filterParameters, reload = false) {
102
+ this.store.setParameters(filterParameters);
103
+ if (reload) {
104
+ this.filter();
105
+ }
106
+ }
107
+ resetPaging() {
108
+ const { filterParameters } = this.store.getValue();
109
+ this.setParameters({
110
+ ...filterParameters,
111
+ start: 0
112
+ }, false);
113
+ this.resetResult(true);
114
+ }
115
+ setQueryParams(queryParams) {
116
+ this.store.update({ queryParams });
117
+ }
118
+ setBaseRules(rule, reload) {
119
+ this.store.update({
120
+ baseRules: rule
121
+ });
122
+ if (reload) {
123
+ this.filter();
124
+ }
125
+ }
126
+ setRules(rules, reload) {
127
+ if (!Array.isArray(rules)) {
128
+ rules = [rules];
129
+ }
130
+ const { filterParameters } = this.store.getValue();
131
+ const newRules = {
132
+ order: filterParameters.order,
133
+ rules
134
+ };
135
+ this.setParameters(newRules, reload);
136
+ }
137
+ upsertRule(id, newRule, reload) {
138
+ const { filterParameters } = this.store.getValue();
139
+ const currentQuery = filterParameters.rules?.[0];
140
+ const rule = {
141
+ id,
142
+ ...newRule
143
+ };
144
+ const query = { rules: [rule], condition: "and" };
145
+ if (!currentQuery || currentQuery.rules.length === 0) {
146
+ this.setRules(query, reload);
147
+ return;
148
+ }
149
+ const oldRule = currentQuery.rules.find((r) => r.id === id);
150
+ let newRules = currentQuery.rules;
151
+ if (oldRule) {
152
+ if (newRule) {
153
+ // Array replace
154
+ newRules = [
155
+ ...currentQuery.rules.slice(0, currentQuery.rules.indexOf(oldRule)),
156
+ query,
157
+ ...currentQuery.rules.slice(currentQuery.rules.indexOf(oldRule) + 1, currentQuery.rules.length)
158
+ ];
159
+ }
160
+ else {
161
+ newRules = currentQuery.rules.filter((r) => r.id !== id);
162
+ }
163
+ }
164
+ else {
165
+ newRules = [...newRules, query];
166
+ }
167
+ this.setRules({
168
+ condition: currentQuery.condition,
169
+ rules: newRules
170
+ }, reload);
171
+ }
172
+ removeRule(id, reload) {
173
+ const { filterParameters } = this.store.getValue();
174
+ const currentQuery = filterParameters.rules?.[0];
175
+ const oldRule = currentQuery.rules.find((r) => r.id === id);
176
+ if (!oldRule) {
177
+ return;
178
+ }
179
+ const newRules = currentQuery.rules.filter((r) => r.id !== id);
180
+ this.setRules({
181
+ condition: currentQuery.condition,
182
+ rules: newRules
183
+ }, reload);
184
+ }
185
+ addValue(value, opts) {
186
+ this.store.addValue(value, opts);
187
+ }
188
+ upsertValue(value, key = "id") {
189
+ this.store.upsertValue(value, key);
190
+ }
191
+ removeValue(value, key = "id") {
192
+ this.store.removeValue(value, key);
193
+ }
194
+ resetResult(waitForNextFilter) {
195
+ if (!waitForNextFilter) {
196
+ this.store.update({
197
+ filterResult: null
198
+ });
199
+ }
200
+ else {
201
+ this.store.update({
202
+ resetResult: true
203
+ });
204
+ }
205
+ }
206
+ getParameters(filterParameters) {
207
+ const { baseRules } = this.store.getValue();
208
+ const parameters = {
209
+ ...filterParameters,
210
+ rules: filterParameters?.rules ? [...filterParameters.rules] : []
211
+ };
212
+ if (baseRules?.length) {
213
+ parameters.rules.push({
214
+ condition: "and",
215
+ rules: baseRules
216
+ });
217
+ }
218
+ return parameters;
219
+ }
220
+ }
221
+ NiceFilterViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewService, deps: [{ token: i1.NiceFilterViewStore }, { token: NiceFilterService }], target: i0.ɵɵFactoryTarget.Injectable });
222
+ NiceFilterViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewService });
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewService, decorators: [{
224
+ type: Injectable
225
+ }], ctorParameters: function () { return [{ type: i1.NiceFilterViewStore }, { type: undefined, decorators: [{
226
+ type: Inject,
227
+ args: [NiceFilterService]
228
+ }] }]; } });
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXRDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHL0QsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUNZLEtBQTBCLEVBRWxCLGFBQXFCO1FBRjdCLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBRWxCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBQ3RDLENBQUM7SUFFRyxLQUFLO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU07UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNkLFFBQVEsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENB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Q0FBQztnQkFDZCxXQUFXLEVBQUUsSUFBSTthQUNwQixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsZ0JBQXdDO1FBQ3pELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVDLE1BQU0sVUFBVSxHQUFHO1lBQ2YsR0FBRyxnQkFBZ0I7WUFDbkIsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3BFLENBQUM7UUFDRixJQUFJLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDbkIsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixLQUFLLEVBQUUsU0FBUzthQUNuQixDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7O2tIQXhPUSxxQkFBcUIscURBR2xCLGlCQUFpQjtzSEFIcEIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQUlGLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFkZEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGEvc3JjL2xpYi9hZGRFbnRpdGllc1wiO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUXVlcnlNb2RlbCwgUXVlcnlSdWxlTW9kZWwsIFJ1bGVNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvcXVlcnkubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Jhc2UtbGlzdC9wcm92aWRlcnMvYmFzZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTdG9yZSB9IGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcuc3RvcmVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VGaWx0ZXJWaWV3U2VydmljZTxGaWx0ZXIgZXh0ZW5kcyBOaWNlRmlsdGVyU2VydmljZTxhbnk+ID0gTmljZUZpbHRlclNlcnZpY2U8YW55Pj4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHN0b3JlOiBOaWNlRmlsdGVyVmlld1N0b3JlLFxuICAgICAgICBASW5qZWN0KE5pY2VGaWx0ZXJTZXJ2aWNlKVxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyU2VydmljZTogRmlsdGVyXG4gICAgKSB7fVxuXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXV0b0xvYWQoYXV0b0xvYWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoeyBhdXRvTG9hZCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhsb2FkaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TW9kZShtb2RlOiBcInBhZ2luYXRlZFwiIHwgXCJhY2N1bXVsYXRlZFwiKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHsgbW9kZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9hZENvbmZpZyhjb25maWdRdWVyeVBhcmFtczogUXVlcnlQYXJhbXMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0b3JlLnNldEZpbHRlckNvbmZpZ0xvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJDb25maWcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyQ29uZmlnKHsgcGFyYW1zOiBjb25maWdRdWVyeVBhcmFtcyB9KSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgZmlsdGVyQ29uZmlnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RmlsdGVyQ29uZmlnTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZmlsdGVyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMsIGRpc2FibGVkIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIodGhpcy5nZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMpKSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldFJlc3VsdChyZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBkb3dubG9hZERhdGEodHlwZTogc3RyaW5nLCBkb3dubG9hZEZpbGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBkaXNhYmxlZCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZ2V0RmlsZSh0eXBlLCB0aGlzLmdldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycykpKTtcbiAgICAgICAgICAgIEZpbGVVdGlscy5kb3dubG9hZEZpbGUoYCR7ZG93bmxvYWRGaWxlTmFtZX0uJHt0eXBlfWAsIHJlc3VsdCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByaW50RGF0YSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBkaXNhYmxlZCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZ2V0UHJpbnRhYmxlSHRtbCh0aGlzLmdldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycykpKTtcbiAgICAgICAgICAgIEZpbGVVdGlscy5vcGVuUHJpbnRhYmxlV2luZG93KHJlc3VsdCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVyczogRmlsdGVyUGFyYW1ldGVyc01vZGVsLCByZWxvYWQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycyk7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRQYWdpbmcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICB0aGlzLnNldFBhcmFtZXRlcnMoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHN0YXJ0OiAwXG4gICAgICAgIH0sIGZhbHNlKTtcblxuICAgICAgICB0aGlzLnJlc2V0UmVzdWx0KHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRRdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoeyBxdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QmFzZVJ1bGVzKHJ1bGU6IChRdWVyeVJ1bGVNb2RlbCB8IFF1ZXJ5TW9kZWwpW10sIHJlbG9hZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBiYXNlUnVsZXM6IHJ1bGVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRSdWxlcyhydWxlczogUXVlcnlNb2RlbCB8IFF1ZXJ5TW9kZWxbXSwgcmVsb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShydWxlcykpIHtcbiAgICAgICAgICAgIHJ1bGVzID0gW3J1bGVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXdSdWxlczogRmlsdGVyUGFyYW1ldGVyc01vZGVsID0ge1xuICAgICAgICAgICAgb3JkZXI6IGZpbHRlclBhcmFtZXRlcnMub3JkZXIsXG4gICAgICAgICAgICBydWxlc1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc2V0UGFyYW1ldGVycyhuZXdSdWxlcywgcmVsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBzZXJ0UnVsZShpZDogc3RyaW5nLCBuZXdSdWxlOiBSdWxlTW9kZWwsIHJlbG9hZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFF1ZXJ5ID0gZmlsdGVyUGFyYW1ldGVycy5ydWxlcz8uWzBdO1xuICAgICAgICBjb25zdCBydWxlOiBRdWVyeVJ1bGVNb2RlbCA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgLi4ubmV3UnVsZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBxdWVyeTogUXVlcnlNb2RlbCA9IHsgcnVsZXM6IFtydWxlXSwgY29uZGl0aW9uOiBcImFuZFwiIH07XG4gICAgICAgIGlmICghY3VycmVudFF1ZXJ5IHx8IGN1cnJlbnRRdWVyeS5ydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UnVsZXMocXVlcnkgLCByZWxvYWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb2xkUnVsZSA9IGN1cnJlbnRRdWVyeS5ydWxlcy5maW5kKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgPT09IGlkKSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgbGV0IG5ld1J1bGVzID0gY3VycmVudFF1ZXJ5LnJ1bGVzO1xuICAgICAgICBpZiAob2xkUnVsZSkge1xuICAgICAgICAgICAgaWYgKG5ld1J1bGUpIHtcbiAgICAgICAgICAgICAgICAvLyBBcnJheSByZXBsYWNlXG4gICAgICAgICAgICAgICAgbmV3UnVsZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRRdWVyeS5ydWxlcy5zbGljZSgwLCBjdXJyZW50UXVlcnkucnVsZXMuaW5kZXhPZihvbGRSdWxlKSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICAuLi5jdXJyZW50UXVlcnkucnVsZXMuc2xpY2UoY3VycmVudFF1ZXJ5LnJ1bGVzLmluZGV4T2Yob2xkUnVsZSkgKyAxLCBjdXJyZW50UXVlcnkucnVsZXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1J1bGVzID0gY3VycmVudFF1ZXJ5LnJ1bGVzLmZpbHRlcigocikgPT4gKHIgYXMgUXVlcnlSdWxlTW9kZWwpLmlkICE9PSBpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdSdWxlcyA9IFsuLi5uZXdSdWxlcywgcXVlcnldO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0UnVsZXMoe1xuICAgICAgICAgICAgY29uZGl0aW9uOiBjdXJyZW50UXVlcnkuY29uZGl0aW9uLFxuICAgICAgICAgICAgcnVsZXM6IG5ld1J1bGVzXG4gICAgICAgIH0sIHJlbG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVJ1bGUoaWQ6IHN0cmluZywgcmVsb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50UXVlcnkgPSBmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzPy5bMF07XG4gICAgICAgIGNvbnN0IG9sZFJ1bGUgPSBjdXJyZW50UXVlcnkucnVsZXMuZmluZCgocikgPT4gKHIgYXMgUXVlcnlSdWxlTW9kZWwpLmlkID09PSBpZCkgYXMgUXVlcnlSdWxlTW9kZWw7XG4gICAgICAgIGlmICghb2xkUnVsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3UnVsZXMgPSBjdXJyZW50UXVlcnkucnVsZXMuZmlsdGVyKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgIT09IGlkKTtcbiAgICAgICAgdGhpcy5zZXRSdWxlcyh7XG4gICAgICAgICAgICBjb25kaXRpb246IGN1cnJlbnRRdWVyeS5jb25kaXRpb24sXG4gICAgICAgICAgICBydWxlczogbmV3UnVsZXNcbiAgICAgICAgfSwgcmVsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVmFsdWUodmFsdWU6IGFueSwgb3B0cz86IEFkZEVudGl0aWVzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLmFkZFZhbHVlKHZhbHVlLCBvcHRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBzZXJ0VmFsdWUodmFsdWU6IGFueSwga2V5ID0gXCJpZFwiKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBzZXJ0VmFsdWUodmFsdWUsIGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVZhbHVlKHZhbHVlOiBhbnksIGtleSA9IFwiaWRcIik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlbW92ZVZhbHVlKHZhbHVlLCBrZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldFJlc3VsdCh3YWl0Rm9yTmV4dEZpbHRlcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIXdhaXRGb3JOZXh0RmlsdGVyKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiBudWxsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgICAgICByZXNldFJlc3VsdDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsKTogRmlsdGVyUGFyYW1ldGVyc01vZGVsIHtcbiAgICAgICAgY29uc3QgeyBiYXNlUnVsZXMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBydWxlczogZmlsdGVyUGFyYW1ldGVycz8ucnVsZXMgPyBbLi4uZmlsdGVyUGFyYW1ldGVycy5ydWxlc10gOiBbXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoYmFzZVJ1bGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnMucnVsZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcImFuZFwiLFxuICAgICAgICAgICAgICAgIHJ1bGVzOiBiYXNlUnVsZXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICAgIH1cbn1cbiJdfQ==