@recursyve/nice-data-filter-kit 15.1.1 → 15.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.mjs +24 -1
  2. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.mjs +5 -5
  3. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.mjs +1 -1
  4. package/esm2020/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.mjs +1 -1
  5. package/esm2020/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.mjs +6 -7
  6. package/esm2020/lib/components/nice-filter-view/directives/mat-paginator.mjs +13 -24
  7. package/esm2020/lib/components/nice-filter-view/directives/mat-sort.mjs +20 -30
  8. package/esm2020/lib/components/nice-filter-view/models/order-options.model.mjs +2 -0
  9. package/esm2020/lib/components/nice-filter-view/nice-base-filter-view.component.mjs +43 -2
  10. package/esm2020/lib/components/nice-filter-view/nice-filter-view.component.mjs +1 -1
  11. package/esm2020/lib/components/nice-filter-view/nice-nested-filter-view.mjs +46 -0
  12. package/esm2020/lib/components/nice-filter-view/public-api.mjs +2 -1
  13. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +29 -2
  14. package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +10 -1
  15. package/esm2020/lib/models/filter.model.mjs +1 -1
  16. package/fesm2015/recursyve-nice-data-filter-kit.mjs +269 -131
  17. package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +1 -1
  18. package/fesm2020/recursyve-nice-data-filter-kit.mjs +266 -140
  19. package/fesm2020/recursyve-nice-data-filter-kit.mjs.map +1 -1
  20. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.d.ts +1 -0
  21. package/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.d.ts +1 -2
  22. package/lib/components/nice-filter-view/directives/mat-paginator.d.ts +4 -9
  23. package/lib/components/nice-filter-view/directives/mat-sort.d.ts +4 -9
  24. package/lib/components/nice-filter-view/models/order-options.model.d.ts +7 -0
  25. package/lib/components/nice-filter-view/nice-base-filter-view.component.d.ts +19 -0
  26. package/lib/components/nice-filter-view/nice-nested-filter-view.d.ts +23 -0
  27. package/lib/components/nice-filter-view/public-api.d.ts +1 -0
  28. package/lib/components/nice-filter-view/store/nice-filter-view.service.d.ts +4 -0
  29. package/lib/components/nice-filter-view/store/nice-filter-view.store.d.ts +4 -1
  30. package/lib/models/filter.model.d.ts +11 -11
  31. package/package.json +1 -1
@@ -1,14 +1,17 @@
1
1
  import { Component, ViewChild } from "@angular/core";
2
2
  import { take } from "rxjs";
3
+ import { NiceSelectableListDirective } from "../../directive/selectable-list/selectable-list.directive";
3
4
  import { NiceAdvancedFiltersComponent } from "./components/advanced-filters/advanced-filters.component";
4
5
  import { NiceAdvancedFiltersButtonComponent } from "./components/advanced-filters/button/advanced-filters-button.component";
5
6
  import { NiceFilterQueryParamsDirective } from "./directives/query-params.directive";
6
7
  import { NiceFilterViewComponent } from "./nice-filter-view.component";
7
8
  import { NiceFilterViewQuery } from "./store/nice-filter-view.query";
8
9
  import { NiceFilterViewService } from "./store/nice-filter-view.service";
9
- import { NiceSelectableListDirective } from "../../directive/selectable-list/selectable-list.directive";
10
10
  import * as i0 from "@angular/core";
11
11
  export class NiceBaseFilterViewComponent {
12
+ constructor() {
13
+ this._afterQueryParamHooks = new Set();
14
+ }
12
15
  ngOnInit(autoLoad = true, { mode, loadConfig, configQueryParams } = {}) {
13
16
  if (mode) {
14
17
  this.filterViewService.setMode(mode);
@@ -20,6 +23,11 @@ export class NiceBaseFilterViewComponent {
20
23
  if (this.selectableListDirective) {
21
24
  this.filterViewService.updateSubState("selectable", { stateName: this.selectableListDirective.state });
22
25
  }
26
+ if (!this.queryParams || this.queryParams?.initialized) {
27
+ this.onInit();
28
+ return;
29
+ }
30
+ this.queryParams.init.pipe(take(1)).subscribe(() => this.onInit());
23
31
  }
24
32
  /**
25
33
  * Call the filter endpoint with the current filter parameters.
@@ -52,6 +60,27 @@ export class NiceBaseFilterViewComponent {
52
60
  setBaseRules(rule, reload = true) {
53
61
  this.filterViewService.setBaseRules(rule, reload);
54
62
  }
63
+ /**
64
+ * Add a rule to the set of rules that won't be saved in the current filterParameters config.
65
+ * NOTE: These rules will be injected in each filter request.
66
+ */
67
+ addBaseRule(rule, reload = true) {
68
+ this.filterViewService.addBaseRule(rule, reload);
69
+ }
70
+ /**
71
+ * Add a rule to the set of rules that won't be saved in the current filterParameters config.
72
+ * NOTE: These rules will be injected in each filter request.
73
+ */
74
+ upsertBaseRule(rule, reload = true) {
75
+ this.filterViewService.upsertBaseRules(rule, reload);
76
+ }
77
+ /**
78
+ * Remove a rule to the set of rules that won't be saved in the current filterParameters config.
79
+ * NOTE: These rules will be injected in each filter request.
80
+ */
81
+ removeBaseRule(id, reload = true) {
82
+ this.filterViewService.removeBaseRules(id, reload);
83
+ }
55
84
  /**
56
85
  * Reset all rules with a new set of rules.
57
86
  */
@@ -81,6 +110,13 @@ export class NiceBaseFilterViewComponent {
81
110
  this.filterViewService.filter();
82
111
  }
83
112
  }
113
+ afterInit(fn) {
114
+ if (!this.queryParams || this.queryParams?.initialized) {
115
+ fn.bind(this)();
116
+ return;
117
+ }
118
+ this._afterQueryParamHooks.add(fn);
119
+ }
84
120
  autoLoad(autoLoad) {
85
121
  const { autoLoad: defaultAutoLoad } = this.filterViewQuery.getValue();
86
122
  if (!this.queryParams) {
@@ -110,6 +146,11 @@ export class NiceBaseFilterViewComponent {
110
146
  this.filterViewService.loadConfig(configQueryParams);
111
147
  }
112
148
  }
149
+ onInit() {
150
+ for (const hook of this._afterQueryParamHooks) {
151
+ hook.bind(this)();
152
+ }
153
+ }
113
154
  }
114
155
  NiceBaseFilterViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseFilterViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
115
156
  NiceBaseFilterViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceBaseFilterViewComponent, selector: "ng-component", viewQueries: [{ propertyName: "filterViewService", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewService, static: true }, { propertyName: "filterViewQuery", first: true, predicate: NiceFilterViewComponent, descendants: true, read: NiceFilterViewQuery, static: true }, { propertyName: "queryParams", first: true, predicate: NiceFilterQueryParamsDirective, descendants: true, static: true }, { propertyName: "advancedFiltersButton", first: true, predicate: NiceAdvancedFiltersButtonComponent, descendants: true, static: true }, { propertyName: "advancedFilters", first: true, predicate: NiceAdvancedFiltersComponent, descendants: true, static: true }, { propertyName: "selectableListDirective", first: true, predicate: NiceSelectableListDirective, descendants: true, static: true }], ngImport: i0, template: ``, isInline: true });
@@ -137,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
137
178
  type: ViewChild,
138
179
  args: [NiceSelectableListDirective, { static: true }]
