@recursyve/nice-data-filter-kit 14.5.1 → 14.5.2

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.
@@ -32,10 +32,17 @@ export class NiceAdvancedFiltersComponent {
32
32
  this.rules$ = this.rulesFormArray.valueChanges.pipe(startWith(this.rulesFormArray.value));
33
33
  }
34
34
  ngOnInit() {
35
- const { filterParameters } = this.query.getValue();
35
+ const { filterParameters, subStates } = this.query.getValue();
36
36
  if (filterParameters.rules?.length) {
37
37
  this.formGroup.patchValue(new AdvancedFiltersForm(filterParameters.rules[0]));
38
38
  }
39
+ if (subStates.selectedFilter) {
40
+ this.onClickAddRule(subStates.selectedFilter);
41
+ return;
42
+ }
43
+ }
44
+ ngOnDestroy() {
45
+ this.removeEmptyRules({ reload: false });
39
46
  }
40
47
  onClickAddRule(filterConfigurationModel) {
41
48
  this.rulesFormArray.push(new FilterForm(AdvancedFiltersUtils.createRule(filterConfigurationModel)));
@@ -50,6 +57,7 @@ export class NiceAdvancedFiltersComponent {
50
57
  }
51
58
  }
52
59
  onClose() {
60
+ this.removeEmptyRules();
53
61
  this.service.updateSubState("showAdvancedFilters", false);
54
62
  }
55
63
  onRefresh() {
@@ -57,6 +65,31 @@ export class NiceAdvancedFiltersComponent {
57
65
  this.service.resetResult(true);
58
66
  this.service.filter();
59
67
  }
68
+ removeEmptyRules({ reload } = { reload: true }) {
69
+ if (this.rulesFormArray.length !== 1) {
70
+ return;
71
+ }
72
+ const values = this.rulesFormArray.get([0, "values"]).getRawValue();
73
+ if (values.length !== 1) {
74
+ return;
75
+ }
76
+ const value = values[0];
77
+ if (value.value || value.value === false || value.secondValue || value.secondValue === true) {
78
+ return;
79
+ }
80
+ this.rulesFormArray.removeAt(0);
81
+ const { filterParameters } = this.query.getValue();
82
+ if (!filterParameters.rules.length || !filterParameters.rules[0].rules.length) {
83
+ return;
84
+ }
85
+ this.service.setRules([]);
86
+ if (!reload) {
87
+ return;
88
+ }
89
+ if (filterParameters.rules[0].rules[0].value) {
90
+ this.service.filter();
91
+ }
92
+ }
60
93
  }
