@recursyve/nice-data-filter-kit 14.0.6 → 14.1.0

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 (49) hide show
  1. package/esm2020/lib/components/base-list/base-list.module.mjs +1 -1
  2. package/esm2020/lib/components/multi-state-list/multi-state-list.module.mjs +10 -6
  3. package/esm2020/lib/components/nice-filter-view/components/common/data.directive.mjs +14 -0
  4. package/esm2020/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.mjs +22 -0
  5. package/esm2020/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.mjs +85 -0
  6. package/esm2020/lib/components/nice-filter-view/components/export-buttons/export.directive.mjs +27 -0
  7. package/esm2020/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.mjs +33 -0
  8. package/esm2020/lib/components/nice-filter-view/components/search/search.component.mjs +54 -0
  9. package/esm2020/lib/components/nice-filter-view/directives/mat-paginator.mjs +48 -0
  10. package/esm2020/lib/components/nice-filter-view/directives/mat-sort.mjs +58 -0
  11. package/esm2020/lib/components/nice-filter-view/directives/mat-tables.mjs +22 -0
  12. package/esm2020/lib/components/nice-filter-view/directives/query-params.directive.mjs +81 -0
  13. package/esm2020/lib/components/nice-filter-view/nice-base-filter-view.component.mjs +89 -0
  14. package/esm2020/lib/components/nice-filter-view/nice-filter-view.component.mjs +34 -0
  15. package/esm2020/lib/components/nice-filter-view/nice-filter-view.constant.mjs +5 -0
  16. package/esm2020/lib/components/nice-filter-view/nice-filter-view.module.mjs +143 -0
  17. package/esm2020/lib/components/nice-filter-view/public-api.mjs +16 -0
  18. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.query.mjs +29 -0
  19. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +229 -0
  20. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +119 -0
  21. package/esm2020/lib/components/public-api.mjs +2 -1
  22. package/esm2020/lib/utils/query-params.utils.mjs +5 -1
  23. package/fesm2015/recursyve-nice-data-filter-kit.mjs +967 -22
  24. package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +1 -1
  25. package/fesm2020/recursyve-nice-data-filter-kit.mjs +980 -20
  26. package/fesm2020/recursyve-nice-data-filter-kit.mjs.map +1 -1
  27. package/lib/components/multi-state-list/multi-state-list.module.d.ts +2 -0
  28. package/lib/components/nice-filter-view/components/common/data.directive.d.ts +8 -0
  29. package/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.d.ts +11 -0
  30. package/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.d.ts +25 -0
  31. package/lib/components/nice-filter-view/components/export-buttons/export.directive.d.ts +11 -0
  32. package/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.d.ts +14 -0
  33. package/lib/components/nice-filter-view/components/search/search.component.d.ts +20 -0
  34. package/lib/components/nice-filter-view/directives/mat-paginator.d.ts +16 -0
  35. package/lib/components/nice-filter-view/directives/mat-sort.d.ts +16 -0
  36. package/lib/components/nice-filter-view/directives/mat-tables.d.ts +12 -0
  37. package/lib/components/nice-filter-view/directives/query-params.directive.d.ts +21 -0
  38. package/lib/components/nice-filter-view/nice-base-filter-view.component.d.ts +55 -0
  39. package/lib/components/nice-filter-view/nice-filter-view.component.d.ts +12 -0
  40. package/lib/components/nice-filter-view/nice-filter-view.constant.d.ts +4 -0
  41. package/lib/components/nice-filter-view/nice-filter-view.module.d.ts +40 -0
  42. package/lib/components/nice-filter-view/public-api.d.ts +15 -0
  43. package/lib/components/nice-filter-view/store/nice-filter-view.query.d.ts +15 -0
  44. package/lib/components/nice-filter-view/store/nice-filter-view.service.d.ts +36 -0
  45. package/lib/components/nice-filter-view/store/nice-filter-view.store.d.ts +31 -0
  46. package/lib/components/public-api.d.ts +1 -0
  47. package/lib/utils/query-params.utils.d.ts +3 -0
  48. package/package.json +1 -1
  49. package/src/lib/nice-data-filter.theme.scss +25 -0
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXRDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHL0QsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUNZLEtBQTBCLEVBRXhCLGFBQXFCO1FBRnZCLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBRXhCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBQ2hDLENBQUM7SUFFRyxLQUFLO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU07UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNkLFFBQVEsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENB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Q0FBQztnQkFDZCxXQUFXLEVBQUUsSUFBSTthQUNwQixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsZ0JBQXdDO1FBQ3pELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVDLE1BQU0sVUFBVSxHQUFHO1lBQ2YsR0FBRyxnQkFBZ0I7WUFDbkIsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3BFLENBQUM7UUFDRixJQUFJLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDbkIsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixLQUFLLEVBQUUsU0FBUzthQUNuQixDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7O2tIQXhPUSxxQkFBcUIscURBR2xCLGlCQUFpQjtzSEFIcEIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQUlGLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFkZEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGEvc3JjL2xpYi9hZGRFbnRpdGllc1wiO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUXVlcnlNb2RlbCwgUXVlcnlSdWxlTW9kZWwsIFJ1bGVNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvcXVlcnkubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Jhc2UtbGlzdC9wcm92aWRlcnMvYmFzZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTdG9yZSB9IGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcuc3RvcmVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VGaWx0ZXJWaWV3U2VydmljZTxGaWx0ZXIgZXh0ZW5kcyBOaWNlRmlsdGVyU2VydmljZTxhbnk+ID0gTmljZUZpbHRlclNlcnZpY2U8YW55Pj4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHN0b3JlOiBOaWNlRmlsdGVyVmlld1N0b3JlLFxuICAgICAgICBASW5qZWN0KE5pY2VGaWx0ZXJTZXJ2aWNlKVxuICAgICAgICBwcm90ZWN0ZWQgZmlsdGVyU2VydmljZTogRmlsdGVyXG4gICAgKSB7fVxuXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXV0b0xvYWQoYXV0b0xvYWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoeyBhdXRvTG9hZCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhsb2FkaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TW9kZShtb2RlOiBcInBhZ2luYXRlZFwiIHwgXCJhY2N1bXVsYXRlZFwiKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHsgbW9kZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9hZENvbmZpZyhjb25maWdRdWVyeVBhcmFtczogUXVlcnlQYXJhbXMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0b3JlLnNldEZpbHRlckNvbmZpZ0xvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJDb25maWcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyQ29uZmlnKHsgcGFyYW1zOiBjb25maWdRdWVyeVBhcmFtcyB9KSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgZmlsdGVyQ29uZmlnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RmlsdGVyQ29uZmlnTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZmlsdGVyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMsIGRpc2FibGVkIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIodGhpcy5nZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMpKSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldFJlc3VsdChyZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBkb3dubG9hZERhdGEodHlwZTogc3RyaW5nLCBkb3dubG9hZEZpbGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBkaXNhYmxlZCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZ2V0RmlsZSh0eXBlLCB0aGlzLmdldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycykpKTtcbiAgICAgICAgICAgIEZpbGVVdGlscy5kb3dubG9hZEZpbGUoYCR7ZG93bmxvYWRGaWxlTmFtZX0uJHt0eXBlfWAsIHJlc3VsdCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByaW50RGF0YSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBkaXNhYmxlZCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZ2V0UHJpbnRhYmxlSHRtbCh0aGlzLmdldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycykpKTtcbiAgICAgICAgICAgIEZpbGVVdGlscy5vcGVuUHJpbnRhYmxlV2luZG93KHJlc3VsdCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVyczogRmlsdGVyUGFyYW1ldGVyc01vZGVsLCByZWxvYWQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycyk7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRQYWdpbmcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICB0aGlzLnNldFBhcmFtZXRlcnMoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHN0YXJ0OiAwXG4gICAgICAgIH0sIGZhbHNlKTtcblxuICAgICAgICB0aGlzLnJlc2V0UmVzdWx0KHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRRdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoeyBxdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QmFzZVJ1bGVzKHJ1bGU6IChRdWVyeVJ1bGVNb2RlbCB8IFF1ZXJ5TW9kZWwpW10sIHJlbG9hZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBiYXNlUnVsZXM6IHJ1bGVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRSdWxlcyhydWxlczogUXVlcnlNb2RlbCB8IFF1ZXJ5TW9kZWxbXSwgcmVsb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShydWxlcykpIHtcbiAgICAgICAgICAgIHJ1bGVzID0gW3J1bGVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXdSdWxlczogRmlsdGVyUGFyYW1ldGVyc01vZGVsID0ge1xuICAgICAgICAgICAgb3JkZXI6IGZpbHRlclBhcmFtZXRlcnMub3JkZXIsXG4gICAgICAgICAgICBydWxlc1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc2V0UGFyYW1ldGVycyhuZXdSdWxlcywgcmVsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBzZXJ0UnVsZShpZDogc3RyaW5nLCBuZXdSdWxlOiBSdWxlTW9kZWwsIHJlbG9hZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFF1ZXJ5ID0gZmlsdGVyUGFyYW1ldGVycy5ydWxlcz8uWzBdO1xuICAgICAgICBjb25zdCBydWxlOiBRdWVyeVJ1bGVNb2RlbCA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgLi4ubmV3UnVsZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBxdWVyeTogUXVlcnlNb2RlbCA9IHsgcnVsZXM6IFtydWxlXSwgY29uZGl0aW9uOiBcImFuZFwiIH07XG4gICAgICAgIGlmICghY3VycmVudFF1ZXJ5IHx8IGN1cnJlbnRRdWVyeS5ydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UnVsZXMocXVlcnkgLCByZWxvYWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb2xkUnVsZSA9IGN1cnJlbnRRdWVyeS5ydWxlcy5maW5kKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgPT09IGlkKSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgbGV0IG5ld1J1bGVzID0gY3VycmVudFF1ZXJ5LnJ1bGVzO1xuICAgICAgICBpZiAob2xkUnVsZSkge1xuICAgICAgICAgICAgaWYgKG5ld1J1bGUpIHtcbiAgICAgICAgICAgICAgICAvLyBBcnJheSByZXBsYWNlXG4gICAgICAgICAgICAgICAgbmV3UnVsZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRRdWVyeS5ydWxlcy5zbGljZSgwLCBjdXJyZW50UXVlcnkucnVsZXMuaW5kZXhPZihvbGRSdWxlKSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICAuLi5jdXJyZW50UXVlcnkucnVsZXMuc2xpY2UoY3VycmVudFF1ZXJ5LnJ1bGVzLmluZGV4T2Yob2xkUnVsZSkgKyAxLCBjdXJyZW50UXVlcnkucnVsZXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1J1bGVzID0gY3VycmVudFF1ZXJ5LnJ1bGVzLmZpbHRlcigocikgPT4gKHIgYXMgUXVlcnlSdWxlTW9kZWwpLmlkICE9PSBpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdSdWxlcyA9IFsuLi5uZXdSdWxlcywgcXVlcnldO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0UnVsZXMoe1xuICAgICAgICAgICAgY29uZGl0aW9uOiBjdXJyZW50UXVlcnkuY29uZGl0aW9uLFxuICAgICAgICAgICAgcnVsZXM6IG5ld1J1bGVzXG4gICAgICAgIH0sIHJlbG9hZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVJ1bGUoaWQ6IHN0cmluZywgcmVsb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50UXVlcnkgPSBmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzPy5bMF07XG4gICAgICAgIGNvbnN0IG9sZFJ1bGUgPSBjdXJyZW50UXVlcnkucnVsZXMuZmluZCgocikgPT4gKHIgYXMgUXVlcnlSdWxlTW9kZWwpLmlkID09PSBpZCkgYXMgUXVlcnlSdWxlTW9kZWw7XG4gICAgICAgIGlmICghb2xkUnVsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3UnVsZXMgPSBjdXJyZW50UXVlcnkucnVsZXMuZmlsdGVyKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgIT09IGlkKTtcbiAgICAgICAgdGhpcy5zZXRSdWxlcyh7XG4gICAgICAgICAgICBjb25kaXRpb246IGN1cnJlbnRRdWVyeS5jb25kaXRpb24sXG4gICAgICAgICAgICBydWxlczogbmV3UnVsZXNcbiAgICAgICAgfSwgcmVsb2FkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVmFsdWUodmFsdWU6IGFueSwgb3B0cz86IEFkZEVudGl0aWVzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLmFkZFZhbHVlKHZhbHVlLCBvcHRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBzZXJ0VmFsdWUodmFsdWU6IGFueSwga2V5ID0gXCJpZFwiKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBzZXJ0VmFsdWUodmFsdWUsIGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVZhbHVlKHZhbHVlOiBhbnksIGtleSA9IFwiaWRcIik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlbW92ZVZhbHVlKHZhbHVlLCBrZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldFJlc3VsdCh3YWl0Rm9yTmV4dEZpbHRlcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIXdhaXRGb3JOZXh0RmlsdGVyKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiBudWxsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgICAgICByZXNldFJlc3VsdDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsKTogRmlsdGVyUGFyYW1ldGVyc01vZGVsIHtcbiAgICAgICAgY29uc3QgeyBiYXNlUnVsZXMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBydWxlczogZmlsdGVyUGFyYW1ldGVycz8ucnVsZXMgPyBbLi4uZmlsdGVyUGFyYW1ldGVycy5ydWxlc10gOiBbXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoYmFzZVJ1bGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnMucnVsZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcImFuZFwiLFxuICAgICAgICAgICAgICAgIHJ1bGVzOiBiYXNlUnVsZXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,119 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Inject, Injectable } from "@angular/core";
3
+ import { arrayAdd, arrayRemove, arrayUpsert, EntityStore, StoreConfig } from "@datorama/akita";
4
+ import { FILTER_VIEW_STATE } from "../nice-filter-view.constant";
5
+ import * as i0 from "@angular/core";
6
+ export const initialValue = {
7
+ subStates: {},
8
+ mode: "paginated",
9
+ autoLoad: true,
10
+ disabled: false,
11
+ filterConfigLoading: false,
12
+ filterConfig: [],
13
+ filterResult: null,
14
+ filterParameters: {
15
+ start: 0,
16
+ length: 10,
17
+ order: {},
18
+ search: "",
19
+ rules: [],
20
+ data: {}
21
+ },
22
+ baseRules: [],
23
+ queryParams: null,
24
+ resetResult: false
25
+ };
26
+ let NiceFilterViewStore = class NiceFilterViewStore extends EntityStore {
27
+ constructor(state) {
28
+ super({
29
+ ...initialValue,
30
+ ...state
31
+ });
32
+ }
33
+ setFilterConfigLoading(loading) {
34
+ this.update({ filterConfigLoading: loading });
35
+ }
36
+ setParameters(filterParameters) {
37
+ this.update({ filterParameters });
38
+ }
39
+ setResult(filterResult) {
40
+ const { mode, resetResult } = this.getValue();
41
+ if (mode === "accumulated") {
42
+ this.update((state) => ({
43
+ filterResult: {
44
+ page: filterResult.page,
45
+ total: filterResult.total,
46
+ values: [
47
+ ...(resetResult ? [] : state.filterResult?.values ?? []),
48
+ ...filterResult.values
49
+ ]
50
+ },
51
+ resetResult: false
52
+ }));
53
+ }
54
+ else {
55
+ this.update({
56
+ filterResult
57
+ });
58
+ }
59
+ if (mode === "accumulated") {
60
+ this.add(filterResult.values);
61
+ }
62
+ else {
63
+ this.set(filterResult.values);
64
+ }
65
+ }
66
+ addValue(value, opts) {
67
+ const { filterResult } = this.getValue();
68
+ if (!filterResult) {
69
+ return;
70
+ }
71
+ this.update({
72
+ filterResult: {
73
+ ...filterResult,
74
+ values: arrayAdd(filterResult.values, value, opts)
75
+ }
76
+ });
77
+ this.add(value, opts);
78
+ }
79
+ upsertValue(value, key = "id") {
80
+ const { filterResult } = this.getValue();
81
+ if (!filterResult) {
82
+ return;
83
+ }
84
+ this.update({
85
+ filterResult: {
86
+ ...filterResult,
87
+ values: arrayUpsert(filterResult.values, value[key], value)
88
+ }
89
+ });
90
+ this.upsert(value[key], value);
91
+ }
92
+ removeValue(value, key = "id") {
93
+ const { filterResult } = this.getValue();
94
+ if (!filterResult) {
95
+ return;
96
+ }
97
+ this.update({
98
+ filterResult: {
99
+ ...filterResult,
100
+ values: arrayRemove(filterResult.values, value[key])
101
+ }
102
+ });
103
+ this.remove(value[key]);
104
+ }
105
+ };
106
+ NiceFilterViewStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewStore, deps: [{ token: FILTER_VIEW_STATE }], target: i0.ɵɵFactoryTarget.Injectable });
107
+ NiceFilterViewStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewStore });
108
+ NiceFilterViewStore = __decorate([
109
+ StoreConfig({ name: "nice-filter-view", resettable: true }),
110
+ __metadata("design:paramtypes", [Object])
111
+ ], NiceFilterViewStore);
112
+ export { NiceFilterViewStore };
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceFilterViewStore, decorators: [{
114
+ type: Injectable
115
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
116
+ type: Inject,
117
+ args: [FILTER_VIEW_STATE]
118
+ }] }]; } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBZSxXQUFXLEVBQVcsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLckgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBZ0JqRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQXdCO0lBQzdDLFNBQVMsRUFBRSxFQUFFO0lBQ2IsSUFBSSxFQUFFLFdBQVc7SUFDakIsUUFBUSxFQUFFLElBQUk7SUFDZCxRQUFRLEVBQUUsS0FBSztJQUNmLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsWUFBWSxFQUFFLEVBQUU7SUFDaEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsZ0JBQWdCLEVBQUU7UUFDZCxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFBRSxFQUFFO1FBQ1YsS0FBSyxFQUFFLEVBQUU7UUFDVCxNQUFNLEVBQUUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO1FBQ1QsSUFBSSxFQUFFLEVBQUU7S0FDWDtJQUNELFNBQVMsRUFBRSxFQUFFO0lBQ2IsV0FBVyxFQUFFLElBQUk7SUFDakIsV0FBVyxFQUFFLEtBQUs7Q0FDckIsQ0FBQztJQUlXLG1CQUFtQixTQUFuQixtQkFBb0IsU0FBUSxXQUFnQztJQUNyRSxZQUF1QyxLQUFtQztRQUN0RSxLQUFLLENBQUM7WUFDRixHQUFHLFlBQVk7WUFDZixHQUFHLEtBQUs7U0FDWCxD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WSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkQ7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDSixDQUFBO2dIQTFGWSxtQkFBbUIsa0JBQ1IsaUJBQWlCO29IQUQ1QixtQkFBbUI7QUFBbkIsbUJBQW1CO0lBRC9CLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7O0dBQy9DLG1CQUFtQixDQTBGL0I7U0ExRlksbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRi9CLFVBQVU7OzBCQUdNLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGFycmF5QWRkLCBhcnJheVJlbW92ZSwgYXJyYXlVcHNlcnQsIEVudGl0eVN0YXRlLCBFbnRpdHlTdG9yZSwgSGFzaE1hcCwgU3RvcmVDb25maWcgfSBmcm9tIFwiQGRhdG9yYW1hL2FraXRhXCI7XG5pbXBvcnQgeyBBZGRFbnRpdGllc09wdGlvbnMgfSBmcm9tIFwiQGRhdG9yYW1hL2FraXRhL3NyYy9saWIvYWRkRW50aXRpZXNcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwsIEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgRmlsdGVyUmVzdWx0TW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUXVlcnlNb2RlbCwgUXVlcnlSdWxlTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3F1ZXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBGSUxURVJfVklFV19TVEFURSB9IGZyb20gXCIuLi9uaWNlLWZpbHRlci12aWV3LmNvbnN0YW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmljZUZpbHRlclZpZXdTdGF0ZSBleHRlbmRzIEVudGl0eVN0YXRlIHtcbiAgICBzdWJTdGF0ZXM6IEhhc2hNYXA8YW55PjtcbiAgICBtb2RlOiBcInBhZ2luYXRlZFwiIHwgXCJhY2N1bXVsYXRlZFwiO1xuICAgIGF1dG9Mb2FkOiBib29sZWFuO1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIGZpbHRlckNvbmZpZ0xvYWRpbmc6IGJvb2xlYW47XG4gICAgZmlsdGVyQ29uZmlnOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWxbXTtcbiAgICBmaWx0ZXJSZXN1bHQ6IEZpbHRlclJlc3VsdE1vZGVsIHwgbnVsbDtcbiAgICBmaWx0ZXJQYXJhbWV0ZXJzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWw7XG4gICAgYmFzZVJ1bGVzOiAoUXVlcnlSdWxlTW9kZWwgfCBRdWVyeU1vZGVsKVtdO1xuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcztcbiAgICByZXNldFJlc3VsdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxWYWx1ZTogTmljZUZpbHRlclZpZXdTdGF0ZSA9IHtcbiAgICBzdWJTdGF0ZXM6IHt9LFxuICAgIG1vZGU6IFwicGFnaW5hdGVkXCIsXG4gICAgYXV0b0xvYWQ6IHRydWUsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGZpbHRlckNvbmZpZ0xvYWRpbmc6IGZhbHNlLFxuICAgIGZpbHRlckNvbmZpZzogW10sXG4gICAgZmlsdGVyUmVzdWx0OiBudWxsLFxuICAgIGZpbHRlclBhcmFtZXRlcnM6IHtcbiAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgIGxlbmd0aDogMTAsXG4gICAgICAgIG9yZGVyOiB7fSxcbiAgICAgICAgc2VhcmNoOiBcIlwiLFxuICAgICAgICBydWxlczogW10sXG4gICAgICAgIGRhdGE6IHt9XG4gICAgfSxcbiAgICBiYXNlUnVsZXM6IFtdLFxuICAgIHF1ZXJ5UGFyYW1zOiBudWxsLFxuICAgIHJlc2V0UmVzdWx0OiBmYWxzZVxufTtcblxuQEluamVjdGFibGUoKVxuQFN0b3JlQ29uZmlnKHsgbmFtZTogXCJuaWNlLWZpbHRlci12aWV3XCIsIHJlc2V0dGFibGU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOaWNlRmlsdGVyVmlld1N0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8TmljZUZpbHRlclZpZXdTdGF0ZT4ge1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRklMVEVSX1ZJRVdfU1RBVEUpIHN0YXRlOiBQYXJ0aWFsPE5pY2VGaWx0ZXJWaWV3U3RhdGU+KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIC4uLmluaXRpYWxWYWx1ZSxcbiAgICAgICAgICAgIC4uLnN0YXRlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGaWx0ZXJDb25maWdMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUoeyBmaWx0ZXJDb25maWdMb2FkaW5nOiBsb2FkaW5nIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZSh7IGZpbHRlclBhcmFtZXRlcnMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFJlc3VsdChmaWx0ZXJSZXN1bHQ6IEZpbHRlclJlc3VsdE1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgbW9kZSwgcmVzZXRSZXN1bHQgfSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKG1vZGUgPT09IFwiYWNjdW11bGF0ZWRcIikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgICAgICBwYWdlOiBmaWx0ZXJSZXN1bHQucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgdG90YWw6IGZpbHRlclJlc3VsdC50b3RhbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4ocmVzZXRSZXN1bHQgPyBbXSA6IHN0YXRlLmZpbHRlclJlc3VsdD8udmFsdWVzID8/IFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdC52YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzZXRSZXN1bHQ6IGZhbHNlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb2RlID09PSBcImFjY3VtdWxhdGVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkKGZpbHRlclJlc3VsdC52YWx1ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXQoZmlsdGVyUmVzdWx0LnZhbHVlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVmFsdWUodmFsdWU6IGFueSwgb3B0cz86IEFkZEVudGl0aWVzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclJlc3VsdCB9ID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIWZpbHRlclJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGUoe1xuICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgLi4uZmlsdGVyUmVzdWx0LFxuICAgICAgICAgICAgICAgIHZhbHVlczogYXJyYXlBZGQoZmlsdGVyUmVzdWx0LnZhbHVlcywgdmFsdWUsIG9wdHMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWRkKHZhbHVlLCBvcHRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBzZXJ0VmFsdWUodmFsdWU6IGFueSwga2V5ID0gXCJpZFwiKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheVVwc2VydChmaWx0ZXJSZXN1bHQudmFsdWVzLCB2YWx1ZVtrZXldLCB2YWx1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cHNlcnQodmFsdWVba2V5XSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVWYWx1ZSh2YWx1ZTogYW55LCBrZXkgPSBcImlkXCIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5UmVtb3ZlKGZpbHRlclJlc3VsdC52YWx1ZXMsIHZhbHVlW2tleV0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVtb3ZlKHZhbHVlW2tleV0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  export * from "./base-list/public-api";
2
2
  export * from "./multi-state-list/public-api";