139
180
  }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1iYXNlLWZpbHRlci12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L25pY2UtYmFzZS1maWx0ZXItdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl4QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUM1SCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7QUFXeEcsTUFBTSxPQUFnQiwyQkFBMkI7SUFzQnRDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsS0FBb0MsRUFBRTtRQUN4RyxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLGlCQUFp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QVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqRCx1QkFBdUI7c0JBRDlCLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBRdWVyeU1vZGVsLCBRdWVyeVJ1bGVNb2RlbCwgUnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclNlcnZpY2UgfSBmcm9tIFwiLi4vYmFzZS1saXN0L3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL2FkdmFuY2VkLWZpbHRlcnMuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBOaWNlQWR2YW5jZWRGaWx0ZXJzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL2J1dHRvbi9hZHZhbmNlZC1maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvcXVlcnktcGFyYW1zLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9uaWNlLWZpbHRlci12aWV3LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3U2VydmljZSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZVNlbGVjdGFibGVMaXN0RGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZS9zZWxlY3RhYmxlLWxpc3Qvc2VsZWN0YWJsZS1saXN0LmRpcmVjdGl2ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VCYXNlRmlsdGVyVmlld0luaXRPcHRpb25zIHtcbiAgICBtb2RlPzogXCJwYWdpbmF0ZWRcIiB8IFwiYWNjdW11bGF0ZWRcIjtcbiAgICBsb2FkQ29uZmlnPzogYm9vbGVhbjtcbiAgICBjb25maWdRdWVyeVBhcmFtcz86IFF1ZXJ5UGFyYW1zO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogYGBcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmljZUJhc2VGaWx0ZXJWaWV3Q29tcG9uZW50PEZpbHRlciBleHRlbmRzIE5pY2VGaWx0ZXJTZXJ2aWNlPGFueT4gPSBOaWNlRmlsdGVyU2VydmljZTxhbnk+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZChOaWNlRmlsdGVyVmlld0NvbXBvbmVudCwgeyByZWFkOiBOaWNlRmlsdGVyVmlld1NlcnZpY2UsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBmaWx0ZXJWaWV3U2VydmljZTogTmljZUZpbHRlclZpZXdTZXJ2aWNlPEZpbHRlcj47XG5cbiAgICBAVmlld0NoaWxkKE5pY2VGaWx0ZXJWaWV3Q29tcG9uZW50LCB7IHJlYWQ6IE5pY2VGaWx0ZXJWaWV3UXVlcnksIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBmaWx0ZXJWaWV3UXVlcnk6IE5pY2VGaWx0ZXJWaWV3UXVlcnk7XG5cbiAgICBAVmlld0NoaWxkKE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgcXVlcnlQYXJhbXM6IE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZTtcblxuICAgIEBWaWV3Q2hpbGQoTmljZUFkdmFuY2VkRmlsdGVyc0J1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgYWR2YW5jZWRGaWx0ZXJzQnV0dG9uOiBOaWNlQWR2YW5jZWRGaWx0ZXJzQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgYWR2YW5jZWRGaWx0ZXJzOiBOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChOaWNlU2VsZWN0YWJsZUxpc3REaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBzZWxlY3RhYmxlTGlzdERpcmVjdGl2ZTogTmljZVNlbGVjdGFibGVMaXN0RGlyZWN0aXZlO1xuXG4gICAgcHVibGljIGZpbHRlclZpZXdMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwdWJsaWMgZmlsdGVyVmlld0NvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gICAgcHVibGljIG5nT25Jbml0KGF1dG9Mb2FkID0gdHJ1ZSwgeyBtb2RlLCBsb2FkQ29uZmlnLCBjb25maWdRdWVyeVBhcmFtcyB9OiBOaWNlQmFzZUZpbHRlclZpZXdJbml0T3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gICAgICAgIGlmIChtb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlclZpZXdTZXJ2aWNlLnNldE1vZGUobW9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmF1dG9Mb2FkKGF1dG9Mb2FkKTtcbiAgICAgICAgdGhpcy5sb2FkQ29uZmlnKGxvYWRDb25maWcsIGNvbmZpZ1F1ZXJ5UGFyYW1zKTtcblxuICAgICAgICB0aGlzLmZpbHRlclZpZXdMb2FkaW5nJCA9IHRoaXMuZmlsdGVyVmlld1F1ZXJ5LnNlbGVjdExvYWRpbmcoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3Q291bnQkID0gdGhpcy5maWx0ZXJWaWV3UXVlcnkuc2VsZWN0Q291bnQoKTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RhYmxlTGlzdERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS51cGRhdGVTdWJTdGF0ZShcInNlbGVjdGFibGVcIiwgeyBzdGF0ZU5hbWU6IHRoaXMuc2VsZWN0YWJsZUxpc3REaXJlY3RpdmUuc3RhdGUgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsIHRoZSBmaWx0ZXIgZW5kcG9pbnQgd2l0aCB0aGUgY3VycmVudCBmaWx0ZXIgcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZmlsdGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzYWJsZSB0aGUgZmlsdGVyIHZpZXcuIFRoaXMgd2lsbCBzdG9wIGNhbGxpbmcgYW55IGFwaSByb3V0ZXMuXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSB0aGUgZmlsdGVyIHZpZXcuIFRoaXMgd2lsbCByZXN1bWUgY2FsbGluZyBhbnkgYXBpIHJvdXRlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZW5hYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlclZpZXdTZXJ2aWNlLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgbG9hZGluZyBzdGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRMb2FkaW5nKGxvYWRpbmcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhIHNldCBvZiBydWxlcyB0aGF0IHdvbid0IGJlIHNhdmVkIGluIHRoZSBjdXJyZW50IGZpbHRlclBhcmFtZXRlcnMgY29uZmlnLlxuICAgICAqIE5PVEU6IFRoZXNlIHJ1bGVzIHdpbGwgYmUgaW5qZWN0ZWQgaW4gZWFjaCBmaWx0ZXIgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QmFzZVJ1bGVzKHJ1bGU6IChRdWVyeVJ1bGVNb2RlbCB8IFF1ZXJ5TW9kZWwpW10sIHJlbG9hZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRCYXNlUnVsZXMocnVsZSwgcmVsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldCBhbGwgcnVsZXMgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMuXG4gICAgICovXG4gICAgcHVibGljIHNldFJ1bGVzKHJ1bGVzOiBRdWVyeU1vZGVsIHwgUXVlcnlNb2RlbFtdLCByZWxvYWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2Uuc2V0UnVsZXMocnVsZXMpO1xuICAgICAgICBpZiAocmVsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlclZpZXdTZXJ2aWNlLmZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIG9yIHVwZGF0ZSBhIHJ1bGUuXG4gICAgICogTk9URTogVGhpcyB3aWxsIG9ubHkgY2hlY2sgZm9yIHJ1bGVzIGluIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBydWxlcyBhcnJheSBpbiB0aGUgY3VycmVudCBmaWx0ZXJQYXJhbWV0ZXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cHNlcnRSdWxlKGlkOiBzdHJpbmcsIG5ld1J1bGU6IFJ1bGVNb2RlbCwgcmVsb2FkID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UudXBzZXJ0UnVsZShpZCwgbmV3UnVsZSk7XG4gICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgICB0aGlzLmZpbHRlclZpZXdTZXJ2aWNlLmZpbHRlcigpO1xuICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYSBydWxlLlxuICAgICAqIE5PVEU6IFRoaXMgd2lsbCBvbmx5IGNoZWNrIGZvciBydWxlcyBpbiB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgcnVsZXMgYXJyYXkgaW4gdGhlIGN1cnJlbnQgZmlsdGVyUGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlUnVsZShpZDogc3RyaW5nLCByZWxvYWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UucmVtb3ZlUnVsZShpZCk7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGF1dG9Mb2FkKGF1dG9Mb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgYXV0b0xvYWQ6IGRlZmF1bHRBdXRvTG9hZCB9ID0gdGhpcy5maWx0ZXJWaWV3UXVlcnkuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCF0aGlzLnF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICBpZiAoYXV0b0xvYWQgJiYgZGVmYXVsdEF1dG9Mb2FkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5maWx0ZXIoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRBdXRvTG9hZChhdXRvTG9hZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWF1dG9Mb2FkICYmIGRlZmF1bHRBdXRvTG9hZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRBdXRvTG9hZChhdXRvTG9hZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmluaXQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sb2FkRGF0YSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRDb25maWcobG9hZENvbmZpZz86IGJvb2xlYW4sIGNvbmZpZ1F1ZXJ5UGFyYW1zPzogUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGxvYWRDb25maWcgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UubG9hZENvbmZpZyhjb25maWdRdWVyeVBhcmFtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobG9hZENvbmZpZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFkdmFuY2VkRmlsdGVyc0J1dHRvbiB8fCB0aGlzLmFkdmFuY2VkRmlsdGVycykge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5sb2FkQ29uZmlnKGNvbmZpZ1F1ZXJ5UGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1iYXNlLWZpbHRlci12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L25pY2UtYmFzZS1maWx0ZXItdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUd4RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUM1SCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFXekUsTUFBTSxPQUFnQiwyQkFBMkI7SUFIakQ7UUFzQnFCLDBCQUFxQixHQUF1QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0tBd0sxRjtJQW5LVSxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEtBQW9DLEVBQUU7UUFDeEcsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFR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RUFBRSxJQUFJLEVBQUU7Z0JBSWpELHFCQUFxQjtzQkFEOUIsU0FBUzt1QkFBQyxrQ0FBa0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXZELGVBQWU7c0JBRHRCLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqRCx1QkFBdUI7c0JBRDlCLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3REaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlL3NlbGVjdGFibGUtbGlzdC9zZWxlY3RhYmxlLWxpc3QuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBRdWVyeU1vZGVsLCBRdWVyeVJ1bGVNb2RlbCwgUnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclNlcnZpY2UgfSBmcm9tIFwiLi4vYmFzZS1saXN0L3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL2FkdmFuY2VkLWZpbHRlcnMuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBOaWNlQWR2YW5jZWRGaWx0ZXJzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL2J1dHRvbi9hZHZhbmNlZC1maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvcXVlcnktcGFyYW1zLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9uaWNlLWZpbHRlci12aWV3LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQWZ0ZXJRdWVyeVBhcmFtTG9hZGVkQ2FsbGJhY2sgfSBmcm9tIFwiLi9uaWNlLW5lc3RlZC1maWx0ZXItdmlld1wiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3U2VydmljZSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VCYXNlRmlsdGVyVmlld0luaXRPcHRpb25zIHtcbiAgICBtb2RlPzogXCJwYWdpbmF0ZWRcIiB8IFwiYWNjdW11bGF0ZWRcIjtcbiAgICBsb2FkQ29uZmlnPzogYm9vbGVhbjtcbiAgICBjb25maWdRdWVyeVBhcmFtcz86IFF1ZXJ5UGFyYW1zO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogYGBcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmljZUJhc2VGaWx0ZXJWaWV3Q29tcG9uZW50PEZpbHRlciBleHRlbmRzIE5pY2VGaWx0ZXJTZXJ2aWNlPGFueT4gPSBOaWNlRmlsdGVyU2VydmljZTxhbnk+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZChOaWNlRmlsdGVyVmlld0NvbXBvbmVudCwgeyByZWFkOiBOaWNlRmlsdGVyVmlld1NlcnZpY2UsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBmaWx0ZXJWaWV3U2VydmljZTogTmljZUZpbHRlclZpZXdTZXJ2aWNlPEZpbHRlcj47XG5cbiAgICBAVmlld0NoaWxkKE5pY2VGaWx0ZXJWaWV3Q29tcG9uZW50LCB7IHJlYWQ6IE5pY2VGaWx0ZXJWaWV3UXVlcnksIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBmaWx0ZXJWaWV3UXVlcnk6IE5pY2VGaWx0ZXJWaWV3UXVlcnk7XG5cbiAgICBAVmlld0NoaWxkKE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgcXVlcnlQYXJhbXM6IE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZTtcblxuICAgIEBWaWV3Q2hpbGQoTmljZUFkdmFuY2VkRmlsdGVyc0J1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgYWR2YW5jZWRGaWx0ZXJzQnV0dG9uOiBOaWNlQWR2YW5jZWRGaWx0ZXJzQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgYWR2YW5jZWRGaWx0ZXJzOiBOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChOaWNlU2VsZWN0YWJsZUxpc3REaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBzZWxlY3RhYmxlTGlzdERpcmVjdGl2ZTogTmljZVNlbGVjdGFibGVMaXN0RGlyZWN0aXZlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJRdWVyeVBhcmFtSG9va3M6IFNldDxBZnRlclF1ZXJ5UGFyYW1Mb2FkZWRDYWxsYmFjaz4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgZmlsdGVyVmlld0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHB1YmxpYyBmaWx0ZXJWaWV3Q291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoYXV0b0xvYWQgPSB0cnVlLCB7IG1vZGUsIGxvYWRDb25maWcsIGNvbmZpZ1F1ZXJ5UGFyYW1zIH06IE5pY2VCYXNlRmlsdGVyVmlld0luaXRPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICAgICAgaWYgKG1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2Uuc2V0TW9kZShtb2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXV0b0xvYWQoYXV0b0xvYWQpO1xuICAgICAgICB0aGlzLmxvYWRDb25maWcobG9hZENvbmZpZywgY29uZmlnUXVlcnlQYXJhbXMpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyVmlld0xvYWRpbmckID0gdGhpcy5maWx0ZXJWaWV3UXVlcnkuc2VsZWN0TG9hZGluZygpO1xuICAgICAgICB0aGlzLmZpbHRlclZpZXdDb3VudCQgPSB0aGlzLmZpbHRlclZpZXdRdWVyeS5zZWxlY3RDb3VudCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVMaXN0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlclZpZXdTZXJ2aWNlLnVwZGF0ZVN1YlN0YXRlKFwic2VsZWN0YWJsZVwiLCB7IHN0YXRlTmFtZTogdGhpcy5zZWxlY3RhYmxlTGlzdERpcmVjdGl2ZS5zdGF0ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5xdWVyeVBhcmFtcyB8fCB0aGlzLnF1ZXJ5UGFyYW1zPy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5vbkluaXQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXMuaW5pdC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uSW5pdCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsIHRoZSBmaWx0ZXIgZW5kcG9pbnQgd2l0aCB0aGUgY3VycmVudCBmaWx0ZXIgcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZmlsdGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzYWJsZSB0aGUgZmlsdGVyIHZpZXcuIFRoaXMgd2lsbCBzdG9wIGNhbGxpbmcgYW55IGFwaSByb3V0ZXMuXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSB0aGUgZmlsdGVyIHZpZXcuIFRoaXMgd2lsbCByZXN1bWUgY2FsbGluZyBhbnkgYXBpIHJvdXRlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZW5hYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlclZpZXdTZXJ2aWNlLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgbG9hZGluZyBzdGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRMb2FkaW5nKGxvYWRpbmcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhIHNldCBvZiBydWxlcyB0aGF0IHdvbid0IGJlIHNhdmVkIGluIHRoZSBjdXJyZW50IGZpbHRlclBhcmFtZXRlcnMgY29uZmlnLlxuICAgICAqIE5PVEU6IFRoZXNlIHJ1bGVzIHdpbGwgYmUgaW5qZWN0ZWQgaW4gZWFjaCBmaWx0ZXIgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QmFzZVJ1bGVzKHJ1bGU6IChRdWVyeVJ1bGVNb2RlbCB8IFF1ZXJ5TW9kZWwpW10sIHJlbG9hZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRCYXNlUnVsZXMocnVsZSwgcmVsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgYSBydWxlIHRvIHRoZSBzZXQgb2YgcnVsZXMgdGhhdCB3b24ndCBiZSBzYXZlZCBpbiB0aGUgY3VycmVudCBmaWx0ZXJQYXJhbWV0ZXJzIGNvbmZpZy5cbiAgICAgKiBOT1RFOiBUaGVzZSBydWxlcyB3aWxsIGJlIGluamVjdGVkIGluIGVhY2ggZmlsdGVyIHJlcXVlc3QuXG4gICAgICovXG4gICAgcHVibGljIGFkZEJhc2VSdWxlKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsLCByZWxvYWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuYWRkQmFzZVJ1bGUocnVsZSwgcmVsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgYSBydWxlIHRvIHRoZSBzZXQgb2YgcnVsZXMgdGhhdCB3b24ndCBiZSBzYXZlZCBpbiB0aGUgY3VycmVudCBmaWx0ZXJQYXJhbWV0ZXJzIGNvbmZpZy5cbiAgICAgKiBOT1RFOiBUaGVzZSBydWxlcyB3aWxsIGJlIGluamVjdGVkIGluIGVhY2ggZmlsdGVyIHJlcXVlc3QuXG4gICAgICovXG4gICAgcHVibGljIHVwc2VydEJhc2VSdWxlKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsLCByZWxvYWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UudXBzZXJ0QmFzZVJ1bGVzKHJ1bGUsIHJlbG9hZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGEgcnVsZSB0byB0aGUgc2V0IG9mIHJ1bGVzIHRoYXQgd29uJ3QgYmUgc2F2ZWQgaW4gdGhlIGN1cnJlbnQgZmlsdGVyUGFyYW1ldGVycyBjb25maWcuXG4gICAgICogTk9URTogVGhlc2UgcnVsZXMgd2lsbCBiZSBpbmplY3RlZCBpbiBlYWNoIGZpbHRlciByZXF1ZXN0LlxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVCYXNlUnVsZShpZDogc3RyaW5nLCByZWxvYWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UucmVtb3ZlQmFzZVJ1bGVzKGlkLCByZWxvYWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0IGFsbCBydWxlcyB3aXRoIGEgbmV3IHNldCBvZiBydWxlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UnVsZXMocnVsZXM6IFF1ZXJ5TW9kZWwgfCBRdWVyeU1vZGVsW10sIHJlbG9hZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRSdWxlcyhydWxlcyk7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgb3IgdXBkYXRlIGEgcnVsZS5cbiAgICAgKiBOT1RFOiBUaGlzIHdpbGwgb25seSBjaGVjayBmb3IgcnVsZXMgaW4gdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIHJ1bGVzIGFycmF5IGluIHRoZSBjdXJyZW50IGZpbHRlclBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgcHVibGljIHVwc2VydFJ1bGUoaWQ6IHN0cmluZywgbmV3UnVsZTogUnVsZU1vZGVsLCByZWxvYWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS51cHNlcnRSdWxlKGlkLCBuZXdSdWxlKTtcbiAgICAgICBpZiAocmVsb2FkKSB7XG4gICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UuZmlsdGVyKCk7XG4gICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhIHJ1bGUuXG4gICAgICogTk9URTogVGhpcyB3aWxsIG9ubHkgY2hlY2sgZm9yIHJ1bGVzIGluIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBydWxlcyBhcnJheSBpbiB0aGUgY3VycmVudCBmaWx0ZXJQYXJhbWV0ZXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVSdWxlKGlkOiBzdHJpbmcsIHJlbG9hZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5yZW1vdmVSdWxlKGlkKTtcbiAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5maWx0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhZnRlckluaXQoZm46IEFmdGVyUXVlcnlQYXJhbUxvYWRlZENhbGxiYWNrKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5xdWVyeVBhcmFtcyB8fCB0aGlzLnF1ZXJ5UGFyYW1zPy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgZm4uYmluZCh0aGlzKSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYWZ0ZXJRdWVyeVBhcmFtSG9va3MuYWRkKGZuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGF1dG9Mb2FkKGF1dG9Mb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgYXV0b0xvYWQ6IGRlZmF1bHRBdXRvTG9hZCB9ID0gdGhpcy5maWx0ZXJWaWV3UXVlcnkuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCF0aGlzLnF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICBpZiAoYXV0b0xvYWQgJiYgZGVmYXVsdEF1dG9Mb2FkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5maWx0ZXIoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRBdXRvTG9hZChhdXRvTG9hZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWF1dG9Mb2FkICYmIGRlZmF1bHRBdXRvTG9hZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5zZXRBdXRvTG9hZChhdXRvTG9hZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmluaXQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sb2FkRGF0YSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRDb25maWcobG9hZENvbmZpZz86IGJvb2xlYW4sIGNvbmZpZ1F1ZXJ5UGFyYW1zPzogUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGxvYWRDb25maWcgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmlld1NlcnZpY2UubG9hZENvbmZpZyhjb25maWdRdWVyeVBhcmFtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobG9hZENvbmZpZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFkdmFuY2VkRmlsdGVyc0J1dHRvbiB8fCB0aGlzLmFkdmFuY2VkRmlsdGVycykge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2VydmljZS5sb2FkQ29uZmlnKGNvbmZpZ1F1ZXJ5UGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Jbml0KCk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGhvb2sgb2YgdGhpcy5fYWZ0ZXJRdWVyeVBhcmFtSG9va3MpIHtcbiAgICAgICAgICAgIGhvb2suYmluZCh0aGlzKSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
