@updevs/components 1.0.0-alpha.96 → 1.0.0-alpha.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
- import { Component, signal, inject, input, model, HostBinding, Output, EventEmitter } from '@angular/core';
1
+ import { Component, signal, inject, input, HostBinding, Output, EventEmitter, computed } from '@angular/core';
2
2
  import { TextService } from '@updevs/sdk';
3
3
  import { FilterTypeEnum } from '@updevs/sdk/stores';
4
4
  import { BaseComponent } from '@updevs/sdk/layout';
5
- import { UpdTableConfigService } from '../../services/upd-table-config.service';
6
5
  import { FiltersOperandsService } from '../../abstractions/filters-operands.service';
6
+ import { CurrentSearchRequestService } from '../../services/current-search-request.service';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@updevs/components/button";
9
9
  import * as i2 from "@updevs/components/form-controls/input";
@@ -14,12 +14,11 @@ export class FilterRowComponent extends BaseComponent {
14
14
  this.wrapperClasses = 'd-flex gap-2';
15
15
  this.removed = new EventEmitter();
16
16
  this.FilterTypeEnum = FilterTypeEnum;
17
- this.activeFilters = model.required();
17
+ this.config = input.required();
18
18
  this.rowIndex = input.required();
19
- this.columns = input.required();
20
19
  this.isDisabled = input.required();
21
- this.store = input();
22
- this.filterFields = input();
20
+ this.filterFields = computed(() => this.config().shouldLoadFilterFieldsFromServer ? this.currentSearchRequestService.filterFields() : this.config().filterFields);
21
+ this.columns = computed(() => this.config().columns);
23
22
  this.currentFilter = input();
24
23
  this.currentField = signal(undefined);
25
24
  this.currentOperand = signal(undefined);
@@ -28,9 +27,9 @@ export class FilterRowComponent extends BaseComponent {
28
27
  this.fieldAllowedValues = signal([]);
29
28
  this.isValueSectionEnabled = signal(true);
30
29
  this.currentOperands = [];
31
- this.configService = inject(UpdTableConfigService);
32
30
  this.filtersOperandsService = inject(FiltersOperandsService);
33
31
  this.textService = inject(TextService);
32
+ this.currentSearchRequestService = inject(CurrentSearchRequestService);
34
33
  }
35
34
  get fieldType() {
36
35
  return this.currentField()?.objectData || FilterTypeEnum.Text;
@@ -55,20 +54,12 @@ export class FilterRowComponent extends BaseComponent {
55
54
  // Priority 1: User-defined filter fields
56
55
  if (!!this.filterFields() && this.filterFields().length > 0) {
57
56
  this.fieldsOptions.set(this.filterFields().map(f => ({
58
- value: f.name,
59
- text: this.textService.getText(f.label),
60
- objectData: f.type
61
- })));
62
- }
63
- // Priority 2: Server-loaded fields
64
- else if (!!this.store() && this.configService.config.shouldLoadFieldsFromServer) {
65
- this.store().getFilterableFields().subscribe(fields => this.fieldsOptions.set(fields.map(f => ({
66
57
  value: f.name,
67
58
  text: f.description,
68
59
  objectData: f.type
69
- }))));
60
+ })));
70
61
  }
71
- // Priority 3: Fallback to columns
62
+ // Priority 2: Fallback to columns
72
63
  else {
73
64
  this.fieldsOptions.set(this.columns().filter(c => !!c.title).map(c => ({
74
65
  value: c.name,
@@ -96,38 +87,30 @@ export class FilterRowComponent extends BaseComponent {
96
87
  else {
97
88
  this.comparisonOperatorOptions.set([]);
98
89
  }
99
- this.activeFilters.update(curr => {
100
- curr[this.rowIndex()].name = this.currentField()?.value;
101
- return [...curr];
90
+ this.currentSearchRequestService.updateFilterByIndex(this.rowIndex(), {
91
+ column: this.currentField()?.value,
92
+ type: this.fieldType,
93
+ dataType: dataType
102
94
  });
103
95
  }
104
96
  onSelectOperand(item) {
105
97
  this.currentOperand.set(this.currentOperands.find(co => co.operand === item?.value));
106
98
  this.isValueSectionEnabled.set(!!this.currentOperand()?.requiresValue);
107
- this.activeFilters.update(curr => {
108
- curr[this.rowIndex()].operandConfig = this.currentOperand();
109
- return [...curr];
110
- });
99
+ this.currentSearchRequestService.updateFilterByIndex(this.rowIndex(), { operand: this.currentOperand()?.operand });
111
100
  if (this.fieldType === FilterTypeEnum.Select) {
112
101
  const values = this.filterFields()?.find(f => f.name === this.currentField()?.value)?.allowedValues || [];
113
102
  this.fieldAllowedValues.set(values.map(v => ({ value: v.key, text: v.value })));
114
103
  }
115
104
  }
116
105
  updateValue(value) {
117
- this.activeFilters.update(curr => {
118
- curr[this.rowIndex()].value = value;
119
- return [...curr];
120
- });
106
+ this.currentSearchRequestService.updateFilterByIndex(this.rowIndex(), { value });
121
107
  }
122
108
  removeFilterItem() {
123
- this.activeFilters.update(curr => {
124
- curr.splice(this.rowIndex(), 1);
125
- return [...curr];
126
- });
109
+ this.currentSearchRequestService.removeFilterByIndex(this.rowIndex());
127
110
  this.removed.emit();
128
111
  }
129
112
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FilterRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
130
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FilterRowComponent, selector: "upd-filter-row", inputs: { activeFilters: { classPropertyName: "activeFilters", publicName: "activeFilters", isSignal: true, isRequired: true, transformFunction: null }, rowIndex: { classPropertyName: "rowIndex", publicName: "rowIndex", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: true, transformFunction: null }, store: { classPropertyName: "store", publicName: "store", isSignal: true, isRequired: false, transformFunction: null }, filterFields: { classPropertyName: "filterFields", publicName: "filterFields", isSignal: true, isRequired: false, transformFunction: null }, currentFilter: { classPropertyName: "currentFilter", publicName: "currentFilter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removed: "removed", activeFilters: "activeFiltersChange" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "<upd-select class=\"w-100\" [isDisabled]=\"isDisabled()\" [items]=\"fieldsOptions()\" (selectedItem)=\"onSelectField($event)\"\n [value]=\"selectedField?.value\">\n</upd-select>\n<upd-select class=\"w-100\" [isDisabled]=\"isDisabled()\" [items]=\"comparisonOperatorOptions()\"\n (selectedItem)=\"onSelectOperand($event)\" [value]=\"selectedOperand?.value\">\n</upd-select>\n\n@if (isValueSectionEnabled()) {\n @switch (fieldType) {\n @case (FilterTypeEnum.Number) {\n <upd-input wrapperClasses=\"w-100\" customClasses=\"h-100\" type=\"number\" (valueChange)=\"updateValue($event)\"\n [value]=\"selectedValue\"></upd-input>\n }\n @case (FilterTypeEnum.Date) {\n\n }\n @case (FilterTypeEnum.Select) {\n <upd-select class=\"w-100\" [isDisabled]=\"isDisabled()\" [items]=\"fieldAllowedValues()\"\n (selectedItem)=\"updateValue($event?.value)\" [value]=\"selectedValue\">\n </upd-select>\n }\n @default {\n <upd-input wrapperClasses=\"w-100\" customClasses=\"h-100\" type=\"text\" (valueChange)=\"updateValue($event)\"\n [value]=\"selectedValue\"></upd-input>\n }\n }\n} @else {\n <div class=\"w-100\">\n <input type=\"text\" class=\"form-control h-100\" disabled>\n </div>\n}\n\n<upd-button class=\"flex-shrink-1\" colorStyle=\"danger\" [isDisabled]=\"isDisabled()\" [isOutline]=\"true\" [isIcon]=\"true\"\n [iconModel]=\"{tablerIcon:'x'}\" (clicked)=\"removeFilterItem()\"></upd-button>", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "component", type: i2.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "component", type: i3.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "shouldTruncateSelectedText", "isCompact", "value"], outputs: ["valueChange", "selectedItem"] }] }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FilterRowComponent, selector: "upd-filter-row", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, rowIndex: { classPropertyName: "rowIndex", publicName: "rowIndex", isSignal: true, isRequired: true, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: true, transformFunction: null }, currentFilter: { classPropertyName: "currentFilter", publicName: "currentFilter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removed: "removed" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "<upd-select class=\"w-100\" [isDisabled]=\"isDisabled()\" [items]=\"fieldsOptions()\" (selectedItem)=\"onSelectField($event)\"\n [value]=\"selectedField?.value\">\n</upd-select>\n<upd-select class=\"w-100\" [isDisabled]=\"isDisabled()\" [items]=\"comparisonOperatorOptions()\"\n (selectedItem)=\"onSelectOperand($event)\" [value]=\"selectedOperand?.value\">\n</upd-select>\n\n@if (isValueSectionEnabled()) {\n @switch (fieldType) {\n @case (FilterTypeEnum.Number) {\n <upd-input wrapperClasses=\"w-100\" customClasses=\"h-100\" type=\"number\" (valueChange)=\"updateValue($event)\"\n [value]=\"selectedValue\"></upd-input>\n }\n @case (FilterTypeEnum.Date) {\n\n }\n @case (FilterTypeEnum.Select) {\n <upd-select class=\"w-100\" [isDisabled]=\"isDisabled()\" [items]=\"fieldAllowedValues()\"\n (selectedItem)=\"updateValue($event?.value)\" [value]=\"selectedValue\">\n </upd-select>\n }\n @default {\n <upd-input wrapperClasses=\"w-100\" customClasses=\"h-100\" type=\"text\" (valueChange)=\"updateValue($event)\"\n [value]=\"selectedValue\"></upd-input>\n }\n }\n} @else {\n <div class=\"w-100\">\n <input type=\"text\" class=\"form-control h-100\" disabled>\n </div>\n}\n\n<upd-button class=\"flex-shrink-1\" colorStyle=\"danger\" [isDisabled]=\"isDisabled()\" [isOutline]=\"true\" [isIcon]=\"true\"\n [iconModel]=\"{tablerIcon:'x'}\" (clicked)=\"removeFilterItem()\"></upd-button>", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "component", type: i2.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "component", type: i3.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "shouldTruncateSelectedText", "isCompact", "value"], outputs: ["valueChange", "selectedItem"] }] }); }
131
114
  }