3
+ export * from "./nice-filter-view/public-api";
3
4
  export * from "./query-builder/public-api";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIGV4cG9ydCAqIGZyb20gXCIuL2Jhc2UtbGlzdC9wdWJsaWMtYXBpXCI7XG4gZXhwb3J0ICogZnJvbSBcIi4vbXVsdGktc3RhdGUtbGlzdC9wdWJsaWMtYXBpXCI7XG4gZXhwb3J0ICogZnJvbSBcIi4vcXVlcnktYnVpbGRlci9wdWJsaWMtYXBpXCI7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIgZXhwb3J0ICogZnJvbSBcIi4vYmFzZS1saXN0L3B1YmxpYy1hcGlcIjtcbiBleHBvcnQgKiBmcm9tIFwiLi9tdWx0aS1zdGF0ZS1saXN0L3B1YmxpYy1hcGlcIjtcbiBleHBvcnQgKiBmcm9tIFwiLi9uaWNlLWZpbHRlci12aWV3L3B1YmxpYy1hcGlcIjtcbiBleHBvcnQgKiBmcm9tIFwiLi9xdWVyeS1idWlsZGVyL3B1YmxpYy1hcGlcIjtcbiJdfQ==
@@ -1,6 +1,10 @@
1
1
  import { HttpParams } from "@angular/common/http";
