verben-ng-ui 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/lib/components/sort-table/sort-table.component.mjs +5 -4
- package/esm2022/src/lib/components/table-filter/table-filter.component.mjs +32 -17
- package/esm2022/src/lib/components/visible-column/visible-column.component.mjs +8 -2
- package/esm2022/src/lib/models/DataFilterType.mjs +2 -1
- package/esm2022/src/lib/models/config.mjs +15 -1
- package/fesm2022/verben-ng-ui-src-lib-components-sort-table.mjs +4 -3
- package/fesm2022/verben-ng-ui-src-lib-components-sort-table.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-components-table-filter.mjs +31 -16
- package/fesm2022/verben-ng-ui-src-lib-components-table-filter.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-components-visible-column.mjs +7 -1
- package/fesm2022/verben-ng-ui-src-lib-components-visible-column.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-models.mjs +15 -0
- package/fesm2022/verben-ng-ui-src-lib-models.mjs.map +1 -1
- package/package.json +72 -72
- package/src/lib/components/table-filter/table-filter.component.d.ts +6 -7
- package/src/lib/components/visible-column/visible-column.component.d.ts +2 -1
- package/src/lib/models/DataFilterType.d.ts +2 -1
|
@@ -25,23 +25,24 @@ export class TableFilterComponent {
|
|
|
25
25
|
borderRadius;
|
|
26
26
|
selectWidth;
|
|
27
27
|
maxFilterLength = 3;
|
|
28
|
+
savedFilters = [];
|
|
28
29
|
tooltip = false;
|
|
30
|
+
saveCallback;
|
|
29
31
|
filtersApplied = new EventEmitter();
|
|
30
32
|
resetSortData = new EventEmitter();
|
|
31
33
|
filterArray = [];
|
|
32
34
|
selectedFilterValue = '';
|
|
33
|
-
selectedFilterType;
|
|
35
|
+
selectedFilterType = null;
|
|
34
36
|
conditionOptions = [];
|
|
35
37
|
selectedCondition = '';
|
|
36
38
|
inputValue;
|
|
37
|
-
savedFilters = [];
|
|
38
39
|
selectedFilters = [];
|
|
39
40
|
showAllFilters = false;
|
|
40
41
|
editIndex = null;
|
|
41
42
|
checkAll = false;
|
|
42
43
|
isDuplicateFilter = false;
|
|
43
44
|
disableAddFilterBtn = false;
|
|
44
|
-
disableApplyFilterBtn = true;
|
|
45
|
+
//disableApplyFilterBtn: boolean = true;
|
|
45
46
|
duplicateMessage = '';
|
|
46
47
|
configInstance;
|
|
47
48
|
storageKey = 'savedFilters';
|
|
@@ -65,15 +66,19 @@ export class TableFilterComponent {
|
|
|
65
66
|
this.selectedFilterType = null;
|
|
66
67
|
this.selectedCondition = '';
|
|
67
68
|
this.inputValue = '';
|
|
68
|
-
this.savedFilters = [];
|
|
69
|
+
// this.savedFilters = [];
|
|
70
|
+
this.savedFilters.forEach((x) => {
|
|
71
|
+
x.checked = false;
|
|
72
|
+
});
|
|
69
73
|
this.editIndex = null;
|
|
70
74
|
this.checkAll = false;
|
|
71
75
|
this.isDuplicateFilter = false;
|
|
72
|
-
this.disableApplyFilterBtn = true;
|
|
76
|
+
// this.disableApplyFilterBtn = true;
|
|
73
77
|
this.duplicateMessage = '';
|
|
74
78
|
localStorage.removeItem(this.storageKey);
|
|
75
79
|
this.filterCount = this.savedFilters.filter((item) => item.checked === true).length;
|
|
76
80
|
this.resetSortData.emit();
|
|
81
|
+
this.applyFilters(true);
|
|
77
82
|
}
|
|
78
83
|
addFilter() {
|
|
79
84
|
if (!this.selectedFilterValue ||
|
|
@@ -89,14 +94,14 @@ export class TableFilterComponent {
|
|
|
89
94
|
this.selectedCondition == 'On') {
|
|
90
95
|
const leftFilter = {
|
|
91
96
|
name: this.selectedFilterValue,
|
|
92
|
-
type: this.selectedFilterType,
|
|
97
|
+
type: this.selectedFilterType || DataFilterType.String,
|
|
93
98
|
condition: 'After',
|
|
94
99
|
value: this.inputValue.concat(' 00:00'),
|
|
95
100
|
checked: true,
|
|
96
101
|
};
|
|
97
102
|
const rightFilter = {
|
|
98
103
|
name: this.selectedFilterValue,
|
|
99
|
-
type: this.selectedFilterType,
|
|
104
|
+
type: this.selectedFilterType || DataFilterType.String,
|
|
100
105
|
condition: 'Before',
|
|
101
106
|
value: this.inputValue.concat(' 23:59'),
|
|
102
107
|
checked: true,
|
|
@@ -126,7 +131,7 @@ export class TableFilterComponent {
|
|
|
126
131
|
else {
|
|
127
132
|
const newFilter = {
|
|
128
133
|
name: this.selectedFilterValue,
|
|
129
|
-
type: this.selectedFilterType,
|
|
134
|
+
type: this.selectedFilterType || DataFilterType.String,
|
|
130
135
|
condition: this.selectedCondition,
|
|
131
136
|
value: this.inputValue,
|
|
132
137
|
checked: true,
|
|
@@ -151,7 +156,7 @@ export class TableFilterComponent {
|
|
|
151
156
|
}
|
|
152
157
|
}
|
|
153
158
|
this.clearOperationSection();
|
|
154
|
-
this.checkFilterButton();
|
|
159
|
+
// this.checkFilterButton();
|
|
155
160
|
}
|
|
156
161
|
toggleCheckbox(index) {
|
|
157
162
|
this.savedFilters[index].checked = !this.savedFilters[index].checked;
|
|
@@ -161,11 +166,14 @@ export class TableFilterComponent {
|
|
|
161
166
|
deleteFilter(index) {
|
|
162
167
|
this.savedFilters.splice(index, 1);
|
|
163
168
|
this.checkDuplicateFilter();
|
|
164
|
-
this.checkFilterButton();
|
|
169
|
+
// this.checkFilterButton();
|
|
165
170
|
this.filterCount = this.savedFilters.filter((item) => item.checked === true).length;
|
|
166
171
|
if (this.savedFilters.length === 0) {
|
|
167
172
|
this.checkAll = false;
|
|
168
173
|
}
|
|
174
|
+
if (this.saveCallback) {
|
|
175
|
+
this.saveCallback(this.savedFilters);
|
|
176
|
+
}
|
|
169
177
|
}
|
|
170
178
|
editFilter(index) {
|
|
171
179
|
const filter = this.savedFilters[index];
|
|
@@ -176,8 +184,11 @@ export class TableFilterComponent {
|
|
|
176
184
|
this.inputValue = filter.value;
|
|
177
185
|
this.editIndex = index;
|
|
178
186
|
}
|
|
179
|
-
applyFilters() {
|
|
187
|
+
applyFilters(skipSave = false) {
|
|
180
188
|
this.selectedFilters = this.savedFilters.filter((filter) => filter.checked);
|
|
189
|
+
if (this.saveCallback && !skipSave) {
|
|
190
|
+
this.saveCallback(this.savedFilters);
|
|
191
|
+
}
|
|
181
192
|
this.filtersApplied.emit(this.selectedFilters);
|
|
182
193
|
this.filtersApplied.emit(this.storageKey);
|
|
183
194
|
}
|
|
@@ -194,9 +205,9 @@ export class TableFilterComponent {
|
|
|
194
205
|
this.selectedCondition = '';
|
|
195
206
|
this.inputValue = '';
|
|
196
207
|
}
|
|
197
|
-
checkFilterButton() {
|
|
198
|
-
|
|
199
|
-
}
|
|
208
|
+
// checkFilterButton() {
|
|
209
|
+
// this.disableApplyFilterBtn = this.savedFilters.length === 0;
|
|
210
|
+
// }
|
|
200
211
|
toggleSelectAll() {
|
|
201
212
|
this.checkAll = !this.checkAll;
|
|
202
213
|
this.savedFilters.forEach((filter) => (filter.checked = this.checkAll));
|
|
@@ -224,11 +235,11 @@ export class TableFilterComponent {
|
|
|
224
235
|
}
|
|
225
236
|
}
|
|
226
237
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: TableFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
227
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: TableFilterComponent, selector: "verben-table-filter", inputs: { filterOptions: "filterOptions", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", maxFilterLength: "maxFilterLength", tooltip: "tooltip" }, outputs: { filtersApplied: "filtersApplied", resetSortData: "resetSortData" }, ngImport: i0, template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value}}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{'position':'relative'}\"> \n \n <verben-tooltip \n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\" \n [top]=\"'20px'\" \n [right]=\"'0px'\" \n >\n <verben-svg \n icon=\"info\" \n [width]=\"15\" \n [height]=\"15\" \n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n \n <ng-template #tooltipTemplate>\n {{duplicateMessage}}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType !== 'Credit' && selectedFilterType !== 'Date' && selectedFilterType !== 'Integer' && selectedFilterType !== 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n [disabled]=\"disableApplyFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableApplyFilterBtn,\n enableBtn: !disableApplyFilterBtn\n }\"\n >\n Filter\n </button>\n </div>\n\n\n </div>\n\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.center{overflow-y:auto;max-height:24rem}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:var(--vbn-color-border-focus)}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i5.ValidateDirective, selector: "[appValidate]", inputs: ["appValidate", "required", "showBorder", "showErrorMessage", "errorBorderColor", "errorMessageColor", "errorIconTooltipPosition", "showErrorIcon"] }, { kind: "component", type: i6.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }, { kind: "component", type: i7.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
|
|
238
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: TableFilterComponent, selector: "verben-table-filter", inputs: { filterOptions: "filterOptions", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", maxFilterLength: "maxFilterLength", savedFilters: "savedFilters", tooltip: "tooltip", saveCallback: "saveCallback" }, outputs: { filtersApplied: "filtersApplied", resetSortData: "resetSortData" }, ngImport: i0, template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value }}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{ position: 'relative' }\">\n <verben-tooltip\n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\"\n [top]=\"'20px'\"\n [right]=\"'0px'\"\n >\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n\n <ng-template #tooltipTemplate>\n {{ duplicateMessage }}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Number'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input number\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n type=\"number\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"number\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType !== 'Credit' &&\n selectedFilterType !== 'Date' &&\n selectedFilterType !== 'Integer' &&\n selectedFilterType !== 'Decimal' &&\n selectedFilterType !== 'Number'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn,\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n >\n Confirm\n </button>\n </div>\n </div>\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.center{overflow-y:auto;max-height:24rem}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:var(--vbn-color-border-focus)}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i5.ValidateDirective, selector: "[appValidate]", inputs: ["appValidate", "required", "showBorder", "showErrorMessage", "errorBorderColor", "errorMessageColor", "errorIconTooltipPosition", "showErrorIcon"] }, { kind: "component", type: i6.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }, { kind: "component", type: i7.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
|
|
228
239
|
}
|
|
229
240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: TableFilterComponent, decorators: [{
|
|
230
241
|
type: Component,
|
|
231
|
-
args: [{ selector: 'verben-table-filter', template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value}}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{'position':'relative'}\"> \n \n <verben-tooltip \n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\" \n [top]=\"'20px'\" \n [right]=\"'0px'\" \n >\n <verben-svg \n icon=\"info\" \n [width]=\"15\" \n [height]=\"15\" \n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n \n <ng-template #tooltipTemplate>\n {{duplicateMessage}}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType !== 'Credit' && selectedFilterType !== 'Date' && selectedFilterType !== 'Integer' && selectedFilterType !== 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n [disabled]=\"disableApplyFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableApplyFilterBtn,\n enableBtn: !disableApplyFilterBtn\n }\"\n >\n Filter\n </button>\n </div>\n\n\n </div>\n\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.center{overflow-y:auto;max-height:24rem}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:var(--vbn-color-border-focus)}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"] }]
|
|
242
|
+
args: [{ selector: 'verben-table-filter', template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value }}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{ position: 'relative' }\">\n <verben-tooltip\n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\"\n [top]=\"'20px'\"\n [right]=\"'0px'\"\n >\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n\n <ng-template #tooltipTemplate>\n {{ duplicateMessage }}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Number'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input number\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n type=\"number\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"number\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType !== 'Credit' &&\n selectedFilterType !== 'Date' &&\n selectedFilterType !== 'Integer' &&\n selectedFilterType !== 'Decimal' &&\n selectedFilterType !== 'Number'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn,\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n >\n Confirm\n </button>\n </div>\n </div>\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.center{overflow-y:auto;max-height:24rem}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:var(--vbn-color-border-focus)}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"] }]
|
|
232
243
|
}], ctorParameters: () => [], propDecorators: { filterOptions: [{
|
|
233
244
|
type: Input
|
|
234
245
|
}], pd: [{
|
|
@@ -259,11 +270,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
259
270
|
type: Input
|
|
260
271
|
}], maxFilterLength: [{
|
|
261
272
|
type: Input
|
|
273
|
+
}], savedFilters: [{
|
|
274
|
+
type: Input
|
|
262
275
|
}], tooltip: [{
|
|
263
276
|
type: Input
|
|
277
|
+
}], saveCallback: [{
|
|
278
|
+
type: Input
|
|
264
279
|
}], filtersApplied: [{
|
|
265
280
|
type: Output
|
|
266
281
|
}], resetSortData: [{
|
|
267
282
|
type: Output
|
|
268
283
|
}] } });
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlLWZpbHRlci90YWJsZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLG9CQUFvQjtJQUN0QixhQUFhLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxFQUFFLENBQVU7SUFDWixFQUFFLENBQVU7SUFDWixNQUFNLENBQVU7SUFDaEIsS0FBSyxDQUFVO0lBQ2YsT0FBTyxDQUFVO0lBQ2pCLFNBQVMsQ0FBVTtJQUNuQixTQUFTLENBQVU7SUFDbkIsWUFBWSxDQUFVO0lBQ3RCLGNBQWMsQ0FBVTtJQUN4QixhQUFhLENBQVU7SUFDdkIsTUFBTSxDQUFVO0lBQ2hCLFlBQVksQ0FBVTtJQUN0QixXQUFXLENBQVU7SUFDckIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3hCLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3pDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xELFdBQVcsR0FBYSxFQUFFLENBQUM7SUFDM0IsbUJBQW1CLEdBQVcsRUFBRSxD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QUFwQixvQkFBb0Isb2hCQ1RqQyx5eFFBcVNBOzs0RkQ1UmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLHFCQUFxQjt3REFLdEIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFGaWx0ZXJUeXBlLCBJRGF0YUZpbHRlciB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICd2ZXJiZW4tbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tdGFibGUtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWZpbHRlci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZmlsdGVyT3B0aW9uczogSURhdGFGaWx0ZXJbXSA9IFtdO1xuICBASW5wdXQoKSBwZD86IHN0cmluZztcbiAgQElucHV0KCkgbWc/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhlaWdodD86IHN0cmluZztcbiAgQElucHV0KCkgd2lkdGg/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJnQ29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJveFNoYWRvdz86IHN0cmluZztcbiAgQElucHV0KCkgdGV4dENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBwcmltYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlY29uZGFyeUNvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXJ0aWFyeUNvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBib3JkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvcmRlclJhZGl1cz86IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0V2lkdGg/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heEZpbHRlckxlbmd0aDogbnVtYmVyID0gMztcbiAgQElucHV0KCkgdG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZmlsdGVyc0FwcGxpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJlc2V0U29ydERhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgZmlsdGVyQXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHNlbGVjdGVkRmlsdGVyVmFsdWU6IHN0cmluZyA9ICcnO1xuICBzZWxlY3RlZEZpbHRlclR5cGU/OiBhbnk7XG4gIGNvbmRpdGlvbk9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIHNlbGVjdGVkQ29uZGl0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcbiAgaW5wdXRWYWx1ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgc2F2ZWRGaWx0ZXJzOiBJRGF0YUZpbHRlcltdID0gW107XG4gIHNlbGVjdGVkRmlsdGVyczogSURhdGFGaWx0ZXJbXSA9IFtdO1xuICBzaG93QWxsRmlsdGVyczogYm9vbGVhbiA9IGZhbHNlO1xuICBlZGl0SW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBjaGVja0FsbDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0R1cGxpY2F0ZUZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBkaXNhYmxlQWRkRmlsdGVyQnRuOiBib29sZWFuID0gZmFsc2U7XG4gIGRpc2FibGVBcHBseUZpbHRlckJ0bjogYm9vbGVhbiA9IHRydWU7XG4gIGR1cGxpY2F0ZU1lc3NhZ2U/OiBzdHJpbmcgPSAnJztcbiAgY29uZmlnSW5zdGFuY2U6IENvbmZpZztcbiAgc3RvcmFnZUtleTogc3RyaW5nID0gJ3NhdmVkRmlsdGVycyc7XG4gIGZpbHRlckNvdW50OiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY29uZmlnSW5zdGFuY2UgPSBuZXcgQ29uZmlnKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckFycmF5ID0gdGhpcy5maWx0ZXJPcHRpb25zLm1hcCgoaXRlbSkgPT4gaXRlbS5uYW1lKTtcbiAgfVxuXG4gIG9uRmlsdGVyTmFtZUNoYW5nZShzZWxlY3RlZEZpbHRlclZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlciA9IHRoaXMuZmlsdGVyT3B0aW9ucy5maW5kKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLm5hbWUgPT09IHNlbGVjdGVkRmlsdGVyVmFsdWVcbiAgICApO1xuXG4gICAgaWYgKHNlbGVjdGVkRmlsdGVyKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSA9IHNlbGVjdGVkRmlsdGVyLnR5cGU7XG4gICAgICB0aGlzLmNvbmRpdGlvbk9wdGlvbnMgPVxuICAgICAgICB0aGlzLmNvbmZpZ0luc3RhbmNlLmdldENvbmRpdGlvbk9wdGlvbnModGhpcy5zZWxlY3RlZEZpbHRlclR5cGUpIHx8IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSA9IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9ICcnO1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzID0gW107XG4gICAgdGhpcy5lZGl0SW5kZXggPSBudWxsO1xuICAgIHRoaXMuY2hlY2tBbGwgPSBmYWxzZTtcbiAgICB0aGlzLmlzRHVwbGljYXRlRmlsdGVyID0gZmFsc2U7XG4gICAgdGhpcy5kaXNhYmxlQXBwbHlGaWx0ZXJCdG4gPSB0cnVlO1xuICAgIHRoaXMuZHVwbGljYXRlTWVzc2FnZSA9ICcnO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc3RvcmFnZUtleSk7XG4gICAgdGhpcy5maWx0ZXJDb3VudCA9IHRoaXMuc2F2ZWRGaWx0ZXJzLmZpbHRlcihcbiAgICAgIChpdGVtKSA9PiBpdGVtLmNoZWNrZWQgPT09IHRydWVcbiAgICApLmxlbmd0aDtcbiAgICB0aGlzLnJlc2V0U29ydERhdGEuZW1pdCgpO1xuICB9XG5cbiAgYWRkRmlsdGVyKCkge1xuICAgIGlmIChcbiAgICAgICF0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUgfHxcbiAgICAgICF0aGlzLnNlbGVjdGVkQ29uZGl0aW9uIHx8XG4gICAgICAhdGhpcy5pbnB1dFZhbHVlXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZWRpdEluZGV4ID09PSBudWxsICYmIHRoaXMuaXNEdXBsaWNhdGVGaWx0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gMDA6MDAgMjM6NTlcbiAgICBpZiAoXG4gICAgICAodGhpcy5zZWxlY3RlZEZpbHRlclR5cGUgYXMgRGF0YUZpbHRlclR5cGUpID09IERhdGFGaWx0ZXJUeXBlLkRhdGUgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPT0gJ09uJ1xuICAgICkge1xuICAgICAgY29uc3QgbGVmdEZpbHRlcjogSURhdGFGaWx0ZXIgPSB7XG4gICAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSxcbiAgICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUsXG4gICAgICAgIGNvbmRpdGlvbjogJ0FmdGVyJyxcbiAgICAgICAgdmFsdWU6ICh0aGlzLmlucHV0VmFsdWUgYXMgc3RyaW5nKS5jb25jYXQoJyAwMDowMCcpLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmlnaHRGaWx0ZXI6IElEYXRhRmlsdGVyID0ge1xuICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlLFxuICAgICAgICBjb25kaXRpb246ICdCZWZvcmUnLFxuICAgICAgICB2YWx1ZTogKHRoaXMuaW5wdXRWYWx1ZSBhcyBzdHJpbmcpLmNvbmNhdCgnIDIzOjU5JyksXG4gICAgICAgIGNoZWNrZWQ6IHRydWUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBmaWx0ZXJzID0gW2xlZnRGaWx0ZXIsIHJpZ2h0RmlsdGVyXTtcblxuICAgICAgZm9yIChsZXQgbmV3RmlsdGVyIG9mIGZpbHRlcnMpIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgaXNEdXBsaWNhdGUgPSB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAgICAgKGZpbHRlciwgaW5kZXgpID0+XG4gICAgICAgICAgICAgIGZpbHRlci5uYW1lID09PSBuZXdGaWx0ZXIubmFtZSAmJlxuICAgICAgICAgICAgICBmaWx0ZXIuY29uZGl0aW9uID09PSBuZXdGaWx0ZXIuY29uZGl0aW9uICYmXG4gICAgICAgICAgICAgIGluZGV4ICE9PSB0aGlzLmVkaXRJbmRleFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoaXNEdXBsaWNhdGUpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNhdmVkRmlsdGVyc1t0aGlzLmVkaXRJbmRleF0gPSBuZXdGaWx0ZXI7XG4gICAgICAgICAgdGhpcy5lZGl0SW5kZXggPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLnNvbWUoXG4gICAgICAgICAgICAgIChmaWx0ZXIpID0+XG4gICAgICAgICAgICAgICAgZmlsdGVyLm5hbWUgPT09IG5ld0ZpbHRlci5uYW1lICYmXG4gICAgICAgICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gbmV3RmlsdGVyLmNvbmRpdGlvblxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLnB1c2gobmV3RmlsdGVyKTtcbiAgICAgICAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZVxuICAgICAgICAgICkubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld0ZpbHRlcjogSURhdGFGaWx0ZXIgPSB7XG4gICAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSxcbiAgICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUsXG4gICAgICAgIGNvbmRpdGlvbjogdGhpcy5zZWxlY3RlZENvbmRpdGlvbixcbiAgICAgICAgdmFsdWU6IHRoaXMuaW5wdXRWYWx1ZSxcbiAgICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBpc0R1cGxpY2F0ZSA9IHRoaXMuc2F2ZWRGaWx0ZXJzLnNvbWUoXG4gICAgICAgICAgKGZpbHRlciwgaW5kZXgpID0+XG4gICAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gbmV3RmlsdGVyLm5hbWUgJiZcbiAgICAgICAgICAgIGZpbHRlci5jb25kaXRpb24gPT09IG5ld0ZpbHRlci5jb25kaXRpb24gJiZcbiAgICAgICAgICAgIGluZGV4ICE9PSB0aGlzLmVkaXRJbmRleFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChpc0R1cGxpY2F0ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNhdmVkRmlsdGVyc1t0aGlzLmVkaXRJbmRleF0gPSBuZXdGaWx0ZXI7XG4gICAgICAgIHRoaXMuZWRpdEluZGV4ID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICAgICAgZmlsdGVyLm5hbWUgPT09IG5ld0ZpbHRlci5uYW1lICYmXG4gICAgICAgICAgICAgIGZpbHRlci5jb25kaXRpb24gPT09IG5ld0ZpbHRlci5jb25kaXRpb25cbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNhdmVkRmlsdGVycy5wdXNoKG5ld0ZpbHRlcik7XG4gICAgICAgIHRoaXMuZmlsdGVyQ291bnQgPSB0aGlzLnNhdmVkRmlsdGVycy5maWx0ZXIoXG4gICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZVxuICAgICAgICApLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNsZWFyT3BlcmF0aW9uU2VjdGlvbigpO1xuICAgIHRoaXMuY2hlY2tGaWx0ZXJCdXR0b24oKTtcbiAgfVxuXG4gIHRvZ2dsZUNoZWNrYm94KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNhdmVkRmlsdGVyc1tpbmRleF0uY2hlY2tlZCA9ICF0aGlzLnNhdmVkRmlsdGVyc1tpbmRleF0uY2hlY2tlZDtcbiAgICB0aGlzLmNoZWNrQWxsID0gdGhpcy5zYXZlZEZpbHRlcnMuZXZlcnkoKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCk7XG4gICAgdGhpcy5maWx0ZXJDb3VudCA9IHRoaXMuc2F2ZWRGaWx0ZXJzLmZpbHRlcihcbiAgICAgIChpdGVtKSA9PiBpdGVtLmNoZWNrZWQgPT09IHRydWVcbiAgICApLmxlbmd0aDtcbiAgfVxuXG4gIGRlbGV0ZUZpbHRlcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zYXZlZEZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmNoZWNrRHVwbGljYXRlRmlsdGVyKCk7XG4gICAgdGhpcy5jaGVja0ZpbHRlckJ1dHRvbigpO1xuICAgIHRoaXMuZmlsdGVyQ291bnQgPSB0aGlzLnNhdmVkRmlsdGVycy5maWx0ZXIoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5jaGVja2VkID09PSB0cnVlXG4gICAgKS5sZW5ndGg7XG4gICAgaWYgKHRoaXMuc2F2ZWRGaWx0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jaGVja0FsbCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGVkaXRGaWx0ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSA9IGZpbHRlci50eXBlO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSA9IGZpbHRlci5uYW1lO1xuICAgIHRoaXMub25GaWx0ZXJOYW1lQ2hhbmdlKHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9IGZpbHRlci5jb25kaXRpb247XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZmlsdGVyLnZhbHVlO1xuICAgIHRoaXMuZWRpdEluZGV4ID0gaW5kZXg7XG4gIH1cblxuICBhcHBseUZpbHRlcnMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMgPSB0aGlzLnNhdmVkRmlsdGVycy5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmNoZWNrZWQpO1xuICAgIHRoaXMuZmlsdGVyc0FwcGxpZWQuZW1pdCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XG4gICAgdGhpcy5maWx0ZXJzQXBwbGllZC5lbWl0KHRoaXMuc3RvcmFnZUtleSk7XG4gIH1cblxuICB0b2dnbGVTaG93TW9yZSgpIHtcbiAgICB0aGlzLnNob3dBbGxGaWx0ZXJzID0gIXRoaXMuc2hvd0FsbEZpbHRlcnM7XG4gIH1cblxuICBnZXQgdmlzaWJsZUZpbHRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbEZpbHRlcnNcbiAgICAgID8gdGhpcy5zYXZlZEZpbHRlcnNcbiAgICAgIDogdGhpcy5zYXZlZEZpbHRlcnMuc2xpY2UoMCwgdGhpcy5tYXhGaWx0ZXJMZW5ndGgpO1xuICB9XG5cbiAgY2xlYXJPcGVyYXRpb25TZWN0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgfVxuXG4gIGNoZWNrRmlsdGVyQnV0dG9uKCkge1xuICAgIHRoaXMuZGlzYWJsZUFwcGx5RmlsdGVyQnRuID0gdGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tBbGwgPSAhdGhpcy5jaGVja0FsbDtcbiAgICB0aGlzLnNhdmVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IChmaWx0ZXIuY2hlY2tlZCA9IHRoaXMuY2hlY2tBbGwpKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZVxuICAgICkubGVuZ3RoO1xuICB9XG5cbiAgY2hlY2tEdXBsaWNhdGVGaWx0ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWRpdEluZGV4ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBleGlzdHMgPSB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAoZmlsdGVyLCBpbmRleCkgPT5cbiAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gdGhpcy5zZWxlY3RlZEZpbHRlclZhbHVlICYmXG4gICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gdGhpcy5zZWxlY3RlZENvbmRpdGlvbiAmJlxuICAgICAgICAgIGluZGV4ICE9PSB0aGlzLmVkaXRJbmRleFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGlzYWJsZUFkZEZpbHRlckJ0biA9IGV4aXN0cztcbiAgICAgIHRoaXMuaXNEdXBsaWNhdGVGaWx0ZXIgPSBleGlzdHM7XG4gICAgICB0aGlzLmR1cGxpY2F0ZU1lc3NhZ2UgPSBleGlzdHNcbiAgICAgICAgPyAnVGhpcyBlbnRyeSBpcyBhIGR1cGxpY2F0ZSBhbmQgY2Fubm90IGJlIGFkZGVkLidcbiAgICAgICAgOiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gdGhpcy5zZWxlY3RlZEZpbHRlclZhbHVlICYmXG4gICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gdGhpcy5zZWxlY3RlZENvbmRpdGlvblxuICAgICAgKTtcbiAgICAgIHRoaXMuZGlzYWJsZUFkZEZpbHRlckJ0biA9IGV4aXN0cztcbiAgICAgIHRoaXMuaXNEdXBsaWNhdGVGaWx0ZXIgPSBleGlzdHM7XG4gICAgICB0aGlzLmR1cGxpY2F0ZU1lc3NhZ2UgPSBleGlzdHNcbiAgICAgICAgPyAnVGhpcyBlbnRyeSBpcyBhIGR1cGxpY2F0ZSBhbmQgY2Fubm90IGJlIGFkZGVkLidcbiAgICAgICAgOiAnJztcbiAgICB9XG4gIH1cbn1cbiIsIjxzZWN0aW9uXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJnQ29sb3JcIlxuICBbc3R5bGUuYm94LXNoYWRvd109XCJib3hTaGFkb3dcIlxuICBbc3R5bGUuYm9yZGVyXT1cImJvcmRlclwiXG4gIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cImJvcmRlclJhZGl1c1wiXG4gIFtzdHlsZS5jb2xvcl09XCJ0ZXh0Q29sb3JcIlxuICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXG4gIFtzdHlsZS5wYWRkaW5nXT1cInBkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInRvcFwiPlxuICAgIDxoMyBbc3R5bGUuY29sb3JdPVwidGVydGlhcnlDb2xvclwiIFtzdHlsZS5mb250LXNpemVdPVwiJzE0cHgnXCI+XG4gICAgICBGaWx0ZXJzXG4gICAgICA8c3BhbiBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgICA+PHN1cD4oe3sgZmlsdGVyQ291bnQgfX0pPC9zdXA+PC9zcGFuXG4gICAgICA+XG4gICAgPC9oMz5cbiAgICA8YnV0dG9uXG4gICAgICBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYmdDb2xvclwiXG4gICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICBbc3R5bGUuY3Vyc29yXT1cIidwb2ludGVyJ1wiXG4gICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgID5cbiAgICAgIFJlc2V0XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8aHIgLz5cblxuICA8IS0tIFNhdmVkIEZpbHRlcnMgU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXZlZFdyYXBwZXJcIj5cbiAgICAgIDxoMyBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiPlNhdmVkIEZpbHRlcnM8L2gzPlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKVwiXG4gICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RBbGxXcmFwcGVyXCIgKm5nSWY9XCJzYXZlZEZpbHRlcnMubGVuZ3RoXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tBbGxcIlxuICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdEFsbCgpXCJcbiAgICAgIC8+XG4gICAgICA8cCBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiIFtzdHlsZS5mb250LXdlaWdodF09XCInNTAwJ1wiPlNlbGVjdCBBbGw8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZpbHRlciBvZiB2aXNpYmxlRmlsdGVyczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBjbGFzcz1cImNlbnRlcklubmVyV3JhcHBlclwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94V3JhcHBlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID48aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJmaWx0ZXIuY2hlY2tlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hlY2tib3goaSlcIlxuICAgICAgICAvPjwvc3Bhbj5cbiAgICAgICAgPHBcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiXG4gICAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIic1MDAnXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGVydGlhcnlDb2xvclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmaWx0ZXIubmFtZSB9fSB7eyBmaWx0ZXIuY29uZGl0aW9uIH19IHt7IGZpbHRlci52YWx1ZX19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImljb25XcmFwcGVyXCI+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgaWNvbj1cInBlbmNpbFwiXG4gICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICBzdHJva2U9XCJ2YXIoLS12Ym4tY29sb3ItYm9yZGVyLWZvY3VzKVwiXG4gICAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci1zdXJmYWNlKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRGaWx0ZXIoaSlcIlxuICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJ0cmFzaFwiXG4gICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICBzdHJva2U9XCJ2YXIoLS12Ym4tY29sb3ItZXJyb3IpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRmlsdGVyKGkpXCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtb3JlV3JhcHBlclwiXG4gICAgICAqbmdJZj1cInNhdmVkRmlsdGVycy5sZW5ndGggPiBtYXhGaWx0ZXJMZW5ndGhcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVNob3dNb3JlKClcIlxuICAgID5cbiAgICAgIDxwXG4gICAgICAgIFtzdHlsZS5mb250LXNpemVdPVwiJzEycHgnXCJcbiAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIic1MDAnXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRlcnRpYXJ5Q29sb3JcIlxuICAgICAgPlxuICAgICAgICB7eyBzaG93QWxsRmlsdGVycyA/IFwiU2hvdyBsZXNzXCIgOiBcIlNob3cgbW9yZVwiIH19XG4gICAgICA8L3A+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgIGljb249XCJjaGV2cm9uXCJcbiAgICAgICAgW3dpZHRoXT1cIjhcIlxuICAgICAgICBbaGVpZ2h0XT1cIjZcIlxuICAgICAgICBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgICAgc3Ryb2tlPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8aHIgLz5cblxuICA8IS0tIE9wZXJhdGlvbiBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiYm90dG9tXCI+XG4gICAgPGRpdiBjbGFzcz1cInNhdmVkV3JhcHBlclwiPlxuICAgICAgPGgzIFtzdHlsZS5mb250LXNpemVdPVwiJzEzcHgnXCI+T3BlcmF0aW9uPC9oMz5cbiAgICAgIDxkaXYgW25nU3R5bGVdPVwieydwb3NpdGlvbic6J3JlbGF0aXZlJ31cIj4gXG4gICAgICAgIFxuICAgICAgICA8dmVyYmVuLXRvb2x0aXAgXG4gICAgICAgIFt0b29sdGlwQ29udGVudF09XCJ0b29sdGlwVGVtcGxhdGVcIlxuICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZS1hbHQpJ1wiXG4gICAgICAgIHdpZHRoPVwiMjAwcHhcIiBcbiAgICAgICAgW3RvcF09XCInMjBweCdcIiAgICAgICAgICAgICAgICAgXG4gICAgICAgIFtyaWdodF09XCInMHB4J1wiICBcbiAgICAgICAgPlxuICAgICAgICA8dmVyYmVuLXN2ZyBcbiAgICAgICAgaWNvbj1cImluZm9cIiBcbiAgICAgICAgW3dpZHRoXT1cIjE1XCIgXG4gICAgICAgIFtoZWlnaHRdPVwiMTVcIiAgIFxuICAgICAgICAqbmdJZj1cImlzRHVwbGljYXRlRmlsdGVyXCJcbiAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci1lcnJvcilcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLXN2Zz5cbiAgICAgICAgPC92ZXJiZW4tdG9vbHRpcD5cbiAgICAgIFxuICAgICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVGVtcGxhdGU+XG4gICAgICAge3tkdXBsaWNhdGVNZXNzYWdlfX1cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwhLS0gPHZlcmJlbi10b29sdGlwXG4gICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZS1hbHQpJ1wiXG4gICAgICAgICBbdGV4dENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSknXCJcbiAgICAgICAgIFtwYWRkaW5nXT1cIicxMHB4J1wiXG4gICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic4cHgnXCJcbiAgICAgICAgIFt0b3BdPVwiJzIwcHgnXCIgICAgICAgICAgICAgICAgIFxuICAgICAgICAgW3JpZ2h0XT1cIicwcHgnXCIgICBcbiAgICAgICAgIHdpZHRoPVwiMjUwcHhcIiBcbiAgICAgICAgICN0b29sdGlwIFxuICAgICAgICAgKm5nSWY9XCJ0b29sdGlwXCJcbiAgICAgICAgID5cbiAgICAgICAgIDxoMz57e2R1cGxpY2F0ZU1lc3NhZ2V9fTwvaDM+XG4gICAgICAgIDwvdmVyYmVuLXRvb2x0aXA+IC0tPlxuICAgICAgPC9kaXY+XG4gICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICBpY29uPVwiaW5mb1wiXG4gICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXCJcbiAgICAgICAgKm5nSWY9XCIhaXNEdXBsaWNhdGVGaWx0ZXJcIlxuICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dHNXcmFwcGVyXCI+XG4gICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICB3aWR0aD1cIjdyZW1cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCB2YWx1ZVwiXG4gICAgICAgIFtvcHRpb25zXT1cImZpbHRlckFycmF5XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEZpbHRlclZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25GaWx0ZXJOYW1lQ2hhbmdlKHNlbGVjdGVkRmlsdGVyVmFsdWUpXCJcbiAgICAgID5cbiAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgIHdpZHRoPVwiN3JlbVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IHZhbHVlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdmFsdWVcIlxuICAgICAgICBbb3B0aW9uc109XCJjb25kaXRpb25PcHRpb25zXCJcbiAgICAgICAgKG9uQ2hhbmdlKT1cImNoZWNrRHVwbGljYXRlRmlsdGVyKClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ29uZGl0aW9uXCJcbiAgICAgID5cbiAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRGaWx0ZXJUeXBlID09PSAnRGF0ZSdcIlxuICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkIHZhcigtLXZibi1jb2xvci1ib3JkZXIpXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjVweFwiXG4gICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgd2lkdGg9XCI4MHB4XCJcbiAgICAgIGhlaWdodD1cIjI1cHhcIlxuICAgICAgcGQ9XCI2cHhcIlxuICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgIFt0eXBlXT1cIidkYXRlJ1wiXG4gICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAqbmdJZj1cInNlbGVjdGVkRmlsdGVyVHlwZSA9PT0gJ0NyZWRpdCcgfHwgc2VsZWN0ZWRGaWx0ZXJUeXBlID09PSAnSW50ZWdlcidcIlxuICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkIHZhcigtLXZibi1jb2xvci1ib3JkZXIpXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjVweFwiXG4gICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgd2lkdGg9XCIxMDBweFwiXG4gICAgICBoZWlnaHQ9XCIyNXB4XCJcbiAgICAgIHBkPVwiNnB4XCJcbiAgICAgIHBsYWNlSG9sZGVyPVwiaW5wdXQgaW50ZWdlclwiXG4gICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcblxuICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG5cbiAgICAgIGFwcFZhbGlkYXRlPVwiaW50ZWdlclwiXG4gICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAqbmdJZj1cInNlbGVjdGVkRmlsdGVyVHlwZSA9PT0gJ0RlY2ltYWwnXCJcbiAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCB2YXIoLS12Ym4tY29sb3ItYm9yZGVyKVwiXG4gICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgIHdpZHRoPVwiMTAwcHhcIlxuICAgICAgaGVpZ2h0PVwiMjVweFwiXG4gICAgICBwZD1cIjZweFwiXG4gICAgICBwbGFjZUhvbGRlcj1cImlucHV0IGEgZGVjaW1hbFwiXG4gICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cImZhbHNlXCJcbiAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgIGFwcFZhbGlkYXRlPVwiZGVjaW1hbFwiXG4gICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAqbmdJZj1cInNlbGVjdGVkRmlsdGVyVHlwZSAhPT0gJ0NyZWRpdCcgJiYgc2VsZWN0ZWRGaWx0ZXJUeXBlICE9PSAnRGF0ZScgICYmIHNlbGVjdGVkRmlsdGVyVHlwZSAhPT0gJ0ludGVnZXInICAmJiBzZWxlY3RlZEZpbHRlclR5cGUgIT09ICdEZWNpbWFsJ1wiXG4gICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgcGxhY2VIb2xkZXI9XCJpbnB1dCB2YWx1ZVwiXG4gICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgIHdpZHRoPVwiMTAwcHhcIlxuICAgICAgaGVpZ2h0PVwiMjVweFwiXG4gICAgICBwZD1cIjZweFwiXG4gICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcblxuICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG5cbiAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgPjwvdmVyYmVuYS1pbnB1dD5cblxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJ0bldyYXBwZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwiJzAuNXJlbSdcIlxuICAgICAgICBbc3R5bGUub3V0bGluZV09XCInbm9uZSdcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICAgIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cImJvcmRlclJhZGl1c1wiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInNTAwJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQWRkRmlsdGVyQnRuXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIGRpc2FibGVidG46IGRpc2FibGVBZGRGaWx0ZXJCdG4sXG4gICAgICAgICAgZW5hYmxlQnRuOiAhZGlzYWJsZUFkZEZpbHRlckJ0blxuICAgICAgICB9XCJcbiAgICAgICAgKGNsaWNrKT1cImFkZEZpbHRlcigpXCJcbiAgICAgID5cbiAgICAgICAgKyBBZGRcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxociAvPlxuXG4gICAgPGRpdiBjbGFzcz1cImJ0bldyYXBwZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwiJzAuNXJlbSdcIlxuICAgICAgICBbc3R5bGUub3V0bGluZV09XCInbm9uZSdcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nXT1cIicwLjJyZW0gMS42cmVtJ1wiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInByaW1hcnlDb2xvclwiXG4gICAgICAgIFtzdHlsZS5jb2xvcl09XCJ0ZXJ0aWFyeUNvbG9yXCJcbiAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTJweCdcIlxuICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJzYwMCdcIlxuICAgICAgICAoY2xpY2spPVwiYXBwbHlGaWx0ZXJzKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFwcGx5RmlsdGVyQnRuXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIGRpc2FibGVidG46IGRpc2FibGVBcHBseUZpbHRlckJ0bixcbiAgICAgICAgICBlbmFibGVCdG46ICFkaXNhYmxlQXBwbHlGaWx0ZXJCdG5cbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIEZpbHRlclxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cblxuICA8L2Rpdj5cblxuPC9zZWN0aW9uPlxuIl19
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlLWZpbHRlci90YWJsZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLG9CQUFvQjtJQUN0QixhQUFhLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxFQUFFLENBQVU7SUFDWixFQUFFLENBQVU7SUFDWixNQUFNLENBQVU7SUFDaEIsS0FBSyxDQUFVO0lBQ2YsT0FBTyxDQUFVO0lBQ2pCLFNBQVMsQ0FBVTtJQUNuQixTQUFTLENBQVU7SUFDbkIsWUFBWSxDQUFVO0lBQ3RCLGNBQWMsQ0FBVTtJQUN4QixhQUFhLENBQVU7SUFDdkIsTUFBTSxDQUFVO0lBQ2hCLFlBQVksQ0FBVTtJQUN0QixXQUFXLENBQVU7SUFDckIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixZQUFZLEdBQWtCLEVBQUUsQ0FBQztJQUNqQyxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLFlBQVksQ0FBMkM7SUFDdEQsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDekMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbEQs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IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YUZpbHRlclR5cGUsIElEYXRhRmlsdGVyIH0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi10YWJsZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtZmlsdGVyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmaWx0ZXJPcHRpb25zOiBJRGF0YUZpbHRlcltdID0gW107XG4gIEBJbnB1dCgpIHBkPzogc3RyaW5nO1xuICBASW5wdXQoKSBtZz86IHN0cmluZztcbiAgQElucHV0KCkgaGVpZ2h0Pzogc3RyaW5nO1xuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgYmdDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgYm94U2hhZG93Pzogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgc2Vjb25kYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlcnRpYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvcmRlcj86IHN0cmluZztcbiAgQElucHV0KCkgYm9yZGVyUmFkaXVzPzogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RXaWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgbWF4RmlsdGVyTGVuZ3RoOiBudW1iZXIgPSAzO1xuICBASW5wdXQoKSBzYXZlZEZpbHRlcnM6IElEYXRhRmlsdGVyW10gPSBbXTtcbiAgQElucHV0KCkgdG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzYXZlQ2FsbGJhY2s/OiAoaXRlbXM6IElEYXRhRmlsdGVyW10pID0+IFByb21pc2U8dm9pZD47XG4gIEBPdXRwdXQoKSBmaWx0ZXJzQXBwbGllZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVzZXRTb3J0RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBmaWx0ZXJBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgc2VsZWN0ZWRGaWx0ZXJWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGVkRmlsdGVyVHlwZTogRGF0YUZpbHRlclR5cGUgfCBudWxsID0gbnVsbDtcbiAgY29uZGl0aW9uT3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgc2VsZWN0ZWRDb25kaXRpb246IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xuICBpbnB1dFZhbHVlPzogc3RyaW5nIHwgbnVtYmVyO1xuICBzZWxlY3RlZEZpbHRlcnM6IElEYXRhRmlsdGVyW10gPSBbXTtcbiAgc2hvd0FsbEZpbHRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZWRpdEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgY2hlY2tBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNEdXBsaWNhdGVGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzYWJsZUFkZEZpbHRlckJ0bjogYm9vbGVhbiA9IGZhbHNlO1xuICAvL2Rpc2FibGVBcHBseUZpbHRlckJ0bjogYm9vbGVhbiA9IHRydWU7XG4gIGR1cGxpY2F0ZU1lc3NhZ2U/OiBzdHJpbmcgPSAnJztcbiAgY29uZmlnSW5zdGFuY2U6IENvbmZpZztcbiAgc3RvcmFnZUtleTogc3RyaW5nID0gJ3NhdmVkRmlsdGVycyc7XG4gIGZpbHRlckNvdW50OiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY29uZmlnSW5zdGFuY2UgPSBuZXcgQ29uZmlnKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckFycmF5ID0gdGhpcy5maWx0ZXJPcHRpb25zLm1hcCgoaXRlbSkgPT4gaXRlbS5uYW1lKTtcbiAgfVxuXG4gIG9uRmlsdGVyTmFtZUNoYW5nZShzZWxlY3RlZEZpbHRlclZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlciA9IHRoaXMuZmlsdGVyT3B0aW9ucy5maW5kKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLm5hbWUgPT09IHNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgKTtcblxuICAgIGlmIChzZWxlY3RlZEZpbHRlcikge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUgPSBzZWxlY3RlZEZpbHRlci50eXBlO1xuICAgICAgdGhpcy5jb25kaXRpb25PcHRpb25zID1cbiAgICAgICAgdGhpcy5jb25maWdJbnN0YW5jZS5nZXRDb25kaXRpb25PcHRpb25zKHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlKSB8fCBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB9XG4gIH1cblxuICByZXNldEZpbHRlcnMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUgPSBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAvLyB0aGlzLnNhdmVkRmlsdGVycyA9IFtdO1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLmZvckVhY2goKHgpID0+IHtcbiAgICAgIHguY2hlY2tlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuZWRpdEluZGV4ID0gbnVsbDtcbiAgICB0aGlzLmNoZWNrQWxsID0gZmFsc2U7XG4gICAgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlciA9IGZhbHNlO1xuICAgIC8vIHRoaXMuZGlzYWJsZUFwcGx5RmlsdGVyQnRuID0gdHJ1ZTtcbiAgICB0aGlzLmR1cGxpY2F0ZU1lc3NhZ2UgPSAnJztcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xuICAgIHRoaXMuZmlsdGVyQ291bnQgPSB0aGlzLnNhdmVkRmlsdGVycy5maWx0ZXIoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5jaGVja2VkID09PSB0cnVlLFxuICAgICkubGVuZ3RoO1xuICAgIHRoaXMucmVzZXRTb3J0RGF0YS5lbWl0KCk7XG4gICAgdGhpcy5hcHBseUZpbHRlcnModHJ1ZSk7XG4gIH1cblxuICBhZGRGaWx0ZXIoKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWRDb25kaXRpb24gfHxcbiAgICAgICF0aGlzLmlucHV0VmFsdWVcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lZGl0SW5kZXggPT09IG51bGwgJiYgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyAwMDowMCAyMzo1OVxuICAgIGlmIChcbiAgICAgICh0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSBhcyBEYXRhRmlsdGVyVHlwZSkgPT0gRGF0YUZpbHRlclR5cGUuRGF0ZSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9PSAnT24nXG4gICAgKSB7XG4gICAgICBjb25zdCBsZWZ0RmlsdGVyOiBJRGF0YUZpbHRlciA9IHtcbiAgICAgICAgbmFtZTogdGhpcy5zZWxlY3RlZEZpbHRlclZhbHVlLFxuICAgICAgICB0eXBlOiB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSB8fCBEYXRhRmlsdGVyVHlwZS5TdHJpbmcsXG4gICAgICAgIGNvbmRpdGlvbjogJ0FmdGVyJyxcbiAgICAgICAgdmFsdWU6ICh0aGlzLmlucHV0VmFsdWUgYXMgc3RyaW5nKS5jb25jYXQoJyAwMDowMCcpLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmlnaHRGaWx0ZXI6IElEYXRhRmlsdGVyID0ge1xuICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlIHx8IERhdGFGaWx0ZXJUeXBlLlN0cmluZyxcbiAgICAgICAgY29uZGl0aW9uOiAnQmVmb3JlJyxcbiAgICAgICAgdmFsdWU6ICh0aGlzLmlucHV0VmFsdWUgYXMgc3RyaW5nKS5jb25jYXQoJyAyMzo1OScpLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZmlsdGVycyA9IFtsZWZ0RmlsdGVyLCByaWdodEZpbHRlcl07XG5cbiAgICAgIGZvciAobGV0IG5ld0ZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAgIChmaWx0ZXIsIGluZGV4KSA9PlxuICAgICAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gbmV3RmlsdGVyLm5hbWUgJiZcbiAgICAgICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gbmV3RmlsdGVyLmNvbmRpdGlvbiAmJlxuICAgICAgICAgICAgICBpbmRleCAhPT0gdGhpcy5lZGl0SW5kZXgsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChpc0R1cGxpY2F0ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzW3RoaXMuZWRpdEluZGV4XSA9IG5ld0ZpbHRlcjtcbiAgICAgICAgICB0aGlzLmVkaXRJbmRleCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gbmV3RmlsdGVyLm5hbWUgJiZcbiAgICAgICAgICAgICAgICBmaWx0ZXIuY29uZGl0aW9uID09PSBuZXdGaWx0ZXIuY29uZGl0aW9uLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLnB1c2gobmV3RmlsdGVyKTtcbiAgICAgICAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICAgICAgICApLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdGaWx0ZXI6IElEYXRhRmlsdGVyID0ge1xuICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlIHx8IERhdGFGaWx0ZXJUeXBlLlN0cmluZyxcbiAgICAgICAgY29uZGl0aW9uOiB0aGlzLnNlbGVjdGVkQ29uZGl0aW9uLFxuICAgICAgICB2YWx1ZTogdGhpcy5pbnB1dFZhbHVlLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgaWYgKHRoaXMuZWRpdEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAoZmlsdGVyLCBpbmRleCkgPT5cbiAgICAgICAgICAgIGZpbHRlci5uYW1lID09PSBuZXdGaWx0ZXIubmFtZSAmJlxuICAgICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gbmV3RmlsdGVyLmNvbmRpdGlvbiAmJlxuICAgICAgICAgICAgaW5kZXggIT09IHRoaXMuZWRpdEluZGV4LFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChpc0R1cGxpY2F0ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNhdmVkRmlsdGVyc1t0aGlzLmVkaXRJbmRleF0gPSBuZXdGaWx0ZXI7XG4gICAgICAgIHRoaXMuZWRpdEluZGV4ID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICAgICAgZmlsdGVyLm5hbWUgPT09IG5ld0ZpbHRlci5uYW1lICYmXG4gICAgICAgICAgICAgIGZpbHRlci5jb25kaXRpb24gPT09IG5ld0ZpbHRlci5jb25kaXRpb24sXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zYXZlZEZpbHRlcnMucHVzaChuZXdGaWx0ZXIpO1xuICAgICAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmNoZWNrZWQgPT09IHRydWUsXG4gICAgICAgICkubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2xlYXJPcGVyYXRpb25TZWN0aW9uKCk7XG4gICAgLy8gdGhpcy5jaGVja0ZpbHRlckJ1dHRvbigpO1xuICB9XG5cbiAgdG9nZ2xlQ2hlY2tib3goaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XS5jaGVja2VkID0gIXRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XS5jaGVja2VkO1xuICAgIHRoaXMuY2hlY2tBbGwgPSB0aGlzLnNhdmVkRmlsdGVycy5ldmVyeSgoaXRlbSkgPT4gaXRlbS5jaGVja2VkKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgfVxuXG4gIGRlbGV0ZUZpbHRlcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zYXZlZEZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmNoZWNrRHVwbGljYXRlRmlsdGVyKCk7XG4gICAgLy8gIHRoaXMuY2hlY2tGaWx0ZXJCdXR0b24oKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgICBpZiAodGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNoZWNrQWxsID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnNhdmVDYWxsYmFjaykge1xuICAgICAgdGhpcy5zYXZlQ2FsbGJhY2sodGhpcy5zYXZlZEZpbHRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIGVkaXRGaWx0ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSA9IGZpbHRlci50eXBlO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSA9IGZpbHRlci5uYW1lO1xuICAgIHRoaXMub25GaWx0ZXJOYW1lQ2hhbmdlKHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9IGZpbHRlci5jb25kaXRpb247XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZmlsdGVyLnZhbHVlO1xuICAgIHRoaXMuZWRpdEluZGV4ID0gaW5kZXg7XG4gIH1cblxuICBhcHBseUZpbHRlcnMoc2tpcFNhdmU6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5jaGVja2VkKTtcbiAgICBpZiAodGhpcy5zYXZlQ2FsbGJhY2sgJiYgIXNraXBTYXZlKSB7XG4gICAgICB0aGlzLnNhdmVDYWxsYmFjayh0aGlzLnNhdmVkRmlsdGVycyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyc0FwcGxpZWQuZW1pdCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XG4gICAgdGhpcy5maWx0ZXJzQXBwbGllZC5lbWl0KHRoaXMuc3RvcmFnZUtleSk7XG4gIH1cblxuICB0b2dnbGVTaG93TW9yZSgpIHtcbiAgICB0aGlzLnNob3dBbGxGaWx0ZXJzID0gIXRoaXMuc2hvd0FsbEZpbHRlcnM7XG4gIH1cblxuICBnZXQgdmlzaWJsZUZpbHRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbEZpbHRlcnNcbiAgICAgID8gdGhpcy5zYXZlZEZpbHRlcnNcbiAgICAgIDogdGhpcy5zYXZlZEZpbHRlcnMuc2xpY2UoMCwgdGhpcy5tYXhGaWx0ZXJMZW5ndGgpO1xuICB9XG5cbiAgY2xlYXJPcGVyYXRpb25TZWN0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgfVxuXG4gIC8vIGNoZWNrRmlsdGVyQnV0dG9uKCkge1xuICAvLyAgIHRoaXMuZGlzYWJsZUFwcGx5RmlsdGVyQnRuID0gdGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoID09PSAwO1xuICAvLyB9XG5cbiAgdG9nZ2xlU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tBbGwgPSAhdGhpcy5jaGVja0FsbDtcbiAgICB0aGlzLnNhdmVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IChmaWx0ZXIuY2hlY2tlZCA9IHRoaXMuY2hlY2tBbGwpKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgfVxuXG4gIGNoZWNrRHVwbGljYXRlRmlsdGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgKGZpbHRlciwgaW5kZXgpID0+XG4gICAgICAgICAgZmlsdGVyLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSAmJlxuICAgICAgICAgIGZpbHRlci5jb25kaXRpb24gPT09IHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gJiZcbiAgICAgICAgICBpbmRleCAhPT0gdGhpcy5lZGl0SW5kZXgsXG4gICAgICApO1xuICAgICAgdGhpcy5kaXNhYmxlQWRkRmlsdGVyQnRuID0gZXhpc3RzO1xuICAgICAgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlciA9IGV4aXN0cztcbiAgICAgIHRoaXMuZHVwbGljYXRlTWVzc2FnZSA9IGV4aXN0c1xuICAgICAgICA/ICdUaGlzIGVudHJ5IGlzIGEgZHVwbGljYXRlIGFuZCBjYW5ub3QgYmUgYWRkZWQuJ1xuICAgICAgICA6ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleGlzdHMgPSB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAoZmlsdGVyKSA9PlxuICAgICAgICAgIGZpbHRlci5uYW1lID09PSB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUgJiZcbiAgICAgICAgICBmaWx0ZXIuY29uZGl0aW9uID09PSB0aGlzLnNlbGVjdGVkQ29uZGl0aW9uLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGlzYWJsZUFkZEZpbHRlckJ0biA9IGV4aXN0cztcbiAgICAgIHRoaXMuaXNEdXBsaWNhdGVGaWx0ZXIgPSBleGlzdHM7XG4gICAgICB0aGlzLmR1cGxpY2F0ZU1lc3NhZ2UgPSBleGlzdHNcbiAgICAgICAgPyAnVGhpcyBlbnRyeSBpcyBhIGR1cGxpY2F0ZSBhbmQgY2Fubm90IGJlIGFkZGVkLidcbiAgICAgICAgOiAnJztcbiAgICB9XG4gIH1cbn1cbiIsIjxzZWN0aW9uXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJnQ29sb3JcIlxuICBbc3R5bGUuYm94LXNoYWRvd109XCJib3hTaGFkb3dcIlxuICBbc3R5bGUuYm9yZGVyXT1cImJvcmRlclwiXG4gIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cImJvcmRlclJhZGl1c1wiXG4gIFtzdHlsZS5jb2xvcl09XCJ0ZXh0Q29sb3JcIlxuICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXG4gIFtzdHlsZS5wYWRkaW5nXT1cInBkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInRvcFwiPlxuICAgIDxoMyBbc3R5bGUuY29sb3JdPVwidGVydGlhcnlDb2xvclwiIFtzdHlsZS5mb250LXNpemVdPVwiJzE0cHgnXCI+XG4gICAgICBGaWx0ZXJzXG4gICAgICA8c3BhbiBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgICA+PHN1cD4oe3sgZmlsdGVyQ291bnQgfX0pPC9zdXA+PC9zcGFuXG4gICAgICA+XG4gICAgPC9oMz5cbiAgICA8YnV0dG9uXG4gICAgICBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYmdDb2xvclwiXG4gICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICBbc3R5bGUuY3Vyc29yXT1cIidwb2ludGVyJ1wiXG4gICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgID5cbiAgICAgIFJlc2V0XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8aHIgLz5cblxuICA8IS0tIFNhdmVkIEZpbHRlcnMgU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXZlZFdyYXBwZXJcIj5cbiAgICAgIDxoMyBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiPlNhdmVkIEZpbHRlcnM8L2gzPlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKVwiXG4gICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RBbGxXcmFwcGVyXCIgKm5nSWY9XCJzYXZlZEZpbHRlcnMubGVuZ3RoXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tBbGxcIlxuICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdEFsbCgpXCJcbiAgICAgIC8+XG4gICAgICA8cCBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiIFtzdHlsZS5mb250LXdlaWdodF09XCInNTAwJ1wiPlNlbGVjdCBBbGw8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZpbHRlciBvZiB2aXNpYmxlRmlsdGVyczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBjbGFzcz1cImNlbnRlcklubmVyV3JhcHBlclwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94V3JhcHBlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID48aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJmaWx0ZXIuY2hlY2tlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hlY2tib3goaSlcIlxuICAgICAgICAvPjwvc3Bhbj5cbiAgICAgICAgPHBcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiXG4gICAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIic1MDAnXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGVydGlhcnlDb2xvclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmaWx0ZXIubmFtZSB9fSB7eyBmaWx0ZXIuY29uZGl0aW9uIH19IHt7IGZpbHRlci52YWx1ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uV3JhcHBlclwiPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJwZW5jaWxcIlxuICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgc3Ryb2tlPVwidmFyKC0tdmJuLWNvbG9yLWJvcmRlci1mb2N1cylcIlxuICAgICAgICAgIGZpbGw9XCJ2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSlcIlxuICAgICAgICAgIChjbGljayk9XCJlZGl0RmlsdGVyKGkpXCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICBpY29uPVwidHJhc2hcIlxuICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgc3Ryb2tlPVwidmFyKC0tdmJuLWNvbG9yLWVycm9yKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUZpbHRlcihpKVwiXG4gICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibW9yZVdyYXBwZXJcIlxuICAgICAgKm5nSWY9XCJzYXZlZEZpbHRlcnMubGVuZ3RoID4gbWF4RmlsdGVyTGVuZ3RoXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVTaG93TW9yZSgpXCJcbiAgICA+XG4gICAgICA8cFxuICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInNTAwJ1wiXG4gICAgICAgIFtzdHlsZS5jb2xvcl09XCJ0ZXJ0aWFyeUNvbG9yXCJcbiAgICAgID5cbiAgICAgICAge3sgc2hvd0FsbEZpbHRlcnMgPyBcIlNob3cgbGVzc1wiIDogXCJTaG93IG1vcmVcIiB9fVxuICAgICAgPC9wPlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgaWNvbj1cImNoZXZyb25cIlxuICAgICAgICBbd2lkdGhdPVwiOFwiXG4gICAgICAgIFtoZWlnaHRdPVwiNlwiXG4gICAgICAgIGZpbGw9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICBzdHJva2U9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxociAvPlxuXG4gIDwhLS0gT3BlcmF0aW9uIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJib3R0b21cIj5cbiAgICA8ZGl2IGNsYXNzPVwic2F2ZWRXcmFwcGVyXCI+XG4gICAgICA8aDMgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTNweCdcIj5PcGVyYXRpb248L2gzPlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH1cIj5cbiAgICAgICAgPHZlcmJlbi10b29sdGlwXG4gICAgICAgICAgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBUZW1wbGF0ZVwiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KSdcIlxuICAgICAgICAgIHdpZHRoPVwiMjAwcHhcIlxuICAgICAgICAgIFt0b3BdPVwiJzIwcHgnXCJcbiAgICAgICAgICBbcmlnaHRdPVwiJzBweCdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgIGljb249XCJpbmZvXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNEdXBsaWNhdGVGaWx0ZXJcIlxuICAgICAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci1lcnJvcilcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ZlcmJlbi1zdmc+XG4gICAgICAgIDwvdmVyYmVuLXRvb2x0aXA+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVGVtcGxhdGU+XG4gICAgICAgICAge3sgZHVwbGljYXRlTWVzc2FnZSB9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8IS0tIDx2ZXJiZW4tdG9vbHRpcFxuICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KSdcIlxuICAgICAgICAgW3RleHRDb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UpJ1wiXG4gICAgICAgICBbcGFkZGluZ109XCInMTBweCdcIlxuICAgICAgICAgW2JvcmRlclJhZGl1c109XCInOHB4J1wiXG4gICAgICAgICBbdG9wXT1cIicyMHB4J1wiICAgICAgICAgICAgICAgICBcbiAgICAgICAgIFtyaWdodF09XCInMHB4J1wiICAgXG4gICAgICAgICB3aWR0aD1cIjI1MHB4XCIgXG4gICAgICAgICAjdG9vbHRpcCBcbiAgICAgICAgICpuZ0lmPVwidG9vbHRpcFwiXG4gICAgICAgICA+XG4gICAgICAgICA8aDM+e3tkdXBsaWNhdGVNZXNzYWdlfX08L2gzPlxuICAgICAgICA8L3ZlcmJlbi10b29sdGlwPiAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKVwiXG4gICAgICAgICpuZ0lmPVwiIWlzRHVwbGljYXRlRmlsdGVyXCJcbiAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXRzV3JhcHBlclwiPlxuICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgd2lkdGg9XCI3cmVtXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdmFsdWVcIlxuICAgICAgICBbb3B0aW9uc109XCJmaWx0ZXJBcnJheVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRGaWx0ZXJWYWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmlsdGVyTmFtZUNoYW5nZShzZWxlY3RlZEZpbHRlclZhbHVlKVwiXG4gICAgICA+XG4gICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICB3aWR0aD1cIjdyZW1cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCB2YWx1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IHZhbHVlXCJcbiAgICAgICAgW29wdGlvbnNdPVwiY29uZGl0aW9uT3B0aW9uc1wiXG4gICAgICAgIChvbkNoYW5nZSk9XCJjaGVja0R1cGxpY2F0ZUZpbHRlcigpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENvbmRpdGlvblwiXG4gICAgICA+XG4gICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRGaWx0ZXJUeXBlID09PSAnRGF0ZSdcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICB3aWR0aD1cIjgwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyNXB4XCJcbiAgICAgICAgcGQ9XCI2cHhcIlxuICAgICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgW3R5cGVdPVwiJ2RhdGUnXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJUeXBlID09PSAnQ3JlZGl0JyB8fCBzZWxlY3RlZEZpbHRlclR5cGUgPT09ICdJbnRlZ2VyJ1xuICAgICAgICBcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICB3aWR0aD1cIjEwMHB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMjVweFwiXG4gICAgICAgIHBkPVwiNnB4XCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJpbnB1dCBpbnRlZ2VyXCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICAgIGFwcFZhbGlkYXRlPVwiaW50ZWdlclwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuXG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkRmlsdGVyVHlwZSA9PT0gJ0RlY2ltYWwnXCJcbiAgICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkIHZhcigtLXZibi1jb2xvci1ib3JkZXIpXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNXB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgICAgd2lkdGg9XCIxMDBweFwiXG4gICAgICAgIGhlaWdodD1cIjI1cHhcIlxuICAgICAgICBwZD1cIjZweFwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiaW5wdXQgYSBkZWNpbWFsXCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cImZhbHNlXCJcbiAgICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgICBhcHBWYWxpZGF0ZT1cImRlY2ltYWxcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEZpbHRlclR5cGUgPT09ICdOdW1iZXInXCJcbiAgICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkIHZhcigtLXZibi1jb2xvci1ib3JkZXIpXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNXB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgICAgd2lkdGg9XCIxMDBweFwiXG4gICAgICAgIGhlaWdodD1cIjI1cHhcIlxuICAgICAgICBwZD1cIjZweFwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiaW5wdXQgbnVtYmVyXCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cImZhbHNlXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgYXBwVmFsaWRhdGU9XCJudW1iZXJcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBzZWxlY3RlZEZpbHRlclR5cGUgIT09ICdDcmVkaXQnICYmXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJUeXBlICE9PSAnRGF0ZScgJiZcbiAgICAgICAgICBzZWxlY3RlZEZpbHRlclR5cGUgIT09ICdJbnRlZ2VyJyAmJlxuICAgICAgICAgIHNlbGVjdGVkRmlsdGVyVHlwZSAhPT0gJ0RlY2ltYWwnICYmXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJUeXBlICE9PSAnTnVtYmVyJ1xuICAgICAgICBcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cImlucHV0IHZhbHVlXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNXB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgICAgd2lkdGg9XCIxMDBweFwiXG4gICAgICAgIGhlaWdodD1cIjI1cHhcIlxuICAgICAgICBwZD1cIjZweFwiXG4gICAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJidG5XcmFwcGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtzdHlsZS5tYXJnaW4tdG9wXT1cIicwLjVyZW0nXCJcbiAgICAgICAgW3N0eWxlLm91dGxpbmVdPVwiJ25vbmUnXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlcl09XCInbm9uZSdcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyLXJhZGl1c109XCJib3JkZXJSYWRpdXNcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cInNlY29uZGFyeUNvbG9yXCJcbiAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTJweCdcIlxuICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJzUwMCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFkZEZpbHRlckJ0blwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICBkaXNhYmxlYnRuOiBkaXNhYmxlQWRkRmlsdGVyQnRuLFxuICAgICAgICAgIGVuYWJsZUJ0bjogIWRpc2FibGVBZGRGaWx0ZXJCdG4sXG4gICAgICAgIH1cIlxuICAgICAgICAoY2xpY2spPVwiYWRkRmlsdGVyKClcIlxuICAgICAgPlxuICAgICAgICArIEFkZFxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGhyIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYnRuV3JhcHBlclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBbc3R5bGUubWFyZ2luLXRvcF09XCInMC41cmVtJ1wiXG4gICAgICAgIFtzdHlsZS5vdXRsaW5lXT1cIidub25lJ1wiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJdPVwiJ25vbmUnXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmddPVwiJzAuMnJlbSAxLjZyZW0nXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwicHJpbWFyeUNvbG9yXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRlcnRpYXJ5Q29sb3JcIlxuICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInNjAwJ1wiXG4gICAgICAgIChjbGljayk9XCJhcHBseUZpbHRlcnMoKVwiXG4gICAgICA+XG4gICAgICAgIENvbmZpcm1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
|
|
@@ -23,6 +23,7 @@ export class VisibleColumnComponent {
|
|
|
23
23
|
borderRadius;
|
|
24
24
|
selectWidth;
|
|
25
25
|
closeColumn;
|
|
26
|
+
saveCallback;
|
|
26
27
|
columnsUpdated = new EventEmitter();
|
|
27
28
|
resetFilter = new EventEmitter();
|
|
28
29
|
originalColumnOrder = [];
|
|
@@ -52,6 +53,9 @@ export class VisibleColumnComponent {
|
|
|
52
53
|
column.checked = this.visibleColumns[index];
|
|
53
54
|
});
|
|
54
55
|
const selectedColumns = this.columns.filter((column) => column.checked);
|
|
56
|
+
if (this.saveCallback) {
|
|
57
|
+
this.saveCallback(selectedColumns);
|
|
58
|
+
}
|
|
55
59
|
this.columnsUpdated.emit(selectedColumns);
|
|
56
60
|
}
|
|
57
61
|
toggleShowMore() {
|
|
@@ -90,7 +94,7 @@ export class VisibleColumnComponent {
|
|
|
90
94
|
];
|
|
91
95
|
}
|
|
92
96
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VisibleColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VisibleColumnComponent, selector: "verben-visible-column", inputs: { columns: "columns", items: "items", enableDragAndDrop: "enableDragAndDrop", displayedColumns: "displayedColumns", showMore: "showMore", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", closeColumn: "closeColumn" }, outputs: { columnsUpdated: "columnsUpdated", resetFilter: "resetFilter" }, ngImport: i0, template: "<div\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n class=\"column-control\"\n>\n <div class=\"visible-column-header flex justify-between text-sm\">\n <span class=\"column-title\">\n Column <sup>[{{ getSelectedColumnCount() }}]</sup>\n </span>\n <span class=\"column-reset\" (click)=\"resetColumns()\">Reset</span>\n </div>\n <hr />\n\n <!-- Select All Checkbox -->\n <div class=\"flex items-center gap\" [style.padding]=\"'4px 10px'\">\n <label [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">\n <input type=\"checkbox\" [checked]=\"selectAll\" (change)=\"toggleSelectAll()\" />\n Select All\n </label>\n </div>\n\n <div class=\"center\">\n <ul *ngFor=\"let column of columns; let i = index\" class=\"column-options-container\">\n <li\n [attr.draggable]=\"enableDragAndDrop\"\n (dragstart)=\"onDragStart(i, $event)\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(i, $event)\"\n *ngIf=\"i < displayedColumns\"\n [style.font-size]=\"'14px'\"\n [style.margin-top]=\"'14px'\"\n class=\"flex gap-sm items-center\"\n >\n <verben-svg *ngIf=\"enableDragAndDrop\" fill=\"var(--vbn-color-text)\" class=\"svg\" icon=\"square-dot\"></verben-svg>\n <label class=\"flex gap-md items-center\">\n <input type=\"checkbox\" [(ngModel)]=\"visibleColumns[i]\" (ngModelChange)=\"updateSelectAllStatus()\" />\n {{ column.name }}\n </label>\n </li>\n </ul>\n\n <!-- Show More / Show Less -->\n <div *ngIf=\"displayedColumns <= columns.length\" class=\"cursor-pointer\" [style.padding]=\"'20px 10px 0px 10px'\">\n <span (click)=\"toggleShowMore()\">\n {{ displayedColumns === columns.length ? \"Show Less\" : \"Show More\" }}\n </span>\n </div>\n </div>\n\n <hr />\n\n <!-- Save Button -->\n <div class=\"btn-wrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\" \n [disabled]=\"getSelectedColumnCount() === 0\"\n [ngClass]=\"{\n disabledBtn: getSelectedColumnCount() === 0,\n enableBtn: getSelectedColumnCount() !== 0\n }\"\n (click)=\"saveColumnVisibility()\"\n >\n Save\n </button>\n </div>\n</div>\n", styles: ["hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.center{overflow-y:auto;max-height:24rem}.font-normal{font-weight:400}.text-sm{font-size:13px}.gap{gap:10px}.gap-sm{gap:2px}.gap-md{gap:6px}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.visible-column-header{margin-bottom:10px;padding:10px 0}.column-title{font-weight:700;font-size:14px}.column-title sup{color:var(--vbn-color-border-focus);font-weight:600}.column-reset{color:var(--vbn-color-border-focus);font-size:13px;font-weight:500;cursor:pointer}.btn-wrapper{display:flex;justify-content:end}.disabledBtn{cursor:not-allowed}.enabledBtn{cursor:pointer}.show-more{font-size:12px;cursor:pointer;padding:16px 0;display:flex;align-items:center;gap:2px;color:var(--vbn-color-text-muted)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
97
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VisibleColumnComponent, selector: "verben-visible-column", inputs: { columns: "columns", items: "items", enableDragAndDrop: "enableDragAndDrop", displayedColumns: "displayedColumns", showMore: "showMore", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", closeColumn: "closeColumn", saveCallback: "saveCallback" }, outputs: { columnsUpdated: "columnsUpdated", resetFilter: "resetFilter" }, ngImport: i0, template: "<div\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n class=\"column-control\"\n>\n <div class=\"visible-column-header flex justify-between text-sm\">\n <span class=\"column-title\">\n Column <sup>[{{ getSelectedColumnCount() }}]</sup>\n </span>\n <span class=\"column-reset\" (click)=\"resetColumns()\">Reset</span>\n </div>\n <hr />\n\n <!-- Select All Checkbox -->\n <div class=\"flex items-center gap\" [style.padding]=\"'4px 10px'\">\n <label [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">\n <input type=\"checkbox\" [checked]=\"selectAll\" (change)=\"toggleSelectAll()\" />\n Select All\n </label>\n </div>\n\n <div class=\"center\">\n <ul *ngFor=\"let column of columns; let i = index\" class=\"column-options-container\">\n <li\n [attr.draggable]=\"enableDragAndDrop\"\n (dragstart)=\"onDragStart(i, $event)\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(i, $event)\"\n *ngIf=\"i < displayedColumns\"\n [style.font-size]=\"'14px'\"\n [style.margin-top]=\"'14px'\"\n class=\"flex gap-sm items-center\"\n >\n <verben-svg *ngIf=\"enableDragAndDrop\" fill=\"var(--vbn-color-text)\" class=\"svg\" icon=\"square-dot\"></verben-svg>\n <label class=\"flex gap-md items-center\">\n <input type=\"checkbox\" [(ngModel)]=\"visibleColumns[i]\" (ngModelChange)=\"updateSelectAllStatus()\" />\n {{ column.name }}\n </label>\n </li>\n </ul>\n\n <!-- Show More / Show Less -->\n <div *ngIf=\"displayedColumns <= columns.length\" class=\"cursor-pointer\" [style.padding]=\"'20px 10px 0px 10px'\">\n <span (click)=\"toggleShowMore()\">\n {{ displayedColumns === columns.length ? \"Show Less\" : \"Show More\" }}\n </span>\n </div>\n </div>\n\n <hr />\n\n <!-- Save Button -->\n <div class=\"btn-wrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\" \n [disabled]=\"getSelectedColumnCount() === 0\"\n [ngClass]=\"{\n disabledBtn: getSelectedColumnCount() === 0,\n enableBtn: getSelectedColumnCount() !== 0\n }\"\n (click)=\"saveColumnVisibility()\"\n >\n Save\n </button>\n </div>\n</div>\n", styles: ["hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.center{overflow-y:auto;max-height:24rem}.font-normal{font-weight:400}.text-sm{font-size:13px}.gap{gap:10px}.gap-sm{gap:2px}.gap-md{gap:6px}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.visible-column-header{margin-bottom:10px;padding:10px 0}.column-title{font-weight:700;font-size:14px}.column-title sup{color:var(--vbn-color-border-focus);font-weight:600}.column-reset{color:var(--vbn-color-border-focus);font-size:13px;font-weight:500;cursor:pointer}.btn-wrapper{display:flex;justify-content:end}.disabledBtn{cursor:not-allowed}.enabledBtn{cursor:pointer}.show-more{font-size:12px;cursor:pointer;padding:16px 0;display:flex;align-items:center;gap:2px;color:var(--vbn-color-text-muted)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
94
98
|
}
|
|
95
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VisibleColumnComponent, decorators: [{
|
|
96
100
|
type: Component,
|
|
@@ -133,9 +137,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
133
137
|
type: Input
|
|
134
138
|
}], closeColumn: [{
|
|
135
139
|
type: Input
|
|
140
|
+
}], saveCallback: [{
|
|
141
|
+
type: Input
|
|
136
142
|
}], columnsUpdated: [{
|
|
137
143
|
type: Output
|
|
138
144
|
}], resetFilter: [{
|
|
139
145
|
type: Output
|
|
140
146
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJsZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy92aXNpYmxlLWNvbHVtbi92aXNpYmxlLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3Zpc2libGUtY29sdW1uL3Zpc2libGUtY29sdW1uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEdBQ3hCLE1BQU0sZUFBZSxDQUFDOzs7OztBQWF2QixNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsaUJBQWlCLEdBQVksSUFBSSxDQUFDO0lBQ2xDLGdCQUFnQixHQUFXLENBQUMsQ0FBQztJQUM3QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLEVBQUUsQ0FBVTtJQUNaLEVBQUUsQ0FBVTtJQUNaLE1BQU0sQ0FBVTtJQUNoQixLQUFLLENBQVU7SUFDZixPQUFPLENBQVU7SUFDakIsU0FBUyxDQUFVO0lBQ25CLFNBQVMsQ0FBVTtJQUNuQixZQUFZLENBQVU7SUFDdEIsY0FBYyxDQUFVO0lBQ3hCLGFBQWEsQ0FBVTtJQUN2QixNQUFNLENBQVU7SUFDaEIsWUFBWSxDQUFVO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixXQUFXLENBQVc7SUFDckIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBQ25ELFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzNDLG1CQUFtQixHQUFrQixFQUFFLENBQUM7SUFDeEMsY0FBYyxHQUFj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LE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRGF0YUZpbHRlciB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL21vZGVscyc7XG5cbmludGVyZmFjZSBJdGVtIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tdmlzaWJsZS1jb2x1bW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlzaWJsZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aXNpYmxlLWNvbHVtbi5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNpYmxlQ29sdW1uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29sdW1uczogSURhdGFGaWx0ZXJbXSA9IFtdO1xuICBASW5wdXQoKSBpdGVtczogSXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGVuYWJsZURyYWdBbmREcm9wOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlzcGxheWVkQ29sdW1uczogbnVtYmVyID0gNTtcbiAgQElucHV0KCkgc2hvd01vcmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1nPzogc3RyaW5nO1xuICBASW5wdXQoKSBoZWlnaHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHdpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBiZ0NvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBib3hTaGFkb3c/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHRDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgcHJpbWFyeUNvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBzZWNvbmRhcnlDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgdGVydGlhcnlDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgYm9yZGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdFdpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBjbG9zZUNvbHVtbj86IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBjb2x1bW5zVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SURhdGFGaWx0ZXJbXT4oKTtcbiAgQE91dHB1dCgpIHJlc2V0RmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBvcmlnaW5hbENvbHVtbk9yZGVyOiBJRGF0YUZpbHRlcltdID0gW107XG4gIHZpc2libGVDb2x1bW5zOiBib29sZWFuW10gPSBbXTtcbiAgZHJhZ2dlZEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgc2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vcmlnaW5hbENvbHVtbk9yZGVyID0gWy4uLnRoaXMuY29sdW1uc107XG4gICAgdGhpcy5pbml0aWFsaXplQ29sdW1uVmlzaWJpbGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29sdW1uVmlzaWJpbGl0eSgpIHtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uY2hlY2tlZCk7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RBbGxTdGF0dXMoKTtcbiAgfVxuXG4gIHJlc2V0Q29sdW1ucygpIHtcbiAgICB0aGlzLmNvbHVtbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3JpZ2luYWxDb2x1bW5PcmRlcikpOyAvLyBFbnN1cmUgaXQncyBhIGRlZXAgY29weVxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtblZpc2liaWxpdHkoKTtcbiAgICB0aGlzLnNlbGVjdEFsbCA9IGZhbHNlOyAvLyBSZXNldCBzZWxlY3QgYWxsXG4gICAgdGhpcy51cGRhdGVTZWxlY3RBbGxTdGF0dXMoKTtcbiAgICB0aGlzLnJlc2V0RmlsdGVyLmVtaXQoKTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlQ29sdW1ucy5maWx0ZXIoKGlzVmlzaWJsZSkgPT4gaXNWaXNpYmxlKS5sZW5ndGg7XG4gIH1cblxuICBzYXZlQ29sdW1uVmlzaWJpbGl0eSgpIHtcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uLCBpbmRleCkgPT4ge1xuICAgICAgY29sdW1uLmNoZWNrZWQgPSB0aGlzLnZpc2libGVDb2x1bW5zW2luZGV4XTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlbGVjdGVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKGNvbHVtbikgPT4gY29sdW1uLmNoZWNrZWQpO1xuICAgIHRoaXMuY29sdW1uc1VwZGF0ZWQuZW1pdChzZWxlY3RlZENvbHVtbnMpO1xuICB9XG5cbiAgdG9nZ2xlU2hvd01vcmUoKSB7XG4gICAgdGhpcy5zaG93TW9yZSA9ICF0aGlzLnNob3dNb3JlO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuc2hvd01vcmUgPyB0aGlzLmNvbHVtbnMubGVuZ3RoIDogNTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnNlbGVjdEFsbCA9ICF0aGlzLnNlbGVjdEFsbDtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zID0gdGhpcy52aXNpYmxlQ29sdW1ucy5tYXAoKCkgPT4gdGhpcy5zZWxlY3RBbGwpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0QWxsU3RhdHVzKCkge1xuICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy52aXNpYmxlQ29sdW1ucy5ldmVyeSgoaXNWaXNpYmxlKSA9PiBpc1Zpc2libGUpO1xuICB9XG5cbiAgb25EcmFnU3RhcnQoaW5kZXg6IG51bWJlciwgZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIHRoaXMuZHJhZ2dlZEluZGV4ID0gaW5kZXg7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCd0ZXh0L3BsYWluJywgU3RyaW5nKGluZGV4KSk7XG4gIH1cblxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgb25Ecm9wKGluZGV4OiBudW1iZXIsIGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLmRyYWdnZWRJbmRleCAhPT0gbnVsbCAmJiB0aGlzLmRyYWdnZWRJbmRleCAhPT0gaW5kZXgpIHtcbiAgICAgIHRoaXMuc3dhcENvbHVtbnModGhpcy5kcmFnZ2VkSW5kZXgsIGluZGV4KTtcbiAgICB9XG4gICAgdGhpcy5kcmFnZ2VkSW5kZXggPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzd2FwQ29sdW1ucyhmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKSB7XG4gICAgW3RoaXMuY29sdW1uc1tmcm9tSW5kZXhdLCB0aGlzLmNvbHVtbnNbdG9JbmRleF1dID0gW1xuICAgICAgdGhpcy5jb2x1bW5zW3RvSW5kZXhdLFxuICAgICAgdGhpcy5jb2x1bW5zW2Zyb21JbmRleF0sXG4gICAgXTtcbiAgICBbdGhpcy52aXNpYmxlQ29sdW1uc1tmcm9tSW5kZXhdLCB0aGlzLnZpc2libGVDb2x1bW5zW3RvSW5kZXhdXSA9IFtcbiAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnNbdG9JbmRleF0sXG4gICAgICB0aGlzLnZpc2libGVDb2x1bW5zW2Zyb21JbmRleF0sXG4gICAgXTtcbiAgfVxufVxuIiwiPGRpdlxuICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiZ0NvbG9yXCJcbiAgW3N0eWxlLmJveC1zaGFkb3ddPVwiYm94U2hhZG93XCJcbiAgW3N0eWxlLmJvcmRlcl09XCJib3JkZXJcIlxuICBbc3R5bGUuYm9yZGVyLXJhZGl1c109XCJib3JkZXJSYWRpdXNcIlxuICBbc3R5bGUuY29sb3JdPVwidGV4dENvbG9yXCJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxuICBbc3R5bGUucGFkZGluZ109XCJwZFwiXG4gIGNsYXNzPVwiY29sdW1uLWNvbnRyb2xcIlxuPlxuICA8ZGl2IGNsYXNzPVwidmlzaWJsZS1jb2x1bW4taGVhZGVyIGZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc21cIj5cbiAgICA8c3BhbiBjbGFzcz1cImNvbHVtbi10aXRsZVwiPlxuICAgICAgQ29sdW1uIDxzdXA+W3t7IGdldFNlbGVjdGVkQ29sdW1uQ291bnQoKSB9fV08L3N1cD5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJjb2x1bW4tcmVzZXRcIiAoY2xpY2spPVwicmVzZXRDb2x1bW5zKClcIj5SZXNldDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxociAvPlxuXG4gIDwhLS0gU2VsZWN0IEFsbCBDaGVja2JveCAtLT5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcFwiIFtzdHlsZS5wYWRkaW5nXT1cIic0cHggMTBweCdcIj5cbiAgICA8bGFiZWwgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTNweCdcIiBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJzUwMCdcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJzZWxlY3RBbGxcIiAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdEFsbCgpXCIgLz5cbiAgICAgIFNlbGVjdCBBbGxcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cblxuIDxkaXYgY2xhc3M9XCJjZW50ZXJcIj5cbiAgPHVsICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiY29sdW1uLW9wdGlvbnMtY29udGFpbmVyXCI+XG4gICAgPGxpXG4gICAgICBbYXR0ci5kcmFnZ2FibGVdPVwiZW5hYmxlRHJhZ0FuZERyb3BcIlxuICAgICAgKGRyYWdzdGFydCk9XCJvbkRyYWdTdGFydChpLCAkZXZlbnQpXCJcbiAgICAgIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuICAgICAgKGRyb3ApPVwib25Ecm9wKGksICRldmVudClcIlxuICAgICAgKm5nSWY9XCJpIDwgZGlzcGxheWVkQ29sdW1uc1wiXG4gICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxNHB4J1wiXG4gICAgICBbc3R5bGUubWFyZ2luLXRvcF09XCInMTRweCdcIlxuICAgICAgY2xhc3M9XCJmbGV4IGdhcC1zbSBpdGVtcy1jZW50ZXJcIlxuICAgID5cbiAgICAgIDx2ZXJiZW4tc3ZnICpuZ0lmPVwiZW5hYmxlRHJhZ0FuZERyb3BcIiBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCIgY2xhc3M9XCJzdmdcIiBpY29uPVwic3F1YXJlLWRvdFwiPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggZ2FwLW1kIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJ2aXNpYmxlQ29sdW1uc1tpXVwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVNlbGVjdEFsbFN0YXR1cygpXCIgLz5cbiAgICAgICAge3sgY29sdW1uLm5hbWUgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9saT5cbiAgPC91bD5cblxuICA8IS0tIFNob3cgTW9yZSAvIFNob3cgTGVzcyAtLT5cbiAgPGRpdiAqbmdJZj1cImRpc3BsYXllZENvbHVtbnMgPD0gY29sdW1ucy5sZW5ndGhcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW3N0eWxlLnBhZGRpbmddPVwiJzIwcHggMTBweCAwcHggMTBweCdcIj5cbiAgICA8c3BhbiAoY2xpY2spPVwidG9nZ2xlU2hvd01vcmUoKVwiPlxuICAgICAge3sgZGlzcGxheWVkQ29sdW1ucyA9PT0gY29sdW1ucy5sZW5ndGggPyBcIlNob3cgTGVzc1wiIDogXCJTaG93IE1vcmVcIiB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gPC9kaXY+XG5cbiAgPGhyIC8+XG5cbiAgPCEtLSBTYXZlIEJ1dHRvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImJ0bi13cmFwcGVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwiJzAuNXJlbSdcIlxuICAgICAgW3N0eWxlLm91dGxpbmVdPVwiJ25vbmUnXCJcbiAgICAgIFtzdHlsZS5ib3JkZXJdPVwiJ25vbmUnXCJcbiAgICAgIFtzdHlsZS5wYWRkaW5nXT1cIicwLjJyZW0gMS42cmVtJ1wiXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJwcmltYXJ5Q29sb3JcIlxuICAgICAgW3N0eWxlLmNvbG9yXT1cInRlcnRpYXJ5Q29sb3JcIlxuICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTJweCdcIlxuICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIic2MDAnXCIgXG4gICAgICBbZGlzYWJsZWRdPVwiZ2V0U2VsZWN0ZWRDb2x1bW5Db3VudCgpID09PSAwXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgZGlzYWJsZWRCdG46IGdldFNlbGVjdGVkQ29sdW1uQ291bnQoKSA9PT0gMCxcbiAgICAgICAgZW5hYmxlQnRuOiBnZXRTZWxlY3RlZENvbHVtbkNvdW50KCkgIT09IDBcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cInNhdmVDb2x1bW5WaXNpYmlsaXR5KClcIlxuICAgID5cbiAgICAgIFNhdmVcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJsZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy92aXNpYmxlLWNvbHVtbi92aXNpYmxlLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3Zpc2libGUtY29sdW1uL3Zpc2libGUtY29sdW1uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEdBQ3hCLE1BQU0sZUFBZSxDQUFDOzs7OztBQWF2QixNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsaUJBQWlCLEdBQVksSUFBSSxDQUFDO0lBQ2xDLGdCQUFnQixHQUFXLENBQUMsQ0FBQztJQUM3QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLEVBQUUsQ0FBVTtJQUNaLEVBQUUsQ0FBVTtJQUNaLE1BQU0sQ0FBVTtJQUNoQixLQUFLLENBQVU7SUFDZixPQUFPLENBQVU7SUFDakIsU0FBUyxDQUFVO0lBQ25CLFNBQVMsQ0FBVTtJQUNuQixZQUFZLENBQVU7SUFDdEIsY0FBYyxDQUFVO0lBQ3hCLGFBQWEsQ0FBVTtJQUN2QixNQUFNLENBQVU7SUFDaEIsWUFBWSxDQUFVO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixXQUFXLENBQVc7SUFDdEIsWUFBWSxDQUEyQztJQUN0RCxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDbkQsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFM0MsbUJBQW1CLEdBQWtCLEVBQUUsQ0FB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QkFBaEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURhdGFGaWx0ZXIgfSBmcm9tICd2ZXJiZW4tbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuXG5pbnRlcmZhY2UgSXRlbSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLXZpc2libGUtY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Zpc2libGUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlzaWJsZS1jb2x1bW4uY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaWJsZUNvbHVtbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbHVtbnM6IElEYXRhRmlsdGVyW10gPSBbXTtcbiAgQElucHV0KCkgaXRlbXM6IEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBlbmFibGVEcmFnQW5kRHJvcDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXllZENvbHVtbnM6IG51bWJlciA9IDU7XG4gIEBJbnB1dCgpIHNob3dNb3JlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBkPzogc3RyaW5nO1xuICBASW5wdXQoKSBtZz86IHN0cmluZztcbiAgQElucHV0KCkgaGVpZ2h0Pzogc3RyaW5nO1xuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgYmdDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgYm94U2hhZG93Pzogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgc2Vjb25kYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlcnRpYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvcmRlcj86IHN0cmluZztcbiAgQElucHV0KCkgYm9yZGVyUmFkaXVzPzogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RXaWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgY2xvc2VDb2x1bW4/OiBib29sZWFuO1xuICBASW5wdXQoKSBzYXZlQ2FsbGJhY2s/OiAoaXRlbXM6IElEYXRhRmlsdGVyW10pID0+IFByb21pc2U8dm9pZD47XG4gIEBPdXRwdXQoKSBjb2x1bW5zVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SURhdGFGaWx0ZXJbXT4oKTtcbiAgQE91dHB1dCgpIHJlc2V0RmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIG9yaWdpbmFsQ29sdW1uT3JkZXI6IElEYXRhRmlsdGVyW10gPSBbXTtcbiAgdmlzaWJsZUNvbHVtbnM6IGJvb2xlYW5bXSA9IFtdO1xuICBkcmFnZ2VkSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBzZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9yaWdpbmFsQ29sdW1uT3JkZXIgPSBbLi4udGhpcy5jb2x1bW5zXTtcbiAgICB0aGlzLmluaXRpYWxpemVDb2x1bW5WaXNpYmlsaXR5KCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDb2x1bW5WaXNpYmlsaXR5KCkge1xuICAgIHRoaXMudmlzaWJsZUNvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5jaGVja2VkKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdEFsbFN0YXR1cygpO1xuICB9XG5cbiAgcmVzZXRDb2x1bW5zKCkge1xuICAgIHRoaXMuY29sdW1ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5vcmlnaW5hbENvbHVtbk9yZGVyKSk7IC8vIEVuc3VyZSBpdCdzIGEgZGVlcCBjb3B5XG4gICAgdGhpcy5pbml0aWFsaXplQ29sdW1uVmlzaWJpbGl0eSgpO1xuICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7IC8vIFJlc2V0IHNlbGVjdCBhbGxcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdEFsbFN0YXR1cygpO1xuICAgIHRoaXMucmVzZXRGaWx0ZXIuZW1pdCgpO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRDb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVDb2x1bW5zLmZpbHRlcigoaXNWaXNpYmxlKSA9PiBpc1Zpc2libGUpLmxlbmd0aDtcbiAgfVxuXG4gIHNhdmVDb2x1bW5WaXNpYmlsaXR5KCkge1xuICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICBjb2x1bW4uY2hlY2tlZCA9IHRoaXMudmlzaWJsZUNvbHVtbnNbaW5kZXhdO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4uY2hlY2tlZCk7XG4gICAgaWYgKHRoaXMuc2F2ZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLnNhdmVDYWxsYmFjayhzZWxlY3RlZENvbHVtbnMpO1xuICAgIH1cbiAgICB0aGlzLmNvbHVtbnNVcGRhdGVkLmVtaXQoc2VsZWN0ZWRDb2x1bW5zKTtcbiAgfVxuXG4gIHRvZ2dsZVNob3dNb3JlKCkge1xuICAgIHRoaXMuc2hvd01vcmUgPSAhdGhpcy5zaG93TW9yZTtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLnNob3dNb3JlID8gdGhpcy5jb2x1bW5zLmxlbmd0aCA6IDU7XG4gIH1cblxuICB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5zZWxlY3RBbGwgPSAhdGhpcy5zZWxlY3RBbGw7XG4gICAgdGhpcy52aXNpYmxlQ29sdW1ucyA9IHRoaXMudmlzaWJsZUNvbHVtbnMubWFwKCgpID0+IHRoaXMuc2VsZWN0QWxsKTtcbiAgfVxuXG4gIHVwZGF0ZVNlbGVjdEFsbFN0YXR1cygpIHtcbiAgICB0aGlzLnNlbGVjdEFsbCA9IHRoaXMudmlzaWJsZUNvbHVtbnMuZXZlcnkoKGlzVmlzaWJsZSkgPT4gaXNWaXNpYmxlKTtcbiAgfVxuXG4gIG9uRHJhZ1N0YXJ0KGluZGV4OiBudW1iZXIsIGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICB0aGlzLmRyYWdnZWRJbmRleCA9IGluZGV4O1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlcj8uc2V0RGF0YSgndGV4dC9wbGFpbicsIFN0cmluZyhpbmRleCkpO1xuICB9XG5cbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG9uRHJvcChpbmRleDogbnVtYmVyLCBldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5kcmFnZ2VkSW5kZXggIT09IG51bGwgJiYgdGhpcy5kcmFnZ2VkSW5kZXggIT09IGluZGV4KSB7XG4gICAgICB0aGlzLnN3YXBDb2x1bW5zKHRoaXMuZHJhZ2dlZEluZGV4LCBpbmRleCk7XG4gICAgfVxuICAgIHRoaXMuZHJhZ2dlZEluZGV4ID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgc3dhcENvbHVtbnMoZnJvbUluZGV4OiBudW1iZXIsIHRvSW5kZXg6IG51bWJlcikge1xuICAgIFt0aGlzLmNvbHVtbnNbZnJvbUluZGV4XSwgdGhpcy5jb2x1bW5zW3RvSW5kZXhdXSA9IFtcbiAgICAgIHRoaXMuY29sdW1uc1t0b0luZGV4XSxcbiAgICAgIHRoaXMuY29sdW1uc1tmcm9tSW5kZXhdLFxuICAgIF07XG4gICAgW3RoaXMudmlzaWJsZUNvbHVtbnNbZnJvbUluZGV4XSwgdGhpcy52aXNpYmxlQ29sdW1uc1t0b0luZGV4XV0gPSBbXG4gICAgICB0aGlzLnZpc2libGVDb2x1bW5zW3RvSW5kZXhdLFxuICAgICAgdGhpcy52aXNpYmxlQ29sdW1uc1tmcm9tSW5kZXhdLFxuICAgIF07XG4gIH1cbn1cbiIsIjxkaXZcbiAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYmdDb2xvclwiXG4gIFtzdHlsZS5ib3gtc2hhZG93XT1cImJveFNoYWRvd1wiXG4gIFtzdHlsZS5ib3JkZXJdPVwiYm9yZGVyXCJcbiAgW3N0eWxlLmJvcmRlci1yYWRpdXNdPVwiYm9yZGVyUmFkaXVzXCJcbiAgW3N0eWxlLmNvbG9yXT1cInRleHRDb2xvclwiXG4gIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcbiAgW3N0eWxlLnBhZGRpbmddPVwicGRcIlxuICBjbGFzcz1cImNvbHVtbi1jb250cm9sXCJcbj5cbiAgPGRpdiBjbGFzcz1cInZpc2libGUtY29sdW1uLWhlYWRlciBmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjb2x1bW4tdGl0bGVcIj5cbiAgICAgIENvbHVtbiA8c3VwPlt7eyBnZXRTZWxlY3RlZENvbHVtbkNvdW50KCkgfX1dPC9zdXA+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLXJlc2V0XCIgKGNsaWNrKT1cInJlc2V0Q29sdW1ucygpXCI+UmVzZXQ8L3NwYW4+XG4gIDwvZGl2PlxuICA8aHIgLz5cblxuICA8IS0tIFNlbGVjdCBBbGwgQ2hlY2tib3ggLS0+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXBcIiBbc3R5bGUucGFkZGluZ109XCInNHB4IDEwcHgnXCI+XG4gICAgPGxhYmVsIFtzdHlsZS5mb250LXNpemVdPVwiJzEzcHgnXCIgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIic1MDAnXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwic2VsZWN0QWxsXCIgKGNoYW5nZSk9XCJ0b2dnbGVTZWxlY3RBbGwoKVwiIC8+XG4gICAgICBTZWxlY3QgQWxsXG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG5cbiA8ZGl2IGNsYXNzPVwiY2VudGVyXCI+XG4gIDx1bCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImNvbHVtbi1vcHRpb25zLWNvbnRhaW5lclwiPlxuICAgIDxsaVxuICAgICAgW2F0dHIuZHJhZ2dhYmxlXT1cImVuYWJsZURyYWdBbmREcm9wXCJcbiAgICAgIChkcmFnc3RhcnQpPVwib25EcmFnU3RhcnQoaSwgJGV2ZW50KVwiXG4gICAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAgIChkcm9wKT1cIm9uRHJvcChpLCAkZXZlbnQpXCJcbiAgICAgICpuZ0lmPVwiaSA8IGRpc3BsYXllZENvbHVtbnNcIlxuICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTRweCdcIlxuICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwiJzE0cHgnXCJcbiAgICAgIGNsYXNzPVwiZmxleCBnYXAtc20gaXRlbXMtY2VudGVyXCJcbiAgICA+XG4gICAgICA8dmVyYmVuLXN2ZyAqbmdJZj1cImVuYWJsZURyYWdBbmREcm9wXCIgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiIGNsYXNzPVwic3ZnXCIgaWNvbj1cInNxdWFyZS1kb3RcIj48L3ZlcmJlbi1zdmc+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJmbGV4IGdhcC1tZCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwidmlzaWJsZUNvbHVtbnNbaV1cIiAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVTZWxlY3RBbGxTdGF0dXMoKVwiIC8+XG4gICAgICAgIHt7IGNvbHVtbi5uYW1lIH19XG4gICAgICA8L2xhYmVsPlxuICAgIDwvbGk+XG4gIDwvdWw+XG5cbiAgPCEtLSBTaG93IE1vcmUgLyBTaG93IExlc3MgLS0+XG4gIDxkaXYgKm5nSWY9XCJkaXNwbGF5ZWRDb2x1bW5zIDw9IGNvbHVtbnMubGVuZ3RoXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtzdHlsZS5wYWRkaW5nXT1cIicyMHB4IDEwcHggMHB4IDEwcHgnXCI+XG4gICAgPHNwYW4gKGNsaWNrKT1cInRvZ2dsZVNob3dNb3JlKClcIj5cbiAgICAgIHt7IGRpc3BsYXllZENvbHVtbnMgPT09IGNvbHVtbnMubGVuZ3RoID8gXCJTaG93IExlc3NcIiA6IFwiU2hvdyBNb3JlXCIgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuIDwvZGl2PlxuXG4gIDxociAvPlxuXG4gIDwhLS0gU2F2ZSBCdXR0b24gLS0+XG4gIDxkaXYgY2xhc3M9XCJidG4td3JhcHBlclwiPlxuICAgIDxidXR0b25cbiAgICAgIFtzdHlsZS5tYXJnaW4tdG9wXT1cIicwLjVyZW0nXCJcbiAgICAgIFtzdHlsZS5vdXRsaW5lXT1cIidub25lJ1wiXG4gICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICBbc3R5bGUucGFkZGluZ109XCInMC4ycmVtIDEuNnJlbSdcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwicHJpbWFyeUNvbG9yXCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCJ0ZXJ0aWFyeUNvbG9yXCJcbiAgICAgIFtzdHlsZS5mb250LXNpemVdPVwiJzEycHgnXCJcbiAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInNjAwJ1wiIFxuICAgICAgW2Rpc2FibGVkXT1cImdldFNlbGVjdGVkQ29sdW1uQ291bnQoKSA9PT0gMFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgIGRpc2FibGVkQnRuOiBnZXRTZWxlY3RlZENvbHVtbkNvdW50KCkgPT09IDAsXG4gICAgICAgIGVuYWJsZUJ0bjogZ2V0U2VsZWN0ZWRDb2x1bW5Db3VudCgpICE9PSAwXG4gICAgICB9XCJcbiAgICAgIChjbGljayk9XCJzYXZlQ29sdW1uVmlzaWJpbGl0eSgpXCJcbiAgICA+XG4gICAgICBTYXZlXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -7,5 +7,6 @@ export var DataFilterType;
|
|
|
7
7
|
DataFilterType["Date"] = "Date";
|
|
8
8
|
DataFilterType["Bool"] = "Bool";
|
|
9
9
|
DataFilterType["Number"] = "Number";
|
|
10
|
+
DataFilterType["Enum"] = "Enum";
|
|
10
11
|
})(DataFilterType || (DataFilterType = {}));
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUZpbHRlclR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9tb2RlbHMvRGF0YUZpbHRlclR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksY0FTWDtBQVRELFdBQVksY0FBYztJQUN4QixtQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBbUIsQ0FBQTtJQUNuQixxQ0FBbUIsQ0FBQTtJQUNuQixtQ0FBaUIsQ0FBQTtJQUNqQiwrQkFBYSxDQUFBO0lBQ2IsK0JBQWEsQ0FBQTtJQUNiLG1DQUFpQixDQUFBO0lBQ2pCLCtCQUFhLENBQUE7QUFDZixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEYXRhRmlsdGVyVHlwZSB7XG4gIFN0cmluZyA9ICdTdHJpbmcnLFxuICBJbnRlZ2VyID0gJ0ludGVnZXInLFxuICBEZWNpbWFsID0gJ0RlY2ltYWwnLFxuICBDcmVkaXQgPSAnQ3JlZGl0JyxcbiAgRGF0ZSA9ICdEYXRlJyxcbiAgQm9vbCA9ICdCb29sJyxcbiAgTnVtYmVyID0gJ051bWJlcicsXG4gIEVudW0gPSAnRW51bScsXG59XG4iXX0=
|