132
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FilterRowComponent, decorators: [{
133
116
  type: Component,
@@ -138,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
138
121
  }], removed: [{
139
122
  type: Output
140
123
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFibGUvc3JjL2NvbXBvbmVudHMvZmlsdGVyLXJvdy9maWx0ZXItcm93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJsZS9zcmMvY29tcG9uZW50cy9maWx0ZXItcm93L2ZpbHRlci1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFXckYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFMckQ7O1FBTTBCLG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBRW5DLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwRSxtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUVoQyxrQkFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7UUFDcEQsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNwQyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBcUIsQ0FBQztRQUM5QyxlQUFVLEdBQUcsS0FBSyxD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QztZQUNwQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0EzSVEsa0JBQWtCO2tHQUFsQixrQkFBa0IsaW9DQ25CL0Isc2hEQWlDK0U7OzJGRGRsRSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksZ0JBQWdCOzhCQUtKLGNBQWM7c0JBQW5DLFdBQVc7dUJBQUMsT0FBTztnQkFFRCxPQUFPO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBzaWduYWwsIGluamVjdCwgT25Jbml0LCBpbnB1dCwgbW9kZWwsIEhvc3RCaW5kaW5nLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBCYXNlU2VhcmNoU3RvcmUsIEZpbHRlclR5cGVFbnVtIH0gZnJvbSAnQHVwZGV2cy9zZGsvc3RvcmVzJztcbmltcG9ydCB7IE9wdGlvbmFsVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9zZWxlY3QnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5cbmltcG9ydCB7IFVwZFRhYmxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VwZC10YWJsZS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJzT3BlcmFuZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zL2ZpbHRlcnMtb3BlcmFuZHMuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsdGVyLWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUNvbHVtbk1vZGVsIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zL2Jhc2UtY29sdW1uLm1vZGVsJztcbmltcG9ydCB7IEZpbHRlck9wZXJhbmRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsdGVyLW9wZXJhbmQuY29uZmlnJztcbmltcG9ydCB7IEZpbHRlckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbHRlci1maWVsZC5jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1maWx0ZXItcm93JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ZpbHRlci1yb3cuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclJvd0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSB3cmFwcGVyQ2xhc3NlcyA9ICdkLWZsZXggZ2FwLTInO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHJlbW92ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEZpbHRlclR5cGVFbnVtID0gRmlsdGVyVHlwZUVudW07XG5cbiAgICBhY3RpdmVGaWx0ZXJzID0gbW9kZWwucmVxdWlyZWQ8RmlsdGVySXRlbU1vZGVsW10+KCk7XG4gICAgcm93SW5kZXggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gICAgY29sdW1ucyA9IGlucHV0LnJlcXVpcmVkPEJhc2VDb2x1bW5Nb2RlbFtdPigpO1xuICAgIGlzRGlzYWJsZWQgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xuICAgIHN0b3JlID0gaW5wdXQ8QmFzZVNlYXJjaFN0b3JlPigpO1xuICAgIGZpbHRlckZpZWxkcyA9IGlucHV0PEZpbHRlckZpZWxkQ29uZmlnW10+KCk7XG4gICAgY3VycmVudEZpbHRlciA9IGlucHV0PEZpbHRlckl0ZW1Nb2RlbD4oKTtcbiAgICBjdXJyZW50RmllbGQgPSBzaWduYWw8T3B0aW9uYWxUeXBlPFNlbGVjdEl0ZW0+Pih1bmRlZmluZWQpO1xuICAgIGN1cnJlbnRPcGVyYW5kID0gc2lnbmFsPE9wdGlvbmFsVHlwZTxGaWx0ZXJPcGVyYW5kQ29uZmlnPj4odW5kZWZpbmVkKTtcbiAgICBmaWVsZHNPcHRpb25zID0gc2lnbmFsPFNlbGVjdEl0ZW1bXT4oW10pO1xuICAgIGNvbXBhcmlzb25PcGVyYXRvck9wdGlvbnMgPSBzaWduYWw8U2VsZWN0SXRlbVtdPihbXSk7XG4gICAgZmllbGRBbGxvd2VkVmFsdWVzID0gc2lnbmFsPFNlbGVjdEl0ZW1bXT4oW10pO1xuICAgIGlzVmFsdWVTZWN0aW9uRW5hYmxlZCA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcblxuICAgIGdldCBmaWVsZFR5cGUoKTogRmlsdGVyVHlwZUVudW0ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50RmllbGQoKT8ub2JqZWN0RGF0YSB8fCBGaWx0ZXJUeXBlRW51bS5UZXh0O1xuICAgIH1cbiAgICBnZXQgc2VsZWN0ZWRGaWVsZCgpOiBPcHRpb25hbFR5cGU8U2VsZWN0SXRlbT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50RmlsdGVyID0gdGhpcy5jdXJyZW50RmlsdGVyKCk7XG4gICAgICAgIHJldHVybiAhIWN1cnJlbnRGaWx0ZXI/Lm5hbWVcbiAgICAgICAgICAgID8gdGhpcy5maWVsZHNPcHRpb25zKCkuZmluZChmID0+IGYudmFsdWUgPT09IGN1cnJlbnRGaWx0ZXIubmFtZSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICBnZXQgc2VsZWN0ZWRPcGVyYW5kKCk6IE9wdGlvbmFsVHlwZTxTZWxlY3RJdGVtPiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXIgPSB0aGlzLmN1cnJlbnRGaWx0ZXIoKTtcbiAgICAgICAgcmV0dXJuICEhY3VycmVudEZpbHRlcj8ubmFtZVxuICAgICAgICAgICAgPyB0aGlzLmNvbXBhcmlzb25PcGVyYXRvck9wdGlvbnMoKS5maW5kKGNvID0+IGNvLnZhbHVlID09PSBjdXJyZW50RmlsdGVyLm9wZXJhbmRDb25maWc/Lm9wZXJhbmQpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGVkVmFsdWUoKTogT3B0aW9uYWxUeXBlPGFueT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50RmlsdGVyID0gdGhpcy5jdXJyZW50RmlsdGVyKCk7XG4gICAgICAgIHJldHVybiAhIWN1cnJlbnRGaWx0ZXI/Lm5hbWUgPyBjdXJyZW50RmlsdGVyLnZhbHVlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3VycmVudE9wZXJhbmRzOiBGaWx0ZXJPcGVyYW5kQ29uZmlnW10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoVXBkVGFibGVDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlcnNPcGVyYW5kc1NlcnZpY2UgPSBpbmplY3QoRmlsdGVyc09wZXJhbmRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0U2VydmljZSA9IGluamVjdChUZXh0U2VydmljZSk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gUHJpb3JpdHkgMTogVXNlci1kZWZpbmVkIGZpbHRlciBmaWVsZHNcbiAgICAgICAgaWYgKCEhdGhpcy5maWx0ZXJGaWVsZHMoKSAmJiB0aGlzLmZpbHRlckZpZWxkcygpIS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkc09wdGlvbnMuc2V0KFxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyRmllbGRzKCkhLm1hcChmID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMudGV4dFNlcnZpY2UuZ2V0VGV4dChmLmxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0RGF0YTogZi50eXBlXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFByaW9yaXR5IDI6IFNlcnZlci1sb2FkZWQgZmllbGRzXG4gICAgICAgIGVsc2UgaWYgKCEhdGhpcy5zdG9yZSgpICYmIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcuc2hvdWxkTG9hZEZpZWxkc0Zyb21TZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUoKSEuZ2V0RmlsdGVyYWJsZUZpZWxkcygpLnN1YnNjcmliZShmaWVsZHMgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkc09wdGlvbnMuc2V0KGZpZWxkcy5tYXAoZiA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZi5uYW1lISxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogZi5kZXNjcmlwdGlvbiEsXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdERhdGE6IGYudHlwZVxuICAgICAgICAgICAgICAgIH0pKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJpb3JpdHkgMzogRmFsbGJhY2sgdG8gY29sdW1uc1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGRzT3B0aW9ucy5zZXQoXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zKCkuZmlsdGVyKGMgPT4gISFjLnRpdGxlKS5tYXAoYyA9PlxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMudGV4dFNlcnZpY2UuZ2V0VGV4dChjLnRpdGxlKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0RGF0YTogYy5kYXRhVHlwZVxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMuc2VsZWN0ZWRGaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5vblNlbGVjdEZpZWxkKHRoaXMuc2VsZWN0ZWRGaWVsZCk7XG5cbiAgICAgICAgICAgIGlmICghIXRoaXMuc2VsZWN0ZWRPcGVyYW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdE9wZXJhbmQodGhpcy5zZWxlY3RlZE9wZXJhbmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoISF0aGlzLnNlbGVjdGVkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlbGVjdEZpZWxkKGl0ZW0/OiBTZWxlY3RJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEZpZWxkLnNldChpdGVtKTtcblxuICAgICAgICBjb25zdCBkYXRhVHlwZSA9IGl0ZW0/Lm9iamVjdERhdGE7XG5cbiAgICAgICAgaWYgKCEhZGF0YVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE9wZXJhbmRzID0gdGhpcy5maWx0ZXJzT3BlcmFuZHNTZXJ2aWNlLmdldE9wZXJhbmRzKGRhdGFUeXBlKTtcbiAgICAgICAgICAgIHRoaXMuY29tcGFyaXNvbk9wZXJhdG9yT3B0aW9ucy5zZXQoXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50T3BlcmFuZHMubWFwKG8gPT4gKHsgdmFsdWU6IG8ub3BlcmFuZCwgdGV4dDogdGhpcy50ZXh0U2VydmljZS5nZXRUZXh0KG8udGV4dCksIGxpc3RJdGVtOiB7IGljb246IG8uaWNvbiB9IH0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29tcGFyaXNvbk9wZXJhdG9yT3B0aW9ucy5zZXQoW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJzLnVwZGF0ZShjdXJyID0+IHtcbiAgICAgICAgICAgIGN1cnJbdGhpcy5yb3dJbmRleCgpXS5uYW1lID0gdGhpcy5jdXJyZW50RmllbGQoKT8udmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gWy4uLmN1cnJdO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblNlbGVjdE9wZXJhbmQoaXRlbT86IFNlbGVjdEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50T3BlcmFuZC5zZXQodGhpcy5jdXJyZW50T3BlcmFuZHMuZmluZChjbyA9PiBjby5vcGVyYW5kID09PSBpdGVtPy52YWx1ZSkpO1xuICAgICAgICB0aGlzLmlzVmFsdWVTZWN0aW9uRW5hYmxlZC5zZXQoISF0aGlzLmN1cnJlbnRPcGVyYW5kKCk/LnJlcXVpcmVzVmFsdWUpO1xuICAgICAgICB0aGlzLmFjdGl2ZUZpbHRlcnMudXBkYXRlKGN1cnIgPT4ge1xuICAgICAgICAgICAgY3Vyclt0aGlzLnJvd0luZGV4KCldLm9wZXJhbmRDb25maWcgPSB0aGlzLmN1cnJlbnRPcGVyYW5kKCk7XG4gICAgICAgICAgICByZXR1cm4gWy4uLmN1cnJdO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5maWVsZFR5cGUgPT09IEZpbHRlclR5cGVFbnVtLlNlbGVjdCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5maWx0ZXJGaWVsZHMoKT8uZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5jdXJyZW50RmllbGQoKT8udmFsdWUpPy5hbGxvd2VkVmFsdWVzIHx8IFtdO1xuICAgICAgICAgICAgdGhpcy5maWVsZEFsbG93ZWRWYWx1ZXMuc2V0KHZhbHVlcy5tYXAodiA9PiAoeyB2YWx1ZTogdi5rZXksIHRleHQ6IHYudmFsdWUgfSkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVZhbHVlKHZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRmlsdGVycy51cGRhdGUoY3VyciA9PiB7XG4gICAgICAgICAgICBjdXJyW3RoaXMucm93SW5kZXgoKV0udmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBbLi4uY3Vycl07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUZpbHRlckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRmlsdGVycy51cGRhdGUoY3VyciA9PiB7XG4gICAgICAgICAgICBjdXJyLnNwbGljZSh0aGlzLnJvd0luZGV4KCksIDEpO1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5jdXJyXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVtb3ZlZC5lbWl0KCk7XG4gICAgfVxufVxuIiwiPHVwZC1zZWxlY3QgY2xhc3M9XCJ3LTEwMFwiIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiIFtpdGVtc109XCJmaWVsZHNPcHRpb25zKClcIiAoc2VsZWN0ZWRJdGVtKT1cIm9uU2VsZWN0RmllbGQoJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cInNlbGVjdGVkRmllbGQ/LnZhbHVlXCI+XG48L3VwZC1zZWxlY3Q+XG48dXBkLXNlbGVjdCBjbGFzcz1cInctMTAwXCIgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgW2l0ZW1zXT1cImNvbXBhcmlzb25PcGVyYXRvck9wdGlvbnMoKVwiXG4gICAgKHNlbGVjdGVkSXRlbSk9XCJvblNlbGVjdE9wZXJhbmQoJGV2ZW50KVwiIFt2YWx1ZV09XCJzZWxlY3RlZE9wZXJhbmQ/LnZhbHVlXCI+XG48L3VwZC1zZWxlY3Q+XG5cbkBpZiAoaXNWYWx1ZVNlY3Rpb25FbmFibGVkKCkpIHtcbiAgICBAc3dpdGNoIChmaWVsZFR5cGUpIHtcbiAgICAgICAgQGNhc2UgKEZpbHRlclR5cGVFbnVtLk51bWJlcikge1xuICAgICAgICAgICAgPHVwZC1pbnB1dCB3cmFwcGVyQ2xhc3Nlcz1cInctMTAwXCIgY3VzdG9tQ2xhc3Nlcz1cImgtMTAwXCIgdHlwZT1cIm51bWJlclwiICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiPjwvdXBkLWlucHV0PlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlIChGaWx0ZXJUeXBlRW51bS5EYXRlKSB7XG5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoRmlsdGVyVHlwZUVudW0uU2VsZWN0KSB7XG4gICAgICAgICAgICA8dXBkLXNlbGVjdCBjbGFzcz1cInctMTAwXCIgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgW2l0ZW1zXT1cImZpZWxkQWxsb3dlZFZhbHVlcygpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKT1cInVwZGF0ZVZhbHVlKCRldmVudD8udmFsdWUpXCIgW3ZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIj5cbiAgICAgICAgICAgIDwvdXBkLXNlbGVjdD5cbiAgICAgICAgfVxuICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8dXBkLWlucHV0IHdyYXBwZXJDbGFzc2VzPVwidy0xMDBcIiBjdXN0b21DbGFzc2VzPVwiaC0xMDBcIiB0eXBlPVwidGV4dFwiICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiPjwvdXBkLWlucHV0PlxuICAgICAgICB9XG4gICAgfVxufSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGgtMTAwXCIgZGlzYWJsZWQ+XG4gICAgPC9kaXY+XG59XG5cbjx1cGQtYnV0dG9uIGNsYXNzPVwiZmxleC1zaHJpbmstMVwiIGNvbG9yU3R5bGU9XCJkYW5nZXJcIiBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiBbaXNPdXRsaW5lXT1cInRydWVcIiBbaXNJY29uXT1cInRydWVcIlxuICAgIFtpY29uTW9kZWxdPVwie3RhYmxlckljb246J3gnfVwiIChjbGlja2VkKT1cInJlbW92ZUZpbHRlckl0ZW0oKVwiPjwvdXBkLWJ1dHRvbj4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFibGUvc3JjL2NvbXBvbmVudHMvZmlsdGVyLXJvdy9maWx0ZXItcm93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJsZS9zcmMvY29tcG9uZW50cy9maWx0ZXItcm93L2ZpbHRlci1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBR3JGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7OztBQVE1RixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQUxyRDs7UUFNMEIsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFFbkMsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBFLG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBRWhDLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF5QixDQUFDO1FBQ2pELGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDcEMsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLFFBQVEsQ0FB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UUFFbkgsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztZQUMxRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFXO1FBQ25CLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQXhIUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixvc0JDbEIvQixzaERBaUMrRTs7MkZEZmxFLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxnQkFBZ0I7OEJBS0osY0FBYztzQkFBbkMsV0FBVzt1QkFBQyxPQUFPO2dCQUVELE9BQU87c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIHNpZ25hbCwgaW5qZWN0LCBPbkluaXQsIGlucHV0LCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0U2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrJztcbmltcG9ydCB7IEZpbHRlclR5cGVFbnVtIH0gZnJvbSAnQHVwZGV2cy9zZGsvc3RvcmVzJztcbmltcG9ydCB7IE9wdGlvbmFsVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9zZWxlY3QnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5cbmltcG9ydCB7IEZpbHRlcnNPcGVyYW5kc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9hYnN0cmFjdGlvbnMvZmlsdGVycy1vcGVyYW5kcy5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbHRlckl0ZW1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBGaWx0ZXJPcGVyYW5kQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbHRlci1vcGVyYW5kLmNvbmZpZyc7XG5pbXBvcnQgeyBDdXJyZW50U2VhcmNoUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jdXJyZW50LXNlYXJjaC1yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1maWx0ZXItcm93JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ZpbHRlci1yb3cuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclJvd0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSB3cmFwcGVyQ2xhc3NlcyA9ICdkLWZsZXggZ2FwLTInO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHJlbW92ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEZpbHRlclR5cGVFbnVtID0gRmlsdGVyVHlwZUVudW07XG5cbiAgICBjb25maWcgPSBpbnB1dC5yZXF1aXJlZDxUYWJsZUNvbmZpZ01vZGVsPGFueT4+KCk7XG4gICAgcm93SW5kZXggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gICAgaXNEaXNhYmxlZCA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XG4gICAgZmlsdGVyRmllbGRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5zaG91bGRMb2FkRmlsdGVyRmllbGRzRnJvbVNlcnZlciA/IHRoaXMuY3VycmVudFNlYXJjaFJlcXVlc3RTZXJ2aWNlLmZpbHRlckZpZWxkcygpIDogdGhpcy5jb25maWcoKS5maWx0ZXJGaWVsZHMpO1xuICAgIGNvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmNvbHVtbnMpO1xuICAgIGN1cnJlbnRGaWx0ZXIgPSBpbnB1dDxGaWx0ZXJJdGVtTW9kZWw+KCk7XG4gICAgY3VycmVudEZpZWxkID0gc2lnbmFsPE9wdGlvbmFsVHlwZTxTZWxlY3RJdGVtPj4odW5kZWZpbmVkKTtcbiAgICBjdXJyZW50T3BlcmFuZCA9IHNpZ25hbDxPcHRpb25hbFR5cGU8RmlsdGVyT3BlcmFuZENvbmZpZz4+KHVuZGVmaW5lZCk7XG4gICAgZmllbGRzT3B0aW9ucyA9IHNpZ25hbDxTZWxlY3RJdGVtW10+KFtdKTtcbiAgICBjb21wYXJpc29uT3BlcmF0b3JPcHRpb25zID0gc2lnbmFsPFNlbGVjdEl0ZW1bXT4oW10pO1xuICAgIGZpZWxkQWxsb3dlZFZhbHVlcyA9IHNpZ25hbDxTZWxlY3RJdGVtW10+KFtdKTtcbiAgICBpc1ZhbHVlU2VjdGlvbkVuYWJsZWQgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICBnZXQgZmllbGRUeXBlKCk6IEZpbHRlclR5cGVFbnVtIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEZpZWxkKCk/Lm9iamVjdERhdGEgfHwgRmlsdGVyVHlwZUVudW0uVGV4dDtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGVkRmllbGQoKTogT3B0aW9uYWxUeXBlPFNlbGVjdEl0ZW0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEZpbHRlciA9IHRoaXMuY3VycmVudEZpbHRlcigpO1xuICAgICAgICByZXR1cm4gISFjdXJyZW50RmlsdGVyPy5uYW1lXG4gICAgICAgICAgICA/IHRoaXMuZmllbGRzT3B0aW9ucygpLmZpbmQoZiA9PiBmLnZhbHVlID09PSBjdXJyZW50RmlsdGVyLm5hbWUpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGVkT3BlcmFuZCgpOiBPcHRpb25hbFR5cGU8U2VsZWN0SXRlbT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50RmlsdGVyID0gdGhpcy5jdXJyZW50RmlsdGVyKCk7XG4gICAgICAgIHJldHVybiAhIWN1cnJlbnRGaWx0ZXI/Lm5hbWVcbiAgICAgICAgICAgID8gdGhpcy5jb21wYXJpc29uT3BlcmF0b3JPcHRpb25zKCkuZmluZChjbyA9PiBjby52YWx1ZSA9PT0gY3VycmVudEZpbHRlci5vcGVyYW5kQ29uZmlnPy5vcGVyYW5kKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGdldCBzZWxlY3RlZFZhbHVlKCk6IE9wdGlvbmFsVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEZpbHRlciA9IHRoaXMuY3VycmVudEZpbHRlcigpO1xuICAgICAgICByZXR1cm4gISFjdXJyZW50RmlsdGVyPy5uYW1lID8gY3VycmVudEZpbHRlci52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGN1cnJlbnRPcGVyYW5kczogRmlsdGVyT3BlcmFuZENvbmZpZ1tdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJzT3BlcmFuZHNTZXJ2aWNlID0gaW5qZWN0KEZpbHRlcnNPcGVyYW5kc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dFNlcnZpY2UgPSBpbmplY3QoVGV4dFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudFNlYXJjaFJlcXVlc3RTZXJ2aWNlID0gaW5qZWN0KEN1cnJlbnRTZWFyY2hSZXF1ZXN0U2VydmljZSk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gUHJpb3JpdHkgMTogVXNlci1kZWZpbmVkIGZpbHRlciBmaWVsZHNcbiAgICAgICAgaWYgKCEhdGhpcy5maWx0ZXJGaWVsZHMoKSAmJiB0aGlzLmZpbHRlckZpZWxkcygpIS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkc09wdGlvbnMuc2V0KFxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyRmllbGRzKCkhLm1hcChmID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGYuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdERhdGE6IGYudHlwZVxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQcmlvcml0eSAyOiBGYWxsYmFjayB0byBjb2x1bW5zXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWVsZHNPcHRpb25zLnNldChcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMoKS5maWx0ZXIoYyA9PiAhIWMudGl0bGUpLm1hcChjID0+XG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdGhpcy50ZXh0U2VydmljZS5nZXRUZXh0KGMudGl0bGUpLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3REYXRhOiBjLmRhdGFUeXBlXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5zZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0RmllbGQodGhpcy5zZWxlY3RlZEZpZWxkKTtcblxuICAgICAgICAgICAgaWYgKCEhdGhpcy5zZWxlY3RlZE9wZXJhbmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0T3BlcmFuZCh0aGlzLnNlbGVjdGVkT3BlcmFuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghIXRoaXMuc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5zZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0RmllbGQoaXRlbT86IFNlbGVjdEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RmllbGQuc2V0KGl0ZW0pO1xuXG4gICAgICAgIGNvbnN0IGRhdGFUeXBlID0gaXRlbT8ub2JqZWN0RGF0YTtcblxuICAgICAgICBpZiAoISFkYXRhVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50T3BlcmFuZHMgPSB0aGlzLmZpbHRlcnNPcGVyYW5kc1NlcnZpY2UuZ2V0T3BlcmFuZHMoZGF0YVR5cGUpO1xuICAgICAgICAgICAgdGhpcy5jb21wYXJpc29uT3BlcmF0b3JPcHRpb25zLnNldChcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRPcGVyYW5kcy5tYXAobyA9PiAoeyB2YWx1ZTogby5vcGVyYW5kLCB0ZXh0OiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQoby50ZXh0KSwgbGlzdEl0ZW06IHsgaWNvbjogby5pY29uIH0gfSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb21wYXJpc29uT3BlcmF0b3JPcHRpb25zLnNldChbXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN1cnJlbnRTZWFyY2hSZXF1ZXN0U2VydmljZS51cGRhdGVGaWx0ZXJCeUluZGV4KHRoaXMucm93SW5kZXgoKSwge1xuICAgICAgICAgICAgY29sdW1uOiB0aGlzLmN1cnJlbnRGaWVsZCgpPy52YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMuZmllbGRUeXBlLFxuICAgICAgICAgICAgZGF0YVR5cGU6IGRhdGFUeXBlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uU2VsZWN0T3BlcmFuZChpdGVtPzogU2VsZWN0SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRPcGVyYW5kLnNldCh0aGlzLmN1cnJlbnRPcGVyYW5kcy5maW5kKGNvID0+IGNvLm9wZXJhbmQgPT09IGl0ZW0/LnZhbHVlKSk7XG4gICAgICAgIHRoaXMuaXNWYWx1ZVNlY3Rpb25FbmFibGVkLnNldCghIXRoaXMuY3VycmVudE9wZXJhbmQoKT8ucmVxdWlyZXNWYWx1ZSk7XG4gICAgICAgIHRoaXMuY3VycmVudFNlYXJjaFJlcXVlc3RTZXJ2aWNlLnVwZGF0ZUZpbHRlckJ5SW5kZXgodGhpcy5yb3dJbmRleCgpLCB7IG9wZXJhbmQ6IHRoaXMuY3VycmVudE9wZXJhbmQoKT8ub3BlcmFuZCB9KTtcblxuICAgICAgICBpZiAodGhpcy5maWVsZFR5cGUgPT09IEZpbHRlclR5cGVFbnVtLlNlbGVjdCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5maWx0ZXJGaWVsZHMoKT8uZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5jdXJyZW50RmllbGQoKT8udmFsdWUpPy5hbGxvd2VkVmFsdWVzIHx8IFtdO1xuICAgICAgICAgICAgdGhpcy5maWVsZEFsbG93ZWRWYWx1ZXMuc2V0KHZhbHVlcy5tYXAodiA9PiAoeyB2YWx1ZTogdi5rZXksIHRleHQ6IHYudmFsdWUgfSkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVZhbHVlKHZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlYXJjaFJlcXVlc3RTZXJ2aWNlLnVwZGF0ZUZpbHRlckJ5SW5kZXgodGhpcy5yb3dJbmRleCgpLCB7IHZhbHVlIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUZpbHRlckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlYXJjaFJlcXVlc3RTZXJ2aWNlLnJlbW92ZUZpbHRlckJ5SW5kZXgodGhpcy5yb3dJbmRleCgpKTtcbiAgICAgICAgdGhpcy5yZW1vdmVkLmVtaXQoKTtcbiAgICB9XG59XG4iLCI8dXBkLXNlbGVjdCBjbGFzcz1cInctMTAwXCIgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgW2l0ZW1zXT1cImZpZWxkc09wdGlvbnMoKVwiIChzZWxlY3RlZEl0ZW0pPVwib25TZWxlY3RGaWVsZCgkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWRGaWVsZD8udmFsdWVcIj5cbjwvdXBkLXNlbGVjdD5cbjx1cGQtc2VsZWN0IGNsYXNzPVwidy0xMDBcIiBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiBbaXRlbXNdPVwiY29tcGFyaXNvbk9wZXJhdG9yT3B0aW9ucygpXCJcbiAgICAoc2VsZWN0ZWRJdGVtKT1cIm9uU2VsZWN0T3BlcmFuZCgkZXZlbnQpXCIgW3ZhbHVlXT1cInNlbGVjdGVkT3BlcmFuZD8udmFsdWVcIj5cbjwvdXBkLXNlbGVjdD5cblxuQGlmIChpc1ZhbHVlU2VjdGlvbkVuYWJsZWQoKSkge1xuICAgIEBzd2l0Y2ggKGZpZWxkVHlwZSkge1xuICAgICAgICBAY2FzZSAoRmlsdGVyVHlwZUVudW0uTnVtYmVyKSB7XG4gICAgICAgICAgICA8dXBkLWlucHV0IHdyYXBwZXJDbGFzc2VzPVwidy0xMDBcIiBjdXN0b21DbGFzc2VzPVwiaC0xMDBcIiB0eXBlPVwibnVtYmVyXCIgKHZhbHVlQ2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCI+PC91cGQtaW5wdXQ+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKEZpbHRlclR5cGVFbnVtLkRhdGUpIHtcblxuICAgICAgICB9XG4gICAgICAgIEBjYXNlIChGaWx0ZXJUeXBlRW51bS5TZWxlY3QpIHtcbiAgICAgICAgICAgIDx1cGQtc2VsZWN0IGNsYXNzPVwidy0xMDBcIiBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiBbaXRlbXNdPVwiZmllbGRBbGxvd2VkVmFsdWVzKClcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pPVwidXBkYXRlVmFsdWUoJGV2ZW50Py52YWx1ZSlcIiBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiPlxuICAgICAgICAgICAgPC91cGQtc2VsZWN0PlxuICAgICAgICB9XG4gICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDx1cGQtaW5wdXQgd3JhcHBlckNsYXNzZXM9XCJ3LTEwMFwiIGN1c3RvbUNsYXNzZXM9XCJoLTEwMFwiIHR5cGU9XCJ0ZXh0XCIgKHZhbHVlQ2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCI+PC91cGQtaW5wdXQ+XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaC0xMDBcIiBkaXNhYmxlZD5cbiAgICA8L2Rpdj5cbn1cblxuPHVwZC1idXR0b24gY2xhc3M9XCJmbGV4LXNocmluay0xXCIgY29sb3JTdHlsZT1cImRhbmdlclwiIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiIFtpc091dGxpbmVdPVwidHJ1ZVwiIFtpc0ljb25dPVwidHJ1ZVwiXG4gICAgW2ljb25Nb2RlbF09XCJ7dGFibGVySWNvbjoneCd9XCIgKGNsaWNrZWQpPVwicmVtb3ZlRmlsdGVySXRlbSgpXCI+PC91cGQtYnV0dG9uPiJdfQ==
@@ -1,8 +1,9 @@
1
- import { Component, input, HostBinding, signal, computed, model, effect, inject } from '@angular/core';
1
+ import { Component, input, HostBinding, signal, computed, effect, inject } from '@angular/core';
2
2
  import { BaseComponent } from '@updevs/sdk/layout';
3
3
  import { Subject, distinctUntilChanged, debounceTime } from 'rxjs';
4
4
  import { FilterTools } from '../../tools/filters.tools';
5
5
  import { FiltersOperandsService } from '../../abstractions/filters-operands.service';
6
+ import { CurrentSearchRequestService } from '../../services/current-search-request.service';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common";
8
9
  import * as i2 from "@jsverse/transloco";
@@ -14,36 +15,31 @@ export class SearchSectionComponent extends BaseComponent {
14
15
  constructor() {
15
16
  super();
16
17
  this.wrapperClass = 'card-body border-bottom py-3 d-flex flex-column gap-2';
17
- this.searchRequest = model.required();
18
- this.hasChanges = model.required();
19
18
  this.columns = input.required();
20
- this.isSearching = input.required();
21
- this.searchRequestSubject = input.required();
22
19
  this.config = input.required();
23
20
  this.actionsTpl = input();
24
- this.activeFilters = signal([]);
21
+ this.activeFilters = computed(() => FilterTools.convertToFilterItem(this.currentSearchRequestService.searchRequest().filters?.filter(af => !af.isHidden) || [], this.filtersOperandsService.getAllOperands()));
25
22
  this.isFilterSectionOpen = signal(false);
26
- this.canApplyFilters = computed(() => this.activeFilters().length > 0
27
- && this.activeFilters().every(af => !af.isHidden && !!af.name && !!af.operandConfig?.operand && (!af.operandConfig?.requiresValue || !!af.value)));
28
- this.visibleFiltersCount = computed(() => this.searchRequest().filters?.filter(af => !af.isHidden).length || 0);
29
- this.canPerformActions = computed(() => this.canApplyFilters() && !this.isSearching());
30
- this.badgeConfig = computed(() => this.visibleFiltersCount() > 0
23
+ this.canApplyFilters = computed(() => this.activeFilters().length > 0 && this.activeFilters().every(af => {
24
+ const valid = !af.isHidden && !!af.name && !!af.operandConfig?.operand && (!af.operandConfig?.requiresValue || !!af.value);
25
+ return valid;
26
+ }));
27
+ this.canPerformActions = computed(() => this.canApplyFilters() && !this.currentSearchRequestService.isSearching());
28
+ this.badgeConfig = computed(() => this.currentSearchRequestService.visibleFilterCount() > 0
31
29
  ? ({
32
30
  isNotification: true,
33
31
  isPill: true,
34
32
  bgColor: 'primary-lt',
35
- text: { text: this.visibleFiltersCount().toString(), isTranslated: true }
33
+ text: { text: this.currentSearchRequestService.visibleFilterCount().toString(), isTranslated: true }
36
34
  })
37
35
  : undefined);
38
36
  this.filterSectionBtnColor = computed(() => this.isFilterSectionOpen() ? 'primary' : undefined);
39
37
  this.searchSubject = new Subject();
40
38
  this.filtersOperandsService = inject(FiltersOperandsService);
39
+ this.currentSearchRequestService = inject(CurrentSearchRequestService);
41
40
  effect(() => {
42
- if (this.visibleFiltersCount() > 0) {
43
- this.activeFilters.set([...FilterTools.convertToFilterItem(this.searchRequest().filters?.filter(af => !af.isHidden) || [], this.filtersOperandsService.getAllOperands())]);
44
- }
45
- else {
46
- this.activeFilters.set([]);
41
+ // Auto-close filter section when all filters are removed
42
+ if (this.currentSearchRequestService.visibleFilterCount() === 0 && this.isFilterSectionOpen()) {
47
43
  this.isFilterSectionOpen.set(false);
48
44
  }
49
45
  }, { allowSignalWrites: true });
@@ -51,17 +47,14 @@ export class SearchSectionComponent extends BaseComponent {
51
47
  ngOnInit() {
52
48
  const searchSub = this.searchSubject
53
49
  .pipe(distinctUntilChanged(), debounceTime(this.config().searchInputDebounceTime))
54
- .subscribe(term => this.searchRequestSubject().next({
55
- ...this.searchRequest(),
56
- description: term
57
- }));
50
+ .subscribe(term => this.currentSearchRequestService.setDescription(term));
58
51
  this.addSubscriptions(searchSub);
59
52
  }
60
53
  search() {
61
- this.searchRequestSubject().next({
62
- ...this.searchRequest(),
54
+ this.currentSearchRequestService.patchSearchRequest({
63
55
  filters: FilterTools.convertToRequestFilter(this.activeFilters(), this.config().filterFields, this.config().columns)
64
56
  });
57
+ this.currentSearchRequestService.triggerSearch();
65
58
  }
66
59
  toggleFilterSection() {
67
60
  if (this.activeFilters().length === 0) {
@@ -76,19 +69,16 @@ export class SearchSectionComponent extends BaseComponent {
76
69
  this.search();
77
70
  }
78
71
  addEmptyFilterRow() {
79
- this.activeFilters.update(curr => {
80
- curr.push({});
81
- return [...curr];
82
- });
72
+ this.currentSearchRequestService.addFilter({});
83
73
  }
84
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SearchSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SearchSectionComponent, selector: "upd-search-section", inputs: { searchRequest: { classPropertyName: "searchRequest", publicName: "searchRequest", isSignal: true, isRequired: true, transformFunction: null }, hasChanges: { classPropertyName: "hasChanges", publicName: "hasChanges", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, isSearching: { classPropertyName: "isSearching", publicName: "isSearching", isSignal: true, isRequired: true, transformFunction: null }, searchRequestSubject: { classPropertyName: "searchRequestSubject", publicName: "searchRequestSubject", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, actionsTpl: { classPropertyName: "actionsTpl", publicName: "actionsTpl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchRequest: "searchRequestChange", hasChanges: "hasChangesChange" }, host: { properties: { "class": "this.wrapperClass" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Table'\">\n @if (!!actionsTpl()) {\n <ng-template [ngTemplateOutlet]=\"actionsTpl()!\"></ng-template>\n }\n\n <div class=\"d-flex align-items-center gap-2\">\n <upd-input wrapperClasses=\"w-100\" [placeholder]=\"{text:'UpDevs.Table.Search', isTranslated:false}\"\n [isAppendButton]=\"true\" (valueChange)=\"searchSubject.next($event)\" [value]=\"searchRequest().description\">\n <ng-template updInputAppend>\n <upd-button [isIcon]=\"true\" [colorStyle]=\"filterSectionBtnColor()\" (clicked)=\"toggleFilterSection()\"\n [badgeConfig]=\"badgeConfig()\">\n <upd-icon [tablerIcon]=\"isFilterSectionOpen() ? 'filter-up' : 'filter-down'\"\n [tablerIconSize]=\"20\"></upd-icon>\n </upd-button>\n </ng-template>\n </upd-input>\n </div>\n\n @if (isFilterSectionOpen()) {\n @for (row of activeFilters(); track row; let i = $index) {\n <upd-filter-row [store]=\"config().store\" [currentFilter]=\"row\" [(activeFilters)]=\"activeFilters\"\n [columns]=\"columns()\" [rowIndex]=\"i\" (removed)=\"onRowRemoved()\" [isDisabled]=\"isSearching()\"\n [filterFields]=\"config().filterFields\">\n </upd-filter-row>\n }\n\n <div class=\"ms-auto d-flex gap-2\">\n <upd-button customClasses=\"gap-2\" colorStyle=\"primary\" [isOutline]=\"true\" (clicked)=\"addEmptyFilterRow()\"\n [isDisabled]=\"!canPerformActions()\">\n <upd-icon tablerIcon=\"plus\" tablerIconWeight=\"bold\" [tablerIconSize]=\"20\"></upd-icon>\n {{ t('AddNewFilter') }}\n </upd-button>\n <upd-button customClasses=\"gap-2\" colorStyle=\"success\" [isDisabled]=\"!canPerformActions()\"\n (clicked)=\"search()\">\n <upd-icon tablerIcon=\"checks\" tablerIconWeight=\"bold\" [tablerIconSize]=\"20\"></upd-icon>\n {{ t('ApplyFilters') }}\n </upd-button>\n </div>\n }\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i4.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "component", type: i5.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i5.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "component", type: i6.FilterRowComponent, selector: "upd-filter-row", inputs: ["activeFilters", "rowIndex", "columns", "isDisabled", "store", "filterFields", "currentFilter"], outputs: ["removed", "activeFiltersChange"] }] }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SearchSectionComponent, selector: "upd-search-section", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, actionsTpl: { classPropertyName: "actionsTpl", publicName: "actionsTpl", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.wrapperClass" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Table'\">\n @if (!!actionsTpl()) {\n <ng-template [ngTemplateOutlet]=\"actionsTpl()!\"></ng-template>\n }\n\n <div class=\"d-flex align-items-center gap-2\">\n <upd-input wrapperClasses=\"w-100\" [placeholder]=\"{text:'UpDevs.Table.Search', isTranslated:false}\"\n [isAppendButton]=\"true\" (valueChange)=\"searchSubject.next($event)\"\n [value]=\"currentSearchRequestService.searchRequest().description\">\n <ng-template updInputAppend>\n <upd-button [isIcon]=\"true\" [colorStyle]=\"filterSectionBtnColor()\" (clicked)=\"toggleFilterSection()\"\n [badgeConfig]=\"badgeConfig()\">\n <upd-icon [tablerIcon]=\"isFilterSectionOpen() ? 'filter-up' : 'filter-down'\"\n [tablerIconSize]=\"20\"></upd-icon>\n </upd-button>\n </ng-template>\n </upd-input>\n </div>\n\n @if (isFilterSectionOpen()) {\n @for (row of activeFilters(); track row.name; let i = $index) {\n <upd-filter-row [currentFilter]=\"row\" [config]=\"config()\" [rowIndex]=\"i\" (removed)=\"onRowRemoved()\"\n [isDisabled]=\"currentSearchRequestService.isSearching()\">\n </upd-filter-row>\n }\n\n <div class=\"ms-auto d-flex gap-2\">\n <upd-button customClasses=\"gap-2\" colorStyle=\"primary\" [isOutline]=\"true\" (clicked)=\"addEmptyFilterRow()\"\n [isDisabled]=\"!canPerformActions()\">\n <upd-icon tablerIcon=\"plus\" tablerIconWeight=\"bold\" [tablerIconSize]=\"20\"></upd-icon>\n {{ t('AddNewFilter') }}\n </upd-button>\n <upd-button customClasses=\"gap-2\" colorStyle=\"success\" [isDisabled]=\"!canPerformActions()\"\n (clicked)=\"search()\">\n <upd-icon tablerIcon=\"checks\" tablerIconWeight=\"bold\" [tablerIconSize]=\"20\"></upd-icon>\n {{ t('ApplyFilters') }}\n </upd-button>\n </div>\n }\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i4.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "component", type: i5.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i5.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "component", type: i6.FilterRowComponent, selector: "upd-filter-row", inputs: ["config", "rowIndex", "isDisabled", "currentFilter"], outputs: ["removed"] }] }); }
86
76
  }
87
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SearchSectionComponent, decorators: [{
88
78
  type: Component,
89
- args: [{ selector: 'upd-search-section', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Table'\">\n @if (!!actionsTpl()) {\n <ng-template [ngTemplateOutlet]=\"actionsTpl()!\"></ng-template>\n }\n\n <div class=\"d-flex align-items-center gap-2\">\n <upd-input wrapperClasses=\"w-100\" [placeholder]=\"{text:'UpDevs.Table.Search', isTranslated:false}\"\n [isAppendButton]=\"true\" (valueChange)=\"searchSubject.next($event)\" [value]=\"searchRequest().description\">\n <ng-template updInputAppend>\n <upd-button [isIcon]=\"true\" [colorStyle]=\"filterSectionBtnColor()\" (clicked)=\"toggleFilterSection()\"\n [badgeConfig]=\"badgeConfig()\">\n <upd-icon [tablerIcon]=\"isFilterSectionOpen() ? 'filter-up' : 'filter-down'\"\n [tablerIconSize]=\"20\"></upd-icon>\n </upd-button>\n </ng-template>\n </upd-input>\n </div>\n\n @if (isFilterSectionOpen()) {\n @for (row of activeFilters(); track row; let i = $index) {\n <upd-filter-row [store]=\"config().store\" [currentFilter]=\"row\" [(activeFilters)]=\"activeFilters\"\n [columns]=\"columns()\" [rowIndex]=\"i\" (removed)=\"onRowRemoved()\" [isDisabled]=\"isSearching()\"\n [filterFields]=\"config().filterFields\">\n </upd-filter-row>\n }\n\n <div class=\"ms-auto d-flex gap-2\">\n <upd-button customClasses=\"gap-2\" colorStyle=\"primary\" [isOutline]=\"true\" (clicked)=\"addEmptyFilterRow()\"\n [isDisabled]=\"!canPerformActions()\">\n <upd-icon tablerIcon=\"plus\" tablerIconWeight=\"bold\" [tablerIconSize]=\"20\"></upd-icon>\n {{ t('AddNewFilter') }}\n </upd-button>\n <upd-button customClasses=\"gap-2\" colorStyle=\"success\" [isDisabled]=\"!canPerformActions()\"\n (clicked)=\"search()\">\n <upd-icon tablerIcon=\"checks\" tablerIconWeight=\"bold\" [tablerIconSize]=\"20\"></upd-icon>\n {{ t('ApplyFilters') }}\n </upd-button>\n </div>\n }\n</ng-container>" }]
79
+ args: [{ selector: 'upd-search-section', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Table'\">\n @if (!!actionsTpl()) {\n <ng-template [ngTemplateOutlet]=\"actionsTpl()!\"></ng-template>\n }\n\n <div class=\"d-flex align-items-center gap-2\">\n <upd-input wrapperClasses=\"w-100\" [placeholder]=\"{text:'UpDevs.Table.Search', isTranslated:false}\"\n [isAppendButton]=\"true\" (valueChange)=\"searchSubject.next($event)\"\n [value]=\"currentSearchRequestService.searchRequest().description\">\n <ng-template updInputAppend>\n <upd-button [isIcon]=\"true\" [colorStyle]=\"filterSectionBtnColor()\" (clicked)=\"toggleFilterSection()\"\n [badgeConfig]=\"badgeConfig()\">\n <upd-icon [tablerIcon]=\"isFilterSectionOpen() ? 'filter-up' : 'filter-down'\"\n [tablerIconSize]=\"20\"></upd-icon>\n </upd-button>\n </ng-template>\n </upd-input>\n </div>\n\n @if (isFilterSectionOpen()) {\n @for (row of activeFilters(); track row.name; let i = $index) {\n <upd-filter-row [currentFilter]=\"row\" [config]=\"config()\" [rowIndex]=\"i\" (removed)=\"onRowRemoved()\"\n [isDisabled]=\"currentSearchRequestService.isSearching()\">\n </upd-filter-row>\n }\n\n <div class=\"ms-auto d-flex gap-2\">\n <upd-button customClasses=\"gap-2\" colorStyle=\"primary\" [isOutline]=\"true\" (clicked)=\"addEmptyFilterRow()\"\n [isDisabled]=\"!canPerformActions()\">\n <upd-icon tablerIcon=\"plus\" tablerIconWeight=\"bold\" [tablerIconSize]=\"20\"></upd-icon>\n {{ t('AddNewFilter') }}\n </upd-button>\n <upd-button customClasses=\"gap-2\" colorStyle=\"success\" [isDisabled]=\"!canPerformActions()\"\n (clicked)=\"search()\">\n <upd-icon tablerIcon=\"checks\" tablerIconWeight=\"bold\" [tablerIconSize]=\"20\"></upd-icon>\n {{ t('ApplyFilters') }}\n </upd-button>\n </div>\n }\n</ng-container>" }]
90
80
  }], ctorParameters: () => [], propDecorators: { wrapperClass: [{
91
81
  type: HostBinding,
92
82
  args: ['class']
93
83
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYmxlL3NyYy9jb21wb25lbnRzL3NlYXJjaC1zZWN0aW9uL3NlYXJjaC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJsZS9zcmMvY29tcG9uZW50cy9zZWFyY2gtc2VjdGlvbi9zZWFyY2gtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7OztBQU9yRixNQUFNLE9BQU8sc0JBQTBCLFNBQVEsYUFBYTtJQWtDeEQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxDVSxpQkFBWSxHQUFHLHVEQUF1RCxDQUFDO1FBRXBGLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBc0IsQ0FBQztRQUNyRCxlQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFxQixDQUFDO1FBQzlDLGdCQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBQ3hDLHlCQUFvQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQStCLENBQUM7UUFDckUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXVCLENBQUM7UUFDL0MsZUFBVSxHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDOUMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztlQUNsRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQy9CLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQy9HLENBQ0osQ0FBQztRQUNPLHdCQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRyxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEYsZ0JBQVcsR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRSxDQUM1RCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO2dCQUNDLGNBQWMsRUFBRSxJQUFJO2dCQUNwQixNQUFNLEVBQUUsSUFBSTtnQkFDWixPQUFPLEVBQUUsWUFBWTtnQkFDckIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUU7YUFDNUUsQ0FBQztZQUNGLENBQUMsQ0FBQyxTQUFTLENBQ2xCLENBQUM7UUFDTywwQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFtQixTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdHLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUU5QiwyQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUtyRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ2xCLENBQUMsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FDckosQ0FBQztZQUNOLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUTtRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhO2FBQy9CLElBQUksQ0FDRCxvQkFBb0IsRUFBRSxFQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQ3REO2FBQ0EsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDO1lBQzdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixXQUFXLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQ0wsQ0FBQztRQUVOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQztZQUM3QixHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsT0FBTyxFQUFFLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ3ZILENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E3RlEsc0JBQXNCO2tHQUF0QixzQkFBc0Isd3FDQ2xCbkMsMG1FQXVDZTs7MkZEckJGLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDSSxvQkFBb0I7d0RBS1IsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgVGVtcGxhdGVSZWYsIEhvc3RCaW5kaW5nLCBzaWduYWwsIGNvbXB1dGVkLCBtb2RlbCwgT25Jbml0LCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoUmVxdWVzdE1vZGVsIH0gZnJvbSAnQHVwZGV2cy9zZGsvc3RvcmVzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlLCBCZ0NvbG9yU3R5bGVUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuaW1wb3J0IHsgQmFkZ2VDb25maWcgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGaWx0ZXJJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsdGVyLWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgVGFibGVDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgRmlsdGVyVG9vbHMgfSBmcm9tICcuLi8uLi90b29scy9maWx0ZXJzLnRvb2xzJztcbmltcG9ydCB7IEJhc2VDb2x1bW5Nb2RlbCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0aW9ucy9iYXNlLWNvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBGaWx0ZXJzT3BlcmFuZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zL2ZpbHRlcnMtb3BlcmFuZHMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLXNlYXJjaC1zZWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zZWFyY2gtc2VjdGlvbi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VjdGlvbkNvbXBvbmVudDxUPiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSB3cmFwcGVyQ2xhc3MgPSAnY2FyZC1ib2R5IGJvcmRlci1ib3R0b20gcHktMyBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTInO1xuXG4gICAgcmVhZG9ubHkgc2VhcmNoUmVxdWVzdCA9IG1vZGVsLnJlcXVpcmVkPFNlYXJjaFJlcXVlc3RNb2RlbD4oKTtcbiAgICByZWFkb25seSBoYXNDaGFuZ2VzID0gbW9kZWwucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcbiAgICByZWFkb25seSBjb2x1bW5zID0gaW5wdXQucmVxdWlyZWQ8QmFzZUNvbHVtbk1vZGVsW10+KCk7XG4gICAgcmVhZG9ubHkgaXNTZWFyY2hpbmcgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xuICAgIHJlYWRvbmx5IHNlYXJjaFJlcXVlc3RTdWJqZWN0ID0gaW5wdXQucmVxdWlyZWQ8U3ViamVjdDxTZWFyY2hSZXF1ZXN0TW9kZWw+PigpO1xuICAgIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPFRhYmxlQ29uZmlnTW9kZWw8VD4+KCk7XG4gICAgcmVhZG9ubHkgYWN0aW9uc1RwbCA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gICAgcmVhZG9ubHkgYWN0aXZlRmlsdGVycyA9IHNpZ25hbDxGaWx0ZXJJdGVtTW9kZWxbXT4oW10pO1xuICAgIHJlYWRvbmx5IGlzRmlsdGVyU2VjdGlvbk9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICAgIHJlYWRvbmx5IGNhbkFwcGx5RmlsdGVycyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWN0aXZlRmlsdGVycygpLmxlbmd0aCA+IDBcbiAgICAgICAgJiYgdGhpcy5hY3RpdmVGaWx0ZXJzKCkuZXZlcnkoYWYgPT5cbiAgICAgICAgICAgICFhZi5pc0hpZGRlbiAmJiAhIWFmLm5hbWUgJiYgISFhZi5vcGVyYW5kQ29uZmlnPy5vcGVyYW5kICYmICghYWYub3BlcmFuZENvbmZpZz8ucmVxdWlyZXNWYWx1ZSB8fCAhIWFmLnZhbHVlKVxuICAgICAgICApXG4gICAgKTtcbiAgICByZWFkb25seSB2aXNpYmxlRmlsdGVyc0NvdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZWFyY2hSZXF1ZXN0KCkuZmlsdGVycz8uZmlsdGVyKGFmID0+ICFhZi5pc0hpZGRlbikubGVuZ3RoIHx8IDApO1xuICAgIHJlYWRvbmx5IGNhblBlcmZvcm1BY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jYW5BcHBseUZpbHRlcnMoKSAmJiAhdGhpcy5pc1NlYXJjaGluZygpKTtcbiAgICByZWFkb25seSBiYWRnZUNvbmZpZyA9IGNvbXB1dGVkPE9wdGlvbmFsVHlwZTxCYWRnZUNvbmZpZz4+KCgpID0+XG4gICAgICAgIHRoaXMudmlzaWJsZUZpbHRlcnNDb3VudCgpID4gMFxuICAgICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICAgIGlzTm90aWZpY2F0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIGlzUGlsbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBiZ0NvbG9yOiAncHJpbWFyeS1sdCcsXG4gICAgICAgICAgICAgICAgdGV4dDogeyB0ZXh0OiB0aGlzLnZpc2libGVGaWx0ZXJzQ291bnQoKS50b1N0cmluZygpLCBpc1RyYW5zbGF0ZWQ6IHRydWUgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgKTtcbiAgICByZWFkb25seSBmaWx0ZXJTZWN0aW9uQnRuQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlzRmlsdGVyU2VjdGlvbk9wZW4oKSA/IDxCZ0NvbG9yU3R5bGVUeXBlPidwcmltYXJ5JyA6IHVuZGVmaW5lZCk7XG4gICAgcmVhZG9ubHkgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyc09wZXJhbmRzU2VydmljZSA9IGluamVjdChGaWx0ZXJzT3BlcmFuZHNTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlRmlsdGVyc0NvdW50KCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJzLnNldChcbiAgICAgICAgICAgICAgICAgICAgWy4uLkZpbHRlclRvb2xzLmNvbnZlcnRUb0ZpbHRlckl0ZW0odGhpcy5zZWFyY2hSZXF1ZXN0KCkuZmlsdGVycz8uZmlsdGVyKGFmID0+ICFhZi5pc0hpZGRlbikgfHwgW10sIHRoaXMuZmlsdGVyc09wZXJhbmRzU2VydmljZS5nZXRBbGxPcGVyYW5kcygpKV1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUZpbHRlcnMuc2V0KFtdKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyU2VjdGlvbk9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoU3ViID0gdGhpcy5zZWFyY2hTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmNvbmZpZygpLnNlYXJjaElucHV0RGVib3VuY2VUaW1lKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0ZXJtID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXF1ZXN0U3ViamVjdCgpLm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnNlYXJjaFJlcXVlc3QoKSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRlcm1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnMoc2VhcmNoU3ViKTtcbiAgICB9XG5cbiAgICBzZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoUmVxdWVzdFN1YmplY3QoKS5uZXh0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2VhcmNoUmVxdWVzdCgpLFxuICAgICAgICAgICAgZmlsdGVyczogRmlsdGVyVG9vbHMuY29udmVydFRvUmVxdWVzdEZpbHRlcih0aGlzLmFjdGl2ZUZpbHRlcnMoKSwgdGhpcy5jb25maWcoKS5maWx0ZXJGaWVsZHMsIHRoaXMuY29uZmlnKCkuY29sdW1ucylcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlRmlsdGVyU2VjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVycygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5hZGRFbXB0eUZpbHRlclJvdygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0ZpbHRlclNlY3Rpb25PcGVuLnVwZGF0ZShpc09wZW4gPT4gIWlzT3Blbik7XG4gICAgfVxuXG4gICAgb25Sb3dSZW1vdmVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVGaWx0ZXJzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmlzRmlsdGVyU2VjdGlvbk9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoKCk7XG4gICAgfVxuXG4gICAgYWRkRW1wdHlGaWx0ZXJSb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRmlsdGVycy51cGRhdGUoY3VyciA9PiB7XG4gICAgICAgICAgICBjdXJyLnB1c2goe30pO1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5jdXJyXTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHByZWZpeDogJ1VwRGV2cy5UYWJsZSdcIj5cbiAgICBAaWYgKCEhYWN0aW9uc1RwbCgpKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb25zVHBsKCkhXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICA8dXBkLWlucHV0IHdyYXBwZXJDbGFzc2VzPVwidy0xMDBcIiBbcGxhY2Vob2xkZXJdPVwie3RleHQ6J1VwRGV2cy5UYWJsZS5TZWFyY2gnLCBpc1RyYW5zbGF0ZWQ6ZmFsc2V9XCJcbiAgICAgICAgICAgIFtpc0FwcGVuZEJ1dHRvbl09XCJ0cnVlXCIgKHZhbHVlQ2hhbmdlKT1cInNlYXJjaFN1YmplY3QubmV4dCgkZXZlbnQpXCIgW3ZhbHVlXT1cInNlYXJjaFJlcXVlc3QoKS5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHVwZElucHV0QXBwZW5kPlxuICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtpc0ljb25dPVwidHJ1ZVwiIFtjb2xvclN0eWxlXT1cImZpbHRlclNlY3Rpb25CdG5Db2xvcigpXCIgKGNsaWNrZWQpPVwidG9nZ2xlRmlsdGVyU2VjdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgW2JhZGdlQ29uZmlnXT1cImJhZGdlQ29uZmlnKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIFt0YWJsZXJJY29uXT1cImlzRmlsdGVyU2VjdGlvbk9wZW4oKSA/ICdmaWx0ZXItdXAnIDogJ2ZpbHRlci1kb3duJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVySWNvblNpemVdPVwiMjBcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdXBkLWlucHV0PlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChpc0ZpbHRlclNlY3Rpb25PcGVuKCkpIHtcbiAgICAgICAgQGZvciAocm93IG9mIGFjdGl2ZUZpbHRlcnMoKTsgdHJhY2sgcm93OyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPHVwZC1maWx0ZXItcm93IFtzdG9yZV09XCJjb25maWcoKS5zdG9yZVwiIFtjdXJyZW50RmlsdGVyXT1cInJvd1wiIFsoYWN0aXZlRmlsdGVycyldPVwiYWN0aXZlRmlsdGVyc1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1ucygpXCIgW3Jvd0luZGV4XT1cImlcIiAocmVtb3ZlZCk9XCJvblJvd1JlbW92ZWQoKVwiIFtpc0Rpc2FibGVkXT1cImlzU2VhcmNoaW5nKClcIlxuICAgICAgICAgICAgICAgIFtmaWx0ZXJGaWVsZHNdPVwiY29uZmlnKCkuZmlsdGVyRmllbGRzXCI+XG4gICAgICAgICAgICA8L3VwZC1maWx0ZXItcm93PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1zLWF1dG8gZC1mbGV4IGdhcC0yXCI+XG4gICAgICAgICAgICA8dXBkLWJ1dHRvbiBjdXN0b21DbGFzc2VzPVwiZ2FwLTJcIiBjb2xvclN0eWxlPVwicHJpbWFyeVwiIFtpc091dGxpbmVdPVwidHJ1ZVwiIChjbGlja2VkKT1cImFkZEVtcHR5RmlsdGVyUm93KClcIlxuICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cIiFjYW5QZXJmb3JtQWN0aW9ucygpXCI+XG4gICAgICAgICAgICAgICAgPHVwZC1pY29uIHRhYmxlckljb249XCJwbHVzXCIgdGFibGVySWNvbldlaWdodD1cImJvbGRcIiBbdGFibGVySWNvblNpemVdPVwiMjBcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgIHt7IHQoJ0FkZE5ld0ZpbHRlcicpIH19XG4gICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICA8dXBkLWJ1dHRvbiBjdXN0b21DbGFzc2VzPVwiZ2FwLTJcIiBjb2xvclN0eWxlPVwic3VjY2Vzc1wiIFtpc0Rpc2FibGVkXT1cIiFjYW5QZXJmb3JtQWN0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJzZWFyY2goKVwiPlxuICAgICAgICAgICAgICAgIDx1cGQtaWNvbiB0YWJsZXJJY29uPVwiY2hlY2tzXCIgdGFibGVySWNvbldlaWdodD1cImJvbGRcIiBbdGFibGVySWNvblNpemVdPVwiMjBcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgIHt7IHQoJ0FwcGx5RmlsdGVycycpIH19XG4gICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctY29udGFpbmVyPiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYmxlL3NyYy9jb21wb25lbnRzL3NlYXJjaC1zZWN0aW9uL3NlYXJjaC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJsZS9zcmMvY29tcG9uZW50cy9zZWFyY2gtc2VjdGlvbi9zZWFyY2gtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUluRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7O0FBTzVGLE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxhQUFhO0lBa0N4RDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBbENVLGlCQUFZLEdBQUcsdURBQXVELENBQUM7UUFFcEYsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7UUFDOUMsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXVCLENBQUM7UUFDL0MsZUFBVSxHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLFFBQVEsQ0FBb0IsR0FBRyxFQUFFLENB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LCBIb3N0QmluZGluZywgc2lnbmFsLCBjb21wdXRlZCwgT25Jbml0LCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBPcHRpb25hbFR5cGUsIEJnQ29sb3JTdHlsZVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBCYWRnZUNvbmZpZyB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZpbHRlckl0ZW1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZ01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhYmxlLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBGaWx0ZXJUb29scyB9IGZyb20gJy4uLy4uL3Rvb2xzL2ZpbHRlcnMudG9vbHMnO1xuaW1wb3J0IHsgQmFzZUNvbHVtbk1vZGVsIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zL2Jhc2UtY29sdW1uLm1vZGVsJztcbmltcG9ydCB7IEZpbHRlcnNPcGVyYW5kc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9hYnN0cmFjdGlvbnMvZmlsdGVycy1vcGVyYW5kcy5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbnRTZWFyY2hSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2N1cnJlbnQtc2VhcmNoLXJlcXVlc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLXNlYXJjaC1zZWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zZWFyY2gtc2VjdGlvbi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VjdGlvbkNvbXBvbmVudDxUPiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSB3cmFwcGVyQ2xhc3MgPSAnY2FyZC1ib2R5IGJvcmRlci1ib3R0b20gcHktMyBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTInO1xuXG4gICAgcmVhZG9ubHkgY29sdW1ucyA9IGlucHV0LnJlcXVpcmVkPEJhc2VDb2x1bW5Nb2RlbFtdPigpO1xuICAgIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPFRhYmxlQ29uZmlnTW9kZWw8VD4+KCk7XG4gICAgcmVhZG9ubHkgYWN0aW9uc1RwbCA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gICAgcmVhZG9ubHkgYWN0aXZlRmlsdGVycyA9IGNvbXB1dGVkPEZpbHRlckl0ZW1Nb2RlbFtdPigoKSA9PlxuICAgICAgICBGaWx0ZXJUb29scy5jb252ZXJ0VG9GaWx0ZXJJdGVtKFxuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VhcmNoUmVxdWVzdFNlcnZpY2Uuc2VhcmNoUmVxdWVzdCgpLmZpbHRlcnM/LmZpbHRlcihhZiA9PiAhYWYuaXNIaWRkZW4pIHx8IFtdLFxuICAgICAgICAgICAgdGhpcy5maWx0ZXJzT3BlcmFuZHNTZXJ2aWNlLmdldEFsbE9wZXJhbmRzKClcbiAgICAgICAgKVxuICAgICk7XG4gICAgcmVhZG9ubHkgaXNGaWx0ZXJTZWN0aW9uT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gICAgcmVhZG9ubHkgY2FuQXBwbHlGaWx0ZXJzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hY3RpdmVGaWx0ZXJzKCkubGVuZ3RoID4gMCAmJiB0aGlzLmFjdGl2ZUZpbHRlcnMoKS5ldmVyeShhZiA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkID0gIWFmLmlzSGlkZGVuICYmICEhYWYubmFtZSAmJiAhIWFmLm9wZXJhbmRDb25maWc/Lm9wZXJhbmQgJiYgKCFhZi5vcGVyYW5kQ29uZmlnPy5yZXF1aXJlc1ZhbHVlIHx8ICEhYWYudmFsdWUpO1xuICAgICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfSkpO1xuICAgIHJlYWRvbmx5IGNhblBlcmZvcm1BY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jYW5BcHBseUZpbHRlcnMoKSAmJiAhdGhpcy5jdXJyZW50U2VhcmNoUmVxdWVzdFNlcnZpY2UuaXNTZWFyY2hpbmcoKSk7XG4gICAgcmVhZG9ubHkgYmFkZ2VDb25maWcgPSBjb21wdXRlZDxPcHRpb25hbFR5cGU8QmFkZ2VDb25maWc+PigoKSA9PlxuICAgICAgICB0aGlzLmN1cnJlbnRTZWFyY2hSZXF1ZXN0U2VydmljZS52aXNpYmxlRmlsdGVyQ291bnQoKSA+IDBcbiAgICAgICAgICAgID8gKHtcbiAgICAgICAgICAgICAgICBpc05vdGlmaWNhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpc1BpbGw6IHRydWUsXG4gICAgICAgICAgICAgICAgYmdDb2xvcjogJ3ByaW1hcnktbHQnLFxuICAgICAgICAgICAgICAgIHRleHQ6IHsgdGV4dDogdGhpcy5jdXJyZW50U2VhcmNoUmVxdWVzdFNlcnZpY2UudmlzaWJsZUZpbHRlckNvdW50KCkudG9TdHJpbmcoKSwgaXNUcmFuc2xhdGVkOiB0cnVlIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICk7XG4gICAgcmVhZG9ubHkgZmlsdGVyU2VjdGlvbkJ0bkNvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pc0ZpbHRlclNlY3Rpb25PcGVuKCkgPyA8QmdDb2xvclN0eWxlVHlwZT4ncHJpbWFyeScgOiB1bmRlZmluZWQpO1xuICAgIHJlYWRvbmx5IHNlYXJjaFN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlcnNPcGVyYW5kc1NlcnZpY2UgPSBpbmplY3QoRmlsdGVyc09wZXJhbmRzU2VydmljZSk7XG4gICAgcmVhZG9ubHkgY3VycmVudFNlYXJjaFJlcXVlc3RTZXJ2aWNlID0gaW5qZWN0KEN1cnJlbnRTZWFyY2hSZXF1ZXN0U2VydmljZSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgLy8gQXV0by1jbG9zZSBmaWx0ZXIgc2VjdGlvbiB3aGVuIGFsbCBmaWx0ZXJzIGFyZSByZW1vdmVkXG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U2VhcmNoUmVxdWVzdFNlcnZpY2UudmlzaWJsZUZpbHRlckNvdW50KCkgPT09IDAgJiYgdGhpcy5pc0ZpbHRlclNlY3Rpb25PcGVuKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyU2VjdGlvbk9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoU3ViID0gdGhpcy5zZWFyY2hTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmNvbmZpZygpLnNlYXJjaElucHV0RGVib3VuY2VUaW1lKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0ZXJtID0+XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VhcmNoUmVxdWVzdFNlcnZpY2Uuc2V0RGVzY3JpcHRpb24odGVybSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb25zKHNlYXJjaFN1Yik7XG4gICAgfVxuXG4gICAgc2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZWFyY2hSZXF1ZXN0U2VydmljZS5wYXRjaFNlYXJjaFJlcXVlc3Qoe1xuICAgICAgICAgICAgZmlsdGVyczogRmlsdGVyVG9vbHMuY29udmVydFRvUmVxdWVzdEZpbHRlcih0aGlzLmFjdGl2ZUZpbHRlcnMoKSwgdGhpcy5jb25maWcoKS5maWx0ZXJGaWVsZHMsIHRoaXMuY29uZmlnKCkuY29sdW1ucylcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY3VycmVudFNlYXJjaFJlcXVlc3RTZXJ2aWNlLnRyaWdnZXJTZWFyY2goKTtcbiAgICB9XG5cbiAgICB0b2dnbGVGaWx0ZXJTZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVGaWx0ZXJzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFkZEVtcHR5RmlsdGVyUm93KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzRmlsdGVyU2VjdGlvbk9wZW4udXBkYXRlKGlzT3BlbiA9PiAhaXNPcGVuKTtcbiAgICB9XG5cbiAgICBvblJvd1JlbW92ZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUZpbHRlcnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuaXNGaWx0ZXJTZWN0aW9uT3Blbi5zZXQoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2goKTtcbiAgICB9XG5cbiAgICBhZGRFbXB0eUZpbHRlclJvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2VhcmNoUmVxdWVzdFNlcnZpY2UuYWRkRmlsdGVyKHt9IGFzIGFueSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHByZWZpeDogJ1VwRGV2cy5UYWJsZSdcIj5cbiAgICBAaWYgKCEhYWN0aW9uc1RwbCgpKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb25zVHBsKCkhXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICA8dXBkLWlucHV0IHdyYXBwZXJDbGFzc2VzPVwidy0xMDBcIiBbcGxhY2Vob2xkZXJdPVwie3RleHQ6J1VwRGV2cy5UYWJsZS5TZWFyY2gnLCBpc1RyYW5zbGF0ZWQ6ZmFsc2V9XCJcbiAgICAgICAgICAgIFtpc0FwcGVuZEJ1dHRvbl09XCJ0cnVlXCIgKHZhbHVlQ2hhbmdlKT1cInNlYXJjaFN1YmplY3QubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJjdXJyZW50U2VhcmNoUmVxdWVzdFNlcnZpY2Uuc2VhcmNoUmVxdWVzdCgpLmRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgdXBkSW5wdXRBcHBlbmQ+XG4gICAgICAgICAgICAgICAgPHVwZC1idXR0b24gW2lzSWNvbl09XCJ0cnVlXCIgW2NvbG9yU3R5bGVdPVwiZmlsdGVyU2VjdGlvbkJ0bkNvbG9yKClcIiAoY2xpY2tlZCk9XCJ0b2dnbGVGaWx0ZXJTZWN0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICBbYmFkZ2VDb25maWddPVwiYmFkZ2VDb25maWcoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gW3RhYmxlckljb25dPVwiaXNGaWx0ZXJTZWN0aW9uT3BlbigpID8gJ2ZpbHRlci11cCcgOiAnZmlsdGVyLWRvd24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJsZXJJY29uU2l6ZV09XCIyMFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC91cGQtaW5wdXQ+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGlzRmlsdGVyU2VjdGlvbk9wZW4oKSkge1xuICAgICAgICBAZm9yIChyb3cgb2YgYWN0aXZlRmlsdGVycygpOyB0cmFjayByb3cubmFtZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDx1cGQtZmlsdGVyLXJvdyBbY3VycmVudEZpbHRlcl09XCJyb3dcIiBbY29uZmlnXT1cImNvbmZpZygpXCIgW3Jvd0luZGV4XT1cImlcIiAocmVtb3ZlZCk9XCJvblJvd1JlbW92ZWQoKVwiXG4gICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiY3VycmVudFNlYXJjaFJlcXVlc3RTZXJ2aWNlLmlzU2VhcmNoaW5nKClcIj5cbiAgICAgICAgICAgIDwvdXBkLWZpbHRlci1yb3c+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibXMtYXV0byBkLWZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgIDx1cGQtYnV0dG9uIGN1c3RvbUNsYXNzZXM9XCJnYXAtMlwiIGNvbG9yU3R5bGU9XCJwcmltYXJ5XCIgW2lzT3V0bGluZV09XCJ0cnVlXCIgKGNsaWNrZWQpPVwiYWRkRW1wdHlGaWx0ZXJSb3coKVwiXG4gICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiIWNhblBlcmZvcm1BY3Rpb25zKClcIj5cbiAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInBsdXNcIiB0YWJsZXJJY29uV2VpZ2h0PVwiYm9sZFwiIFt0YWJsZXJJY29uU2l6ZV09XCIyMFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAge3sgdCgnQWRkTmV3RmlsdGVyJykgfX1cbiAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgIDx1cGQtYnV0dG9uIGN1c3RvbUNsYXNzZXM9XCJnYXAtMlwiIGNvbG9yU3R5bGU9XCJzdWNjZXNzXCIgW2lzRGlzYWJsZWRdPVwiIWNhblBlcmZvcm1BY3Rpb25zKClcIlxuICAgICAgICAgICAgICAgIChjbGlja2VkKT1cInNlYXJjaCgpXCI+XG4gICAgICAgICAgICAgICAgPHVwZC1pY29uIHRhYmxlckljb249XCJjaGVja3NcIiB0YWJsZXJJY29uV2VpZ2h0PVwiYm9sZFwiIFt0YWJsZXJJY29uU2l6ZV09XCIyMFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAge3sgdCgnQXBwbHlGaWx0ZXJzJykgfX1cbiAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy1jb250YWluZXI+Il19
@@ -12,6 +12,7 @@ export class TableConfigModel {
12
12
  this.data = [];
13
13
  this.preSelectedItems = [];
14
14
  this.searchInputDebounceTime = 300;
15
+ this.shouldLoadFilterFieldsFromServer = false;
15
16
  /**
16
17
  * Actions added to each record row as a group of buttons.
17
18
  */
@@ -36,4 +37,4 @@ export class TableConfigModel {
36
37
  }
37
38
  }
38
39
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYmxlL3NyYy9tb2RlbHMvdGFibGUtY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sT0FBTyxnQkFBZ0I7SUFtQ3pCLFlBQVksSUFBcUI7UUFoQ2pDLFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBRWhDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZixxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IsNEJBQXVCLEdBQUcsR0FBRyxDQUFDO1FBQzlCOztXQUVHO1FBQ0gsa0JBQWEsR0FBa0IsRUFBRSxDQUFDO1FBQ2xDOztXQUVHO1FBQ0gsd0JBQW1CLEdBQWtCLEVBQUUsQ0FBQztRQUN4Qzs7O1dBR0c7UUFDSCxpQkFBWSxHQUF3QixFQUFFLENBQUM7UUFDdkM7OztXQUdHO1FBQ0gsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBUTVCLGtCQUFhLEdBQW1CLENBQUMsSUFBTyxFQUFFLEVBQUUsQ0FBRSxJQUFZLENBQUMsRUFBRSxDQUFDO1FBTDFELElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7Q0FHSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRNb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrJztcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnQHVwZGV2cy9zZGsvbGF5b3V0JztcbmltcG9ydCB7IEJhc2VTZWFyY2hTdG9yZSB9IGZyb20gJ0B1cGRldnMvc2RrL3N0b3Jlcyc7XG5pbXBvcnQgeyBHZXRCeUlkVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcblxuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tICcuL3RhYmxlLmNvbmZpZyc7XG5pbXBvcnQgeyBCYXNlQ29sdW1uTW9kZWwgfSBmcm9tICcuLi9hYnN0cmFjdGlvbnMvYmFzZS1jb2x1bW4ubW9kZWwnO1xuaW1wb3J0IHsgRmlsdGVyRmllbGRDb25maWcgfSBmcm9tICcuL2ZpbHRlci1maWVsZC5jb25maWcnO1xuXG5leHBvcnQgY2xhc3MgVGFibGVDb25maWdNb2RlbDxUPiBpbXBsZW1lbnRzIFRhYmxlQ29uZmlnPFQ+IHtcbiAgICBuYW1lITogc3RyaW5nO1xuICAgIHN0b3JlPzogQmFzZVNlYXJjaFN0b3JlPFQ+O1xuICAgIGNvbHVtbnM6IEJhc2VDb2x1bW5Nb2RlbFtdID0gW107XG4gICAgdGl0bGU/OiBUZXh0TW9kZWw7XG4gICAgY2FuU2VhcmNoID0gdHJ1ZTtcbiAgICBjYW5TYXZlVmlld3MgPSB0cnVlO1xuICAgIGNhbkxvYWRTYXZlZFZpZXdzID0gdHJ1ZTtcbiAgICBjYW5NYW5hZ2VDb2x1bW5zID0gdHJ1ZTtcbiAgICBzaG91bGRBdXRvU2VhcmNoID0gdHJ1ZTtcbiAgICBoYXNDaGVja2JveENvbHVtbiA9IHRydWU7XG4gICAgaXNSZXNwb25zaXZlID0gdHJ1ZTtcbiAgICBoYXNTdGlja3lIZWFkZXIgPSBmYWxzZTtcbiAgICBkYXRhOiBUW10gPSBbXTtcbiAgICBwcmVTZWxlY3RlZEl0ZW1zOiBUW10gPSBbXTtcbiAgICBzZWFyY2hJbnB1dERlYm91bmNlVGltZSA9IDMwMDtcbiAgICAvKipcbiAgICAgKiBBY3Rpb25zIGFkZGVkIHRvIGVhY2ggcmVjb3JkIHJvdyBhcyBhIGdyb3VwIG9mIGJ1dHRvbnMuXG4gICAgICovXG4gICAgY3VzdG9tQWN0aW9uczogQnV0dG9uTW9kZWxbXSA9IFtdO1xuICAgIC8qKlxuICAgICAqIEFjdGlvbnMgYWRkZWQgdG8gdGhlIGhlYWRlciBvZiB0aGUgdGFibGUgYXMgcmVndWxhciBidXR0b25zLlxuICAgICAqL1xuICAgIGN1c3RvbUhlYWRlckFjdGlvbnM6IEJ1dHRvbk1vZGVsW10gPSBbXTtcbiAgICAvKipcbiAgICAgKiBEZWZpbmUgY3VzdG9tIGZpbHRlcmFibGUgZmllbGRzLlxuICAgICAqIElmIG5vdCBwcm92aWRlZCBhbmQgdXNlQ29sdW1uc0FzRmlsdGVycyBpcyB0cnVlLCBmaWx0ZXJzIHdpbGwgYmUgYXV0by1nZW5lcmF0ZWQgZnJvbSBjb2x1bW5zLlxuICAgICAqL1xuICAgIGZpbHRlckZpZWxkczogRmlsdGVyRmllbGRDb25maWdbXSA9IFtdO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gdXNlIGNvbHVtbnMgYXMgZmlsdGVycy5cbiAgICAgKiBJZiBmYWxzZSwgZmlsdGVyRmllbGRzIG11c3QgYmUgcHJvdmlkZWQuXG4gICAgICovXG4gICAgdXNlQ29sdW1uc0FzRmlsdGVycyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRhYmxlQ29uZmlnPFQ+KSB7XG4gICAgICAgIGlmICghIWluaXQpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJZEZ1bmN0aW9uOiBHZXRCeUlkVHlwZTxUPiA9IChpdGVtOiBUKSA9PiAoaXRlbSBhcyBhbnkpLmlkO1xufVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYmxlL3NyYy9tb2RlbHMvdGFibGUtY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFvQ3pCLFlBQVksSUFBcUI7UUFqQ2pDLFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBRWhDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZixxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IsNEJBQXVCLEdBQUcsR0FBRyxDQUFDO1FBQzlCLHFDQUFnQyxHQUFHLEtBQUssQ0FBQztRQUN6Qzs7V0FFRztRQUNILGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUNsQzs7V0FFRztRQUNILHdCQUFtQixHQUFrQixFQUFFLENBQUM7UUFDeEM7OztXQUdHO1FBQ0gsaUJBQVksR0FBd0IsRUFBRSxDQUFDO1FBQ3ZDOzs7V0FHRztRQUNILHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQVE1QixrQkFBYSxHQUFtQixDQUFDLElBQU8sRUFBRSxFQUFFLENBQUUsSUFBWSxDQUFDLEVBQUUsQ0FBQztRQUwxRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNULE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBCYXNlU2VhcmNoU3RvcmUsIEZpbHRlckZpZWxkQ29uZmlnIH0gZnJvbSAnQHVwZGV2cy9zZGsvc3RvcmVzJztcbmltcG9ydCB7IEdldEJ5SWRUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuXG5pbXBvcnQgeyBUYWJsZUNvbmZpZyB9IGZyb20gJy4vdGFibGUuY29uZmlnJztcbmltcG9ydCB7IEJhc2VDb2x1bW5Nb2RlbCB9IGZyb20gJy4uL2Fic3RyYWN0aW9ucy9iYXNlLWNvbHVtbi5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUNvbmZpZ01vZGVsPFQ+IGltcGxlbWVudHMgVGFibGVDb25maWc8VD4ge1xuICAgIG5hbWUhOiBzdHJpbmc7XG4gICAgc3RvcmU/OiBCYXNlU2VhcmNoU3RvcmU8VD47XG4gICAgY29sdW1uczogQmFzZUNvbHVtbk1vZGVsW10gPSBbXTtcbiAgICB0aXRsZT86IFRleHRNb2RlbDtcbiAgICBjYW5TZWFyY2ggPSB0cnVlO1xuICAgIGNhblNhdmVWaWV3cyA9IHRydWU7XG4gICAgY2FuTG9hZFNhdmVkVmlld3MgPSB0cnVlO1xuICAgIGNhbk1hbmFnZUNvbHVtbnMgPSB0cnVlO1xuICAgIHNob3VsZEF1dG9TZWFyY2ggPSB0cnVlO1xuICAgIGhhc0NoZWNrYm94Q29sdW1uID0gdHJ1ZTtcbiAgICBpc1Jlc3BvbnNpdmUgPSB0cnVlO1xuICAgIGhhc1N0aWNreUhlYWRlciA9IGZhbHNlO1xuICAgIGRhdGE6IFRbXSA9IFtdO1xuICAgIHByZVNlbGVjdGVkSXRlbXM6IFRbXSA9IFtdO1xuICAgIHNlYXJjaElucHV0RGVib3VuY2VUaW1lID0gMzAwO1xuICAgIHNob3VsZExvYWRGaWx0ZXJGaWVsZHNGcm9tU2VydmVyID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWN0aW9ucyBhZGRlZCB0byBlYWNoIHJlY29yZCByb3cgYXMgYSBncm91cCBvZiBidXR0b25zLlxuICAgICAqL1xuICAgIGN1c3RvbUFjdGlvbnM6IEJ1dHRvbk1vZGVsW10gPSBbXTtcbiAgICAvKipcbiAgICAgKiBBY3Rpb25zIGFkZGVkIHRvIHRoZSBoZWFkZXIgb2YgdGhlIHRhYmxlIGFzIHJlZ3VsYXIgYnV0dG9ucy5cbiAgICAgKi9cbiAgICBjdXN0b21IZWFkZXJBY3Rpb25zOiBCdXR0b25Nb2RlbFtdID0gW107XG4gICAgLyoqXG4gICAgICogRGVmaW5lIGN1c3RvbSBmaWx0ZXJhYmxlIGZpZWxkcy5cbiAgICAgKiBJZiBub3QgcHJvdmlkZWQgYW5kIHVzZUNvbHVtbnNBc0ZpbHRlcnMgaXMgdHJ1ZSwgZmlsdGVycyB3aWxsIGJlIGF1dG8tZ2VuZXJhdGVkIGZyb20gY29sdW1ucy5cbiAgICAgKi9cbiAgICBmaWx0ZXJGaWVsZHM6IEZpbHRlckZpZWxkQ29uZmlnW10gPSBbXTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHVzZSBjb2x1bW5zIGFzIGZpbHRlcnMuXG4gICAgICogSWYgZmFsc2UsIGZpbHRlckZpZWxkcyBtdXN0IGJlIHByb3ZpZGVkLlxuICAgICAqL1xuICAgIHVzZUNvbHVtbnNBc0ZpbHRlcnMgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUYWJsZUNvbmZpZzxUPikge1xuICAgICAgICBpZiAoISFpbml0KSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SWRGdW5jdGlvbjogR2V0QnlJZFR5cGU8VD4gPSAoaXRlbTogVCkgPT4gKGl0ZW0gYXMgYW55KS5pZDtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYmxlL3NyYy9tb2RlbHMvdGFibGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBCYXNlU2VhcmNoU3RvcmUgfSBmcm9tICdAdXBkZXZzL3Nkay9zdG9yZXMnO1xuaW1wb3J0IHsgR2V0QnlJZFR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5cbmltcG9ydCB7IEJhc2VDb2x1bW5Nb2RlbCB9IGZyb20gJy4uL2Fic3RyYWN0aW9ucy9iYXNlLWNvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBGaWx0ZXJGaWVsZENvbmZpZyB9IGZyb20gJy4vZmlsdGVyLWZpZWxkLmNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb25maWc8VD4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzdG9yZT86IEJhc2VTZWFyY2hTdG9yZTxUPjtcbiAgICBjb2x1bW5zOiBCYXNlQ29sdW1uTW9kZWxbXTtcbiAgICBnZXRJZEZ1bmN0aW9uPzogR2V0QnlJZFR5cGU8VD47XG4gICAgdGl0bGU/OiBUZXh0TW9kZWw7XG4gICAgY2FuU2VhcmNoPzogYm9vbGVhbjtcbiAgICBjYW5TYXZlVmlld3M/OiBib29sZWFuO1xuICAgIGNhbkxvYWRTYXZlZFZpZXdzPzogYm9vbGVhbjtcbiAgICBjYW5NYW5hZ2VDb2x1bW5zPzogYm9vbGVhbjtcbiAgICBzaG91bGRBdXRvU2VhcmNoPzogYm9vbGVhbjtcbiAgICBoYXNDaGVja2JveENvbHVtbj86IGJvb2xlYW47XG4gICAgaXNSZXNwb25zaXZlPzogYm9vbGVhbjtcbiAgICBoYXNTdGlja3lIZWFkZXI/OiBib29sZWFuO1xuICAgIGRhdGE/OiBUW107XG4gICAgcHJlU2VsZWN0ZWRJdGVtcz86IFRbXTtcbiAgICBzZWFyY2hJbnB1dERlYm91bmNlVGltZT86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBBY3Rpb25zIGFkZGVkIHRvIGVhY2ggcmVjb3JkIHJvdyBhcyBhIGdyb3VwIG9mIGJ1dHRvbnMuXG4gICAgICovXG4gICAgY3VzdG9tQWN0aW9ucz86IEJ1dHRvbk1vZGVsW107XG4gICAgLyoqXG4gICAgICogQWN0aW9ucyBhZGRlZCB0byB0aGUgaGVhZGVyIG9mIHRoZSB0YWJsZSBhcyByZWd1bGFyIGJ1dHRvbnMuXG4gICAgICovXG4gICAgY3VzdG9tSGVhZGVyQWN0aW9ucz86IEJ1dHRvbk1vZGVsW107XG4gICAgLyoqXG4gICAgICogRGVmaW5lIGN1c3RvbSBmaWx0ZXJhYmxlIGZpZWxkcy5cbiAgICAgKiBJZiBub3QgcHJvdmlkZWQgYW5kIHVzZUNvbHVtbnNBc0ZpbHRlcnMgaXMgdHJ1ZSwgZmlsdGVycyB3aWxsIGJlIGF1dG8tZ2VuZXJhdGVkIGZyb20gY29sdW1ucy5cbiAgICAgKi9cbiAgICBmaWx0ZXJGaWVsZHM/OiBGaWx0ZXJGaWVsZENvbmZpZ1tdO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gdXNlIGNvbHVtbnMgYXMgZmlsdGVycy5cbiAgICAgKiBJZiBmYWxzZSwgZmlsdGVyRmllbGRzIG11c3QgYmUgcHJvdmlkZWQuXG4gICAgICovXG4gICAgdXNlQ29sdW1uc0FzRmlsdGVycz86IGJvb2xlYW47XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYmxlL3NyYy9tb2RlbHMvdGFibGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBCYXNlU2VhcmNoU3RvcmUsIEZpbHRlckZpZWxkQ29uZmlnIH0gZnJvbSAnQHVwZGV2cy9zZGsvc3RvcmVzJztcbmltcG9ydCB7IEdldEJ5SWRUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuXG5pbXBvcnQgeyBCYXNlQ29sdW1uTW9kZWwgfSBmcm9tICcuLi9hYnN0cmFjdGlvbnMvYmFzZS1jb2x1bW4ubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29uZmlnPFQ+IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc3RvcmU/OiBCYXNlU2VhcmNoU3RvcmU8VD47XG4gICAgY29sdW1uczogQmFzZUNvbHVtbk1vZGVsW107XG4gICAgZ2V0SWRGdW5jdGlvbj86IEdldEJ5SWRUeXBlPFQ+O1xuICAgIHRpdGxlPzogVGV4dE1vZGVsO1xuICAgIGNhblNlYXJjaD86IGJvb2xlYW47XG4gICAgY2FuU2F2ZVZpZXdzPzogYm9vbGVhbjtcbiAgICBjYW5Mb2FkU2F2ZWRWaWV3cz86IGJvb2xlYW47XG4gICAgY2FuTWFuYWdlQ29sdW1ucz86IGJvb2xlYW47XG4gICAgc2hvdWxkQXV0b1NlYXJjaD86IGJvb2xlYW47XG4gICAgaGFzQ2hlY2tib3hDb2x1bW4/OiBib29sZWFuO1xuICAgIGlzUmVzcG9uc2l2ZT86IGJvb2xlYW47XG4gICAgaGFzU3RpY2t5SGVhZGVyPzogYm9vbGVhbjtcbiAgICBkYXRhPzogVFtdO1xuICAgIHByZVNlbGVjdGVkSXRlbXM/OiBUW107XG4gICAgc2VhcmNoSW5wdXREZWJvdW5jZVRpbWU/OiBudW1iZXI7XG4gICAgc2hvdWxkTG9hZEZpbHRlckZpZWxkc0Zyb21TZXJ2ZXI/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEFjdGlvbnMgYWRkZWQgdG8gZWFjaCByZWNvcmQgcm93IGFzIGEgZ3JvdXAgb2YgYnV0dG9ucy5cbiAgICAgKi9cbiAgICBjdXN0b21BY3Rpb25zPzogQnV0dG9uTW9kZWxbXTtcbiAgICAvKipcbiAgICAgKiBBY3Rpb25zIGFkZGVkIHRvIHRoZSBoZWFkZXIgb2YgdGhlIHRhYmxlIGFzIHJlZ3VsYXIgYnV0dG9ucy5cbiAgICAgKi9cbiAgICBjdXN0b21IZWFkZXJBY3Rpb25zPzogQnV0dG9uTW9kZWxbXTtcbiAgICAvKipcbiAgICAgKiBEZWZpbmUgY3VzdG9tIGZpbHRlcmFibGUgZmllbGRzLlxuICAgICAqIElmIG5vdCBwcm92aWRlZCBhbmQgdXNlQ29sdW1uc0FzRmlsdGVycyBpcyB0cnVlLCBmaWx0ZXJzIHdpbGwgYmUgYXV0by1nZW5lcmF0ZWQgZnJvbSBjb2x1bW5zLlxuICAgICAqL1xuICAgIGZpbHRlckZpZWxkcz86IEZpbHRlckZpZWxkQ29uZmlnW107XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byB1c2UgY29sdW1ucyBhcyBmaWx0ZXJzLlxuICAgICAqIElmIGZhbHNlLCBmaWx0ZXJGaWVsZHMgbXVzdCBiZSBwcm92aWRlZC5cbiAgICAgKi9cbiAgICB1c2VDb2x1bW5zQXNGaWx0ZXJzPzogYm9vbGVhbjtcbn1cbiJdfQ==