61
94
  NiceAdvancedFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedFiltersComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1.GeneratedFormGroup }, { token: i2.NiceFilterViewQuery }, { token: i3.NiceFilterViewService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
62
95
  NiceAdvancedFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceAdvancedFiltersComponent, selector: "nice-advanced-filters", providers: [
@@ -83,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
83
116
  type: Inject,
84
117
  args: [ADVANCED_FILTER_ICONS]
85
118
  }] }, { type: i1.GeneratedFormGroup }, { type: i2.NiceFilterViewQuery }, { type: i3.NiceFilterViewService }, { type: i0.ChangeDetectorRef }]; } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQXNCLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFMUUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFv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LE9BQU8sRUFBRSw2QkFBNkI7NEJBQ3RDLFFBQVEsRUFBRSxxQ0FBcUM7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFTMUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBHZW5lcmF0ZWRGb3JtQXJyYXksIEdlbmVyYXRlZEZvcm1Hcm91cCwgTmd4Rm9ybUdlbmVyYXRvclByb3ZpZGVyIH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBOSUNFX0FTWU5DX1RZUEVBSEVBRF9QUk9WSURFUiB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzdGFydFdpdGggfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3UXVlcnkgfSBmcm9tIFwiLi4vLi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5xdWVyeVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc2VydmljZVwiO1xuaW1wb3J0IHsgQURWQU5DRURfRklMVEVSX0lDT05TIH0gZnJvbSBcIi4vYWR2YW5jZWQtZmlsdGVycy5jb25zdGFudFwiO1xuaW1wb3J0IHsgQWR2YW5jZWRGaWx0ZXJzRm9ybSwgRmlsdGVyRm9ybSB9IGZyb20gXCIuL2FkdmFuY2VkLWZpbHRlcnMuZm9ybVwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMgfSBmcm9tIFwiLi9tb2RlbHMvaWNvbnMubW9kZWxcIjtcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyc0FzeW5jVHlwZWFoZWFkUHJvdmlkZXIgfSBmcm9tIFwiLi9wcm92aWRlcnMvYXN5bmMtdHlwZWFoZWFkLnByb3ZpZGVyXCI7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlcnNVdGlscyB9IGZyb20gXCIuL3V0aWxzL2FkdmFuY2VkLWZpbHRlcnMudXRpbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1hZHZhbmNlZC1maWx0ZXJzXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiYWR2YW5jZWQtZmlsdGVycy50ZW1wbGF0ZS5odG1sXCIsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmd4Rm9ybUdlbmVyYXRvclByb3ZpZGVyLmZvckZlYXR1cmUoW0FkdmFuY2VkRmlsdGVyc0Zvcm1dKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTklDRV9BU1lOQ19UWVBFQUhFQURfUFJPVklERVIsXG4gICAgICAgICAgICB1c2VDbGFzczogQWR2YW5jZWRGaWx0ZXJzQXN5bmNUeXBlYWhlYWRQcm92aWRlcixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VBZHZhbmNlZEZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBjb25maWckID0gdGhpcy5xdWVyeS5zZWxlY3RGaWx0ZXJDb25maWcoKTtcblxuICAgIHB1YmxpYyBydWxlcyQ6IE9ic2VydmFibGU8RmlsdGVyRm9ybVtdPjtcbiAgICBwdWJsaWMgcnVsZXNGb3JtQXJyYXk6IEdlbmVyYXRlZEZvcm1BcnJheTxGaWx0ZXJGb3JtPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFEVkFOQ0VEX0ZJTFRFUl9JQ09OUylcbiAgICAgICAgcHVibGljIGljb25zOiBOaWNlQWR2YW5jZWRGaWx0ZXJJY29uT3B0aW9ucyxcbiAgICAgICAgcHVibGljIGZvcm1Hcm91cDogR2VuZXJhdGVkRm9ybUdyb3VwPEFkdmFuY2VkRmlsdGVyc0Zvcm0+LFxuICAgICAgICBwcml2YXRlIHF1ZXJ5OiBOaWNlRmlsdGVyVmlld1F1ZXJ5LFxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5ydWxlc0Zvcm1BcnJheSA9IHRoaXMuZm9ybUdyb3VwLmdldChcInJ1bGVzXCIpIGFzIEdlbmVyYXRlZEZvcm1BcnJheTxGaWx0ZXJGb3JtPjtcbiAgICAgICAgdGhpcy5ydWxlcyQgPSB0aGlzLnJ1bGVzRm9ybUFycmF5LnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLnJ1bGVzRm9ybUFycmF5LnZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMucXVlcnkuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKGZpbHRlclBhcmFtZXRlcnMucnVsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShuZXcgQWR2YW5jZWRGaWx0ZXJzRm9ybShmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzWzBdKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGlja0FkZFJ1bGUoZmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydWxlc0Zvcm1BcnJheS5wdXNoKG5ldyBGaWx0ZXJGb3JtKEFkdmFuY2VkRmlsdGVyc1V0aWxzLmNyZWF0ZVJ1bGUoZmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKSkpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrRGVsZXRlUnVsZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZXNGb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgICBpZiAoIXRoaXMucnVsZXNGb3JtQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0UnVsZXMoW10pO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmZpbHRlcigpO1xuICAgICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVN1YlN0YXRlKFwic2hvd0FkdmFuY2VkRmlsdGVyc1wiLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVmcmVzaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnNldFJ1bGVzKHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkudHJhbnNmb3JtKCkpO1xuICAgICAgICB0aGlzLnNlcnZpY2UucmVzZXRSZXN1bHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5maWx0ZXIoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkdmFuY2VkLWZpbHRlci10aXRsZVwiPnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMudGl0bGVcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZHZhbmNlZC1maWx0ZXItY29uZGl0aW9uXCI+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5jb25kaXRpb25zLnNob3VsZF9tYXRjaFwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XG5cbiAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwiYW5kXCI+PHNwYW4gY2xhc3M9XCJtbC00IG1yLThcIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNvbmRpdGlvbnMuZXZlcnlcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj48L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cIm9yXCI+PHNwYW4gY2xhc3M9XCJtbC00IG1yLThcIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNvbmRpdGlvbnMuc29tZVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPjwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiIGZvcm1BcnJheU5hbWU9XCJydWxlc1wiICpuZ0Zvcj1cImxldCBfIG9mIHJ1bGVzRm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxuaWNlLWFkdmFuY2VkLXJ1bGUgW2ZpbHRlckNvbmZpZ3NdPVwiY29uZmlnJCB8IGFzeW5jXCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiIChyZW1vdmUpPVwib25DbGlja0RlbGV0ZVJ1bGUoaSlcIj48L25pY2UtYWR2YW5jZWQtcnVsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGQtY29uZGl0aW9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgbmljZUFkdmFuY2VkRmlsdGVyc1RyaWdnZXIgcG9zaXRpb249XCJ0b3BSaWdodFwiIChhZHZhbmNlZEZpbHRlclNlbGVjdGVkKT1cIm9uQ2xpY2tBZGRSdWxlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5hZGQuc3ZnSWNvblwiPnt7IGljb25zLmFkZC5tYXRJY29uIH19PC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxkaXY+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5hZGRfY29uZGl0aW9uXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC02IGp1c3RpZnktZW5kIHB0LTRcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuY2xvc2Uuc3ZnSWNvblwiPnt7IGljb25zLmNsb3NlLm1hdEljb24gfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGRpdj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNsb3NlXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVmcmVzaC1idXR0b25cIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwib25SZWZyZXNoKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5yZWZyZXNoLnN2Z0ljb25cIj57eyBpY29ucy5yZWZyZXNoLm1hdEljb24gfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGRpdj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLnJlZnJlc2hcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBR04sUUFBUSxFQUNSLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXNCLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFvQixNQUFNLHlCQUF5QixDQUFDO0FBRTVGLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxv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VSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxRDtZQUNJLE9BQU8sRUFBRSw2QkFBNkI7WUFDdEMsUUFBUSxFQUFFLHFDQUFxQztZQUMvQyxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osMEJDbENMLHMxRUE0Q0E7MkZEUGEsNEJBQTRCO2tCQWR4QyxTQUFTOytCQUNJLHVCQUF1QixpQkFFbEIsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUCx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3dCQUMxRDs0QkFDSSxPQUFPLEVBQUUsNkJBQTZCOzRCQUN0QyxRQUFRLEVBQUUscUNBQXFDOzRCQUMvQyxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBUzFDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEdlbmVyYXRlZEZvcm1BcnJheSwgR2VuZXJhdGVkRm9ybUdyb3VwLCBOZ3hGb3JtR2VuZXJhdG9yUHJvdmlkZXIgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uZ3gtZm9ybS1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IE5JQ0VfQVNZTkNfVFlQRUFIRUFEX1BST1ZJREVSIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIHN0YXJ0V2l0aCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUXVlcnlSdWxlTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxzL3F1ZXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1F1ZXJ5IH0gZnJvbSBcIi4uLy4uL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3U2VydmljZSB9IGZyb20gXCIuLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnNlcnZpY2VcIjtcbmltcG9ydCB7IEFEVkFOQ0VEX0ZJTFRFUl9JQ09OUyB9IGZyb20gXCIuL2FkdmFuY2VkLWZpbHRlcnMuY29uc3RhbnRcIjtcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyc0Zvcm0sIEZpbHRlckZvcm0sIEZpbHRlckZvcm1WYWx1ZXMgfSBmcm9tIFwiLi9hZHZhbmNlZC1maWx0ZXJzLmZvcm1cIjtcbmltcG9ydCB7IE5pY2VBZHZhbmNlZEZpbHRlckljb25PcHRpb25zIH0gZnJvbSBcIi4vbW9kZWxzL2ljb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlcnNBc3luY1R5cGVhaGVhZFByb3ZpZGVyIH0gZnJvbSBcIi4vcHJvdmlkZXJzL2FzeW5jLXR5cGVhaGVhZC5wcm92aWRlclwiO1xuaW1wb3J0IHsgQWR2YW5jZWRGaWx0ZXJzVXRpbHMgfSBmcm9tIFwiLi91dGlscy9hZHZhbmNlZC1maWx0ZXJzLnV0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYWR2YW5jZWQtZmlsdGVyc1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcImFkdmFuY2VkLWZpbHRlcnMudGVtcGxhdGUuaHRtbFwiLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE5neEZvcm1HZW5lcmF0b3JQcm92aWRlci5mb3JGZWF0dXJlKFtBZHZhbmNlZEZpbHRlcnNGb3JtXSksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5JQ0VfQVNZTkNfVFlQRUFIRUFEX1BST1ZJREVSLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IEFkdmFuY2VkRmlsdGVyc0FzeW5jVHlwZWFoZWFkUHJvdmlkZXIsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBjb25maWckID0gdGhpcy5xdWVyeS5zZWxlY3RGaWx0ZXJDb25maWcoKTtcblxuICAgIHB1YmxpYyBydWxlcyQ6IE9ic2VydmFibGU8RmlsdGVyRm9ybVtdPjtcbiAgICBwdWJsaWMgcnVsZXNGb3JtQXJyYXk6IEdlbmVyYXRlZEZvcm1BcnJheTxGaWx0ZXJGb3JtPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFEVkFOQ0VEX0ZJTFRFUl9JQ09OUylcbiAgICAgICAgcHVibGljIGljb25zOiBOaWNlQWR2YW5jZWRGaWx0ZXJJY29uT3B0aW9ucyxcbiAgICAgICAgcHVibGljIGZvcm1Hcm91cDogR2VuZXJhdGVkRm9ybUdyb3VwPEFkdmFuY2VkRmlsdGVyc0Zvcm0+LFxuICAgICAgICBwcml2YXRlIHF1ZXJ5OiBOaWNlRmlsdGVyVmlld1F1ZXJ5LFxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5ydWxlc0Zvcm1BcnJheSA9IHRoaXMuZm9ybUdyb3VwLmdldChcInJ1bGVzXCIpIGFzIEdlbmVyYXRlZEZvcm1BcnJheTxGaWx0ZXJGb3JtPjtcbiAgICAgICAgdGhpcy5ydWxlcyQgPSB0aGlzLnJ1bGVzRm9ybUFycmF5LnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLnJ1bGVzRm9ybUFycmF5LnZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMsIHN1YlN0YXRlcyB9ID0gdGhpcy5xdWVyeS5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGlmIChmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3IEFkdmFuY2VkRmlsdGVyc0Zvcm0oZmlsdGVyUGFyYW1ldGVycy5ydWxlc1swXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YlN0YXRlcy5zZWxlY3RlZEZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy5vbkNsaWNrQWRkUnVsZShzdWJTdGF0ZXMuc2VsZWN0ZWRGaWx0ZXIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUVtcHR5UnVsZXMoeyByZWxvYWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrQWRkUnVsZShmaWx0ZXJDb25maWd1cmF0aW9uTW9kZWw6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJ1bGVzRm9ybUFycmF5LnB1c2gobmV3IEZpbHRlckZvcm0oQWR2YW5jZWRGaWx0ZXJzVXRpbHMuY3JlYXRlUnVsZShmaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpKSk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tEZWxldGVSdWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydWxlc0Zvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgICAgIGlmICghdGhpcy5ydWxlc0Zvcm1BcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZXRSdWxlcyhbXSk7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZmlsdGVyKCk7XG4gICAgICAgICAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUVtcHR5UnVsZXMoKTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVN1YlN0YXRlKFwic2hvd0FkdmFuY2VkRmlsdGVyc1wiLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVmcmVzaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnNldFJ1bGVzKHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkudHJhbnNmb3JtKCkpO1xuICAgICAgICB0aGlzLnNlcnZpY2UucmVzZXRSZXN1bHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5maWx0ZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlRW1wdHlSdWxlcyh7IHJlbG9hZCB9OiB7IHJlbG9hZDogYm9vbGVhbiB9ID0geyByZWxvYWQ6IHRydWUgfSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ydWxlc0Zvcm1BcnJheS5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucnVsZXNGb3JtQXJyYXkuZ2V0KFswLCBcInZhbHVlc1wiXSkuZ2V0UmF3VmFsdWUoKSBhcyBGaWx0ZXJGb3JtVmFsdWVzW107XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlc1swXTtcbiAgICAgICAgaWYgKHZhbHVlLnZhbHVlIHx8IHZhbHVlLnZhbHVlID09PSBmYWxzZSB8fCB2YWx1ZS5zZWNvbmRWYWx1ZSB8fCB2YWx1ZS5zZWNvbmRWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ydWxlc0Zvcm1BcnJheS5yZW1vdmVBdCgwKTtcblxuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMucXVlcnkuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzLmxlbmd0aCB8fCAhZmlsdGVyUGFyYW1ldGVycy5ydWxlc1swXS5ydWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VydmljZS5zZXRSdWxlcyhbXSk7XG4gICAgICAgIGlmICghcmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGZpbHRlclBhcmFtZXRlcnMucnVsZXNbMF0ucnVsZXNbMF0gYXMgUXVlcnlSdWxlTW9kZWwpLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkdmFuY2VkLWZpbHRlci10aXRsZVwiPnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMudGl0bGVcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZHZhbmNlZC1maWx0ZXItY29uZGl0aW9uXCI+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5jb25kaXRpb25zLnNob3VsZF9tYXRjaFwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XG5cbiAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwiYW5kXCI+PHNwYW4gY2xhc3M9XCJtbC00IG1yLThcIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNvbmRpdGlvbnMuZXZlcnlcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj48L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cIm9yXCI+PHNwYW4gY2xhc3M9XCJtbC00IG1yLThcIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNvbmRpdGlvbnMuc29tZVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPjwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiIGZvcm1BcnJheU5hbWU9XCJydWxlc1wiICpuZ0Zvcj1cImxldCBfIG9mIHJ1bGVzRm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxuaWNlLWFkdmFuY2VkLXJ1bGUgW2ZpbHRlckNvbmZpZ3NdPVwiY29uZmlnJCB8IGFzeW5jXCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiIChyZW1vdmUpPVwib25DbGlja0RlbGV0ZVJ1bGUoaSlcIj48L25pY2UtYWR2YW5jZWQtcnVsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGQtY29uZGl0aW9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgbmljZUFkdmFuY2VkRmlsdGVyc1RyaWdnZXIgcG9zaXRpb249XCJ0b3BSaWdodFwiIChhZHZhbmNlZEZpbHRlclNlbGVjdGVkKT1cIm9uQ2xpY2tBZGRSdWxlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5hZGQuc3ZnSWNvblwiPnt7IGljb25zLmFkZC5tYXRJY29uIH19PC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxkaXY+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5hZGRfY29uZGl0aW9uXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC02IGp1c3RpZnktZW5kIHB0LTRcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuY2xvc2Uuc3ZnSWNvblwiPnt7IGljb25zLmNsb3NlLm1hdEljb24gfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGRpdj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNsb3NlXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVmcmVzaC1idXR0b25cIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwib25SZWZyZXNoKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5yZWZyZXNoLnN2Z0ljb25cIj57eyBpY29ucy5yZWZyZXNoLm1hdEljb24gfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGRpdj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLnJlZnJlc2hcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,8 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, Inject, Optional, ViewEncapsulation } from "@angular/core";