31
31
  }], ctorParameters: function () { return [{ type: i1.NiceFilterViewService }]; }, propDecorators: { queryParams: [{
32
32
  type: Input
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9uaWNlLWZpbHRlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L25pY2UtZmlsdGVyLXZpZXcudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQWFyRSxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDLFlBQW9CLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBRjNDLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztJQUVnQixDQUFDO0lBRS9DLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLGFBQWEsSUFBSSxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQzs7b0hBVlEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsbUZBTnJCO1FBQ1AsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixtQkFBbUI7S0FDdEIsK0NDZkwsNkJBQ0E7MkZEZ0JhLHVCQUF1QjtrQkFYbkMsU0FBUzsrQkFDSSxrQkFBa0IsaUJBR2IsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUCxtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUN0Qjs0R0FJTSxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1F1ZXJ5IH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5xdWVyeVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1N0b3JlIH0gZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zdG9yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLWZpbHRlci12aWV3XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwibmljZS1maWx0ZXItdmlldy50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJuaWNlLWZpbHRlci12aWV3LnN0eWxlLnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmljZUZpbHRlclZpZXdRdWVyeSxcbiAgICAgICAgTmljZUZpbHRlclZpZXdTZXJ2aWNlLFxuICAgICAgICBOaWNlRmlsdGVyVmlld1N0b3JlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlRmlsdGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZSkge31cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcInF1ZXJ5UGFyYW1zXCIgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldFF1ZXJ5UGFyYW1zKHRoaXMucXVlcnlQYXJhbXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9uaWNlLWZpbHRlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L25pY2UtZmlsdGVyLXZpZXcudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQWFyRSxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDLFlBQW9CLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBRjNDLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztJQUVnQixDQUFDO0lBRS9DLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLGFBQWEsSUFBSSxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQzs7b0hBVlEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsbUZBTnJCO1FBQ1AsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixtQkFBbUI7S0FDdEIsK0NDZkwsNkJBQ0E7MkZEZ0JhLHVCQUF1QjtrQkFYbkMsU0FBUzsrQkFDSSxrQkFBa0IsaUJBR2IsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUCxtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUN0Qjs0R0FJTSxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtcyB9IGZyb20gXCIuLi8uLi9hcGkvZmlsdGVyLmFwaVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3U2VydmljZSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTdG9yZSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc3RvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1maWx0ZXItdmlld1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcIm5pY2UtZmlsdGVyLXZpZXcudGVtcGxhdGUuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wibmljZS1maWx0ZXItdmlldy5zdHlsZS5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE5pY2VGaWx0ZXJWaWV3UXVlcnksXG4gICAgICAgIE5pY2VGaWx0ZXJWaWV3U2VydmljZSxcbiAgICAgICAgTmljZUZpbHRlclZpZXdTdG9yZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmljZUZpbHRlclZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcyA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBOaWNlRmlsdGVyVmlld1NlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXCJxdWVyeVBhcmFtc1wiIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZXRRdWVyeVBhcmFtcyh0aGlzLnF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ import { Directive, inject } from "@angular/core";
2
+ import { Subject, take } from "rxjs";
3
+ import { NiceFilterQueryParamsDirective } from "./directives/query-params.directive";
4
+ import { NiceFilterViewQuery } from "./store/nice-filter-view.query";
5
+ import { NiceFilterViewService } from "./store/nice-filter-view.service";
6
+ import * as i0 from "@angular/core";
7
+ export class NiceNestedFilterView {
8
+ constructor() {
9
+ this._afterQueryParamHooks = new Set();
10
+ this.unsubscribeAll$ = new Subject();
11
+ this.filterViewService = inject(NiceFilterViewService);
12
+ this.filterViewQuery = inject(NiceFilterViewQuery);
13
+ this.queryParams = inject(NiceFilterQueryParamsDirective, { optional: true });
14
+ }
15
+ ngOnInit() {
16
+ this.filterViewLoading$ = this.filterViewQuery.selectLoading();
17
+ this.filterViewCount$ = this.filterViewQuery.selectCount();
18
+ if (!this.queryParams || this.queryParams?.initialized) {
19
+ this.onInit();
20
+ return;
21
+ }
22
+ this.queryParams.init.pipe(take(1)).subscribe(() => this.onInit());
23
+ }
24
+ ngOnDestroy() {
25
+ this.unsubscribeAll$.next();
26
+ this.unsubscribeAll$.complete();
27
+ }
28
+ afterInit(fn) {
29
+ if (!this.queryParams || this.queryParams?.initialized) {
30
+ fn.bind(this)();
31
+ return;
32
+ }
33
+ this._afterQueryParamHooks.add(fn);
34
+ }
35
+ onInit() {
36
+ for (const hook of this._afterQueryParamHooks) {
37
+ hook.bind(this)();
38
+ }
39
+ }
40
+ }
41
+ NiceNestedFilterView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceNestedFilterView, deps: [], target: i0.ɵɵFactoryTarget.Directive });
42
+ NiceNestedFilterView.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceNestedFilterView, ngImport: i0 });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceNestedFilterView, decorators: [{
44
+ type: Directive
45
+ }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1uZXN0ZWQtZmlsdGVyLXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9uaWNlLW5lc3RlZC1maWx0ZXItdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFjLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBS3pFLE1BQU0sT0FBZ0Isb0JBQW9CO0lBRDFDO1FBRXFCLDBCQUFxQixHQUF1QyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTdFLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV0QyxzQkFBaUIsR0FBa0MsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakYsb0JBQWUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbkUsZ0JBQVcsR0FBMEMsTUFBTSxDQUFDLDhCQUE4QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FvQzdIO0lBL0JVLFFBQVE7UUFDWCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRTtZQUNwRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFUyxTQUFTLENBQUMsRUFBaUM7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUU7WUFDcEQsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLE1BQU07UUFDVixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDckI7SUFDTCxDQUFDOztpSEExQ2lCLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRHpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyU2VydmljZSB9IGZyb20gXCIuLi9iYXNlLWxpc3QvcHJvdmlkZXJzL2Jhc2UtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvcXVlcnktcGFyYW1zLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3U2VydmljZSB9IGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc2VydmljZVwiO1xuXG5leHBvcnQgdHlwZSBBZnRlclF1ZXJ5UGFyYW1Mb2FkZWRDYWxsYmFjayA9ICgpID0+IHZvaWQ7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5pY2VOZXN0ZWRGaWx0ZXJWaWV3PEZpbHRlciBleHRlbmRzIE5pY2VGaWx0ZXJTZXJ2aWNlPGFueT4gPSBOaWNlRmlsdGVyU2VydmljZTxhbnk+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlclF1ZXJ5UGFyYW1Ib29rczogU2V0PEFmdGVyUXVlcnlQYXJhbUxvYWRlZENhbGxiYWNrPiA9IG5ldyBTZXQoKTtcblxuICAgIHByb3RlY3RlZCB1bnN1YnNjcmliZUFsbCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJvdGVjdGVkIGZpbHRlclZpZXdTZXJ2aWNlOiBOaWNlRmlsdGVyVmlld1NlcnZpY2U8RmlsdGVyPiA9IGluamVjdChOaWNlRmlsdGVyVmlld1NlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBmaWx0ZXJWaWV3UXVlcnk6IE5pY2VGaWx0ZXJWaWV3UXVlcnkgPSBpbmplY3QoTmljZUZpbHRlclZpZXdRdWVyeSk7XG4gICAgcHJvdGVjdGVkIHF1ZXJ5UGFyYW1zOiBOaWNlRmlsdGVyUXVlcnlQYXJhbXNEaXJlY3RpdmUgfCBudWxsID0gaW5qZWN0KE5pY2VGaWx0ZXJRdWVyeVBhcmFtc0RpcmVjdGl2ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIHB1YmxpYyBmaWx0ZXJWaWV3TG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHVibGljIGZpbHRlclZpZXdDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3TG9hZGluZyQgPSB0aGlzLmZpbHRlclZpZXdRdWVyeS5zZWxlY3RMb2FkaW5nKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld0NvdW50JCA9IHRoaXMuZmlsdGVyVmlld1F1ZXJ5LnNlbGVjdENvdW50KCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnF1ZXJ5UGFyYW1zIHx8IHRoaXMucXVlcnlQYXJhbXM/LmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLm9uSW5pdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5pbml0LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Jbml0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUFsbCQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhZnRlckluaXQoZm46IEFmdGVyUXVlcnlQYXJhbUxvYWRlZENhbGxiYWNrKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5xdWVyeVBhcmFtcyB8fCB0aGlzLnF1ZXJ5UGFyYW1zPy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgZm4uYmluZCh0aGlzKSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYWZ0ZXJRdWVyeVBhcmFtSG9va3MuYWRkKGZuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBob29rIG9mIHRoaXMuX2FmdGVyUXVlcnlQYXJhbUhvb2tzKSB7XG4gICAgICAgICAgICBob29rLmJpbmQodGhpcykoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -14,4 +14,5 @@ export * from "./store/nice-filter-view.query";
14
14
  export * from "./nice-base-filter-view.component";
15
15
  export * from "./nice-filter-view.component";
16
16
  export * from "./nice-filter-view.module";
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy9wdWJsaWMtYXBpXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2NvbW1vbi9kYXRhLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9jdXN0b20tZGF0YS12aWV3L2N1c3RvbS1kYXRhLXZpZXcuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2V4cG9ydC1idXR0b25zL2V4cG9ydC1idXR0b25zLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9leHBvcnQtYnV0dG9ucy9leHBvcnQuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC1kYXRhLXZpZXcvaW5maW5pdGUtc2Nyb2xsLWRhdGEtdmlldy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jb21wb25lbnRcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vZGlyZWN0aXZlcy9tYXQtcGFnaW5hdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmVzL21hdC1zb3J0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmVzL21hdC10YWJsZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZXMvcXVlcnktcGFyYW1zLmRpcmVjdGl2ZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbmljZS1iYXNlLWZpbHRlci12aWV3LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmljZS1maWx0ZXItdmlldy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcubW9kdWxlXCI7XG4iXX0=
17
+ export * from "./nice-nested-filter-view";
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL3B1YmxpYy1hcGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvY29tbW9uL2RhdGEuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2N1c3RvbS1kYXRhLXZpZXcvY3VzdG9tLWRhdGEtdmlldy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvZXhwb3J0LWJ1dHRvbnMvZXhwb3J0LWJ1dHRvbnMuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL2V4cG9ydC1idXR0b25zL2V4cG9ydC5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvaW5maW5pdGUtc2Nyb2xsLWRhdGEtdmlldy9pbmZpbml0ZS1zY3JvbGwtZGF0YS12aWV3LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmVzL21hdC1wYWdpbmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZXMvbWF0LXNvcnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZXMvbWF0LXRhYmxlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlyZWN0aXZlcy9xdWVyeS1wYXJhbXMuZGlyZWN0aXZlXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5xdWVyeVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9uaWNlLWJhc2UtZmlsdGVyLXZpZXcuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uaWNlLWZpbHRlci12aWV3LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmljZS1maWx0ZXItdmlldy5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25pY2UtbmVzdGVkLWZpbHRlci12aWV3XCI7XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Inject, Injectable } from "@angular/core";
3
- import { transaction } from "@datorama/akita";
3
+ import { arrayAdd, arrayRemove, arrayUpsert, transaction } from "@datorama/akita";
4
4
  import { FileUtils } from "@recursyve/nice-ui-kit.v2";