2
2
  import { isNullOrUndefined } from "@recursyve/nice-ui-kit.v2";
3
3
  export class QueryParamsUtils {
4
+ static hasFilterParameters(params) {
5
+ const keys = ["start", "length", "order", "search", "rules"];
6
+ return Object.keys(params).some(key => keys.includes(key));
7
+ }
4
8
  static extractFilterParameters(params) {
5
9
  const filters = {};
6
10
  if (!isNullOrUndefined(params.start)) {
@@ -63,4 +67,4 @@ export class QueryParamsUtils {
63
67
  }).toString();
64
68
  }
65
69
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW1zLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi91dGlscy9xdWVyeS1wYXJhbXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlELE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsTUFBTSxDQUFDLHVCQUF1QixDQUFDLE1BQThCO1FBQ2hFLE1BQU0sT0FBTyxHQUEwQixFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsQyxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsSUFBSTtnQkFDQSxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO2FBQ3hCO1NBQ0o7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsSUFBSTtnQkFDQSxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO2FBQ3hCO1NBQ0o7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLGdCQUF1QztRQUM3RSxNQUFNLE1BQU0sR0FBMkIsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QyxNQUFNLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QyxNQUFNLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztTQUMzQztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNILE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzdDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6RDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVE7UUFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3pDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDckIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbkI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxVQUFVLENBQUM7WUFDbEIsVUFBVSxFQUFFLEdBQUc7U0FDbEIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IEZpbHRlclBhcmFtZXRlcnNNb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeVBhcmFtc1V0aWxzIHtcbiAgICBwdWJsaWMgc3RhdGljIGV4dHJhY3RGaWx0ZXJQYXJhbWV0ZXJzKHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCA9IHt9O1xuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHBhcmFtcy5zdGFydCkpIHtcbiAgICAgICAgICAgIGZpbHRlcnMuc3RhcnQgPSBOdW1iZXIocGFyYW1zLnN0YXJ0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHBhcmFtcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICBmaWx0ZXJzLmxlbmd0aCA9IE51bWJlcihwYXJhbXMubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHBhcmFtcy5vcmRlcikpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZmlsdGVycy5vcmRlciA9IEpTT04ucGFyc2UocGFyYW1zLm9yZGVyKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZmlsdGVycy5vcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHBhcmFtcy5zZWFyY2gpKSB7XG4gICAgICAgICAgICBmaWx0ZXJzLnNlYXJjaCA9IHBhcmFtcy5zZWFyY2g7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChwYXJhbXMucnVsZXMpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZpbHRlcnMucnVsZXMgPSBKU09OLnBhcnNlKHBhcmFtcy5ydWxlcyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGZpbHRlcnMucnVsZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlsdGVycztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZpbHRlclBhcmFtZXRlcnNUb1BhcmFtc01hcChmaWx0ZXJQYXJhbWV0ZXJzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICAgICAgY29uc3QgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoZmlsdGVyUGFyYW1ldGVycy5zdGFydCkpIHtcbiAgICAgICAgICAgIHBhcmFtcy5zdGFydCA9IGZpbHRlclBhcmFtZXRlcnMuc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChmaWx0ZXJQYXJhbWV0ZXJzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHBhcmFtcy5sZW5ndGggPSBmaWx0ZXJQYXJhbWV0ZXJzLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGZpbHRlclBhcmFtZXRlcnMub3JkZXIpKSB7XG4gICAgICAgICAgICBwYXJhbXMub3JkZXIgPSBKU09OLnN0cmluZ2lmeShmaWx0ZXJQYXJhbWV0ZXJzLm9yZGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtcy5vcmRlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChmaWx0ZXJQYXJhbWV0ZXJzLnNlYXJjaCkpIHtcbiAgICAgICAgICAgIHBhcmFtcy5zZWFyY2ggPSBmaWx0ZXJQYXJhbWV0ZXJzLnNlYXJjaDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGZpbHRlclBhcmFtZXRlcnMucnVsZXMpKSB7XG4gICAgICAgICAgICBwYXJhbXMucnVsZXMgPSBKU09OLnN0cmluZ2lmeShmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tT2JqZWN0KG9iajogYW55KTogc3RyaW5nIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMob2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IG9ialxuICAgICAgICB9KS50b1N0cmluZygpO1xuICAgIH1cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW1zLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi91dGlscy9xdWVyeS1wYXJhbXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlELE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQThCO1FBQzVELE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxNQUE4QjtRQUNoRSxNQUFNLE9BQU8sR0FBMEIsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLElBQUk7Z0JBQ0EsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QztZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNSLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQzthQUN4QjtTQUNKO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLElBQUk7Z0JBQ0EsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QztZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNSLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQzthQUN4QjtTQUNKO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVNLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxnQkFBdUM7UUFDN0UsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDNUMsTUFBTSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0MsTUFBTSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDNUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDSCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QyxNQUFNLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztTQUMzQztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFRO1FBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ25CO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksVUFBVSxDQUFDO1lBQ2xCLFVBQVUsRUFBRSxHQUFHO1NBQ2xCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlQYXJhbXNVdGlscyB7XG4gICAgcHVibGljIHN0YXRpYyBoYXNGaWx0ZXJQYXJhbWV0ZXJzKHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBrZXlzID0gW1wic3RhcnRcIiwgXCJsZW5ndGhcIiwgXCJvcmRlclwiLCBcInNlYXJjaFwiLCBcInJ1bGVzXCJdO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKS5zb21lKGtleSA9PiBrZXlzLmluY2x1ZGVzKGtleSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZXh0cmFjdEZpbHRlclBhcmFtZXRlcnMocGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogRmlsdGVyUGFyYW1ldGVyc01vZGVsIHtcbiAgICAgICAgY29uc3QgZmlsdGVyczogRmlsdGVyUGFyYW1ldGVyc01vZGVsID0ge307XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQocGFyYW1zLnN0YXJ0KSkge1xuICAgICAgICAgICAgZmlsdGVycy5zdGFydCA9IE51bWJlcihwYXJhbXMuc3RhcnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQocGFyYW1zLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIGZpbHRlcnMubGVuZ3RoID0gTnVtYmVyKHBhcmFtcy5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQocGFyYW1zLm9yZGVyKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJzLm9yZGVyID0gSlNPTi5wYXJzZShwYXJhbXMub3JkZXIpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWx0ZXJzLm9yZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQocGFyYW1zLnNlYXJjaCkpIHtcbiAgICAgICAgICAgIGZpbHRlcnMuc2VhcmNoID0gcGFyYW1zLnNlYXJjaDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHBhcmFtcy5ydWxlcykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZmlsdGVycy5ydWxlcyA9IEpTT04ucGFyc2UocGFyYW1zLnJ1bGVzKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZmlsdGVycy5ydWxlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZmlsdGVyUGFyYW1ldGVyc1RvUGFyYW1zTWFwKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgICAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChmaWx0ZXJQYXJhbWV0ZXJzLnN0YXJ0KSkge1xuICAgICAgICAgICAgcGFyYW1zLnN0YXJ0ID0gZmlsdGVyUGFyYW1ldGVycy5zdGFydDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGZpbHRlclBhcmFtZXRlcnMubGVuZ3RoKSkge1xuICAgICAgICAgICAgcGFyYW1zLmxlbmd0aCA9IGZpbHRlclBhcmFtZXRlcnMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoZmlsdGVyUGFyYW1ldGVycy5vcmRlcikpIHtcbiAgICAgICAgICAgIHBhcmFtcy5vcmRlciA9IEpTT04uc3RyaW5naWZ5KGZpbHRlclBhcmFtZXRlcnMub3JkZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLm9yZGVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGZpbHRlclBhcmFtZXRlcnMuc2VhcmNoKSkge1xuICAgICAgICAgICAgcGFyYW1zLnNlYXJjaCA9IGZpbHRlclBhcmFtZXRlcnMuc2VhcmNoO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoZmlsdGVyUGFyYW1ldGVycy5ydWxlcykpIHtcbiAgICAgICAgICAgIHBhcmFtcy5ydWxlcyA9IEpTT04uc3RyaW5naWZ5KGZpbHRlclBhcmFtZXRlcnMucnVsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21PYmplY3Qob2JqOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgICAgZnJvbU9iamVjdDogb2JqXG4gICAgICAgIH0pLnRvU3RyaW5nKCk7XG4gICAgfVxufVxuIl19