2
- import { map, withLatestFrom } from "rxjs/operators";
2
+ import { combineLatestWith, map } from "rxjs/operators";
3
3
  import { NiceFilterViewQuery } from "../../../store/nice-filter-view.query";
4
4
  import { NiceFilterViewService } from "../../../store/nice-filter-view.service";
5
- import { AdvancedFiltersUtils } from "../utils/advanced-filters.utils";
6
5
  import { ADVANCED_FILTER_ICONS } from "../advanced-filters.constant";
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "../../../store/nice-filter-view.query";
@@ -17,7 +16,7 @@ export class NiceAdvancedFiltersButtonComponent {
17
16
  this.query = query;
18
17
  this.service = service;
19
18
  this.shouldShowAdvancedFilters$ = this.query.selectSubState("showAdvancedFilters");
20
- this.hasParameters$ = this.query.selectFilterParameters().pipe(withLatestFrom(this.query.selectFilterConfig()), map(([parameter, config]) => !!parameter
19
+ this.hasParameters$ = this.query.selectFilterParameters().pipe(combineLatestWith(this.query.selectFilterConfig()), map(([parameter, config]) => !!parameter
21
20
  .rules
22
21
  ?.filter((rule) => config.some((conf) => conf?.id === rule.rules[0]?.id))
23
22
  ?.length));
@@ -26,20 +25,19 @@ export class NiceAdvancedFiltersButtonComponent {
26
25
  this.service.updateSubState("showAdvancedFilters", !this.query.getSubState("showAdvancedFilters"));
27
26
  }
28
27
  onSelectedFilter(filter) {
29
- const rule = AdvancedFiltersUtils.createRule(filter);
30
- this.service.setRules([{ condition: "and", rules: [rule] }]);
31
28
  this.service.updateSubState("showAdvancedFilters", true);
29
+ this.service.updateSubState("selectedFilter", filter);
32
30
  }
33
31
  }
34
32
  NiceAdvancedFiltersButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedFiltersButtonComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
35
- NiceAdvancedFiltersButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceAdvancedFiltersButtonComponent, selector: "nice-advanced-filters-button", ngImport: i0, template: "<div class=\"relative\">\n <ng-container *ngIf=\"(hasParameters$ | async) && (shouldShowAdvancedFilters$ | async) !== true\">\n <div class=\"absolute top-2 right-2 w-1 h-1 rounded bg-accent\"></div>\n\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"shouldShowAdvancedFilters$ | async\">\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(hasParameters$ | async) !== true && (shouldShowAdvancedFilters$ | async) !== true\">\n <button mat-icon-button niceAdvancedFiltersTrigger (advancedFilterSelected)=\"onSelectedFilter($event)\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
33
+ NiceAdvancedFiltersButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceAdvancedFiltersButtonComponent, selector: "nice-advanced-filters-button", ngImport: i0, template: "<div class=\"relative\">\n <ng-container *ngIf=\"(hasParameters$ | async) && (shouldShowAdvancedFilters$ | async) !== true\">\n <div class=\"absolute top-1 right-1 w-2 h-2 z-10 rounded bg-accent\"></div>\n\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"shouldShowAdvancedFilters$ | async\">\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(hasParameters$ | async) !== true && (shouldShowAdvancedFilters$ | async) !== true\">\n <button mat-icon-button niceAdvancedFiltersTrigger (advancedFilterSelected)=\"onSelectedFilter($event)\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
36
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedFiltersButtonComponent, decorators: [{
37
35
  type: Component,
38
- args: [{ selector: "nice-advanced-filters-button", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\">\n <ng-container *ngIf=\"(hasParameters$ | async) && (shouldShowAdvancedFilters$ | async) !== true\">\n <div class=\"absolute top-2 right-2 w-1 h-1 rounded bg-accent\"></div>\n\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"shouldShowAdvancedFilters$ | async\">\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(hasParameters$ | async) !== true && (shouldShowAdvancedFilters$ | async) !== true\">\n <button mat-icon-button niceAdvancedFiltersTrigger (advancedFilterSelected)=\"onSelectedFilter($event)\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"] }]
36
+ args: [{ selector: "nice-advanced-filters-button", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\">\n <ng-container *ngIf=\"(hasParameters$ | async) && (shouldShowAdvancedFilters$ | async) !== true\">\n <div class=\"absolute top-1 right-1 w-2 h-2 z-10 rounded bg-accent\"></div>\n\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"shouldShowAdvancedFilters$ | async\">\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(hasParameters$ | async) !== true && (shouldShowAdvancedFilters$ | async) !== true\">\n <button mat-icon-button niceAdvancedFiltersTrigger (advancedFilterSelected)=\"onSelectedFilter($event)\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"] }]
39
37
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
40
38
  type: Optional
41
39
  }, {
42
40
  type: Inject,
43
41
  args: [ADVANCED_FILTER_ICONS]
44
42
  }] }, { type: i1.NiceFilterViewQuery }, { type: i2.NiceFilterViewService }]; } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL2J1dHRvbi9hZHZhbmNlZC1maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYnV0dG9uL2FkdmFuY2VkLWZpbHRlcnMtYnV0dG9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBVXJFLE1BQU0sT0FBTyxrQ0FBa0M7SUFZM0MsWUFDc0QsS0FBb0MsRUFDOUUsS0FBMEIsRUFDMUIsT0FBOEI7UUFGWSxVQUFLLEdBQUwsS0FBSyxDQUErQjtRQUM5RSxVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQWRuQywrQkFBMEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBVSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZGLG1CQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLElBQUksQ0FDNUQsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUMvQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQ3hCLENBQUMsQ0FBQyxTQUFTO2FBQ04sS0FBSztZQUNOLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdGLEVBQUUsTUFBTSxDQUNmLENBQ0osQ0FBQztJQU1DLENBQUM7SUFFRyw4QkFBOEI7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE1BQWdDO1FBQ3BELE1BQU0sSUFBSSxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDOzsrSEExQlEsa0NBQWtDLGtCQWFuQixxQkFBcUI7bUhBYnBDLGtDQUFrQyxvRUNqQi9DLG1sQ0FxQkE7MkZESmEsa0NBQWtDO2tCQVA5QyxTQUFTOytCQUNJLDhCQUE4QixpQkFHekIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBZTFDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgbWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuLi8uLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnF1ZXJ5XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlcnNVdGlscyB9IGZyb20gXCIuLi91dGlscy9hZHZhbmNlZC1maWx0ZXJzLnV0aWxzXCI7XG5pbXBvcnQgeyBBRFZBTkNFRF9GSUxURVJfSUNPTlMgfSBmcm9tIFwiLi4vYWR2YW5jZWQtZmlsdGVycy5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL2ljb25zLm1vZGVsXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYWR2YW5jZWQtZmlsdGVycy1idXR0b25cIixcbiAgICB0ZW1wbGF0ZVVybDogXCJhZHZhbmNlZC1maWx0ZXJzLWJ1dHRvbi50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJhZHZhbmNlZC1maWx0ZXJzLWJ1dHRvbi5zdHlsZS5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmljZUFkdmFuY2VkRmlsdGVyc0J1dHRvbkNvbXBvbmVudCB7XG4gICAgcHVibGljIHNob3VsZFNob3dBZHZhbmNlZEZpbHRlcnMkID0gdGhpcy5xdWVyeS5zZWxlY3RTdWJTdGF0ZTxib29sZWFuPihcInNob3dBZHZhbmNlZEZpbHRlcnNcIik7XG4gICAgcHVibGljIGhhc1BhcmFtZXRlcnMkID0gdGhpcy5xdWVyeS5zZWxlY3RGaWx0ZXJQYXJhbWV0ZXJzKCkucGlwZShcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5xdWVyeS5zZWxlY3RGaWx0ZXJDb25maWcoKSksXG4gICAgICAgIG1hcCgoW3BhcmFtZXRlciwgY29uZmlnXSkgPT5cbiAgICAgICAgICAgICEhcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgLnJ1bGVzXG4gICAgICAgICAgICAgICAgPy5maWx0ZXIoKHJ1bGUpID0+IGNvbmZpZy5zb21lKChjb25mKSA9PiBjb25mPy5pZCA9PT0gKHJ1bGUucnVsZXNbMF0gYXMgUXVlcnlSdWxlTW9kZWwpPy5pZCkpXG4gICAgICAgICAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBRFZBTkNFRF9GSUxURVJfSUNPTlMpIHB1YmxpYyBpY29uczogTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMsXG4gICAgICAgIHByaXZhdGUgcXVlcnk6IE5pY2VGaWx0ZXJWaWV3UXVlcnksXG4gICAgICAgIHByaXZhdGUgc2VydmljZTogTmljZUZpbHRlclZpZXdTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGNsaWNrVG9nZ2xlU2hvd0FkdmFuY2VkRmlsdGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVN1YlN0YXRlKFwic2hvd0FkdmFuY2VkRmlsdGVyc1wiLCAhdGhpcy5xdWVyeS5nZXRTdWJTdGF0ZShcInNob3dBZHZhbmNlZEZpbHRlcnNcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGVkRmlsdGVyKGZpbHRlcjogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSBBZHZhbmNlZEZpbHRlcnNVdGlscy5jcmVhdGVSdWxlKGZpbHRlcik7XG4gICAgICAgIHRoaXMuc2VydmljZS5zZXRSdWxlcyhbeyBjb25kaXRpb246IFwiYW5kXCIsIHJ1bGVzOiBbcnVsZV0gfV0pO1xuICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlU3ViU3RhdGUoXCJzaG93QWR2YW5jZWRGaWx0ZXJzXCIsIHRydWUpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoaGFzUGFyYW1ldGVycyQgfCBhc3luYykgJiYgKHNob3VsZFNob3dBZHZhbmNlZEZpbHRlcnMkIHwgYXN5bmMpICE9PSB0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMiByaWdodC0yIHctMSBoLTEgcm91bmRlZCBiZy1hY2NlbnRcIj48L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xpY2tUb2dnbGVTaG93QWR2YW5jZWRGaWx0ZXJzKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5xdWVyeUJ1aWxkZXIuc3ZnSWNvblwiPnt7IGljb25zLnF1ZXJ5QnVpbGRlci5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvdWxkU2hvd0FkdmFuY2VkRmlsdGVycyQgfCBhc3luY1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xpY2tUb2dnbGVTaG93QWR2YW5jZWRGaWx0ZXJzKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5jbG9zZS5zdmdJY29uXCI+e3sgaWNvbnMuY2xvc2UubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihoYXNQYXJhbWV0ZXJzJCB8IGFzeW5jKSAhPT0gdHJ1ZSAmJiAoc2hvdWxkU2hvd0FkdmFuY2VkRmlsdGVycyQgfCBhc3luYykgIT09IHRydWVcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbmljZUFkdmFuY2VkRmlsdGVyc1RyaWdnZXIgKGFkdmFuY2VkRmlsdGVyU2VsZWN0ZWQpPVwib25TZWxlY3RlZEZpbHRlcigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMucXVlcnlCdWlsZGVyLnN2Z0ljb25cIj57eyBpY29ucy5xdWVyeUJ1aWxkZXIubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL2J1dHRvbi9hZHZhbmNlZC1maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYnV0dG9uL2FkdmFuY2VkLWZpbHRlcnMtYnV0dG9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUFVckUsTUFBTSxPQUFPLGtDQUFrQztJQVkzQyxZQUNzRCxLQUFvQyxFQUM5RSxLQUEwQixFQUMxQixPQUE4QjtRQUZZLFVBQUssR0FBTCxLQUFLLENBQStCO1FBQzlFLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBZG5DLCtCQUEwQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFVLHFCQUFxQixDQUFDLENBQUM7UUFDdkYsbUJBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUMsSUFBSSxDQUM1RCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUMsRUFDbEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUN4QixDQUFDLENBQUMsU0FBUzthQUNOLEtBQUs7WUFDTixFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBTSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3RixFQUFFLE1BQU0sQ0FDZixDQUNKLENBQUM7SUFNQyxDQUFDO0lBRUcsOEJBQThCO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxNQUFnQztRQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDOzsrSEF6QlEsa0NBQWtDLGtCQWFuQixxQkFBcUI7bUhBYnBDLGtDQUFrQyxvRUNoQi9DLHdsQ0FxQkE7MkZETGEsa0NBQWtDO2tCQVA5QyxTQUFTOytCQUNJLDhCQUE4QixpQkFHekIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBZTFDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdFdpdGgsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuLi8uLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnF1ZXJ5XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBRFZBTkNFRF9GSUxURVJfSUNPTlMgfSBmcm9tIFwiLi4vYWR2YW5jZWQtZmlsdGVycy5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL2ljb25zLm1vZGVsXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYWR2YW5jZWQtZmlsdGVycy1idXR0b25cIixcbiAgICB0ZW1wbGF0ZVVybDogXCJhZHZhbmNlZC1maWx0ZXJzLWJ1dHRvbi50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJhZHZhbmNlZC1maWx0ZXJzLWJ1dHRvbi5zdHlsZS5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmljZUFkdmFuY2VkRmlsdGVyc0J1dHRvbkNvbXBvbmVudCB7XG4gICAgcHVibGljIHNob3VsZFNob3dBZHZhbmNlZEZpbHRlcnMkID0gdGhpcy5xdWVyeS5zZWxlY3RTdWJTdGF0ZTxib29sZWFuPihcInNob3dBZHZhbmNlZEZpbHRlcnNcIik7XG4gICAgcHVibGljIGhhc1BhcmFtZXRlcnMkID0gdGhpcy5xdWVyeS5zZWxlY3RGaWx0ZXJQYXJhbWV0ZXJzKCkucGlwZShcbiAgICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5xdWVyeS5zZWxlY3RGaWx0ZXJDb25maWcoKSksXG4gICAgICAgIG1hcCgoW3BhcmFtZXRlciwgY29uZmlnXSkgPT5cbiAgICAgICAgICAgICEhcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgLnJ1bGVzXG4gICAgICAgICAgICAgICAgPy5maWx0ZXIoKHJ1bGUpID0+IGNvbmZpZy5zb21lKChjb25mKSA9PiBjb25mPy5pZCA9PT0gKHJ1bGUucnVsZXNbMF0gYXMgUXVlcnlSdWxlTW9kZWwpPy5pZCkpXG4gICAgICAgICAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBRFZBTkNFRF9GSUxURVJfSUNPTlMpIHB1YmxpYyBpY29uczogTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMsXG4gICAgICAgIHByaXZhdGUgcXVlcnk6IE5pY2VGaWx0ZXJWaWV3UXVlcnksXG4gICAgICAgIHByaXZhdGUgc2VydmljZTogTmljZUZpbHRlclZpZXdTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGNsaWNrVG9nZ2xlU2hvd0FkdmFuY2VkRmlsdGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVN1YlN0YXRlKFwic2hvd0FkdmFuY2VkRmlsdGVyc1wiLCAhdGhpcy5xdWVyeS5nZXRTdWJTdGF0ZShcInNob3dBZHZhbmNlZEZpbHRlcnNcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGVkRmlsdGVyKGZpbHRlcjogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVTdWJTdGF0ZShcInNob3dBZHZhbmNlZEZpbHRlcnNcIiwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVTdWJTdGF0ZShcInNlbGVjdGVkRmlsdGVyXCIsIGZpbHRlcik7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihoYXNQYXJhbWV0ZXJzJCB8IGFzeW5jKSAmJiAoc2hvdWxkU2hvd0FkdmFuY2VkRmlsdGVycyQgfCBhc3luYykgIT09IHRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0xIHJpZ2h0LTEgdy0yIGgtMiB6LTEwIHJvdW5kZWQgYmctYWNjZW50XCI+PC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsaWNrVG9nZ2xlU2hvd0FkdmFuY2VkRmlsdGVycygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMucXVlcnlCdWlsZGVyLnN2Z0ljb25cIj57eyBpY29ucy5xdWVyeUJ1aWxkZXIubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3VsZFNob3dBZHZhbmNlZEZpbHRlcnMkIHwgYXN5bmNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsaWNrVG9nZ2xlU2hvd0FkdmFuY2VkRmlsdGVycygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuY2xvc2Uuc3ZnSWNvblwiPnt7IGljb25zLmNsb3NlLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoaGFzUGFyYW1ldGVycyQgfCBhc3luYykgIT09IHRydWUgJiYgKHNob3VsZFNob3dBZHZhbmNlZEZpbHRlcnMkIHwgYXN5bmMpICE9PSB0cnVlXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG5pY2VBZHZhbmNlZEZpbHRlcnNUcmlnZ2VyIChhZHZhbmNlZEZpbHRlclNlbGVjdGVkKT1cIm9uU2VsZWN0ZWRGaWx0ZXIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLnF1ZXJ5QnVpbGRlci5zdmdJY29uXCI+e3sgaWNvbnMucXVlcnlCdWlsZGVyLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -1,5 +1,5 @@
