@dereekb/dbx-web 9.24.16 → 9.24.18

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web/calendar",
3
- "version": "9.24.16",
3
+ "version": "9.24.18",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.2.0",
6
6
  "@angular/core": "^14.2.0",
@@ -8,7 +8,7 @@
8
8
  "rxjs": "^7.5.0",
9
9
  "@angular/material": "^14.2.0",
10
10
  "angular-calendar": "^0.30.1",
11
- "@dereekb/dbx-web": "9.24.16"
11
+ "@dereekb/dbx-web": "9.24.18"
12
12
  },
13
13
  "dependencies": {
14
14
  "tslib": "^2.3.0"
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
30
30
  }], ctorParameters: function () { return [{ type: i1.DbxPopoverService }]; }, propDecorators: { config: [{
31
31
  type: Input
32
32
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBvcG92ZXIuYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9pbnRlcmFjdGlvbi9maWx0ZXIvZmlsdGVyLnBvcG92ZXIuYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQTRCLE1BQU0sNEJBQTRCLENBQUM7QUFDakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQUt4RixNQUFNLE9BQWdCLG9DQUF1RCxTQUFRLDJCQUE2QztJQUloSSxZQUE2QixZQUErQjtRQUMxRCxLQUFLLEVBQUUsQ0FBQztRQURtQixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7SUFFNUQsQ0FBQztJQUVrQixlQUFlLENBQUMsTUFBbUI7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUUzQixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzlELE1BQU07WUFDTixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDOztrSUFyQm1CLG9DQUFvQztzSEFBcEMsb0NBQW9DOzRGQUFwQyxvQ0FBb0M7a0JBRHpELFNBQVM7d0dBR1IsTUFBTTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaWx0ZXJQb3BvdmVyQ29tcG9uZW50LCBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXMgfSBmcm9tICcuL2ZpbHRlci5wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdFBvcG92ZXJSZWZEaXJlY3RpdmUgfSBmcm9tICcuLi9wb3BvdmVyL2Fic3RyYWN0LnBvcG92ZXIucmVmLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIERieEZpbHRlckJ1dHRvbkNvbmZpZzxGIGV4dGVuZHMgb2JqZWN0PiA9IERieEZpbHRlckNvbXBvbmVudFBhcmFtczxGPjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGaWx0ZXJQb3BvdmVyQnV0dG9uRGlyZWN0aXZlPEYgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgQWJzdHJhY3RQb3BvdmVyUmVmRGlyZWN0aXZlPHVua25vd24sIHVua25vd24+IHtcbiAgQElucHV0KClcbiAgY29uZmlnPzogRGJ4RmlsdGVyQnV0dG9uQ29uZmlnPEY+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcG9wdXBTZXJ2aWNlOiBEYnhQb3BvdmVyU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX21ha2VQb3BvdmVyUmVmKG9yaWdpbj86IEVsZW1lbnRSZWYpOiBOZ1BvcG92ZXJSZWY8dW5rbm93biwgdW5rbm93bj4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuXG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBmaWx0ZXJCdXR0b25Db25maWcuJyk7XG4gICAgfSBlbHNlIGlmICghb3JpZ2luKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgb3JpZ2luLicpO1xuICAgIH1cblxuICAgIHJldHVybiBEYnhGaWx0ZXJQb3BvdmVyQ29tcG9uZW50Lm9wZW5Qb3BvdmVyKHRoaXMucG9wdXBTZXJ2aWNlLCB7XG4gICAgICBvcmlnaW4sXG4gICAgICAuLi5jb25maWdcbiAgICB9KTtcbiAgfVxufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBvcG92ZXIuYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9pbnRlcmFjdGlvbi9maWx0ZXIvZmlsdGVyLnBvcG92ZXIuYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQTRCLE1BQU0sNEJBQTRCLENBQUM7QUFDakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQVF4RixNQUFNLE9BQWdCLG9DQUF1RCxTQUFRLDJCQUE2QztJQUloSSxZQUE2QixZQUErQjtRQUMxRCxLQUFLLEVBQUUsQ0FBQztRQURtQixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7SUFFNUQsQ0FBQztJQUVrQixlQUFlLENBQUMsTUFBbUI7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUUzQixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzlELE1BQU07WUFDTixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDOztrSUFyQm1CLG9DQUFvQztzSEFBcEMsb0NBQW9DOzRGQUFwQyxvQ0FBb0M7a0JBRHpELFNBQVM7d0dBR1IsTUFBTTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaWx0ZXJQb3BvdmVyQ29tcG9uZW50LCBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXMgfSBmcm9tICcuL2ZpbHRlci5wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdFBvcG92ZXJSZWZEaXJlY3RpdmUgfSBmcm9tICcuLi9wb3BvdmVyL2Fic3RyYWN0LnBvcG92ZXIucmVmLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGaWx0ZXJTb3VyY2UsIFByZXNldEZpbHRlclNvdXJjZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuXG5leHBvcnQgdHlwZSBEYnhGaWx0ZXJCdXR0b25Db25maWc8RiBleHRlbmRzIG9iamVjdD4gPSBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8Rj47XG5leHBvcnQgdHlwZSBEYnhGaWx0ZXJCdXR0b25Db25maWdXaXRoQ3VzdG9tRmlsdGVyPEYgZXh0ZW5kcyBvYmplY3QsIENGIGV4dGVuZHMgRmlsdGVyU291cmNlPEY+ID0gRmlsdGVyU291cmNlPEY+PiA9IE9taXQ8RGJ4RmlsdGVyQ29tcG9uZW50UGFyYW1zPEYsIGFueSwgQ0YsIGFueT4sICdwcmVzZXRGaWx0ZXInIHwgJ3ByZXNldEZpbHRlckNvbXBvbmVudENvbmZpZyc+O1xuZXhwb3J0IHR5cGUgRGJ4RmlsdGVyQnV0dG9uQ29uZmlnV2l0aFByZXNldEZpbHRlcjxGIGV4dGVuZHMgb2JqZWN0LCBQRiBleHRlbmRzIFByZXNldEZpbHRlclNvdXJjZTxGLCBhbnk+ID0gUHJlc2V0RmlsdGVyU291cmNlPEYsIGFueT4+ID0gT21pdDxEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8RiwgYW55LCBhbnksIFBGPiwgJ2N1c3RvbUZpbHRlcicgfCAnY3VzdG9tRmlsdGVyQ29tcG9uZW50Q29uZmlnJz47XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsdGVyUG9wb3ZlckJ1dHRvbkRpcmVjdGl2ZTxGIGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIEFic3RyYWN0UG9wb3ZlclJlZkRpcmVjdGl2ZTx1bmtub3duLCB1bmtub3duPiB7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZz86IERieEZpbHRlckNvbXBvbmVudFBhcmFtczxGLCBhbnksIGFueSwgYW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBvcHVwU2VydmljZTogRGJ4UG9wb3ZlclNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9tYWtlUG9wb3ZlclJlZihvcmlnaW4/OiBFbGVtZW50UmVmKTogTmdQb3BvdmVyUmVmPHVua25vd24sIHVua25vd24+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgZmlsdGVyQnV0dG9uQ29uZmlnLicpO1xuICAgIH0gZWxzZSBpZiAoIW9yaWdpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9yaWdpbi4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGJ4RmlsdGVyUG9wb3ZlckNvbXBvbmVudC5vcGVuUG9wb3Zlcih0aGlzLnBvcHVwU2VydmljZSwge1xuICAgICAgb3JpZ2luLFxuICAgICAgLi4uY29uZmlnXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -9,13 +9,17 @@ import * as i2 from "@angular/common";
9
9
  import * as i3 from "../popover/popover.content.component";
10
10
  import * as i4 from "../popover/popover.header.component";
11
11
  import * as i5 from "../popover/popover.scroll.content.component";
12
- import * as i6 from "@dereekb/dbx-core";
13
- import * as i7 from "@angular/material/button";
12
+ import * as i6 from "../../button/button.spacer.component";
13
+ import * as i7 from "@dereekb/dbx-core";
14
+ import * as i8 from "@angular/material/button";
14
15
  export const DEFAULT_FILTER_POPOVER_KEY = 'filter';
15
16
  export class DbxFilterPopoverComponent extends AbstractPopoverDirective {
16
17
  constructor(popover) {
17
18
  super(popover);
18
19
  this._closeOnChangeSub = new SubscriptionObject();
20
+ this.showCloseButton = this.config.showCloseButton ?? !(this.config.closeOnFilterChange ?? true);
21
+ this.closeButtonText = this.config.closeButtonText ?? 'Close';
22
+ this.customizeButtonText = this.config.customizeButtonText ?? 'Customize';
19
23
  /**
20
24
  * Whether or not to display buttons to toggle between custom and preset filters.
21
25
  */
@@ -23,15 +27,19 @@ export class DbxFilterPopoverComponent extends AbstractPopoverDirective {
23
27
  this._showPreset = new BehaviorSubject(false);
24
28
  this.showPreset$ = this._showPreset.asObservable();
25
29
  this.config$ = this._showPreset.pipe(map((showPreset) => {
26
- const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass } = this.config;
30
+ const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;
27
31
  let componentClass;
32
+ let baseConfig;
28
33
  if (showPreset) {
29
- componentClass = presetFilterComponentClass;
34
+ componentClass = (presetFilterComponentConfig?.componentClass ?? presetFilterComponentClass);
35
+ baseConfig = presetFilterComponentConfig;
30
36
  }
31
37
  else {
32
- componentClass = customFilterComponentClass;
38
+ componentClass = (customFilterComponentConfig?.componentClass ?? customFilterComponentClass);
39
+ baseConfig = customFilterComponentConfig;
33
40
  }
34
41
  const config = {
42
+ ...baseConfig,
35
43
  componentClass,
36
44
  init: (filterSource) => {
37
45
  connector.connectWithSource(filterSource);
@@ -40,16 +48,17 @@ export class DbxFilterPopoverComponent extends AbstractPopoverDirective {
40
48
  }
41
49
  if (closeOnFilterChange !== false) {
42
50
  this._closeOnChangeSub.subscription = filterSource.filter$.pipe(skip(1), filterMaybe(), first(), defaultIfEmpty(undefined)).subscribe(() => {
43
- console.log();
44
51
  this.close();
45
52
  });
46
53
  }
54
+ // run the next init if provided
55
+ baseConfig?.init?.(filterSource);
47
56
  }
48
57
  };
49
58
  return config;
50
59
  }));
51
60
  }
52
- static openPopover(popupService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, connector, initialFilterObs, closeOnFilterChange }, popoverKey) {
61
+ static openPopover(popupService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }, popoverKey) {
53
62
  return popupService.open({
54
63
  key: popoverKey ?? DEFAULT_FILTER_POPOVER_KEY,
55
64
  origin,
@@ -60,8 +69,13 @@ export class DbxFilterPopoverComponent extends AbstractPopoverDirective {
60
69
  data: {
61
70
  header,
62
71
  icon,
72
+ customizeButtonText,
73
+ showCloseButton,
74
+ closeButtonText,
63
75
  customFilterComponentClass,
64
76
  presetFilterComponentClass,
77
+ customFilterComponentConfig,
78
+ presetFilterComponentConfig,
65
79
  connector,
66
80
  initialFilterObs,
67
81
  closeOnFilterChange
@@ -79,14 +93,14 @@ export class DbxFilterPopoverComponent extends AbstractPopoverDirective {
79
93
  }
80
94
  ngOnInit() {
81
95
  let showPreset = false;
82
- const { customFilterComponentClass, presetFilterComponentClass } = this.config;
83
- if (customFilterComponentClass) {
96
+ const { customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;
97
+ if (customFilterComponentClass || customFilterComponentConfig) {
84
98
  showPreset = false;
85
99
  }
86
- if (presetFilterComponentClass) {
100
+ if (presetFilterComponentClass || presetFilterComponentConfig) {
87
101
  showPreset = true;
88
102
  }
89
- if (!customFilterComponentClass && !presetFilterComponentClass) {
103
+ if (!(customFilterComponentClass || customFilterComponentConfig) && !(presetFilterComponentClass || presetFilterComponentConfig)) {
90
104
  throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');
91
105
  }
92
106
  this._showPreset.next(showPreset);
@@ -103,9 +117,9 @@ export class DbxFilterPopoverComponent extends AbstractPopoverDirective {
103
117
  }
104
118
  }
105
119
  DbxFilterPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFilterPopoverComponent, deps: [{ token: i1.DbxPopoverComponent }], target: i0.ɵɵFactoryTarget.Component });
106
- DbxFilterPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFilterPopoverComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">Custom</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: i4.DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "component", type: i5.DbxPopoverScrollContentComponent, selector: "dbx-popover-scroll-content" }, { kind: "component", type: i6.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: i7.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: "pipe", type: i2.AsyncPipe, name: "async" }] });
120
+ DbxFilterPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFilterPopoverComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n <ng-container *ngIf=\"showCloseButton\">\n <dbx-button-spacer *ngIf=\"showSwitchButtons\"></dbx-button-spacer>\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: i4.DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "component", type: i5.DbxPopoverScrollContentComponent, selector: "dbx-popover-scroll-content" }, { kind: "directive", type: i6.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i7.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { 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: "pipe", type: i2.AsyncPipe, name: "async" }] });
107
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFilterPopoverComponent, decorators: [{
108
122
  type: Component,
109
- args: [{ template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">Custom</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
123
+ args: [{ template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n <ng-container *ngIf=\"showCloseButton\">\n <dbx-button-spacer *ngIf=\"showSwitchButtons\"></dbx-button-spacer>\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
110
124
  }], ctorParameters: function () { return [{ type: i1.DbxPopoverComponent }]; } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2ludGVyYWN0aW9uL2ZpbHRlci9maWx0ZXIucG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvaW50ZXJhY3Rpb24vZmlsdGVyL2ZpbHRlci5wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBYyxlQUFlLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FLE9BQU8sRUFBMkQsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUErQ3pILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBQztBQUtuRCxNQUFNLE9BQU8seUJBQTRDLFNBQVEsd0JBQThEO0lBZ0U3SCxZQUFZLE9BQWtFO1FBQzVFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQWhFVCxzQkFBaUIsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFckQ7O1dBRUc7UUFDTSxzQkFBaUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFL0csZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqRCxnQkFB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RCxJQUFJLENBQUMsMEJBQTBCLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUM5RCxNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7U0FDckY7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzt1SEE5R1UseUJBQXlCOzJHQUF6Qix5QkFBeUIsMkVDM0R0QywybkJBYUE7NEZEOENhLHlCQUF5QjtrQkFIckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVHlwZSwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nUG9wb3ZlclJlZiB9IGZyb20gJ25nLW92ZXJsYXktY29udGFpbmVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgbWFwLCBza2lwLCBmaXJzdCwgZGVmYXVsdElmRW1wdHkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFic3RyYWN0UG9wb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uL3BvcG92ZXIvYWJzdHJhY3QucG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlckNvbmZpZ1NpemluZywgRGJ4UG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJTb3VyY2UsIEZpbHRlclNvdXJjZUNvbm5lY3RvciwgUHJlc2V0RmlsdGVyU291cmNlLCBmaWx0ZXJNYXliZSwgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhQb3BvdmVyS2V5IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8RiBleHRlbmRzIG9iamVjdCA9IG9iamVjdCwgUCBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gZXh0ZW5kcyBEYnhQb3BvdmVyQ29uZmlnU2l6aW5nIHtcbiAgLyoqXG4gICAqIEN1c3RvbSBpY29uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiZmlsdGVyX2xpc3RcIlxuICAgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBoZWFkZXIgdGV4dFxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBcIkZpbHRlclwiXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gZmlsdGVyIGNvbXBvbmVudCB0byBpbml0aWFsaXplLlxuICAgKi9cbiAgY3VzdG9tRmlsdGVyQ29tcG9uZW50Q2xhc3M/OiBUeXBlPEZpbHRlclNvdXJjZTxGPj47XG4gIC8qKlxuICAgKiBQcmVzZXQgZmlsdGVyIGNvbXBvbmVudCB0byBpbml0aWFsaXplLlxuICAgKi9cbiAgcHJlc2V0RmlsdGVyQ29tcG9uZW50Q2xhc3M/OiBUeXBlPFByZXNldEZpbHRlclNvdXJjZTxGLCBQPj47XG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdG9yIHRvIHVzZS5cbiAgICovXG4gIGNvbm5lY3RvcjogRmlsdGVyU291cmNlQ29ubmVjdG9yPEY+O1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBJbml0YWwgZmlsdGVyIHRvIHBhc3MgdG8gdGhlIGZpbHRlciBzb3VyY2UuXG4gICAqL1xuICBpbml0aWFsRmlsdGVyT2JzPzogT2JzZXJ2YWJsZTxGPjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgV2hldGhlciBvciBub3QgdG8gY2xvc2UgdGhlIGNvbXBvbmVudCBpZiB0aGUgZmlsdGVyIGNoYW5nZXMuXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIGNsb3NlT25GaWx0ZXJDaGFuZ2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpbHRlclBvcG92ZXJDb21wb25lbnRQYXJhbXM8RiBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4gZXh0ZW5kcyBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8Rj4ge1xuICAvKipcbiAgICogT3JpZ2luIHRvIGFkZCB0aGUgcG9wb3ZlciB0by5cbiAgICovXG4gIG9yaWdpbjogRWxlbWVudFJlZjtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklMVEVSX1BPUE9WRVJfS0VZID0gJ2ZpbHRlcic7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLnBvcG92ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpbHRlclBvcG92ZXJDb21wb25lbnQ8RiBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBBYnN0cmFjdFBvcG92ZXJEaXJlY3RpdmU8dW5rbm93biwgRGJ4RmlsdGVyQ29tcG9uZW50UGFyYW1zPEY+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY2xvc2VPbkNoYW5nZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZGlzcGxheSBidXR0b25zIHRvIHRvZ2dsZSBiZXR3ZWVuIGN1c3RvbSBhbmQgcHJlc2V0IGZpbHRlcnMuXG4gICAqL1xuICByZWFkb25seSBzaG93U3dpdGNoQnV0dG9ucyA9IEJvb2xlYW4odGhpcy5jb25maWcuY3VzdG9tRmlsdGVyQ29tcG9uZW50Q2xhc3MgJiYgdGhpcy5jb25maWcucHJlc2V0RmlsdGVyQ29tcG9uZW50Q2xhc3MpO1xuXG4gIHByaXZhdGUgX3Nob3dQcmVzZXQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd1ByZXNldCQgPSB0aGlzLl9zaG93UHJlc2V0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHJlYWRvbmx5IGNvbmZpZyQ6IE9ic2VydmFibGU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPEZpbHRlclNvdXJjZTxGPj4+ID0gdGhpcy5fc2hvd1ByZXNldC5waXBlKFxuICAgIG1hcCgoc2hvd1ByZXNldCkgPT4ge1xuICAgICAgY29uc3QgeyBjbG9zZU9uRmlsdGVyQ2hhbmdlID0gdHJ1ZSwgY29ubmVjdG9yLCBpbml0aWFsRmlsdGVyT2JzLCBjdXN0b21GaWx0ZXJDb21wb25lbnRDbGFzcywgcHJlc2V0RmlsdGVyQ29tcG9uZW50Q2xhc3MgfSA9IHRoaXMuY29uZmlnO1xuICAgICAgbGV0IGNvbXBvbmVudENsYXNzOiBUeXBlPEZpbHRlclNvdXJjZTxGPj47XG5cbiAgICAgIGlmIChzaG93UHJlc2V0KSB7XG4gICAgICAgIGNvbXBvbmVudENsYXNzID0gcHJlc2V0RmlsdGVyQ29tcG9uZW50Q2xhc3MgYXMgVHlwZTxGaWx0ZXJTb3VyY2U8Rj4+O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcG9uZW50Q2xhc3MgPSBjdXN0b21GaWx0ZXJDb21wb25lbnRDbGFzcyBhcyBUeXBlPEZpbHRlclNvdXJjZTxGPj47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPEZpbHRlclNvdXJjZTxGPj4gPSB7XG4gICAgICAgIGNvbXBvbmVudENsYXNzLFxuICAgICAgICBpbml0OiAoZmlsdGVyU291cmNlKSA9PiB7XG4gICAgICAgICAgY29ubmVjdG9yLmNvbm5lY3RXaXRoU291cmNlKGZpbHRlclNvdXJjZSk7XG5cbiAgICAgICAgICBpZiAoaW5pdGlhbEZpbHRlck9icyAmJiBmaWx0ZXJTb3VyY2UuaW5pdFdpdGhGaWx0ZXIpIHtcbiAgICAgICAgICAgIGZpbHRlclNvdXJjZS5pbml0V2l0aEZpbHRlcihpbml0aWFsRmlsdGVyT2JzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY2xvc2VPbkZpbHRlckNoYW5nZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlT25DaGFuZ2VTdWIuc3Vic2NyaXB0aW9uID0gZmlsdGVyU291cmNlLmZpbHRlciQucGlwZShza2lwKDEpLCBmaWx0ZXJNYXliZSgpLCBmaXJzdCgpLCBkZWZhdWx0SWZFbXB0eSh1bmRlZmluZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfSlcbiAgKTtcblxuICBzdGF0aWMgb3BlblBvcG92ZXI8RiBleHRlbmRzIG9iamVjdD4ocG9wdXBTZXJ2aWNlOiBEYnhQb3BvdmVyU2VydmljZSwgeyB3aWR0aCwgaGVpZ2h0LCBpc1Jlc2l6YWJsZSwgb3JpZ2luLCBoZWFkZXIsIGljb24sIGN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzLCBwcmVzZXRGaWx0ZXJDb21wb25lbnRDbGFzcywgY29ubmVjdG9yLCBpbml0aWFsRmlsdGVyT2JzLCBjbG9zZU9uRmlsdGVyQ2hhbmdlIH06IERieEZpbHRlclBvcG92ZXJDb21wb25lbnRQYXJhbXM8Rj4sIHBvcG92ZXJLZXk/OiBEYnhQb3BvdmVyS2V5KTogTmdQb3BvdmVyUmVmIHtcbiAgICByZXR1cm4gcG9wdXBTZXJ2aWNlLm9wZW4oe1xuICAgICAga2V5OiBwb3BvdmVyS2V5ID8/IERFRkFVTFRfRklMVEVSX1BPUE9WRVJfS0VZLFxuICAgICAgb3JpZ2luLFxuICAgICAgY29tcG9uZW50Q2xhc3M6IERieEZpbHRlclBvcG92ZXJDb21wb25lbnQsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIGlzUmVzaXphYmxlLFxuICAgICAgZGF0YToge1xuICAgICAgICBoZWFkZXIsXG4gICAgICAgIGljb24sXG4gICAgICAgIGN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzLFxuICAgICAgICBwcmVzZXRGaWx0ZXJDb21wb25lbnRDbGFzcyxcbiAgICAgICAgY29ubmVjdG9yLFxuICAgICAgICBpbml0aWFsRmlsdGVyT2JzLFxuICAgICAgICBjbG9zZU9uRmlsdGVyQ2hhbmdlXG4gICAgICB9IGFzIERieEZpbHRlckNvbXBvbmVudFBhcmFtczxGPlxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocG9wb3ZlcjogRGJ4UG9wb3ZlckNvbXBvbmVudDx1bmtub3duLCBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8Rj4+KSB7XG4gICAgc3VwZXIocG9wb3Zlcik7XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IERieEZpbHRlckNvbXBvbmVudFBhcmFtczxGPiB7XG4gICAgcmV0dXJuIHRoaXMucG9wb3Zlci5kYXRhIGFzIERieEZpbHRlckNvbXBvbmVudFBhcmFtczxGPjtcbiAgfVxuXG4gIGdldCBpY29uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5pY29uID8/ICdmaWx0ZXJfbGlzdCc7XG4gIH1cblxuICBnZXQgaGVhZGVyKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5oZWFkZXIgPz8gJ0ZpbHRlcic7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgc2hvd1ByZXNldCA9IGZhbHNlO1xuICAgIGNvbnN0IHsgY3VzdG9tRmlsdGVyQ29tcG9uZW50Q2xhc3MsIHByZXNldEZpbHRlckNvbXBvbmVudENsYXNzIH0gPSB0aGlzLmNvbmZpZztcblxuICAgIGlmIChjdXN0b21GaWx0ZXJDb21wb25lbnRDbGFzcykge1xuICAgICAgc2hvd1ByZXNldCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChwcmVzZXRGaWx0ZXJDb21wb25lbnRDbGFzcykge1xuICAgICAgc2hvd1ByZXNldCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFjdXN0b21GaWx0ZXJDb21wb25lbnRDbGFzcyAmJiAhcHJlc2V0RmlsdGVyQ29tcG9uZW50Q2xhc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZXMgYSBwcmVzZXQgb3IgY3VzdG9tIGNsYXNzIHByb3ZpZGVkIGZvciBEYnhGaWx0ZXJQb3BvdmVyLicpO1xuICAgIH1cblxuICAgIHRoaXMuX3Nob3dQcmVzZXQubmV4dChzaG93UHJlc2V0KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlT25DaGFuZ2VTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX3Nob3dQcmVzZXQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHNob3dQcmVzZXRzKCkge1xuICAgIHRoaXMuX3Nob3dQcmVzZXQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHNob3dDdXN0b20oKSB7XG4gICAgdGhpcy5fc2hvd1ByZXNldC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPGRieC1wb3BvdmVyLWNvbnRlbnQ+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGJ4LXBvcG92ZXItaGVhZGVyIFtpY29uXT1cImljb25cIiBbaGVhZGVyXT1cImhlYWRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93U3dpdGNoQnV0dG9uc1wiIFtuZ1N3aXRjaF09XCJzaG93UHJlc2V0JCB8IGFzeW5jXCI+XG4gICAgICA8YnV0dG9uICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cInNob3dDdXN0b20oKVwiPkN1c3RvbTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwic2hvd1ByZXNldHMoKVwiPlByZXNldHM8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kYngtcG9wb3Zlci1oZWFkZXI+XG4gIDwhLS0gQ29udGVudCAtLT5cbiAgPGRieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnJCB8IGFzeW5jXCI+PC9kYngtaW5qZWN0aW9uPlxuICA8L2RieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuPC9kYngtcG9wb3Zlci1jb250ZW50PlxuIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2ludGVyYWN0aW9uL2ZpbHRlci9maWx0ZXIucG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvaW50ZXJhY3Rpb24vZmlsdGVyL2ZpbHRlci5wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBYyxlQUFlLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FLE9BQU8sRUFBMkQsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBb0V6SCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQUM7QUFLbkQsTUFBTSxPQUFPLHlCQUE0QyxTQUFRLHdCQUE4RDtJQStFN0gsWUFBWSxPQUFrRTtRQUM1RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUEvRVQsc0JBQWlCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRTVDLG9CQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLENBQUM7UUFDNUYsb0JBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUM7UUFD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Q0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7O3VIQTdIVSx5QkFBeUI7MkdBQXpCLHlCQUF5QiwyRUNoRnRDLGs0QkFpQkE7NEZEK0RhLHlCQUF5QjtrQkFIckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVHlwZSwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nUG9wb3ZlclJlZiB9IGZyb20gJ25nLW92ZXJsYXktY29udGFpbmVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgbWFwLCBza2lwLCBmaXJzdCwgZGVmYXVsdElmRW1wdHkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFic3RyYWN0UG9wb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uL3BvcG92ZXIvYWJzdHJhY3QucG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlckNvbmZpZ1NpemluZywgRGJ4UG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJTb3VyY2UsIEZpbHRlclNvdXJjZUNvbm5lY3RvciwgUHJlc2V0RmlsdGVyU291cmNlLCBmaWx0ZXJNYXliZSwgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhQb3BvdmVyS2V5IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlsdGVyQ29tcG9uZW50UGFyYW1zPEYgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsIFAgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIENGIGV4dGVuZHMgRmlsdGVyU291cmNlPEY+ID0gRmlsdGVyU291cmNlPEY+LCBQRiBleHRlbmRzIFByZXNldEZpbHRlclNvdXJjZTxGLCBQPiA9IFByZXNldEZpbHRlclNvdXJjZTxGLCBQPj4gZXh0ZW5kcyBEYnhQb3BvdmVyQ29uZmlnU2l6aW5nIHtcbiAgLyoqXG4gICAqIEN1c3RvbSBpY29uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiZmlsdGVyX2xpc3RcIlxuICAgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBoZWFkZXIgdGV4dFxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBcIkZpbHRlclwiXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gY3VzdG9taXplIGJ1dHRvbiB0ZXh0LiBJZiBub3QgZGVmaW5lZCwgZGVmYXVsdHMgdG8gXCJDdXN0b21pemVcIlxuICAgKi9cbiAgY3VzdG9taXplQnV0dG9uVGV4dD86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBjbG9zZSBidXR0b24gdGV4dC4gSWYgbm90IGRlZmluZWQsIGRlZmF1bHRzIHRvIFwiQ2xvc2VcIlxuICAgKi9cbiAgY2xvc2VCdXR0b25UZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGUgY2xvc2UgYnV0dG9uLiBEZWZhdWx0cyB0byB0aGUgdmFsdWUgb2YgIWNsb3NlT25GaWx0ZXJDaGFuZ2VcbiAgICovXG4gIHNob3dDbG9zZUJ1dHRvbj86IE1heWJlPGJvb2xlYW4+O1xuICAvKipcbiAgICogQ3VzdG9tIGZpbHRlciBjb21wb25lbnQgdG8gaW5pdGlhbGl6ZS5cbiAgICovXG4gIGN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzPzogVHlwZTxDRj47XG4gIC8qKlxuICAgKiBQcmVzZXQgZmlsdGVyIGNvbXBvbmVudCB0byBpbml0aWFsaXplLlxuICAgKi9cbiAgcHJlc2V0RmlsdGVyQ29tcG9uZW50Q2xhc3M/OiBUeXBlPFBGPjtcbiAgLyoqXG4gICAqIERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyBmb3IgdGhlIGN1c3RvbSBmaWx0ZXIgY29tcG9uZW50IHRvIGluaXRpYWxpemUuXG4gICAqL1xuICBjdXN0b21GaWx0ZXJDb21wb25lbnRDb25maWc/OiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8Q0Y+O1xuICAvKipcbiAgICogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIGZvciB0aGUgcHJlc2V0IGZpbHRlciBjb21wb25lbnQgdG8gaW5pdGlhbGl6ZS5cbiAgICovXG4gIHByZXNldEZpbHRlckNvbXBvbmVudENvbmZpZz86IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxQRj47XG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdG9yIHRvIHVzZS5cbiAgICovXG4gIGNvbm5lY3RvcjogRmlsdGVyU291cmNlQ29ubmVjdG9yPEY+O1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBJbml0YWwgZmlsdGVyIHRvIHBhc3MgdG8gdGhlIGZpbHRlciBzb3VyY2UuXG4gICAqL1xuICBpbml0aWFsRmlsdGVyT2JzPzogT2JzZXJ2YWJsZTxGPjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgV2hldGhlciBvciBub3QgdG8gY2xvc2UgdGhlIGNvbXBvbmVudCBpZiB0aGUgZmlsdGVyIGNoYW5nZXMuXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIGNsb3NlT25GaWx0ZXJDaGFuZ2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpbHRlclBvcG92ZXJDb21wb25lbnRQYXJhbXM8RiBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4gZXh0ZW5kcyBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8Rj4ge1xuICAvKipcbiAgICogT3JpZ2luIHRvIGFkZCB0aGUgcG9wb3ZlciB0by5cbiAgICovXG4gIG9yaWdpbjogRWxlbWVudFJlZjtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklMVEVSX1BPUE9WRVJfS0VZID0gJ2ZpbHRlcic7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLnBvcG92ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpbHRlclBvcG92ZXJDb21wb25lbnQ8RiBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBBYnN0cmFjdFBvcG92ZXJEaXJlY3RpdmU8dW5rbm93biwgRGJ4RmlsdGVyQ29tcG9uZW50UGFyYW1zPEY+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY2xvc2VPbkNoYW5nZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBzaG93Q2xvc2VCdXR0b24gPSB0aGlzLmNvbmZpZy5zaG93Q2xvc2VCdXR0b24gPz8gISh0aGlzLmNvbmZpZy5jbG9zZU9uRmlsdGVyQ2hhbmdlID8/IHRydWUpO1xuICByZWFkb25seSBjbG9zZUJ1dHRvblRleHQgPSB0aGlzLmNvbmZpZy5jbG9zZUJ1dHRvblRleHQgPz8gJ0Nsb3NlJztcbiAgcmVhZG9ubHkgY3VzdG9taXplQnV0dG9uVGV4dCA9IHRoaXMuY29uZmlnLmN1c3RvbWl6ZUJ1dHRvblRleHQgPz8gJ0N1c3RvbWl6ZSc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgYnV0dG9ucyB0byB0b2dnbGUgYmV0d2VlbiBjdXN0b20gYW5kIHByZXNldCBmaWx0ZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1N3aXRjaEJ1dHRvbnMgPSBCb29sZWFuKHRoaXMuY29uZmlnLmN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzICYmIHRoaXMuY29uZmlnLnByZXNldEZpbHRlckNvbXBvbmVudENsYXNzKTtcblxuICBwcml2YXRlIF9zaG93UHJlc2V0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNob3dQcmVzZXQkID0gdGhpcy5fc2hvd1ByZXNldC5hc09ic2VydmFibGUoKTtcblxuICByZWFkb25seSBjb25maWckOiBPYnNlcnZhYmxlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxGaWx0ZXJTb3VyY2U8Rj4+PiA9IHRoaXMuX3Nob3dQcmVzZXQucGlwZShcbiAgICBtYXAoKHNob3dQcmVzZXQpID0+IHtcbiAgICAgIGNvbnN0IHsgY2xvc2VPbkZpbHRlckNoYW5nZSA9IHRydWUsIGNvbm5lY3RvciwgaW5pdGlhbEZpbHRlck9icywgY3VzdG9tRmlsdGVyQ29tcG9uZW50Q2xhc3MsIHByZXNldEZpbHRlckNvbXBvbmVudENsYXNzLCBjdXN0b21GaWx0ZXJDb21wb25lbnRDb25maWcsIHByZXNldEZpbHRlckNvbXBvbmVudENvbmZpZyB9ID0gdGhpcy5jb25maWc7XG4gICAgICBsZXQgY29tcG9uZW50Q2xhc3M6IFR5cGU8RmlsdGVyU291cmNlPEY+PjtcbiAgICAgIGxldCBiYXNlQ29uZmlnOiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8RmlsdGVyU291cmNlPEY+Pj47XG5cbiAgICAgIGlmIChzaG93UHJlc2V0KSB7XG4gICAgICAgIGNvbXBvbmVudENsYXNzID0gKHByZXNldEZpbHRlckNvbXBvbmVudENvbmZpZz8uY29tcG9uZW50Q2xhc3MgPz8gcHJlc2V0RmlsdGVyQ29tcG9uZW50Q2xhc3MpIGFzIFR5cGU8RmlsdGVyU291cmNlPEY+PjtcbiAgICAgICAgYmFzZUNvbmZpZyA9IHByZXNldEZpbHRlckNvbXBvbmVudENvbmZpZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbXBvbmVudENsYXNzID0gKGN1c3RvbUZpbHRlckNvbXBvbmVudENvbmZpZz8uY29tcG9uZW50Q2xhc3MgPz8gY3VzdG9tRmlsdGVyQ29tcG9uZW50Q2xhc3MpIGFzIFR5cGU8RmlsdGVyU291cmNlPEY+PjtcbiAgICAgICAgYmFzZUNvbmZpZyA9IGN1c3RvbUZpbHRlckNvbXBvbmVudENvbmZpZztcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29uZmlnOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8RmlsdGVyU291cmNlPEY+PiA9IHtcbiAgICAgICAgLi4uYmFzZUNvbmZpZyxcbiAgICAgICAgY29tcG9uZW50Q2xhc3MsXG4gICAgICAgIGluaXQ6IChmaWx0ZXJTb3VyY2UpID0+IHtcbiAgICAgICAgICBjb25uZWN0b3IuY29ubmVjdFdpdGhTb3VyY2UoZmlsdGVyU291cmNlKTtcblxuICAgICAgICAgIGlmIChpbml0aWFsRmlsdGVyT2JzICYmIGZpbHRlclNvdXJjZS5pbml0V2l0aEZpbHRlcikge1xuICAgICAgICAgICAgZmlsdGVyU291cmNlLmluaXRXaXRoRmlsdGVyKGluaXRpYWxGaWx0ZXJPYnMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjbG9zZU9uRmlsdGVyQ2hhbmdlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5fY2xvc2VPbkNoYW5nZVN1Yi5zdWJzY3JpcHRpb24gPSBmaWx0ZXJTb3VyY2UuZmlsdGVyJC5waXBlKHNraXAoMSksIGZpbHRlck1heWJlKCksIGZpcnN0KCksIGRlZmF1bHRJZkVtcHR5KHVuZGVmaW5lZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHJ1biB0aGUgbmV4dCBpbml0IGlmIHByb3ZpZGVkXG4gICAgICAgICAgYmFzZUNvbmZpZz8uaW5pdD8uKGZpbHRlclNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfSlcbiAgKTtcblxuICBzdGF0aWMgb3BlblBvcG92ZXI8RiBleHRlbmRzIG9iamVjdD4ocG9wdXBTZXJ2aWNlOiBEYnhQb3BvdmVyU2VydmljZSwgeyB3aWR0aCwgaGVpZ2h0LCBpc1Jlc2l6YWJsZSwgb3JpZ2luLCBoZWFkZXIsIGljb24sIGN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzLCBwcmVzZXRGaWx0ZXJDb21wb25lbnRDbGFzcywgY3VzdG9tRmlsdGVyQ29tcG9uZW50Q29uZmlnLCBwcmVzZXRGaWx0ZXJDb21wb25lbnRDb25maWcsIGNvbm5lY3RvciwgaW5pdGlhbEZpbHRlck9icywgY2xvc2VPbkZpbHRlckNoYW5nZSwgY3VzdG9taXplQnV0dG9uVGV4dCwgc2hvd0Nsb3NlQnV0dG9uLCBjbG9zZUJ1dHRvblRleHQgfTogRGJ4RmlsdGVyUG9wb3ZlckNvbXBvbmVudFBhcmFtczxGPiwgcG9wb3ZlcktleT86IERieFBvcG92ZXJLZXkpOiBOZ1BvcG92ZXJSZWYge1xuICAgIHJldHVybiBwb3B1cFNlcnZpY2Uub3Blbih7XG4gICAgICBrZXk6IHBvcG92ZXJLZXkgPz8gREVGQVVMVF9GSUxURVJfUE9QT1ZFUl9LRVksXG4gICAgICBvcmlnaW4sXG4gICAgICBjb21wb25lbnRDbGFzczogRGJ4RmlsdGVyUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgaXNSZXNpemFibGUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGhlYWRlcixcbiAgICAgICAgaWNvbixcbiAgICAgICAgY3VzdG9taXplQnV0dG9uVGV4dCxcbiAgICAgICAgc2hvd0Nsb3NlQnV0dG9uLFxuICAgICAgICBjbG9zZUJ1dHRvblRleHQsXG4gICAgICAgIGN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzLFxuICAgICAgICBwcmVzZXRGaWx0ZXJDb21wb25lbnRDbGFzcyxcbiAgICAgICAgY3VzdG9tRmlsdGVyQ29tcG9uZW50Q29uZmlnLFxuICAgICAgICBwcmVzZXRGaWx0ZXJDb21wb25lbnRDb25maWcsXG4gICAgICAgIGNvbm5lY3RvcixcbiAgICAgICAgaW5pdGlhbEZpbHRlck9icyxcbiAgICAgICAgY2xvc2VPbkZpbHRlckNoYW5nZVxuICAgICAgfSBhcyBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8Rj5cbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHBvcG92ZXI6IERieFBvcG92ZXJDb21wb25lbnQ8dW5rbm93biwgRGJ4RmlsdGVyQ29tcG9uZW50UGFyYW1zPEY+Pikge1xuICAgIHN1cGVyKHBvcG92ZXIpO1xuICB9XG5cbiAgZ2V0IGNvbmZpZygpOiBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8Rj4ge1xuICAgIHJldHVybiB0aGlzLnBvcG92ZXIuZGF0YSBhcyBEYnhGaWx0ZXJDb21wb25lbnRQYXJhbXM8Rj47XG4gIH1cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuaWNvbiA/PyAnZmlsdGVyX2xpc3QnO1xuICB9XG5cbiAgZ2V0IGhlYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuaGVhZGVyID8/ICdGaWx0ZXInO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbGV0IHNob3dQcmVzZXQgPSBmYWxzZTtcbiAgICBjb25zdCB7IGN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzLCBwcmVzZXRGaWx0ZXJDb21wb25lbnRDbGFzcywgY3VzdG9tRmlsdGVyQ29tcG9uZW50Q29uZmlnLCBwcmVzZXRGaWx0ZXJDb21wb25lbnRDb25maWcgfSA9IHRoaXMuY29uZmlnO1xuXG4gICAgaWYgKGN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzIHx8IGN1c3RvbUZpbHRlckNvbXBvbmVudENvbmZpZykge1xuICAgICAgc2hvd1ByZXNldCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChwcmVzZXRGaWx0ZXJDb21wb25lbnRDbGFzcyB8fCBwcmVzZXRGaWx0ZXJDb21wb25lbnRDb25maWcpIHtcbiAgICAgIHNob3dQcmVzZXQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghKGN1c3RvbUZpbHRlckNvbXBvbmVudENsYXNzIHx8IGN1c3RvbUZpbHRlckNvbXBvbmVudENvbmZpZykgJiYgIShwcmVzZXRGaWx0ZXJDb21wb25lbnRDbGFzcyB8fCBwcmVzZXRGaWx0ZXJDb21wb25lbnRDb25maWcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVzIGEgcHJlc2V0IG9yIGN1c3RvbSBjbGFzcyBwcm92aWRlZCBmb3IgRGJ4RmlsdGVyUG9wb3Zlci4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zaG93UHJlc2V0Lm5leHQoc2hvd1ByZXNldCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZU9uQ2hhbmdlU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9zaG93UHJlc2V0LmNvbXBsZXRlKCk7XG4gIH1cblxuICBzaG93UHJlc2V0cygpIHtcbiAgICB0aGlzLl9zaG93UHJlc2V0Lm5leHQodHJ1ZSk7XG4gIH1cblxuICBzaG93Q3VzdG9tKCkge1xuICAgIHRoaXMuX3Nob3dQcmVzZXQubmV4dChmYWxzZSk7XG4gIH1cbn1cbiIsIjxkYngtcG9wb3Zlci1jb250ZW50PlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRieC1wb3BvdmVyLWhlYWRlciBbaWNvbl09XCJpY29uXCIgW2hlYWRlcl09XCJoZWFkZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1N3aXRjaEJ1dHRvbnNcIiBbbmdTd2l0Y2hdPVwic2hvd1ByZXNldCQgfCBhc3luY1wiPlxuICAgICAgPGJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJzaG93Q3VzdG9tKClcIj57eyBjdXN0b21pemVCdXR0b25UZXh0IH19PC9idXR0b24+XG4gICAgICA8YnV0dG9uICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJzaG93UHJlc2V0cygpXCI+UHJlc2V0czwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b25cIj5cbiAgICAgIDxkYngtYnV0dG9uLXNwYWNlciAqbmdJZj1cInNob3dTd2l0Y2hCdXR0b25zXCI+PC9kYngtYnV0dG9uLXNwYWNlcj5cbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNsb3NlKClcIj57eyBjbG9zZUJ1dHRvblRleHQgfX08L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kYngtcG9wb3Zlci1oZWFkZXI+XG4gIDwhLS0gQ29udGVudCAtLT5cbiAgPGRieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnJCB8IGFzeW5jXCI+PC9kYngtaW5qZWN0aW9uPlxuICA8L2RieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuPC9kYngtcG9wb3Zlci1jb250ZW50PlxuIl19
@@ -1,5 +1,5 @@
1
1
  import { shareReplay, BehaviorSubject, map, combineLatest, distinctUntilChanged, startWith } from 'rxjs';
2
- import { Directive, Input } from '@angular/core';
2
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
3
3
  import { FilterSourceDirective, isClickableFilterPreset } from '@dereekb/dbx-core';
4
4
  import { getValueFromGetter, objectHasNoKeys } from '@dereekb/util';
5
5
  import * as i0 from "@angular/core";
@@ -11,6 +11,7 @@ export class AbstractDbxPresetFilterMenuComponent {
11
11
  constructor(filterSourceDirective) {
12
12
  this.filterSourceDirective = filterSourceDirective;
13
13
  //TODO: Rename to AbstractDbxPresetFilterMenuDirective with next breaking changes
14
+ this.presetSelected = new EventEmitter();
14
15
  this._presets = new BehaviorSubject([]);
15
16
  this.selected$ = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));
16
17
  this.presetsWithPresetStringOnly$ = this._presets.pipe(map((x) => x.filter((y) => Boolean(y.preset))));
@@ -74,16 +75,20 @@ export class AbstractDbxPresetFilterMenuComponent {
74
75
  }
75
76
  this.filterSourceDirective.setFilter(filter);
76
77
  }
78
+ this.presetSelected.next(preset);
77
79
  }
78
80
  ngOnDestroy() {
79
81
  this._presets.complete();
82
+ this.presetSelected.complete();
80
83
  }
81
84
  }
82
85
  AbstractDbxPresetFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxPresetFilterMenuComponent, deps: [{ token: i1.FilterSourceDirective }], target: i0.ɵɵFactoryTarget.Directive });
83
- AbstractDbxPresetFilterMenuComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractDbxPresetFilterMenuComponent, inputs: { presets: "presets" }, ngImport: i0 });
86
+ AbstractDbxPresetFilterMenuComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractDbxPresetFilterMenuComponent, inputs: { presets: "presets" }, outputs: { presetSelected: "presetSelected" }, ngImport: i0 });
84
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxPresetFilterMenuComponent, decorators: [{
85
88
  type: Directive
86
- }], ctorParameters: function () { return [{ type: i1.FilterSourceDirective }]; }, propDecorators: { presets: [{
89
+ }], ctorParameters: function () { return [{ type: i1.FilterSourceDirective }]; }, propDecorators: { presetSelected: [{
90
+ type: Output
91
+ }], presets: [{
87
92
  type: Input
88
93
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnByZXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9pbnRlcmFjdGlvbi9maWx0ZXIvZmlsdGVyLnByZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsYUFBYSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNySCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQThDLHFCQUFxQixFQUFzRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25NLE9BQU8sRUFBRSxrQkFBa0IsRUFBUyxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczRTs7R0FFRztBQUVILE1BQU0sT0FBZ0Isb0NBQW9DO0lBeUV4RCxZQUFxQixxQkFBK0M7UUFBL0MsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEwQjtRQXhFcEUsaUZBQWlGO1FBRXpFLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBNEMsRUFBRSxDQUFDLENBQUM7UUFFN0UsY0FBUyxHQUF5QixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4SSxpQ0FBNEIsR0FBMkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUUsQ0FBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBK0IsQ0FBQyxDQUFDLENBQUM7UUFFdE0sMEJB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IHsgc2hhcmVSZXBsYXksIEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsaWNrYWJsZUZpbHRlclByZXNldCwgQ2xpY2thYmxlQW5jaG9yTGluaywgRmlsdGVyU291cmNlRGlyZWN0aXZlLCBDbGlja2FibGVQYXJ0aWFsRmlsdGVyUHJlc2V0LCBDbGlja2FibGVGaWx0ZXJQcmVzZXRPclBhcnRpYWxQcmVzZXQsIGlzQ2xpY2thYmxlRmlsdGVyUHJlc2V0IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tR2V0dGVyLCBNYXliZSwgb2JqZWN0SGFzTm9LZXlzIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBGaWx0ZXJXaXRoUHJlc2V0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5cbi8qKlxuICogRGlzcGxheXMgYSBidXR0b24gYW5kIG1lbnUgZm9yIGZpbHRlcmluZyBwcmVzZXRzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERieFByZXNldEZpbHRlck1lbnVDb21wb25lbnQ8RiBleHRlbmRzIEZpbHRlcldpdGhQcmVzZXQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy9UT0RPOiBSZW5hbWUgdG8gQWJzdHJhY3REYnhQcmVzZXRGaWx0ZXJNZW51RGlyZWN0aXZlIHdpdGggbmV4dCBicmVha2luZyBjaGFuZ2VzXG5cbiAgcHJpdmF0ZSBfcHJlc2V0cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2xpY2thYmxlRmlsdGVyUHJlc2V0T3JQYXJ0aWFsUHJlc2V0PEY+W10+KFtdKTtcblxuICByZWFkb25seSBzZWxlY3RlZCQ6IE9ic2VydmFibGU8TWF5YmU8Rj4+ID0gdGhpcy5maWx0ZXJTb3VyY2VEaXJlY3RpdmUuZmlsdGVyJC5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IHByZXNldHNXaXRoUHJlc2V0U3RyaW5nT25seSQ6IE9ic2VydmFibGU8Q2xpY2thYmxlRmlsdGVyUHJlc2V0PEY+W10+ID0gdGhpcy5fcHJlc2V0cy5waXBlKG1hcCgoeCkgPT4geC5maWx0ZXIoKHkpID0+IEJvb2xlYW4oKHkgYXMgQ2xpY2thYmxlRmlsdGVyUHJlc2V0PEY+KS5wcmVzZXQpKSBhcyBDbGlja2FibGVGaWx0ZXJQcmVzZXQ8Rj5bXSkpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkUHJlc2V0U3RyaW5nJDogT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PiA9IHRoaXMuc2VsZWN0ZWQkLnBpcGUoXG4gICAgbWFwKChzZWxlY3RlZEZpbHRlcikgPT4gKHNlbGVjdGVkRmlsdGVyID8gc2VsZWN0ZWRGaWx0ZXIucHJlc2V0IDogdW5kZWZpbmVkKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHJlYWRvbmx5IHByZXNldEFuY2hvcnNQYWlycyQ6IE9ic2VydmFibGU8WydwcmVzZXQnIHwgJ3BhcnRpYWxQcmVzZXQnLCBDbGlja2FibGVGaWx0ZXJQcmVzZXRPclBhcnRpYWxQcmVzZXQ8Rj4sIENsaWNrYWJsZUFuY2hvckxpbmtdW10+ID0gY29tYmluZUxhdGVzdChbdGhpcy5fcHJlc2V0cywgdGhpcy5zZWxlY3RlZCQsIHRoaXMuc2VsZWN0ZWRQcmVzZXRTdHJpbmckXSkucGlwZShcbiAgICBtYXAoKFtwcmVzZXRzLCBjdXJyZW50RmlsdGVyVmFsdWUsIHNlbGVjdGVkUHJlc2V0U3RyaW5nXSkgPT4ge1xuICAgICAgcmV0dXJuIHByZXNldHMubWFwKCh4KSA9PiB7XG4gICAgICAgIGxldCBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAgICAgbGV0IHR5cGU6ICdwcmVzZXQnIHwgJ3BhcnRpYWxQcmVzZXQnO1xuXG4gICAgICAgIGlmIChpc0NsaWNrYWJsZUZpbHRlclByZXNldCh4KSkge1xuICAgICAgICAgIHNlbGVjdGVkID0geC5wcmVzZXQgPT09IHNlbGVjdGVkUHJlc2V0U3RyaW5nO1xuICAgICAgICAgIHR5cGUgPSAncHJlc2V0JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWxlY3RlZCA9IHguaXNBY3RpdmUoY3VycmVudEZpbHRlclZhbHVlKTtcbiAgICAgICAgICB0eXBlID0gJ3BhcnRpYWxQcmVzZXQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHgsXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdFByZXNldCh4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0gYXMgW3R5cGVvZiB0eXBlLCBDbGlja2FibGVGaWx0ZXJQcmVzZXRPclBhcnRpYWxQcmVzZXQ8Rj4sIENsaWNrYWJsZUFuY2hvckxpbmtdO1xuICAgICAgfSk7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBwcmVzZXRBbmNob3JzJDogT2JzZXJ2YWJsZTxDbGlja2FibGVBbmNob3JMaW5rW10+ID0gdGhpcy5wcmVzZXRBbmNob3JzUGFpcnMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm1hcCgoeCkgPT4geFsyXSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmlyc3RTZWxlY3RlZEFuY2hvclBhaXIkID0gdGhpcy5wcmVzZXRBbmNob3JzUGFpcnMkLnBpcGUoXG4gICAgbWFwKChwcmVzZXRzKSA9PiB7XG4gICAgICBjb25zdCBmaXJzdFNlbGVjdGVkID0gcHJlc2V0cy5maW5kKCh4KSA9PiB4WzJdLnNlbGVjdGVkKTtcbiAgICAgIHJldHVybiBmaXJzdFNlbGVjdGVkID8gZmlyc3RTZWxlY3RlZCA6IHVuZGVmaW5lZDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkUHJlc2V0JDogT2JzZXJ2YWJsZTxNYXliZTxDbGlja2FibGVGaWx0ZXJQcmVzZXQ8Rj4+PiA9IHRoaXMucHJlc2V0QW5jaG9yc1BhaXJzJC5waXBlKFxuICAgIG1hcCgocHJlc2V0cykgPT4ge1xuICAgICAgY29uc3QgZmlyc3RTZWxlY3RlZCA9IHByZXNldHMuZmlsdGVyKCh4KSA9PiB4WzBdID09PSAncHJlc2V0JykuZmluZCgoeCkgPT4geFsyXS5zZWxlY3RlZCk7XG4gICAgICByZXR1cm4gZmlyc3RTZWxlY3RlZCA/IChmaXJzdFNlbGVjdGVkWzFdIGFzIENsaWNrYWJsZUZpbHRlclByZXNldDxGPikgOiB1bmRlZmluZWQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBASW5wdXQoKVxuICBnZXQgcHJlc2V0cygpOiBDbGlja2FibGVGaWx0ZXJQcmVzZXRPclBhcnRpYWxQcmVzZXQ8Rj5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXNldHMudmFsdWU7XG4gIH1cblxuICBzZXQgcHJlc2V0cyhwcmVzZXRzOiBDbGlja2FibGVGaWx0ZXJQcmVzZXRPclBhcnRpYWxQcmVzZXQ8Rj5bXSkge1xuICAgIHRoaXMuX3ByZXNldHMubmV4dChwcmVzZXRzKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZpbHRlclNvdXJjZURpcmVjdGl2ZTogRmlsdGVyU291cmNlRGlyZWN0aXZlPEY+KSB7fVxuXG4gIHNlbGVjdFByZXNldChwcmVzZXQ6IENsaWNrYWJsZUZpbHRlclByZXNldE9yUGFydGlhbFByZXNldDxGPikge1xuICAgIGNvbnN0IHByZXNldFN0cmluZyA9IChwcmVzZXQgYXMgQ2xpY2thYmxlRmlsdGVyUHJlc2V0PEY+KS5wcmVzZXQ7XG4gICAgY29uc3QgcHJlc2V0VmFsdWUgPSAocHJlc2V0IGFzIENsaWNrYWJsZUZpbHRlclByZXNldDxGPikucHJlc2V0VmFsdWUgfHwgKHByZXNldCBhcyBDbGlja2FibGVQYXJ0aWFsRmlsdGVyUHJlc2V0PEY+KS5wYXJ0aWFsUHJlc2V0VmFsdWU7XG5cbiAgICBpZiAocHJlc2V0VmFsdWUgPT0gbnVsbCB8fCAodHlwZW9mIHByZXNldFZhbHVlICE9PSAnZnVuY3Rpb24nICYmIG9iamVjdEhhc05vS2V5cyhwcmVzZXRWYWx1ZSkpKSB7XG4gICAgICAvLyBzZXQgYW5kIHRoZW4gcmVzZXQgaWYgdGhlIHZhbHVlIGlzIG51bGwgb3IgZW1wdHlcbiAgICAgIHRoaXMuZmlsdGVyU291cmNlRGlyZWN0aXZlLnNldEZpbHRlcigocHJlc2V0VmFsdWUgPz8ge30pIGFzIEYpO1xuICAgICAgdGhpcy5maWx0ZXJTb3VyY2VEaXJlY3RpdmUucmVzZXRGaWx0ZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGZpbHRlciA9IGdldFZhbHVlRnJvbUdldHRlcihwcmVzZXRWYWx1ZSkgYXMgRjtcblxuICAgICAgaWYgKGZpbHRlci5wcmVzZXQgIT09IHByZXNldFN0cmluZykge1xuICAgICAgICBmaWx0ZXIgPSB7XG4gICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgIHByZXNldDogcHJlc2V0U3RyaW5nXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmlsdGVyU291cmNlRGlyZWN0aXZlLnNldEZpbHRlcihmaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3ByZXNldHMuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnByZXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9pbnRlcmFjdGlvbi9maWx0ZXIvZmlsdGVyLnByZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsYUFBYSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNySCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBOEMscUJBQXFCLEVBQXNFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbk0sT0FBTyxFQUFFLGtCQUFrQixFQUFTLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNFOztHQUVHO0FBRUgsTUFBTSxPQUFnQixvQ0FBb0M7SUE0RXhELFlBQXFCLHFCQUErQztRQUEvQywwQkFBcUIsR0FBckIscUJBQXFCLENBQTBCO1FBM0VwRSxpRkFBaUY7UUFHakYsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBMkMsQ0FBQztRQUVyRSxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQTRDLEVBQUUsQ0FBQyxDQUFDO1FBRTdFLGNBQVMsR0FBeUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEksaUNBQTRCLEdBQTJDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FB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QUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7O2tJQXpHbUIsb0NBQW9DO3NIQUFwQyxvQ0FBb0M7NEZBQXBDLG9DQUFvQztrQkFEekQsU0FBUzs0R0FLUixjQUFjO3NCQURiLE1BQU07Z0JBaUVILE9BQU87c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYXJlUmVwbGF5LCBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpY2thYmxlRmlsdGVyUHJlc2V0LCBDbGlja2FibGVBbmNob3JMaW5rLCBGaWx0ZXJTb3VyY2VEaXJlY3RpdmUsIENsaWNrYWJsZVBhcnRpYWxGaWx0ZXJQcmVzZXQsIENsaWNrYWJsZUZpbHRlclByZXNldE9yUGFydGlhbFByZXNldCwgaXNDbGlja2FibGVGaWx0ZXJQcmVzZXQgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21HZXR0ZXIsIE1heWJlLCBvYmplY3RIYXNOb0tleXMgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEZpbHRlcldpdGhQcmVzZXQgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBEaXNwbGF5cyBhIGJ1dHRvbiBhbmQgbWVudSBmb3IgZmlsdGVyaW5nIHByZXNldHMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGJ4UHJlc2V0RmlsdGVyTWVudUNvbXBvbmVudDxGIGV4dGVuZHMgRmlsdGVyV2l0aFByZXNldD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvL1RPRE86IFJlbmFtZSB0byBBYnN0cmFjdERieFByZXNldEZpbHRlck1lbnVEaXJlY3RpdmUgd2l0aCBuZXh0IGJyZWFraW5nIGNoYW5nZXNcblxuICBAT3V0cHV0KClcbiAgcHJlc2V0U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENsaWNrYWJsZUZpbHRlclByZXNldE9yUGFydGlhbFByZXNldDxGPj4oKTtcblxuICBwcml2YXRlIF9wcmVzZXRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDbGlja2FibGVGaWx0ZXJQcmVzZXRPclBhcnRpYWxQcmVzZXQ8Rj5bXT4oW10pO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxNYXliZTxGPj4gPSB0aGlzLmZpbHRlclNvdXJjZURpcmVjdGl2ZS5maWx0ZXIkLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkgcHJlc2V0c1dpdGhQcmVzZXRTdHJpbmdPbmx5JDogT2JzZXJ2YWJsZTxDbGlja2FibGVGaWx0ZXJQcmVzZXQ8Rj5bXT4gPSB0aGlzLl9wcmVzZXRzLnBpcGUobWFwKCh4KSA9PiB4LmZpbHRlcigoeSkgPT4gQm9vbGVhbigoeSBhcyBDbGlja2FibGVGaWx0ZXJQcmVzZXQ8Rj4pLnByZXNldCkpIGFzIENsaWNrYWJsZUZpbHRlclByZXNldDxGPltdKSk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRQcmVzZXRTdHJpbmckOiBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+ID0gdGhpcy5zZWxlY3RlZCQucGlwZShcbiAgICBtYXAoKHNlbGVjdGVkRmlsdGVyKSA9PiAoc2VsZWN0ZWRGaWx0ZXIgPyBzZWxlY3RlZEZpbHRlci5wcmVzZXQgOiB1bmRlZmluZWQpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG5cbiAgcmVhZG9ubHkgcHJlc2V0QW5jaG9yc1BhaXJzJDogT2JzZXJ2YWJsZTxbJ3ByZXNldCcgfCAncGFydGlhbFByZXNldCcsIENsaWNrYWJsZUZpbHRlclByZXNldE9yUGFydGlhbFByZXNldDxGPiwgQ2xpY2thYmxlQW5jaG9yTGlua11bXT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9wcmVzZXRzLCB0aGlzLnNlbGVjdGVkJCwgdGhpcy5zZWxlY3RlZFByZXNldFN0cmluZyRdKS5waXBlKFxuICAgIG1hcCgoW3ByZXNldHMsIGN1cnJlbnRGaWx0ZXJWYWx1ZSwgc2VsZWN0ZWRQcmVzZXRTdHJpbmddKSA9PiB7XG4gICAgICByZXR1cm4gcHJlc2V0cy5tYXAoKHgpID0+IHtcbiAgICAgICAgbGV0IHNlbGVjdGVkOiBib29sZWFuO1xuICAgICAgICBsZXQgdHlwZTogJ3ByZXNldCcgfCAncGFydGlhbFByZXNldCc7XG5cbiAgICAgICAgaWYgKGlzQ2xpY2thYmxlRmlsdGVyUHJlc2V0KHgpKSB7XG4gICAgICAgICAgc2VsZWN0ZWQgPSB4LnByZXNldCA9PT0gc2VsZWN0ZWRQcmVzZXRTdHJpbmc7XG4gICAgICAgICAgdHlwZSA9ICdwcmVzZXQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGVjdGVkID0geC5pc0FjdGl2ZShjdXJyZW50RmlsdGVyVmFsdWUpO1xuICAgICAgICAgIHR5cGUgPSAncGFydGlhbFByZXNldCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgeCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi54LFxuICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0UHJlc2V0KHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSBhcyBbdHlwZW9mIHR5cGUsIENsaWNrYWJsZUZpbHRlclByZXNldE9yUGFydGlhbFByZXNldDxGPiwgQ2xpY2thYmxlQW5jaG9yTGlua107XG4gICAgICB9KTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHByZXNldEFuY2hvcnMkOiBPYnNlcnZhYmxlPENsaWNrYWJsZUFuY2hvckxpbmtbXT4gPSB0aGlzLnByZXNldEFuY2hvcnNQYWlycyQucGlwZShcbiAgICBtYXAoKHgpID0+IHgubWFwKCh4KSA9PiB4WzJdKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaXJzdFNlbGVjdGVkQW5jaG9yUGFpciQgPSB0aGlzLnByZXNldEFuY2hvcnNQYWlycyQucGlwZShcbiAgICBtYXAoKHByZXNldHMpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0U2VsZWN0ZWQgPSBwcmVzZXRzLmZpbmQoKHgpID0+IHhbMl0uc2VsZWN0ZWQpO1xuICAgICAgcmV0dXJuIGZpcnN0U2VsZWN0ZWQgPyBmaXJzdFNlbGVjdGVkIDogdW5kZWZpbmVkO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRQcmVzZXQkOiBPYnNlcnZhYmxlPE1heWJlPENsaWNrYWJsZUZpbHRlclByZXNldDxGPj4+ID0gdGhpcy5wcmVzZXRBbmNob3JzUGFpcnMkLnBpcGUoXG4gICAgbWFwKChwcmVzZXRzKSA9PiB7XG4gICAgICBjb25zdCBmaXJzdFNlbGVjdGVkID0gcHJlc2V0cy5maWx0ZXIoKHgpID0+IHhbMF0gPT09ICdwcmVzZXQnKS5maW5kKCh4KSA9PiB4WzJdLnNlbGVjdGVkKTtcbiAgICAgIHJldHVybiBmaXJzdFNlbGVjdGVkID8gKGZpcnN0U2VsZWN0ZWRbMV0gYXMgQ2xpY2thYmxlRmlsdGVyUHJlc2V0PEY+KSA6IHVuZGVmaW5lZDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBwcmVzZXRzKCk6IENsaWNrYWJsZUZpbHRlclByZXNldE9yUGFydGlhbFByZXNldDxGPltdIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlc2V0cy52YWx1ZTtcbiAgfVxuXG4gIHNldCBwcmVzZXRzKHByZXNldHM6IENsaWNrYWJsZUZpbHRlclByZXNldE9yUGFydGlhbFByZXNldDxGPltdKSB7XG4gICAgdGhpcy5fcHJlc2V0cy5uZXh0KHByZXNldHMpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmlsdGVyU291cmNlRGlyZWN0aXZlOiBGaWx0ZXJTb3VyY2VEaXJlY3RpdmU8Rj4pIHt9XG5cbiAgc2VsZWN0UHJlc2V0KHByZXNldDogQ2xpY2thYmxlRmlsdGVyUHJlc2V0T3JQYXJ0aWFsUHJlc2V0PEY+KSB7XG4gICAgY29uc3QgcHJlc2V0U3RyaW5nID0gKHByZXNldCBhcyBDbGlja2FibGVGaWx0ZXJQcmVzZXQ8Rj4pLnByZXNldDtcbiAgICBjb25zdCBwcmVzZXRWYWx1ZSA9IChwcmVzZXQgYXMgQ2xpY2thYmxlRmlsdGVyUHJlc2V0PEY+KS5wcmVzZXRWYWx1ZSB8fCAocHJlc2V0IGFzIENsaWNrYWJsZVBhcnRpYWxGaWx0ZXJQcmVzZXQ8Rj4pLnBhcnRpYWxQcmVzZXRWYWx1ZTtcblxuICAgIGlmIChwcmVzZXRWYWx1ZSA9PSBudWxsIHx8ICh0eXBlb2YgcHJlc2V0VmFsdWUgIT09ICdmdW5jdGlvbicgJiYgb2JqZWN0SGFzTm9LZXlzKHByZXNldFZhbHVlKSkpIHtcbiAgICAgIC8vIHNldCBhbmQgdGhlbiByZXNldCBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciBlbXB0eVxuICAgICAgdGhpcy5maWx0ZXJTb3VyY2VEaXJlY3RpdmUuc2V0RmlsdGVyKChwcmVzZXRWYWx1ZSA/PyB7fSkgYXMgRik7XG4gICAgICB0aGlzLmZpbHRlclNvdXJjZURpcmVjdGl2ZS5yZXNldEZpbHRlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgZmlsdGVyID0gZ2V0VmFsdWVGcm9tR2V0dGVyKHByZXNldFZhbHVlKSBhcyBGO1xuXG4gICAgICBpZiAoZmlsdGVyLnByZXNldCAhPT0gcHJlc2V0U3RyaW5nKSB7XG4gICAgICAgIGZpbHRlciA9IHtcbiAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgcHJlc2V0OiBwcmVzZXRTdHJpbmdcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5maWx0ZXJTb3VyY2VEaXJlY3RpdmUuc2V0RmlsdGVyKGZpbHRlcik7XG4gICAgfVxuXG4gICAgdGhpcy5wcmVzZXRTZWxlY3RlZC5uZXh0KHByZXNldCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9wcmVzZXRzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5wcmVzZXRTZWxlY3RlZC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
@@ -1845,8 +1845,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
1845
1845
  const DEFAULT_FILTER_POPOVER_KEY = 'filter';
1846
1846
  class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1847
1847
  constructor(popover) {
1848
+ var _a, _b, _c, _d;
1848
1849
  super(popover);
1849
1850
  this._closeOnChangeSub = new SubscriptionObject();
1851
+ this.showCloseButton = (_a = this.config.showCloseButton) !== null && _a !== void 0 ? _a : !((_b = this.config.closeOnFilterChange) !== null && _b !== void 0 ? _b : true);
1852
+ this.closeButtonText = (_c = this.config.closeButtonText) !== null && _c !== void 0 ? _c : 'Close';
1853
+ this.customizeButtonText = (_d = this.config.customizeButtonText) !== null && _d !== void 0 ? _d : 'Customize';
1850
1854
  /**
1851
1855
  * Whether or not to display buttons to toggle between custom and preset filters.
1852
1856
  */
@@ -1854,33 +1858,36 @@ class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1854
1858
  this._showPreset = new BehaviorSubject(false);
1855
1859
  this.showPreset$ = this._showPreset.asObservable();
1856
1860
  this.config$ = this._showPreset.pipe(map((showPreset) => {
1857
- const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass } = this.config;
1861
+ var _a, _b;
1862
+ const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;
1858
1863
  let componentClass;
1864
+ let baseConfig;
1859
1865
  if (showPreset) {
1860
- componentClass = presetFilterComponentClass;
1866
+ componentClass = ((_a = presetFilterComponentConfig === null || presetFilterComponentConfig === void 0 ? void 0 : presetFilterComponentConfig.componentClass) !== null && _a !== void 0 ? _a : presetFilterComponentClass);
1867
+ baseConfig = presetFilterComponentConfig;
1861
1868
  }
1862
1869
  else {
1863
- componentClass = customFilterComponentClass;
1870
+ componentClass = ((_b = customFilterComponentConfig === null || customFilterComponentConfig === void 0 ? void 0 : customFilterComponentConfig.componentClass) !== null && _b !== void 0 ? _b : customFilterComponentClass);
1871
+ baseConfig = customFilterComponentConfig;
1864
1872
  }
1865
- const config = {
1866
- componentClass,
1867
- init: (filterSource) => {
1873
+ const config = Object.assign(Object.assign({}, baseConfig), { componentClass, init: (filterSource) => {
1874
+ var _a;
1868
1875
  connector.connectWithSource(filterSource);
1869
1876
  if (initialFilterObs && filterSource.initWithFilter) {
1870
1877
  filterSource.initWithFilter(initialFilterObs);
1871
1878
  }
1872
1879
  if (closeOnFilterChange !== false) {
1873
1880
  this._closeOnChangeSub.subscription = filterSource.filter$.pipe(skip(1), filterMaybe(), first(), defaultIfEmpty(undefined)).subscribe(() => {
1874
- console.log();
1875
1881
  this.close();
1876
1882
  });
1877
1883
  }
1878
- }
1879
- };
1884
+ // run the next init if provided
1885
+ (_a = baseConfig === null || baseConfig === void 0 ? void 0 : baseConfig.init) === null || _a === void 0 ? void 0 : _a.call(baseConfig, filterSource);
1886
+ } });
1880
1887
  return config;
1881
1888
  }));
1882
1889
  }
1883
- static openPopover(popupService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, connector, initialFilterObs, closeOnFilterChange }, popoverKey) {
1890
+ static openPopover(popupService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }, popoverKey) {
1884
1891
  return popupService.open({
1885
1892
  key: popoverKey !== null && popoverKey !== void 0 ? popoverKey : DEFAULT_FILTER_POPOVER_KEY,
1886
1893
  origin,
@@ -1891,8 +1898,13 @@ class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1891
1898
  data: {
1892
1899
  header,
1893
1900
  icon,
1901
+ customizeButtonText,
1902
+ showCloseButton,
1903
+ closeButtonText,
1894
1904
  customFilterComponentClass,
1895
1905
  presetFilterComponentClass,
1906
+ customFilterComponentConfig,
1907
+ presetFilterComponentConfig,
1896
1908
  connector,
1897
1909
  initialFilterObs,
1898
1910
  closeOnFilterChange
@@ -1912,14 +1924,14 @@ class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1912
1924
  }
1913
1925
  ngOnInit() {
1914
1926
  let showPreset = false;
1915
- const { customFilterComponentClass, presetFilterComponentClass } = this.config;
1916
- if (customFilterComponentClass) {
1927
+ const { customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;
1928
+ if (customFilterComponentClass || customFilterComponentConfig) {
1917
1929
  showPreset = false;
1918
1930
  }
1919
- if (presetFilterComponentClass) {
1931
+ if (presetFilterComponentClass || presetFilterComponentConfig) {
1920
1932
  showPreset = true;
1921
1933
  }
1922
- if (!customFilterComponentClass && !presetFilterComponentClass) {
1934
+ if (!(customFilterComponentClass || customFilterComponentConfig) && !(presetFilterComponentClass || presetFilterComponentConfig)) {
1923
1935
  throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');
1924
1936
  }
1925
1937
  this._showPreset.next(showPreset);
@@ -1936,10 +1948,10 @@ class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1936
1948
  }
1937
1949
  }
1938
1950
  DbxFilterPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFilterPopoverComponent, deps: [{ token: DbxPopoverComponent }], target: i0.ɵɵFactoryTarget.Component });
1939
- DbxFilterPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFilterPopoverComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">Custom</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "component", type: DbxPopoverScrollContentComponent, selector: "dbx-popover-scroll-content" }, { kind: "component", type: i1$2.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: i2.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: "pipe", type: i1.AsyncPipe, name: "async" }] });
1951
+ DbxFilterPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFilterPopoverComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n <ng-container *ngIf=\"showCloseButton\">\n <dbx-button-spacer *ngIf=\"showSwitchButtons\"></dbx-button-spacer>\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "component", type: DbxPopoverScrollContentComponent, selector: "dbx-popover-scroll-content" }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i1$2.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: i2.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: "pipe", type: i1.AsyncPipe, name: "async" }] });
1940
1952
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFilterPopoverComponent, decorators: [{
1941
1953
  type: Component,
1942
- args: [{ template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">Custom</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
1954
+ args: [{ template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n <ng-container *ngIf=\"showCloseButton\">\n <dbx-button-spacer *ngIf=\"showSwitchButtons\"></dbx-button-spacer>\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
1943
1955
  }], ctorParameters: function () { return [{ type: DbxPopoverComponent }]; } });
1944
1956
 
1945
1957
  /**
@@ -2273,6 +2285,7 @@ class AbstractDbxPresetFilterMenuComponent {
2273
2285
  constructor(filterSourceDirective) {
2274
2286
  this.filterSourceDirective = filterSourceDirective;
2275
2287
  //TODO: Rename to AbstractDbxPresetFilterMenuDirective with next breaking changes
2288
+ this.presetSelected = new EventEmitter();
2276
2289
  this._presets = new BehaviorSubject([]);
2277
2290
  this.selected$ = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));
2278
2291
  this.presetsWithPresetStringOnly$ = this._presets.pipe(map((x) => x.filter((y) => Boolean(y.preset))));
@@ -2329,16 +2342,20 @@ class AbstractDbxPresetFilterMenuComponent {
2329
2342
  }
2330
2343
  this.filterSourceDirective.setFilter(filter);
2331
2344
  }
2345
+ this.presetSelected.next(preset);
2332
2346
  }
2333
2347
  ngOnDestroy() {
2334
2348
  this._presets.complete();
2349
+ this.presetSelected.complete();
2335
2350
  }
2336
2351
  }
2337
2352
  AbstractDbxPresetFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxPresetFilterMenuComponent, deps: [{ token: i1$2.FilterSourceDirective }], target: i0.ɵɵFactoryTarget.Directive });
2338
- AbstractDbxPresetFilterMenuComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractDbxPresetFilterMenuComponent, inputs: { presets: "presets" }, ngImport: i0 });
2353
+ AbstractDbxPresetFilterMenuComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractDbxPresetFilterMenuComponent, inputs: { presets: "presets" }, outputs: { presetSelected: "presetSelected" }, ngImport: i0 });
2339
2354
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxPresetFilterMenuComponent, decorators: [{
2340
2355
  type: Directive
2341
- }], ctorParameters: function () { return [{ type: i1$2.FilterSourceDirective }]; }, propDecorators: { presets: [{
2356
+ }], ctorParameters: function () { return [{ type: i1$2.FilterSourceDirective }]; }, propDecorators: { presetSelected: [{
2357
+ type: Output
2358
+ }], presets: [{
2342
2359
  type: Input
2343
2360
  }] } });
2344
2361