5
5
  import { firstValueFrom } from "rxjs";
6
6
  import { FilterOperatorTypes } from "../../../models/query.model";
@@ -131,6 +131,9 @@ export class NiceFilterViewService {
131
131
  this.filter();
132
132
  }
133
133
  }
134
+ patchParameters(filterParameters) {
135
+ this.store.patchParameters(filterParameters);
136
+ }
134
137
  resetPaging() {
135
138
  const { filterParameters } = this.store.getValue();
136
139
  this.setParameters({
@@ -150,6 +153,30 @@ export class NiceFilterViewService {
150
153
  this.filter();
151
154
  }
152
155
  }
156
+ addBaseRule(rule, reload) {
157
+ this.store.update(({ baseRules }) => ({
158
+ baseRules: arrayAdd(baseRules ?? [], rule)
159
+ }));
160
+ if (reload) {
161
+ this.filter();
162
+ }
163
+ }
164
+ upsertBaseRules(rule, reload) {
165
+ this.store.update(({ baseRules }) => ({
166
+ baseRules: arrayUpsert(baseRules ?? [], rule.id, rule)
167
+ }));
168
+ if (reload) {
169
+ this.filter();
170
+ }
171
+ }
172
+ removeBaseRules(key, reload) {
173
+ this.store.update(({ baseRules }) => ({
174
+ baseRules: arrayRemove(baseRules ?? [], key)
175
+ }));
176
+ if (reload) {
177
+ this.filter();
178
+ }
179
+ }
153
180
  setRules(rules) {
154
181
  if (!Array.isArray(rules)) {
155
182
  rules = [rules];
@@ -259,4 +286,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
259
286
  type: Inject,
260
287
  args: [NiceFilterService]
261
288
  }] }]; }, propDecorators: { resetResult: [] } });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLG1CQUFtQixFQUF5QyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHL0QsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUNZLEtBQTBCLEVBRWxCLGFBQXFCO1FBRjdCLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBRWxCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBRXpDLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGNBQWMsQ0FBSSxJQUFZLEVBQUUsS0FBUTtRQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMs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QUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2QsWUFBWSxFQUFFLElBQUk7YUFDckIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdEI7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUNkLFdBQVcsRUFBRSxJQUFJO2FBQ3BCLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzs7a0hBOVFRLHFCQUFxQixxREFHbEIsaUJBQWlCO3NIQUhwQixxQkFBcUI7QUFrUTlCO0lBQUMsV0FBVyxFQUFFOzs7O3dEQVliOzJGQTlRUSxxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQUlGLE1BQU07MkJBQUMsaUJBQWlCOzRDQWdRdEIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0cmFuc2FjdGlvbiB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGFcIjtcbmltcG9ydCB7IEFkZEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGEvc3JjL2xpYi9hZGRFbnRpdGllc1wiO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgRmlsdGVyT3BlcmF0b3JUeXBlcywgUXVlcnlNb2RlbCwgUXVlcnlSdWxlTW9kZWwsIFJ1bGVNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvcXVlcnkubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Jhc2UtbGlzdC9wcm92aWRlcnMvYmFzZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTdG9yZSB9IGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcuc3RvcmVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VGaWx0ZXJWaWV3U2VydmljZTxGaWx0ZXIgZXh0ZW5kcyBOaWNlRmlsdGVyU2VydmljZTxhbnk+ID0gTmljZUZpbHRlclNlcnZpY2U8YW55Pj4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHN0b3JlOiBOaWNlRmlsdGVyVmlld1N0b3JlLFxuICAgICAgICBASW5qZWN0KE5pY2VGaWx0ZXJTZXJ2aWNlKVxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyU2VydmljZTogRmlsdGVyXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVTdWJTdGF0ZTxUPihuYW1lOiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHN1YlN0YXRlczoge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLnN1YlN0YXRlcyxcbiAgICAgICAgICAgICAgICBbbmFtZV06IHZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW5hYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF1dG9Mb2FkKGF1dG9Mb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHsgYXV0b0xvYWQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcobG9hZGluZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE1vZGUobW9kZTogXCJwYWdpbmF0ZWRcIiB8IFwiYWNjdW11bGF0ZWRcIik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7IG1vZGUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGxvYWRDb25maWcoY29uZmlnUXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRGaWx0ZXJDb25maWdMb2FkaW5nKHRydWUpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyQ29uZmlnID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmdldEZpbHRlckNvbmZpZyh7IHBhcmFtczogY29uZmlnUXVlcnlQYXJhbXMgfSkpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGZpbHRlckNvbmZpZ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEZpbHRlckNvbmZpZ0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGZpbHRlcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBkaXNhYmxlZCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyKHRoaXMuc3RvcmUuZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzKSkpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRSZXN1bHQocmVzdWx0KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZG93bmxvYWREYXRhKHR5cGU6IHN0cmluZywgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nLCBpZHM/OiBudW1iZXJbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMsIGRpc2FibGVkIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBydWxlczogZmlsdGVyUGFyYW1ldGVycz8ucnVsZXMgPyBbLi4uZmlsdGVyUGFyYW1ldGVycy5ydWxlc10gOiBbXVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChpZHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyYW1ldGVycy5ydWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcImFuZFwiLFxuICAgICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImlkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBGaWx0ZXJPcGVyYXRvclR5cGVzLkluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpZHNcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmdldEZpbGUodHlwZSwgdGhpcy5zdG9yZS5nZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpKSk7XG4gICAgICAgICAgICBGaWxlVXRpbHMuZG93bmxvYWRGaWxlKGAke2Rvd25sb2FkRmlsZU5hbWV9LiR7dHlwZX1gLCByZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcmludERhdGEoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycywgZGlzYWJsZWQgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmdldFByaW50YWJsZUh0bWwodGhpcy5zdG9yZS5nZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMpKSk7XG4gICAgICAgICAgICBGaWxlVXRpbHMub3BlblByaW50YWJsZVdpbmRvdyhyZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHJlbG9hZCBzaG93IG5vdCBiZSBwYXNzZWQsIGFuZCB0aGUgY2FsbGVyIHNob3VsZCBpbnN0ZWFkIGNhbGwgYGZpbHRlcigpYCBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAgIHB1YmxpYyBzZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgcmVsb2FkOiBib29sZWFuKTogdm9pZDtcbiAgICBwdWJsaWMgc2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwpOiB2b2lkO1xuICAgIHB1YmxpYyBzZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgcmVsb2FkPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycyk7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRQYWdpbmcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICB0aGlzLnNldFBhcmFtZXRlcnMoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHN0YXJ0OiAwXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVzZXRSZXN1bHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7IHF1ZXJ5UGFyYW1zIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRCYXNlUnVsZXMocnVsZTogKFF1ZXJ5UnVsZU1vZGVsIHwgUXVlcnlNb2RlbClbXSwgcmVsb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGJhc2VSdWxlczogcnVsZVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFJ1bGVzKHJ1bGVzOiBRdWVyeU1vZGVsIHwgUXVlcnlNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShydWxlcykpIHtcbiAgICAgICAgICAgIHJ1bGVzID0gW3J1bGVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXdSdWxlczogRmlsdGVyUGFyYW1ldGVyc01vZGVsID0ge1xuICAgICAgICAgICAgb3JkZXI6IGZpbHRlclBhcmFtZXRlcnMub3JkZXIsXG4gICAgICAgICAgICBmYWxsYmFja09yZGVyOiBmaWx0ZXJQYXJhbWV0ZXJzLmZhbGxiYWNrT3JkZXIsXG4gICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgIGxlbmd0aDogZmlsdGVyUGFyYW1ldGVycy5sZW5ndGgsXG4gICAgICAgICAgICBkYXRhOiBmaWx0ZXJQYXJhbWV0ZXJzLmRhdGEsXG4gICAgICAgICAgICBydWxlc1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc2V0UGFyYW1ldGVycyhuZXdSdWxlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwc2VydFJ1bGUoaWQ6IHN0cmluZywgbmV3UnVsZTogUnVsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50UXVlcnkgPSBmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzPy5bMF07XG4gICAgICAgIGNvbnN0IHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsID0ge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAuLi5uZXdSdWxlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHF1ZXJ5OiBRdWVyeU1vZGVsID0geyBydWxlczogW3J1bGVdLCBjb25kaXRpb246IFwiYW5kXCIgfTtcbiAgICAgICAgaWYgKCFjdXJyZW50UXVlcnkgfHwgY3VycmVudFF1ZXJ5LnJ1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZXRSdWxlcyhxdWVyeSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvbGRSdWxlID0gY3VycmVudFF1ZXJ5LnJ1bGVzLmZpbmQoKHIpID0+IChyIGFzIFF1ZXJ5UnVsZU1vZGVsKS5pZCA9PT0gaWQpIGFzIFF1ZXJ5UnVsZU1vZGVsO1xuICAgICAgICBsZXQgbmV3UnVsZXMgPSBjdXJyZW50UXVlcnkucnVsZXM7XG4gICAgICAgIGlmIChvbGRSdWxlKSB7XG4gICAgICAgICAgICBpZiAobmV3UnVsZSkge1xuICAgICAgICAgICAgICAgIC8vIEFycmF5IHJlcGxhY2VcbiAgICAgICAgICAgICAgICBuZXdSdWxlcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgLi4uY3VycmVudFF1ZXJ5LnJ1bGVzLnNsaWNlKDAsIGN1cnJlbnRRdWVyeS5ydWxlcy5pbmRleE9mKG9sZFJ1bGUpKSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZSxcbiAgICAgICAgICAgICAgICAgICAgLi4uY3VycmVudFF1ZXJ5LnJ1bGVzLnNsaWNlKGN1cnJlbnRRdWVyeS5ydWxlcy5pbmRleE9mKG9sZFJ1bGUpICsgMSwgY3VycmVudFF1ZXJ5LnJ1bGVzLmxlbmd0aClcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdSdWxlcyA9IGN1cnJlbnRRdWVyeS5ydWxlcy5maWx0ZXIoKHIpID0+IChyIGFzIFF1ZXJ5UnVsZU1vZGVsKS5pZCAhPT0gaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UnVsZXMgPSBbLi4ubmV3UnVsZXMsIHJ1bGVdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0UnVsZXMoe1xuICAgICAgICAgICAgY29uZGl0aW9uOiBjdXJyZW50UXVlcnkuY29uZGl0aW9uLFxuICAgICAgICAgICAgcnVsZXM6IG5ld1J1bGVzXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVSdWxlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRRdWVyeSA9IGZpbHRlclBhcmFtZXRlcnMucnVsZXM/LlswXTtcbiAgICAgICAgY29uc3Qgb2xkUnVsZSA9IGN1cnJlbnRRdWVyeS5ydWxlcy5maW5kKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgPT09IGlkKSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgaWYgKCFvbGRSdWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdSdWxlcyA9IGN1cnJlbnRRdWVyeS5ydWxlcy5maWx0ZXIoKHIpID0+IChyIGFzIFF1ZXJ5UnVsZU1vZGVsKS5pZCAhPT0gaWQpO1xuICAgICAgICB0aGlzLnNldFJ1bGVzKHtcbiAgICAgICAgICAgIGNvbmRpdGlvbjogY3VycmVudFF1ZXJ5LmNvbmRpdGlvbixcbiAgICAgICAgICAgIHJ1bGVzOiBuZXdSdWxlc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVmFsdWUodmFsdWU6IGFueSwgb3B0cz86IEFkZEVudGl0aWVzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLmFkZFZhbHVlKHZhbHVlLCBvcHRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVmFsdWVzKHZhbHVlOiBhbnlbXSwgb3B0cz86IEFkZEVudGl0aWVzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLmFkZFZhbHVlcyh2YWx1ZSwgb3B0cyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwc2VydFZhbHVlKHZhbHVlOiBhbnksIGtleT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwc2VydFZhbHVlKHZhbHVlLCBrZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cHNlcnRWYWx1ZXModmFsdWVzOiBhbnlbXSwga2V5Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBzZXJ0VmFsdWVzKHZhbHVlcywga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlVmFsdWUodmFsdWU6IGFueVtdLCBrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5yZW1vdmVWYWx1ZSh2YWx1ZSwga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlVmFsdWVzKHZhbHVlczogYW55W10sIGtleT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlbW92ZVZhbHVlcyh2YWx1ZXMsIGtleSk7XG4gICAgfVxuXG4gICAgQHRyYW5zYWN0aW9uKClcbiAgICBwdWJsaWMgcmVzZXRSZXN1bHQod2FpdEZvck5leHRGaWx0ZXI6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF3YWl0Rm9yTmV4dEZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGZpbHRlclJlc3VsdDogbnVsbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldChbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgcmVzZXRSZXN1bHQ6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLG1CQUFtQixFQUF5QyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHL0QsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUNZLEtBQTBCLEVBRWxCLGFBQXFCO1FBRjdCLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBRWxCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBQ3RDLENBQUM7SUFFRyxLQUFLO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGNBQWMsQ0FBSSxJQUFZLEVBQUUsS0FBUTtRQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0s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QUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2QsWUFBWSxFQUFFLElBQUk7YUFDckIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdEI7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUNkLFdBQVcsRUFBRSxJQUFJO2FBQ3BCLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzs7a0hBL1NRLHFCQUFxQixxREFHbEIsaUJBQWlCO3NIQUhwQixxQkFBcUI7QUFtUzlCO0lBQUMsV0FBVyxFQUFFOzs7O3dEQVliOzJGQS9TUSxxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQUlGLE1BQU07MkJBQUMsaUJBQWlCOzRDQWlTdEIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBhcnJheUFkZCwgYXJyYXlSZW1vdmUsIGFycmF5VXBzZXJ0LCB0cmFuc2FjdGlvbiB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGFcIjtcbmltcG9ydCB7IEFkZEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGEvc3JjL2xpYi9hZGRFbnRpdGllc1wiO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgRmlsdGVyT3BlcmF0b3JUeXBlcywgUXVlcnlNb2RlbCwgUXVlcnlSdWxlTW9kZWwsIFJ1bGVNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvcXVlcnkubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Jhc2UtbGlzdC9wcm92aWRlcnMvYmFzZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTdG9yZSB9IGZyb20gXCIuL25pY2UtZmlsdGVyLXZpZXcuc3RvcmVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VGaWx0ZXJWaWV3U2VydmljZTxGaWx0ZXIgZXh0ZW5kcyBOaWNlRmlsdGVyU2VydmljZTxhbnk+ID0gTmljZUZpbHRlclNlcnZpY2U8YW55Pj4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHN0b3JlOiBOaWNlRmlsdGVyVmlld1N0b3JlLFxuICAgICAgICBASW5qZWN0KE5pY2VGaWx0ZXJTZXJ2aWNlKVxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyU2VydmljZTogRmlsdGVyXG4gICAgKSB7fVxuXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVTdWJTdGF0ZTxUPihuYW1lOiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHN1YlN0YXRlczoge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLnN1YlN0YXRlcyxcbiAgICAgICAgICAgICAgICBbbmFtZV06IHZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW5hYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF1dG9Mb2FkKGF1dG9Mb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHsgYXV0b0xvYWQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcobG9hZGluZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE1vZGUobW9kZTogXCJwYWdpbmF0ZWRcIiB8IFwiYWNjdW11bGF0ZWRcIik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7IG1vZGUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGxvYWRDb25maWcoY29uZmlnUXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRGaWx0ZXJDb25maWdMb2FkaW5nKHRydWUpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyQ29uZmlnID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmdldEZpbHRlckNvbmZpZyh7IHBhcmFtczogY29uZmlnUXVlcnlQYXJhbXMgfSkpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGZpbHRlckNvbmZpZ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEZpbHRlckNvbmZpZ0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGZpbHRlcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBkaXNhYmxlZCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyKHRoaXMuc3RvcmUuZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzKSkpO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRSZXN1bHQocmVzdWx0KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZG93bmxvYWREYXRhKHR5cGU6IHN0cmluZywgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nLCBpZHM/OiBudW1iZXJbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMsIGRpc2FibGVkIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBydWxlczogZmlsdGVyUGFyYW1ldGVycz8ucnVsZXMgPyBbLi4uZmlsdGVyUGFyYW1ldGVycy5ydWxlc10gOiBbXVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChpZHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyYW1ldGVycy5ydWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcImFuZFwiLFxuICAgICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImlkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBGaWx0ZXJPcGVyYXRvclR5cGVzLkluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpZHNcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmdldEZpbGUodHlwZSwgdGhpcy5zdG9yZS5nZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpKSk7XG4gICAgICAgICAgICBGaWxlVXRpbHMuZG93bmxvYWRGaWxlKGAke2Rvd25sb2FkRmlsZU5hbWV9LiR7dHlwZX1gLCByZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcmludERhdGEoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycywgZGlzYWJsZWQgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmdldFByaW50YWJsZUh0bWwodGhpcy5zdG9yZS5nZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMpKSk7XG4gICAgICAgICAgICBGaWxlVXRpbHMub3BlblByaW50YWJsZVdpbmRvdyhyZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHJlbG9hZCBzaG93IG5vdCBiZSBwYXNzZWQsIGFuZCB0aGUgY2FsbGVyIHNob3VsZCBpbnN0ZWFkIGNhbGwgYGZpbHRlcigpYCBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAgIHB1YmxpYyBzZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgcmVsb2FkOiBib29sZWFuKTogdm9pZDtcbiAgICBwdWJsaWMgc2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwpOiB2b2lkO1xuICAgIHB1YmxpYyBzZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgcmVsb2FkPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycyk7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcGF0Y2hQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnBhdGNoUGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRQYWdpbmcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICB0aGlzLnNldFBhcmFtZXRlcnMoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHN0YXJ0OiAwXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVzZXRSZXN1bHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7IHF1ZXJ5UGFyYW1zIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRCYXNlUnVsZXMocnVsZTogKFF1ZXJ5UnVsZU1vZGVsIHwgUXVlcnlNb2RlbClbXSwgcmVsb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGJhc2VSdWxlczogcnVsZVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEJhc2VSdWxlKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsLCByZWxvYWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoKHsgYmFzZVJ1bGVzIH0pID0+ICh7XG4gICAgICAgICAgICBiYXNlUnVsZXM6IGFycmF5QWRkKGJhc2VSdWxlcyA/PyBbXSwgcnVsZSlcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdXBzZXJ0QmFzZVJ1bGVzKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsLCByZWxvYWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoKHsgYmFzZVJ1bGVzIH0pID0+ICh7XG4gICAgICAgICAgICBiYXNlUnVsZXM6IGFycmF5VXBzZXJ0KGJhc2VSdWxlcyA/PyBbXSwgcnVsZS5pZCwgcnVsZSlcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlQmFzZVJ1bGVzKGtleTogc3RyaW5nLCByZWxvYWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoKHsgYmFzZVJ1bGVzIH0pID0+ICh7XG4gICAgICAgICAgICBiYXNlUnVsZXM6IGFycmF5UmVtb3ZlKGJhc2VSdWxlcyA/PyBbXSwga2V5KVxuICAgICAgICB9KSk7XG5cbiAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRSdWxlcyhydWxlczogUXVlcnlNb2RlbCB8IFF1ZXJ5TW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocnVsZXMpKSB7XG4gICAgICAgICAgICBydWxlcyA9IFtydWxlc107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgbmV3UnVsZXM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCA9IHtcbiAgICAgICAgICAgIG9yZGVyOiBmaWx0ZXJQYXJhbWV0ZXJzLm9yZGVyLFxuICAgICAgICAgICAgZmFsbGJhY2tPcmRlcjogZmlsdGVyUGFyYW1ldGVycy5mYWxsYmFja09yZGVyLFxuICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICBsZW5ndGg6IGZpbHRlclBhcmFtZXRlcnMubGVuZ3RoLFxuICAgICAgICAgICAgZGF0YTogZmlsdGVyUGFyYW1ldGVycy5kYXRhLFxuICAgICAgICAgICAgcnVsZXNcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnNldFBhcmFtZXRlcnMobmV3UnVsZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cHNlcnRSdWxlKGlkOiBzdHJpbmcsIG5ld1J1bGU6IFJ1bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFF1ZXJ5ID0gZmlsdGVyUGFyYW1ldGVycy5ydWxlcz8uWzBdO1xuICAgICAgICBjb25zdCBydWxlOiBRdWVyeVJ1bGVNb2RlbCA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgLi4ubmV3UnVsZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBxdWVyeTogUXVlcnlNb2RlbCA9IHsgcnVsZXM6IFtydWxlXSwgY29uZGl0aW9uOiBcImFuZFwiIH07XG4gICAgICAgIGlmICghY3VycmVudFF1ZXJ5IHx8IGN1cnJlbnRRdWVyeS5ydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UnVsZXMocXVlcnkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb2xkUnVsZSA9IGN1cnJlbnRRdWVyeS5ydWxlcy5maW5kKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgPT09IGlkKSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgbGV0IG5ld1J1bGVzID0gY3VycmVudFF1ZXJ5LnJ1bGVzO1xuICAgICAgICBpZiAob2xkUnVsZSkge1xuICAgICAgICAgICAgaWYgKG5ld1J1bGUpIHtcbiAgICAgICAgICAgICAgICAvLyBBcnJheSByZXBsYWNlXG4gICAgICAgICAgICAgICAgbmV3UnVsZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRRdWVyeS5ydWxlcy5zbGljZSgwLCBjdXJyZW50UXVlcnkucnVsZXMuaW5kZXhPZihvbGRSdWxlKSksXG4gICAgICAgICAgICAgICAgICAgIHJ1bGUsXG4gICAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRRdWVyeS5ydWxlcy5zbGljZShjdXJyZW50UXVlcnkucnVsZXMuaW5kZXhPZihvbGRSdWxlKSArIDEsIGN1cnJlbnRRdWVyeS5ydWxlcy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UnVsZXMgPSBjdXJyZW50UXVlcnkucnVsZXMuZmlsdGVyKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgIT09IGlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1J1bGVzID0gWy4uLm5ld1J1bGVzLCBydWxlXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFJ1bGVzKHtcbiAgICAgICAgICAgIGNvbmRpdGlvbjogY3VycmVudFF1ZXJ5LmNvbmRpdGlvbixcbiAgICAgICAgICAgIHJ1bGVzOiBuZXdSdWxlc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlUnVsZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50UXVlcnkgPSBmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzPy5bMF07XG4gICAgICAgIGNvbnN0IG9sZFJ1bGUgPSBjdXJyZW50UXVlcnkucnVsZXMuZmluZCgocikgPT4gKHIgYXMgUXVlcnlSdWxlTW9kZWwpLmlkID09PSBpZCkgYXMgUXVlcnlSdWxlTW9kZWw7XG4gICAgICAgIGlmICghb2xkUnVsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3UnVsZXMgPSBjdXJyZW50UXVlcnkucnVsZXMuZmlsdGVyKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgIT09IGlkKTtcbiAgICAgICAgdGhpcy5zZXRSdWxlcyh7XG4gICAgICAgICAgICBjb25kaXRpb246IGN1cnJlbnRRdWVyeS5jb25kaXRpb24sXG4gICAgICAgICAgICBydWxlczogbmV3UnVsZXNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFZhbHVlKHZhbHVlOiBhbnksIG9wdHM/OiBBZGRFbnRpdGllc09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5hZGRWYWx1ZSh2YWx1ZSwgb3B0cyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFZhbHVlcyh2YWx1ZTogYW55W10sIG9wdHM/OiBBZGRFbnRpdGllc09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5hZGRWYWx1ZXModmFsdWUsIG9wdHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cHNlcnRWYWx1ZSh2YWx1ZTogYW55LCBrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cHNlcnRWYWx1ZSh2YWx1ZSwga2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBzZXJ0VmFsdWVzKHZhbHVlczogYW55W10sIGtleT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwc2VydFZhbHVlcyh2YWx1ZXMsIGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVZhbHVlKHZhbHVlOiBhbnlbXSwga2V5Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlVmFsdWUodmFsdWUsIGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVZhbHVlcyh2YWx1ZXM6IGFueVtdLCBrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5yZW1vdmVWYWx1ZXModmFsdWVzLCBrZXkpO1xuICAgIH1cblxuICAgIEB0cmFuc2FjdGlvbigpXG4gICAgcHVibGljIHJlc2V0UmVzdWx0KHdhaXRGb3JOZXh0RmlsdGVyOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghd2FpdEZvck5leHRGaWx0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IG51bGxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXQoW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgICAgIHJlc2V0UmVzdWx0OiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -22,6 +22,7 @@ export const initialValue = {
22
22
  },