1
1
  import { plainToInstance } from 'class-transformer';
2
- import { map, takeUntil, debounceTime, switchMap, distinctUntilChanged, withLatestFrom } from 'rxjs/operators';
2
+ import { map, takeUntil, debounceTime, switchMap, distinctUntilChanged, combineLatestWith } from 'rxjs/operators';
3
3
  import { HttpParams } from '@angular/common/http';
4
4
  import * as i5$1 from '@recursyve/nice-ui-kit.v2';
5
5
  import { isNullOrUndefined, ObjectUtils, FileUtils, ArrayUtils, ExportBottomSheetComponent, NiceLoadingSpinnerModule, NiceTypeaheadModule, NiceExportBottomSheetModule, NiceAsyncTypeaheadProvider, NICE_ASYNC_TYPEAHEAD_PROVIDER, NiceAsyncTypeaheadModule } from '@recursyve/nice-ui-kit.v2';
@@ -2748,72 +2748,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
2748
2748
  }]
2749
2749
  }] });
2750
2750
 
2751
- class AdvancedFiltersUtils {
2752
- static isSingleInput(filterOperator) {
2753
- if (!filterOperator) {
2754
- return false;
2755
- }
2756
- return AdvancedFiltersUtils.singleInputOperators.includes(filterOperator);
2757
- }
2758
- static isDoubleInput(filterOperator) {
2759
- if (!filterOperator) {
2760
- return false;
2761
- }
2762
- return AdvancedFiltersUtils.doubleInputOperators.includes(filterOperator);
2763
- }
2764
- static isNoInput(filterOperator) {
2765
- if (!filterOperator) {
2766
- return false;
2767
- }
2768
- return AdvancedFiltersUtils.noInputOperators.includes(filterOperator);
2769
- }
2770
- static createRule(config, operator) {
2771
- var _a, _b, _c;
2772
- const base = {
2773
- id: config.id,
2774
- operation: operator || config.operators[0].id
2775
- };
2776
- switch (config.type) {
2777
- case FilterType.Text:
2778
- return Object.assign(Object.assign({}, base), { value: AdvancedFiltersUtils.isDoubleInput(operator) ? ["", ""] : "" });
2779
- case FilterType.Number:
2780
- case FilterType.Select:
2781
- return Object.assign(Object.assign({}, base), { value: AdvancedFiltersUtils.isDoubleInput(operator) ? [null, null] : null });
2782
- case FilterType.Date:
2783
- return Object.assign(Object.assign({}, base), { value: AdvancedFiltersUtils.isDoubleInput(operator) ? [new Date(), new Date()] : new Date() });
2784
- case FilterType.Radio:
2785
- return Object.assign(Object.assign({}, base), { value: AdvancedFiltersUtils.isDoubleInput(operator)
2786
- ? [(_a = config.options) === null || _a === void 0 ? void 0 : _a[0].key, (_b = config.options) === null || _b === void 0 ? void 0 : _b[0].key]
2787
- : (_c = config.options) === null || _c === void 0 ? void 0 : _c[0].key });
2788
- }
2789
- }
2790
- }
2791
- AdvancedFiltersUtils.noInputOperators = [
2792
- FilterOperatorTypes.IsEmpty,
2793
- FilterOperatorTypes.IsNotEmpty,
2794
- FilterOperatorTypes.IsNull,
2795
- FilterOperatorTypes.IsNotNull,
2796
- FilterOperatorTypes.None
2797
- ];
2798
- AdvancedFiltersUtils.singleInputOperators = [
2799
- FilterOperatorTypes.Equal,
2800
- FilterOperatorTypes.NotEqual,
2801
- FilterOperatorTypes.Less,
2802
- FilterOperatorTypes.LessOrEqual,
2803
- FilterOperatorTypes.Greater,
2804
- FilterOperatorTypes.GreaterOrEqual,
2805
- FilterOperatorTypes.BeginsWith,
2806
- FilterOperatorTypes.NotBeginsWith,
2807
- FilterOperatorTypes.EndsWith,
2808
- FilterOperatorTypes.NotEndsWith,
2809
- FilterOperatorTypes.Contains,
2810
- FilterOperatorTypes.NotContains
2811
- ];
2812
- AdvancedFiltersUtils.doubleInputOperators = [
2813
- FilterOperatorTypes.Between,
2814
- FilterOperatorTypes.NotBetween
2815
- ];
2816
-
2817
2751
  const ADVANCED_FILTER_ICONS = new InjectionToken("advanced_filter_icons");
2818
2752
 
2819
2753
  const EXPORTS_SETTINGS = new InjectionToken("exports_settings");
@@ -3455,7 +3389,7 @@ class NiceAdvancedFiltersButtonComponent {
3455
3389
  this.query = query;
3456
3390
  this.service = service;
3457
3391
  this.shouldShowAdvancedFilters$ = this.query.selectSubState("showAdvancedFilters");
3458
- this.hasParameters$ = this.query.selectFilterParameters().pipe(withLatestFrom(this.query.selectFilterConfig()), map(([parameter, config]) => {
3392
+ this.hasParameters$ = this.query.selectFilterParameters().pipe(combineLatestWith(this.query.selectFilterConfig()), map(([parameter, config]) => {
3459
3393
  var _a, _b;
3460
3394
  return !!((_b = (_a = parameter
3461
3395
  .rules) === null || _a === void 0 ? void 0 : _a.filter((rule) => config.some((conf) => { var _a; return (conf === null || conf === void 0 ? void 0 : conf.id) === ((_a = rule.rules[0]) === null || _a === void 0 ? void 0 : _a.id); }))) === null || _b === void 0 ? void 0 : _b.length);
@@ -3465,16 +3399,15 @@ class NiceAdvancedFiltersButtonComponent {
3465
3399
  this.service.updateSubState("showAdvancedFilters", !this.query.getSubState("showAdvancedFilters"));
3466
3400
  }
3467
3401
  onSelectedFilter(filter) {
3468
- const rule = AdvancedFiltersUtils.createRule(filter);
3469
- this.service.setRules([{ condition: "and", rules: [rule] }]);
3470
3402
  this.service.updateSubState("showAdvancedFilters", true);
3403
+ this.service.updateSubState("selectedFilter", filter);
3471
3404
  }
3472
3405
  }
3473
3406
  NiceAdvancedFiltersButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedFiltersButtonComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: NiceFilterViewQuery }, { token: NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
3474
- NiceAdvancedFiltersButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceAdvancedFiltersButtonComponent, selector: "nice-advanced-filters-button", ngImport: i0, template: "<div class=\"relative\">\n <ng-container *ngIf=\"(hasParameters$ | async) && (shouldShowAdvancedFilters$ | async) !== true\">\n <div class=\"absolute top-2 right-2 w-1 h-1 rounded bg-accent\"></div>\n\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"shouldShowAdvancedFilters$ | async\">\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(hasParameters$ | async) !== true && (shouldShowAdvancedFilters$ | async) !== true\">\n <button mat-icon-button niceAdvancedFiltersTrigger (advancedFilterSelected)=\"onSelectedFilter($event)\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3407
+ NiceAdvancedFiltersButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceAdvancedFiltersButtonComponent, selector: "nice-advanced-filters-button", ngImport: i0, template: "<div class=\"relative\">\n <ng-container *ngIf=\"(hasParameters$ | async) && (shouldShowAdvancedFilters$ | async) !== true\">\n <div class=\"absolute top-1 right-1 w-2 h-2 z-10 rounded bg-accent\"></div>\n\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"shouldShowAdvancedFilters$ | async\">\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(hasParameters$ | async) !== true && (shouldShowAdvancedFilters$ | async) !== true\">\n <button mat-icon-button niceAdvancedFiltersTrigger (advancedFilterSelected)=\"onSelectedFilter($event)\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3475
3408
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedFiltersButtonComponent, decorators: [{
3476
3409
  type: Component,
3477
- args: [{ selector: "nice-advanced-filters-button", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\">\n <ng-container *ngIf=\"(hasParameters$ | async) && (shouldShowAdvancedFilters$ | async) !== true\">\n <div class=\"absolute top-2 right-2 w-1 h-1 rounded bg-accent\"></div>\n\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"shouldShowAdvancedFilters$ | async\">\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(hasParameters$ | async) !== true && (shouldShowAdvancedFilters$ | async) !== true\">\n <button mat-icon-button niceAdvancedFiltersTrigger (advancedFilterSelected)=\"onSelectedFilter($event)\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"] }]
3410
+ args: [{ selector: "nice-advanced-filters-button", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\">\n <ng-container *ngIf=\"(hasParameters$ | async) && (shouldShowAdvancedFilters$ | async) !== true\">\n <div class=\"absolute top-1 right-1 w-2 h-2 z-10 rounded bg-accent\"></div>\n\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"shouldShowAdvancedFilters$ | async\">\n <button mat-icon-button (click)=\"clickToggleShowAdvancedFilters()\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"(hasParameters$ | async) !== true && (shouldShowAdvancedFilters$ | async) !== true\">\n <button mat-icon-button niceAdvancedFiltersTrigger (advancedFilterSelected)=\"onSelectedFilter($event)\">\n <mat-icon [svgIcon]=\"icons.queryBuilder.svgIcon\">{{ icons.queryBuilder.matIcon }}</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: ["nice-advanced-filters-button{width:40px;height:40px}\n"] }]
3478
3411
  }], ctorParameters: function () {
3479
3412
  return [{ type: undefined, decorators: [{
3480
3413
  type: Optional
@@ -3629,6 +3562,72 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
3629
3562
  type: Injectable
3630
3563
  }], ctorParameters: function () { return [{ type: NiceFilterService }]; } });
3631
3564
 
3565
+ class AdvancedFiltersUtils {
3566
+ static isSingleInput(filterOperator) {
3567
+ if (!filterOperator) {
3568
+ return false;
3569
+ }
3570
+ return AdvancedFiltersUtils.singleInputOperators.includes(filterOperator);
3571
+ }
3572
+ static isDoubleInput(filterOperator) {
3573
+ if (!filterOperator) {
3574
+ return false;
3575
+ }
3576
+ return AdvancedFiltersUtils.doubleInputOperators.includes(filterOperator);
3577
+ }
3578
+ static isNoInput(filterOperator) {
3579
+ if (!filterOperator) {
3580
+ return false;
3581
+ }
3582
+ return AdvancedFiltersUtils.noInputOperators.includes(filterOperator);
3583
+ }
3584
+ static createRule(config, operator) {
3585
+ var _a, _b, _c;
3586
+ const base = {
3587
+ id: config.id,
3588
+ operation: operator || config.operators[0].id
3589
+ };
3590
+ switch (config.type) {
3591
+ case FilterType.Text:
3592
+ return Object.assign(Object.assign({}, base), { value: AdvancedFiltersUtils.isDoubleInput(operator) ? ["", ""] : "" });
3593
+ case FilterType.Number:
3594
+ case FilterType.Select:
3595
+ return Object.assign(Object.assign({}, base), { value: AdvancedFiltersUtils.isDoubleInput(operator) ? [null, null] : null });
3596
+ case FilterType.Date:
3597
+ return Object.assign(Object.assign({}, base), { value: AdvancedFiltersUtils.isDoubleInput(operator) ? [new Date(), new Date()] : new Date() });
3598
+ case FilterType.Radio:
3599
+ return Object.assign(Object.assign({}, base), { value: AdvancedFiltersUtils.isDoubleInput(operator)
3600
+ ? [(_a = config.options) === null || _a === void 0 ? void 0 : _a[0].key, (_b = config.options) === null || _b === void 0 ? void 0 : _b[0].key]
3601
+ : (_c = config.options) === null || _c === void 0 ? void 0 : _c[0].key });
3602
+ }
3603
+ }
3604
+ }
3605
+ AdvancedFiltersUtils.noInputOperators = [
3606
+ FilterOperatorTypes.IsEmpty,
3607
+ FilterOperatorTypes.IsNotEmpty,
3608
+ FilterOperatorTypes.IsNull,
3609
+ FilterOperatorTypes.IsNotNull,
3610
+ FilterOperatorTypes.None
3611
+ ];
3612
+ AdvancedFiltersUtils.singleInputOperators = [
3613
+ FilterOperatorTypes.Equal,
3614
+ FilterOperatorTypes.NotEqual,
3615
+ FilterOperatorTypes.Less,
3616
+ FilterOperatorTypes.LessOrEqual,
3617
+ FilterOperatorTypes.Greater,
3618
+ FilterOperatorTypes.GreaterOrEqual,
3619
+ FilterOperatorTypes.BeginsWith,
3620
+ FilterOperatorTypes.NotBeginsWith,
3621
+ FilterOperatorTypes.EndsWith,
3622
+ FilterOperatorTypes.NotEndsWith,
3623
+ FilterOperatorTypes.Contains,
3624
+ FilterOperatorTypes.NotContains
3625
+ ];
3626
+ AdvancedFiltersUtils.doubleInputOperators = [
3627
+ FilterOperatorTypes.Between,
3628
+ FilterOperatorTypes.NotBetween
3629
+ ];
3630
+
3632
3631
  class FilterComponent {
3633
3632
  constructor() {
3634
3633
  this.propagateChanges = (_) => { };
@@ -3869,10 +3868,17 @@ class NiceAdvancedFiltersComponent {
3869
3868
  }
3870
3869
  ngOnInit() {
3871
3870
  var _a;
3872
- const { filterParameters } = this.query.getValue();
3871
+ const { filterParameters, subStates } = this.query.getValue();
3873
3872
  if ((_a = filterParameters.rules) === null || _a === void 0 ? void 0 : _a.length) {
3874
3873
  this.formGroup.patchValue(new AdvancedFiltersForm(filterParameters.rules[0]));
3875
3874
  }
3875
+ if (subStates.selectedFilter) {
3876
+ this.onClickAddRule(subStates.selectedFilter);
3877
+ return;
3878
+ }
3879
+ }
3880
+ ngOnDestroy() {
3881
+ this.removeEmptyRules({ reload: false });
3876
3882
  }
3877
3883
  onClickAddRule(filterConfigurationModel) {
3878
3884
  this.rulesFormArray.push(new FilterForm(AdvancedFiltersUtils.createRule(filterConfigurationModel)));
@@ -3887,6 +3893,7 @@ class NiceAdvancedFiltersComponent {
3887
3893
  }
3888
3894
  }
3889
3895
  onClose() {
3896
+ this.removeEmptyRules();
3890
3897
  this.service.updateSubState("showAdvancedFilters", false);
3891
3898
  }
3892
3899
  onRefresh() {
@@ -3894,6 +3901,31 @@ class NiceAdvancedFiltersComponent {
3894
3901
  this.service.resetResult(true);
3895
3902
  this.service.filter();
3896
3903
  }
3904
+ removeEmptyRules({ reload } = { reload: true }) {
3905
+ if (this.rulesFormArray.length !== 1) {
3906
+ return;
3907
+ }
3908
+ const values = this.rulesFormArray.get([0, "values"]).getRawValue();
3909
+ if (values.length !== 1) {
3910
+ return;
3911
+ }
3912
+ const value = values[0];
3913
+ if (value.value || value.value === false || value.secondValue || value.secondValue === true) {
3914
+ return;
3915
+ }
3916
+ this.rulesFormArray.removeAt(0);
3917
+ const { filterParameters } = this.query.getValue();
3918
+ if (!filterParameters.rules.length || !filterParameters.rules[0].rules.length) {
3919
+ return;
3920
+ }
3921
+ this.service.setRules([]);
3922
+ if (!reload) {
3923
+ return;
3924
+ }
3925
+ if (filterParameters.rules[0].rules[0].value) {
3926
+ this.service.filter();
3927
+ }
3928
+ }
3897
3929
  }
3898
3930
  NiceAdvancedFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedFiltersComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1$3.GeneratedFormGroup }, { token: NiceFilterViewQuery }, { token: NiceFilterViewService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3899
3931
  NiceAdvancedFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceAdvancedFiltersComponent, selector: "nice-advanced-filters", providers: [