23
23
  baseRules: [],
24
24
  queryParams: null,
25
+ orderColumns: null,
25
26
  resetResult: false
26
27
  };
27
28
  export class NiceFilterViewStore extends EntityStore {
@@ -41,6 +42,14 @@ export class NiceFilterViewStore extends EntityStore {
41
42
  setParameters(filterParameters) {
42
43
  this.update({ filterParameters });
43
44
  }
45
+ patchParameters(filterParameters) {
46
+ this.update(({ filterParameters: currentFilterParameters }) => ({
47
+ filterParameters: {
48
+ ...currentFilterParameters,
49
+ ...filterParameters
50
+ }
51
+ }));
52
+ }
44
53
  setResult(filterResult) {
45
54
  const { mode, resetResult, initialLoadCompleted } = this.getValue();
46
55
  if (mode === "accumulated") {
@@ -224,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
224
233
  type: Inject,
225
234
  args: [FILTER_VIEW_STORE]
226
235
  }] }]; }, propDecorators: { setResult: [], addValue: [], addValues: [], upsertValue: [], upsertValues: [], removeValue: [], removeValues: [] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBZSxXQUFXLEVBQVcsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNckgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBaUJwRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQXdCO0lBQzdDLFNBQVMsRUFBRSxFQUFFO0lBQ2IsSUFBSSxFQUFFLFdBQVc7SUFDakIsUUFBUSxFQUFFLElBQUk7SUFDZCxRQUFRLEVBQUUsS0FBSztJQUNmLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixZQUFZLEVBQUUsRUFBRTtJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixnQkFBZ0IsRUFBRTtRQUNkLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO1FBQ1YsS0FBSyxFQUFFLEVBQUU7UUFDVCxJQUFJLEVBQUUsRUFBRTtLQUNYO0lBQ0QsU0FBUyxFQUFFLEVBQUU7SUFDYixXQUFXLEVBQUUsSUFBSTtJQUNqQixXQUFXLEVBQUUsS0FBSztDQUNyQixDQUFDO0FBR0YsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQWdDO0lBQ3JFLFlBQXVDLEtBQW1DLEVBQTZCLEtBQXlCO1FBQzVILEtB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QWVaLFdBQVcsTUFrQlgsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBhcnJheUFkZCwgYXJyYXlSZW1vdmUsIGFycmF5VXBzZXJ0LCBFbnRpdHlTdGF0ZSwgRW50aXR5U3RvcmUsIEhhc2hNYXAsIHRyYW5zYWN0aW9uIH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuaW1wb3J0IHsgQWRkRW50aXRpZXNPcHRpb25zIH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YS9zcmMvbGliL2FkZEVudGl0aWVzXCI7XG5pbXBvcnQgeyBTdG9yZUNvbmZpZ09wdGlvbnMgfSBmcm9tIFwiQGRhdG9yYW1hL2FraXRhL3NyYy9saWIvc3RvcmVDb25maWdcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uLy4uLy4uL2FwaS9maWx0ZXIuYXBpXCI7XG5pbXBvcnQgeyBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwsIEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgRmlsdGVyUmVzdWx0TW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUXVlcnlNb2RlbCwgUXVlcnlSdWxlTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3F1ZXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBGSUxURVJfVklFV19TVEFURSwgRklMVEVSX1ZJRVdfU1RPUkUgfSBmcm9tIFwiLi4vbmljZS1maWx0ZXItdmlldy5jb25zdGFudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VGaWx0ZXJWaWV3U3RhdGUgZXh0ZW5kcyBFbnRpdHlTdGF0ZSB7XG4gICAgc3ViU3RhdGVzOiBIYXNoTWFwPGFueT47XG4gICAgbW9kZTogXCJwYWdpbmF0ZWRcIiB8IFwiYWNjdW11bGF0ZWRcIjtcbiAgICBhdXRvTG9hZDogYm9vbGVhbjtcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBpbml0aWFsTG9hZENvbXBsZXRlZDogYm9vbGVhbjtcbiAgICBmaWx0ZXJDb25maWdMb2FkaW5nOiBib29sZWFuO1xuICAgIGZpbHRlckNvbmZpZzogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsW107XG4gICAgZmlsdGVyUmVzdWx0OiBGaWx0ZXJSZXN1bHRNb2RlbCB8IG51bGw7XG4gICAgZmlsdGVyUGFyYW1ldGVyczogRmlsdGVyUGFyYW1ldGVyc01vZGVsO1xuICAgIGJhc2VSdWxlczogKFF1ZXJ5UnVsZU1vZGVsIHwgUXVlcnlNb2RlbClbXTtcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbXM7XG4gICAgcmVzZXRSZXN1bHQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsVmFsdWU6IE5pY2VGaWx0ZXJWaWV3U3RhdGUgPSB7XG4gICAgc3ViU3RhdGVzOiB7fSxcbiAgICBtb2RlOiBcInBhZ2luYXRlZFwiLFxuICAgIGF1dG9Mb2FkOiB0cnVlLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBpbml0aWFsTG9hZENvbXBsZXRlZDogZmFsc2UsXG4gICAgZmlsdGVyQ29uZmlnTG9hZGluZzogZmFsc2UsXG4gICAgZmlsdGVyQ29uZmlnOiBbXSxcbiAgICBmaWx0ZXJSZXN1bHQ6IG51bGwsXG4gICAgZmlsdGVyUGFyYW1ldGVyczoge1xuICAgICAgICBzdGFydDogMCxcbiAgICAgICAgbGVuZ3RoOiAxMCxcbiAgICAgICAgb3JkZXI6IHt9LFxuICAgICAgICBzZWFyY2g6IFwiXCIsXG4gICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgZGF0YToge31cbiAgICB9LFxuICAgIGJhc2VSdWxlczogW10sXG4gICAgcXVlcnlQYXJhbXM6IG51bGwsXG4gICAgcmVzZXRSZXN1bHQ6IGZhbHNlXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUZpbHRlclZpZXdTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPE5pY2VGaWx0ZXJWaWV3U3RhdGU+IHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEZJTFRFUl9WSUVXX1NUQVRFKSBzdGF0ZTogUGFydGlhbDxOaWNlRmlsdGVyVmlld1N0YXRlPiwgQEluamVjdChGSUxURVJfVklFV19TVE9SRSkgc3RvcmU6IFN0b3JlQ29uZmlnT3B0aW9ucykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICAuLi5pbml0aWFsVmFsdWUsXG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIGZpbHRlclBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi5pbml0aWFsVmFsdWUuZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAuLi4oc3RhdGUuZmlsdGVyUGFyYW1ldGVycyA/PyB7fSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgc3RvcmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGaWx0ZXJDb25maWdMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUoeyBmaWx0ZXJDb25maWdMb2FkaW5nOiBsb2FkaW5nIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZSh7IGZpbHRlclBhcmFtZXRlcnMgfSk7XG4gICAgfVxuXG4gICAgQHRyYW5zYWN0aW9uKClcbiAgICBwdWJsaWMgc2V0UmVzdWx0KGZpbHRlclJlc3VsdDogRmlsdGVyUmVzdWx0TW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBtb2RlLCByZXNldFJlc3VsdCwgaW5pdGlhbExvYWRDb21wbGV0ZWQgfSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKG1vZGUgPT09IFwiYWNjdW11bGF0ZWRcIikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgICAgICBwYWdlOiBmaWx0ZXJSZXN1bHQucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgdG90YWw6IGZpbHRlclJlc3VsdC50b3RhbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4ocmVzZXRSZXN1bHQgPyBbXSA6IHN0YXRlLmZpbHRlclJlc3VsdD8udmFsdWVzID8/IFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdC52YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzZXRSZXN1bHQ6IGZhbHNlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb2RlID09PSBcImFjY3VtdWxhdGVkXCIgJiYgIXJlc2V0UmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLmFkZChbLi4uZmlsdGVyUmVzdWx0LnZhbHVlc10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXQoWy4uLmZpbHRlclJlc3VsdC52YWx1ZXNdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW5pdGlhbExvYWRDb21wbGV0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKHsgaW5pdGlhbExvYWRDb21wbGV0ZWQ6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAdHJhbnNhY3Rpb24oKVxuICAgIHB1YmxpYyBhZGRWYWx1ZSh2YWx1ZTogYW55LCBvcHRzPzogQWRkRW50aXRpZXNPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheUFkZChmaWx0ZXJSZXN1bHQudmFsdWVzLCB2YWx1ZSwgb3B0cylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hZGQodmFsdWUsIG9wdHMpO1xuICAgIH1cblxuICAgIEB0cmFuc2FjdGlvbigpXG4gICAgcHVibGljIGFkZFZhbHVlcyh2YWx1ZXM6IGFueVtdLCBvcHRzPzogQWRkRW50aXRpZXNPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheUFkZChmaWx0ZXJSZXN1bHQudmFsdWVzLCB2YWx1ZXMsIG9wdHMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWRkKHZhbHVlcywgb3B0cyk7XG4gICAgfVxuXG4gICAgQHRyYW5zYWN0aW9uKClcbiAgICBwdWJsaWMgdXBzZXJ0VmFsdWUodmFsdWU6IGFueSwga2V5Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpZEtleSA9IGtleSA/PyB0aGlzLmlkS2V5O1xuICAgICAgICB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheVVwc2VydChmaWx0ZXJSZXN1bHQudmFsdWVzLCB2YWx1ZVtpZEtleV0sIHZhbHVlLCBpZEtleSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cHNlcnQodmFsdWVbaWRLZXldLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgQHRyYW5zYWN0aW9uKClcbiAgICBwdWJsaWMgdXBzZXJ0VmFsdWVzKHZhbHVlczogYW55W10sIGtleT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpZEtleSA9IGtleSA/PyB0aGlzLmlkS2V5O1xuICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGUoKHsgZmlsdGVyUmVzdWx0IH0pID0+ICh7XG4gICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLihmaWx0ZXJSZXN1bHQgPz8geyB2YWx1ZXM6IFtdIH0pLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5VXBzZXJ0KGZpbHRlclJlc3VsdD8udmFsdWVzID8/IFtdLCB2YWx1ZVtpZEtleV0sIHZhbHVlLCBpZEtleSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgIHRoaXMudXBzZXJ0KHZhbHVlW2lkS2V5XSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHRyYW5zYWN0aW9uKClcbiAgICBwdWJsaWMgcmVtb3ZlVmFsdWUodmFsdWU6IGFueSwga2V5Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpZEtleSA9IGtleSA/PyB0aGlzLmlkS2V5O1xuICAgICAgICB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheVJlbW92ZShmaWx0ZXJSZXN1bHQudmFsdWVzLCB2YWx1ZVtpZEtleV0sIGlkS2V5KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlbW92ZSh2YWx1ZVtpZEtleV0pO1xuICAgIH1cblxuICAgIEB0cmFuc2FjdGlvbigpXG4gICAgcHVibGljIHJlbW92ZVZhbHVlcyh2YWx1ZXM6IGFueVtdLCBrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkS2V5ID0ga2V5ID8/IHRoaXMuaWRLZXk7XG4gICAgICAgIGNvbnN0IGlkcyA9IHZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWVbaWRLZXldKTtcbiAgICAgICAgdGhpcy51cGRhdGUoe1xuICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgLi4uZmlsdGVyUmVzdWx0LFxuICAgICAgICAgICAgICAgIHZhbHVlczogYXJyYXlSZW1vdmUoZmlsdGVyUmVzdWx0LnZhbHVlcywgaWRzKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlbW92ZShpZHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM/OiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwpOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwge1xuICAgICAgICBjb25zdCB7IGJhc2VSdWxlcyB9ID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBwYXJhbWV0ZXJzID0ge1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHJ1bGVzOiBmaWx0ZXJQYXJhbWV0ZXJzPy5ydWxlcyA/IFsuLi5maWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzXSA6IFtdXG4gICAgICAgIH07XG4gICAgICAgIGlmIChiYXNlUnVsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyYW1ldGVycy5ydWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiYW5kXCIsXG4gICAgICAgICAgICAgICAgcnVsZXM6IGJhc2VSdWxlc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN1YlN0YXRlPFQ+KG5hbWU6IHN0cmluZyk6IFQge1xuICAgICAgICBjb25zdCB7IHN1YlN0YXRlcyB9ID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICByZXR1cm4gc3ViU3RhdGVzW25hbWVdO1xuICAgIH1cbn1cbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1maWx0ZXItdmlldy5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBZSxXQUFXLEVBQVcsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFPckgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBa0JwRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQXdCO0lBQzdDLFNBQVMsRUFBRSxFQUFFO0lBQ2IsSUFBSSxFQUFFLFdBQVc7SUFDakIsUUFBUSxFQUFFLElBQUk7SUFDZCxRQUFRLEVBQUUsS0FBSztJQUNmLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixZQUFZLEVBQUUsRUFBRTtJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixnQkFBZ0IsRUFBRTtRQUNkLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO1FBQ1YsS0FBSyxFQUFFLEVBQUU7UUFDVCxJQUFJLEVBQUUsRUFBRTtLQUNYO0lBQ0QsU0FBUyxFQUFFLEVBQUU7SUFDYixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsSUFBSTtJQUNsQixXQUFXLEVBQUUsS0FBSztDQUNyQixDQUFDO0FBR0YsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQWdDO0lBQ3JFLFlBQXVDLEtBQW1D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V0FBVyxFQUFFOzs7O3VEQWFiO0FBRUQ7SUFBQyxXQUFXLEVBQUU7Ozs7c0RBZ0JiO0FBRUQ7SUFBQyxXQUFXLEVBQUU7Ozs7dURBaUJiOzJGQW5LUSxtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUVNLE1BQU07MkJBQUMsaUJBQWlCOzswQkFBd0MsTUFBTTsyQkFBQyxpQkFBaUI7NENBNkI5RixTQUFTLE1BZ0NULFFBQVEsTUFpQlIsU0FBUyxNQWlCVCxXQUFXLE1Ba0JYLFlBQVksTUFlWixXQUFXLE1Ba0JYLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgYXJyYXlBZGQsIGFycmF5UmVtb3ZlLCBhcnJheVVwc2VydCwgRW50aXR5U3RhdGUsIEVudGl0eVN0b3JlLCBIYXNoTWFwLCB0cmFuc2FjdGlvbiB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGFcIjtcbmltcG9ydCB7IEFkZEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGEvc3JjL2xpYi9hZGRFbnRpdGllc1wiO1xuaW1wb3J0IHsgU3RvcmVDb25maWdPcHRpb25zIH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YS9zcmMvbGliL3N0b3JlQ29uZmlnXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtcyB9IGZyb20gXCIuLi8uLi8uLi9hcGkvZmlsdGVyLmFwaVwiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsLCBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwsIEZpbHRlclJlc3VsdE1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgT3JkZXJPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVscy9vcmRlci1vcHRpb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBGSUxURVJfVklFV19TVEFURSwgRklMVEVSX1ZJRVdfU1RPUkUgfSBmcm9tIFwiLi4vbmljZS1maWx0ZXItdmlldy5jb25zdGFudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VGaWx0ZXJWaWV3U3RhdGUgZXh0ZW5kcyBFbnRpdHlTdGF0ZSB7XG4gICAgc3ViU3RhdGVzOiBIYXNoTWFwPGFueT47XG4gICAgbW9kZTogXCJwYWdpbmF0ZWRcIiB8IFwiYWNjdW11bGF0ZWRcIjtcbiAgICBhdXRvTG9hZDogYm9vbGVhbjtcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBpbml0aWFsTG9hZENvbXBsZXRlZDogYm9vbGVhbjtcbiAgICBmaWx0ZXJDb25maWdMb2FkaW5nOiBib29sZWFuO1xuICAgIGZpbHRlckNvbmZpZzogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsW107XG4gICAgZmlsdGVyUmVzdWx0OiBGaWx0ZXJSZXN1bHRNb2RlbCB8IG51bGw7XG4gICAgZmlsdGVyUGFyYW1ldGVyczogRmlsdGVyUGFyYW1ldGVyc01vZGVsO1xuICAgIGJhc2VSdWxlczogKFF1ZXJ5UnVsZU1vZGVsIHwgUXVlcnlNb2RlbClbXTtcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbXMgfCBudWxsO1xuICAgIG9yZGVyQ29sdW1uczogT3JkZXJPcHRpb25zIHwgbnVsbDtcbiAgICByZXNldFJlc3VsdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxWYWx1ZTogTmljZUZpbHRlclZpZXdTdGF0ZSA9IHtcbiAgICBzdWJTdGF0ZXM6IHt9LFxuICAgIG1vZGU6IFwicGFnaW5hdGVkXCIsXG4gICAgYXV0b0xvYWQ6IHRydWUsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGluaXRpYWxMb2FkQ29tcGxldGVkOiBmYWxzZSxcbiAgICBmaWx0ZXJDb25maWdMb2FkaW5nOiBmYWxzZSxcbiAgICBmaWx0ZXJDb25maWc6IFtdLFxuICAgIGZpbHRlclJlc3VsdDogbnVsbCxcbiAgICBmaWx0ZXJQYXJhbWV0ZXJzOiB7XG4gICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICBsZW5ndGg6IDEwLFxuICAgICAgICBvcmRlcjoge30sXG4gICAgICAgIHNlYXJjaDogXCJcIixcbiAgICAgICAgcnVsZXM6IFtdLFxuICAgICAgICBkYXRhOiB7fVxuICAgIH0sXG4gICAgYmFzZVJ1bGVzOiBbXSxcbiAgICBxdWVyeVBhcmFtczogbnVsbCxcbiAgICBvcmRlckNvbHVtbnM6IG51bGwsXG4gICAgcmVzZXRSZXN1bHQ6IGZhbHNlXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUZpbHRlclZpZXdTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPE5pY2VGaWx0ZXJWaWV3U3RhdGU+IHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEZJTFRFUl9WSUVXX1NUQVRFKSBzdGF0ZTogUGFydGlhbDxOaWNlRmlsdGVyVmlld1N0YXRlPiwgQEluamVjdChGSUxURVJfVklFV19TVE9SRSkgc3RvcmU6IFN0b3JlQ29uZmlnT3B0aW9ucykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICAuLi5pbml0aWFsVmFsdWUsXG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIGZpbHRlclBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi5pbml0aWFsVmFsdWUuZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAuLi4oc3RhdGUuZmlsdGVyUGFyYW1ldGVycyA/PyB7fSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgc3RvcmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGaWx0ZXJDb25maWdMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUoeyBmaWx0ZXJDb25maWdMb2FkaW5nOiBsb2FkaW5nIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZSh7IGZpbHRlclBhcmFtZXRlcnMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdGNoUGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUoKHsgZmlsdGVyUGFyYW1ldGVyczogY3VycmVudEZpbHRlclBhcmFtZXRlcnMgfSkgPT4gKHtcbiAgICAgICAgICAgIGZpbHRlclBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi5jdXJyZW50RmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBAdHJhbnNhY3Rpb24oKVxuICAgIHB1YmxpYyBzZXRSZXN1bHQoZmlsdGVyUmVzdWx0OiBGaWx0ZXJSZXN1bHRNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IG1vZGUsIHJlc2V0UmVzdWx0LCBpbml0aWFsTG9hZENvbXBsZXRlZCB9ID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAobW9kZSA9PT0gXCJhY2N1bXVsYXRlZFwiKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2U6IGZpbHRlclJlc3VsdC5wYWdlLFxuICAgICAgICAgICAgICAgICAgICB0b3RhbDogZmlsdGVyUmVzdWx0LnRvdGFsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihyZXNldFJlc3VsdCA/IFtdIDogc3RhdGUuZmlsdGVyUmVzdWx0Py52YWx1ZXMgPz8gW10pLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyUmVzdWx0LnZhbHVlc1xuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNldFJlc3VsdDogZmFsc2VcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJSZXN1bHRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vZGUgPT09IFwiYWNjdW11bGF0ZWRcIiAmJiAhcmVzZXRSZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkKFsuLi5maWx0ZXJSZXN1bHQudmFsdWVzXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldChbLi4uZmlsdGVyUmVzdWx0LnZhbHVlc10pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpbml0aWFsTG9hZENvbXBsZXRlZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGUoeyBpbml0aWFsTG9hZENvbXBsZXRlZDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEB0cmFuc2FjdGlvbigpXG4gICAgcHVibGljIGFkZFZhbHVlKHZhbHVlOiBhbnksIG9wdHM/OiBBZGRFbnRpdGllc09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5QWRkKGZpbHRlclJlc3VsdC52YWx1ZXMsIHZhbHVlLCBvcHRzKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFkZCh2YWx1ZSwgb3B0cyk7XG4gICAgfVxuXG4gICAgQHRyYW5zYWN0aW9uKClcbiAgICBwdWJsaWMgYWRkVmFsdWVzKHZhbHVlczogYW55W10sIG9wdHM/OiBBZGRFbnRpdGllc09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5QWRkKGZpbHRlclJlc3VsdC52YWx1ZXMsIHZhbHVlcywgb3B0cylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hZGQodmFsdWVzLCBvcHRzKTtcbiAgICB9XG5cbiAgICBAdHJhbnNhY3Rpb24oKVxuICAgIHB1YmxpYyB1cHNlcnRWYWx1ZSh2YWx1ZTogYW55LCBrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkS2V5ID0ga2V5ID8/IHRoaXMuaWRLZXk7XG4gICAgICAgIHRoaXMudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5VXBzZXJ0KGZpbHRlclJlc3VsdC52YWx1ZXMsIHZhbHVlW2lkS2V5XSwgdmFsdWUsIGlkS2V5KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwc2VydCh2YWx1ZVtpZEtleV0sIHZhbHVlKTtcbiAgICB9XG5cbiAgICBAdHJhbnNhY3Rpb24oKVxuICAgIHB1YmxpYyB1cHNlcnRWYWx1ZXModmFsdWVzOiBhbnlbXSwga2V5Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlkS2V5ID0ga2V5ID8/IHRoaXMuaWRLZXk7XG4gICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgoeyBmaWx0ZXJSZXN1bHQgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uKGZpbHRlclJlc3VsdCA/PyB7IHZhbHVlczogW10gfSksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlczogYXJyYXlVcHNlcnQoZmlsdGVyUmVzdWx0Py52YWx1ZXMgPz8gW10sIHZhbHVlW2lkS2V5XSwgdmFsdWUsIGlkS2V5KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgdGhpcy51cHNlcnQodmFsdWVbaWRLZXldLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAdHJhbnNhY3Rpb24oKVxuICAgIHB1YmxpYyByZW1vdmVWYWx1ZSh2YWx1ZTogYW55LCBrZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkS2V5ID0ga2V5ID8/IHRoaXMuaWRLZXk7XG4gICAgICAgIHRoaXMudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5UmVtb3ZlKGZpbHRlclJlc3VsdC52YWx1ZXMsIHZhbHVlW2lkS2V5XSwgaWRLZXkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVtb3ZlKHZhbHVlW2lkS2V5XSk7XG4gICAgfVxuXG4gICAgQHRyYW5zYWN0aW9uKClcbiAgICBwdWJsaWMgcmVtb3ZlVmFsdWVzKHZhbHVlczogYW55W10sIGtleT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclJlc3VsdCB9ID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIWZpbHRlclJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWRLZXkgPSBrZXkgPz8gdGhpcy5pZEtleTtcbiAgICAgICAgY29uc3QgaWRzID0gdmFsdWVzLm1hcCh2YWx1ZSA9PiB2YWx1ZVtpZEtleV0pO1xuICAgICAgICB0aGlzLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheVJlbW92ZShmaWx0ZXJSZXN1bHQudmFsdWVzLCBpZHMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVtb3ZlKGlkcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCB7XG4gICAgICAgIGNvbnN0IHsgYmFzZVJ1bGVzIH0gPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgcnVsZXM6IGZpbHRlclBhcmFtZXRlcnM/LnJ1bGVzID8gWy4uLmZpbHRlclBhcmFtZXRlcnMucnVsZXNdIDogW11cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGJhc2VSdWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzLnJ1bGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCJhbmRcIixcbiAgICAgICAgICAgICAgICBydWxlczogYmFzZVJ1bGVzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3ViU3RhdGU8VD4obmFtZTogc3RyaW5nKTogVCB7XG4gICAgICAgIGNvbnN0IHsgc3ViU3RhdGVzIH0gPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIHJldHVybiBzdWJTdGF0ZXNbbmFtZV07XG4gICAgfVxufVxuIl19
@@ -6,4 +6,4 @@ export var FilterType;
6
6
  FilterType["Select"] = "select";
7
7
  FilterType["Radio"] = "radio";
8
8
  })(FilterType || (FilterType = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9tb2RlbHMvZmlsdGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDQSxNQUFNLENBQU4sSUFBWSxVQU1YO0FBTkQsV0FBWSxVQUFVO0lBQ2xCLDJCQUFhLENBQUE7SUFDYiwrQkFBaUIsQ0FBQTtJQUNqQiwyQkFBYSxDQUFBO0lBQ2IsK0JBQWlCLENBQUE7SUFDakIsNkJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeU1vZGVsIH0gZnJvbSBcIi4vcXVlcnkubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwge1xuICAgIHN0YXJ0PzogbnVtYmVyO1xuICAgIGxlbmd0aD86IG51bWJlcjtcbiAgICBvcmRlcj86IE9yZGVyTW9kZWwgfCBudWxsOyAvLyBUaGlzIGlzIHRoZSBwcmltYXJ5IG9yZGVyICh1c2VkIGZvciB0aGUgbWF0IHRhYmxlKVxuICAgIGZhbGxiYWNrT3JkZXI/OiBPcmRlck1vZGVsIHwgT3JkZXJNb2RlbFtdOyAvLyBUaGVzZSBvcmRlcnMgYXJlIGZhbGxiYWNrOyB3ZWxsIGJlIHBsYWNlZCBhZnRlciBvcmRlclxuICAgIHNlYXJjaD86IHN0cmluZztcbiAgICBydWxlcz86IFF1ZXJ5TW9kZWxbXTtcbiAgICBkcmF3PzogbnVtYmVyO1xuICAgIGRhdGE/OiBvYmplY3Q7XG4gICAgZ3JvdXBCeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJQYWdlTW9kZSB7XG4gICAgbnVtYmVyOiBudW1iZXI7XG4gICAgc2l6ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclNlYXJjaE1vZGVsIHtcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyTW9kZWwge1xuICAgIGNvbHVtbj86IHN0cmluZztcbiAgICBkaXJlY3Rpb24/OiBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgbnVsbExhc3Q/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclF1ZXJ5TW9kZWwge1xuICAgIHBhZ2U/OiBGaWx0ZXJQYWdlTW9kZTtcbiAgICBzZWFyY2g/OiBGaWx0ZXJTZWFyY2hNb2RlbDtcbiAgICBxdWVyeT86IFF1ZXJ5TW9kZWw7XG4gICAgb3JkZXI/OiBPcmRlck1vZGVsIHwgT3JkZXJNb2RlbFtdO1xuICAgIGRhdGE/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG4gICAgZ3JvdXBCeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJSZXN1bHRNb2RlbDxUID0gYW55PiB7XG4gICAgdmFsdWVzOiBUW107XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBwYWdlPzoge1xuICAgICAgICBudW1iZXI6IG51bWJlcjtcbiAgICAgICAgc2l6ZTogbnVtYmVyO1xuICAgIH07XG59XG5cbmV4cG9ydCBlbnVtIEZpbHRlclR5cGUge1xuICAgIFRleHQgPSBcInRleHRcIixcbiAgICBOdW1iZXIgPSBcIm51bWJlclwiLFxuICAgIERhdGUgPSBcImRhdGVcIixcbiAgICBTZWxlY3QgPSBcInNlbGVjdFwiLFxuICAgIFJhZGlvID0gXCJyYWRpb1wiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFkaW9GaWx0ZXJPcHRpb25Db25maWd1cmF0aW9uIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyT3BlcmF0b3JzQ29uZmlndXJhdGlvbiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyR3JvdXBDb25maWd1cmF0aW9uIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyQmFzZUNvbmZpZ3VyYXRpb25Nb2RlbCB7XG4gICAgdHlwZTogRmlsdGVyVHlwZTtcbiAgICBvcGVyYXRvcnM6IEZpbHRlck9wZXJhdG9yc0NvbmZpZ3VyYXRpb25bXTtcbiAgICBncm91cD86IEZpbHRlckdyb3VwQ29uZmlndXJhdGlvbjtcbiAgICB2YWx1ZXM/OiB1bmtub3duW107XG4gICAgbGF6eUxvYWRpbmc/OiBib29sZWFuO1xuICAgIG9wdGlvbnM/OiBSYWRpb0ZpbHRlck9wdGlvbkNvbmZpZ3VyYXRpb25bXTtcbiAgICBtYXNrPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCBleHRlbmRzIEZpbHRlckJhc2VDb25maWd1cmF0aW9uTW9kZWwge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEZpbHRlclZhbHVlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbn1cbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9tb2RlbHMvZmlsdGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDQSxNQUFNLENBQU4sSUFBWSxVQU1YO0FBTkQsV0FBWSxVQUFVO0lBQ2xCLDJCQUFhLENBQUE7SUFDYiwrQkFBaUIsQ0FBQTtJQUNqQiwyQkFBYSxDQUFBO0lBQ2IsK0JBQWlCLENBQUE7SUFDakIsNkJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeU1vZGVsIH0gZnJvbSBcIi4vcXVlcnkubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwge1xuICAgIHN0YXJ0PzogbnVtYmVyIHwgbnVsbDtcbiAgICBsZW5ndGg/OiBudW1iZXIgfCBudWxsO1xuICAgIG9yZGVyPzogT3JkZXJNb2RlbCB8IG51bGw7IC8vIFRoaXMgaXMgdGhlIHByaW1hcnkgb3JkZXIgKHVzZWQgZm9yIHRoZSBtYXQgdGFibGUpXG4gICAgZmFsbGJhY2tPcmRlcj86IE9yZGVyTW9kZWwgfCBPcmRlck1vZGVsW10gfCBudWxsOyAvLyBUaGVzZSBvcmRlcnMgYXJlIGZhbGxiYWNrOyB3ZWxsIGJlIHBsYWNlZCBhZnRlciBvcmRlclxuICAgIHNlYXJjaD86IHN0cmluZyB8IG51bGw7XG4gICAgcnVsZXM/OiBRdWVyeU1vZGVsW10gfCBudWxsO1xuICAgIGRyYXc/OiBudW1iZXIgfCBudWxsO1xuICAgIGRhdGE/OiBvYmplY3QgfCBudWxsO1xuICAgIGdyb3VwQnk/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclBhZ2VNb2RlIHtcbiAgICBudW1iZXI6IG51bWJlcjtcbiAgICBzaXplOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyU2VhcmNoTW9kZWwge1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJNb2RlbCB7XG4gICAgY29sdW1uPzogc3RyaW5nIHwgbnVsbDtcbiAgICBkaXJlY3Rpb24/OiBcImFzY1wiIHwgXCJkZXNjXCIgfCBudWxsO1xuICAgIG51bGxMYXN0PzogYm9vbGVhbiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyUXVlcnlNb2RlbCB7XG4gICAgcGFnZT86IEZpbHRlclBhZ2VNb2RlO1xuICAgIHNlYXJjaD86IEZpbHRlclNlYXJjaE1vZGVsO1xuICAgIHF1ZXJ5PzogUXVlcnlNb2RlbDtcbiAgICBvcmRlcj86IE9yZGVyTW9kZWwgfCBPcmRlck1vZGVsW107XG4gICAgZGF0YT86IG9iamVjdCB8IHVuZGVmaW5lZDtcbiAgICBncm91cEJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclJlc3VsdE1vZGVsPFQgPSBhbnk+IHtcbiAgICB2YWx1ZXM6IFRbXTtcbiAgICB0b3RhbDogbnVtYmVyO1xuICAgIHBhZ2U/OiB7XG4gICAgICAgIG51bWJlcjogbnVtYmVyO1xuICAgICAgICBzaXplOiBudW1iZXI7XG4gICAgfTtcbn1cblxuZXhwb3J0IGVudW0gRmlsdGVyVHlwZSB7XG4gICAgVGV4dCA9IFwidGV4dFwiLFxuICAgIE51bWJlciA9IFwibnVtYmVyXCIsXG4gICAgRGF0ZSA9IFwiZGF0ZVwiLFxuICAgIFNlbGVjdCA9IFwic2VsZWN0XCIsXG4gICAgUmFkaW8gPSBcInJhZGlvXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYWRpb0ZpbHRlck9wdGlvbkNvbmZpZ3VyYXRpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJPcGVyYXRvcnNDb25maWd1cmF0aW9uIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJHcm91cENvbmZpZ3VyYXRpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJCYXNlQ29uZmlndXJhdGlvbk1vZGVsIHtcbiAgICB0eXBlOiBGaWx0ZXJUeXBlO1xuICAgIG9wZXJhdG9yczogRmlsdGVyT3BlcmF0b3JzQ29uZmlndXJhdGlvbltdO1xuICAgIGdyb3VwPzogRmlsdGVyR3JvdXBDb25maWd1cmF0aW9uO1xuICAgIHZhbHVlcz86IHVua25vd25bXTtcbiAgICBsYXp5TG9hZGluZz86IGJvb2xlYW47XG4gICAgb3B0aW9ucz86IFJhZGlvRmlsdGVyT3B0aW9uQ29uZmlndXJhdGlvbltdO1xuICAgIG1hc2s/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIGV4dGVuZHMgRmlsdGVyQmFzZUNvbmZpZ3VyYXRpb25Nb2RlbCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RmlsdGVyVmFsdWUge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xufVxuIl19