myrta-ui 17.0.85 → 17.0.86
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/lib/components/form/select/select.component.mjs +9 -13
- package/esm2022/lib/components/form/select/select.enum.mjs +2 -0
- package/fesm2022/myrta-ui.mjs +7 -10
- package/fesm2022/myrta-ui.mjs.map +1 -1
- package/lib/components/form/select/select.component.d.ts +6 -6
- package/lib/components/form/select/select.enum.d.ts +5 -0
- package/package.json +1 -1
|
@@ -4,10 +4,9 @@ import { SelectSizeEnum } from './enums';
|
|
|
4
4
|
import { getSelectedItems } from './helpers/get-selected-items.helper';
|
|
5
5
|
import { getInnerItems } from './helpers/get-inner-items.helper';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
|
-
import { cleanSelectItem } from './helpers/clean-selected-items.helper';
|
|
8
7
|
import { PositionEnum } from '../../../enums/overlay';
|
|
9
8
|
import { getInnerSelected } from './helpers/get-inner-selected.helper';
|
|
10
|
-
import { MrxFormValidator } from
|
|
9
|
+
import { MrxFormValidator } from '../../../services';
|
|
11
10
|
import * as i0 from "@angular/core";
|
|
12
11
|
import * as i1 from "@angular/common";
|
|
13
12
|
import * as i2 from "@angular/forms";
|
|
@@ -36,7 +35,7 @@ export class SelectComponent {
|
|
|
36
35
|
fields = [];
|
|
37
36
|
set items(items) {
|
|
38
37
|
this.originItems = items;
|
|
39
|
-
this.
|
|
38
|
+
this._updateSelected(this.originItems, this.originSelected);
|
|
40
39
|
}
|
|
41
40
|
multiple = false;
|
|
42
41
|
isLoading = false;
|
|
@@ -136,7 +135,7 @@ export class SelectComponent {
|
|
|
136
135
|
});
|
|
137
136
|
}
|
|
138
137
|
this.dropdown.updatePopup();
|
|
139
|
-
this.
|
|
138
|
+
this._updateValue(this.innerItems);
|
|
140
139
|
}
|
|
141
140
|
clearItem(item) {
|
|
142
141
|
this.onUnselect(item);
|
|
@@ -147,20 +146,17 @@ export class SelectComponent {
|
|
|
147
146
|
i.__selected = false;
|
|
148
147
|
}
|
|
149
148
|
});
|
|
150
|
-
this.
|
|
149
|
+
this._updateValue(this.innerItems);
|
|
151
150
|
}
|
|
152
151
|
onClear(event) {
|
|
153
152
|
event.stopPropagation();
|
|
154
153
|
this.innerItems = this.innerItems.map(item => ({ ...item, __selected: false }));
|
|
155
154
|
this.dropdown.togglePopup(false);
|
|
156
|
-
this.
|
|
155
|
+
this._updateValue([]);
|
|
157
156
|
}
|
|
158
157
|
togglePopup(isOpen) {
|
|
159
158
|
this.isOpen = isOpen;
|
|
160
159
|
}
|
|
161
|
-
getCleanSelectItem(item) {
|
|
162
|
-
return cleanSelectItem(item);
|
|
163
|
-
}
|
|
164
160
|
asOption(option) {
|
|
165
161
|
return option;
|
|
166
162
|
}
|
|
@@ -170,7 +166,7 @@ export class SelectComponent {
|
|
|
170
166
|
writeValue(selected = []) {
|
|
171
167
|
if (selected) {
|
|
172
168
|
this.originSelected = selected;
|
|
173
|
-
this.
|
|
169
|
+
this._updateSelected(this.originItems, this.originSelected);
|
|
174
170
|
}
|
|
175
171
|
}
|
|
176
172
|
changeTextValueEmpty() {
|
|
@@ -183,7 +179,7 @@ export class SelectComponent {
|
|
|
183
179
|
this.changeTextValueEmpty();
|
|
184
180
|
}
|
|
185
181
|
}
|
|
186
|
-
|
|
182
|
+
_updateSelected(items = [], selected = []) {
|
|
187
183
|
if (this.multiple && Array.isArray(this.originSelected)) {
|
|
188
184
|
this.selected = getInnerSelected(items, selected, this.bindValue);
|
|
189
185
|
}
|
|
@@ -192,7 +188,7 @@ export class SelectComponent {
|
|
|
192
188
|
}
|
|
193
189
|
this.innerItems = getInnerItems(items, this.selected, this.bindValue);
|
|
194
190
|
}
|
|
195
|
-
|
|
191
|
+
_updateValue(selectedItems) {
|
|
196
192
|
const clearedSelected = getSelectedItems(selectedItems, this.bindValue);
|
|
197
193
|
const outputSelected = this.multiple ? clearedSelected : clearedSelected.length ? clearedSelected[0] : null;
|
|
198
194
|
this.changed.emit(outputSelected);
|
|
@@ -310,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
310
306
|
}], modelChange: [{
|
|
311
307
|
type: Output
|
|
312
308
|
}] } });
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxTQUFTLENBQUM7QUFJMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFnQixNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBZXJELE1BQU0sT0FBTyxlQUFlO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixjQUFjLEdBQWdCLEVB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QUFtQjtzQkFBM0IsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBRVUsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVpQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBRVcsY0FBYztzQkFBN0MsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBQ0MsYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUNRLG1CQUFtQjtzQkFBdkQsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBQ0UsbUJBQW1CO3NCQUF2RCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFDRixlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFFZCxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZWxlY3RTaXplRW51bSwgU2VsZWN0U2l6ZVR5cGVzIH0gZnJvbSAnLi9lbnVtcyc7XHJcbmltcG9ydCB7IFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcG9wdXAvY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RJbm5lckl0ZW1Nb2RlbCB9IGZyb20gJy4vbW9kZWxzL3NlbGVjdC1pbm5lci1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgQWRkT3B0aW9uRm4sIFNlbGVjdEl0ZW1Nb2RlbCB9IGZyb20gJy4vbW9kZWxzL3NlbGVjdC1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRJdGVtcyB9IGZyb20gJy4vaGVscGVycy9nZXQtc2VsZWN0ZWQtaXRlbXMuaGVscGVyJztcclxuaW1wb3J0IHsgZ2V0SW5uZXJJdGVtcyB9IGZyb20gJy4vaGVscGVycy9nZXQtaW5uZXItaXRlbXMuaGVscGVyJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZU91dHB1dE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvdGVtcGxhdGUtb3V0cHV0Lm1vZGVsJztcclxuaW1wb3J0IHsgY2xlYW5TZWxlY3RJdGVtIH0gZnJvbSAnLi9oZWxwZXJzL2NsZWFuLXNlbGVjdGVkLWl0ZW1zLmhlbHBlcic7XHJcbmltcG9ydCB7IFBvc2l0aW9uRW51bSwgUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvb3ZlcmxheSc7XHJcbmltcG9ydCB7IGdldElubmVyU2VsZWN0ZWQgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWlubmVyLXNlbGVjdGVkLmhlbHBlcic7XHJcbmltcG9ydCB7IE1yeEZvcm1WYWxpZGF0b3IgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQubGVzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvcmlnaW5TZWxlY3RlZDogYW55IHwgYW55W10gPSBbXTtcclxuICBwdWJsaWMgb3JpZ2luSXRlbXM6IFNlbGVjdEl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkOiBTZWxlY3RJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBpbm5lckl0ZW1zOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIGZvcm0gPSBuZXcgTXJ4Rm9ybVZhbGlkYXRvcigpO1xyXG4gIHB1YmxpYyBtb2RlbCA9IHtcclxuICAgIGxhYmVsOiAnJyxcclxuICB9XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmllbGRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBzZXQgaXRlbXMoaXRlbXM6IGFueVtdKSB7XHJcbiAgICB0aGlzLm9yaWdpbkl0ZW1zID0gaXRlbXM7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKHRoaXMub3JpZ2luSXRlbXMsIHRoaXMub3JpZ2luU2VsZWN0ZWQpXHJcblxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2xlYXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbG9zYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2l6ZTogU2VsZWN0U2l6ZVR5cGVzID0gJ2xhcmdlJztcclxuICBASW5wdXQoKSBiaW5kVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGJpbmRMYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYmluZEljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGVtcHR5VGV4dDogc3RyaW5nID0gJ9Cd0LUg0L3QsNC50LTQtdC90L4nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn0JLRi9Cx0LXRgNC40YLQtSDQt9C90LDRh9C10L3QuNC1JztcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nID0gJ9CS0LLQtdC00LjRgtC1INC30L3QsNGH0LXQvdC40LUnO1xyXG4gIEBJbnB1dCgpIG11bHRpQ29sbGFwc2VDb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYWRkT3B0aW9uITogQWRkT3B0aW9uRm47XHJcbiAgQElucHV0KCdpc0V4dHJhT3B0aW9uJykgb3B0aW9uVmFsaWRhdGlvbjogeyBsYWJlbDogeyByZXF1aXJlZDogYm9vbGVhbiwgbWluTGVuZ3RoOiBudW1iZXIgfSB9IHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZXh0cmFPcHRpb25QbGFjZWhvbGRlcjogc3RyaW5nID0gJ9CS0LLQtdC00LjRgtC1INC30L3QsNGH0LXQvdC40LUnO1xyXG4gIEBJbnB1dCgpIHVzZTogJ2RlZmF1bHQnIHwgJ2xpbmsnID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIHNvcnRJY29uOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNvcnRQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaXNGdWxsV2lkdGhEcm9wZG93bjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgcG9wdXBQb3NpdGlvbjogUG9zaXRpb25UeXBlID0gUG9zaXRpb25FbnVtLkJvdHRvbVN0YXJ0O1xyXG5cclxuICBASW5wdXQoKSBzaW5nbGVDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93biE6IFBvcHVwQ29tcG9uZW50O1xyXG5cclxuICBAQ29udGVudENoaWxkKCdvcHRpb25UZW1wbGF0ZScpIG9wdGlvblRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgnbGFiZWxUZW1wbGF0ZScpIGxhYmVsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdwb3B1cEhlYWRlclRlbXBsYXRlJykgcG9wdXBIZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPFRlbXBsYXRlT3V0cHV0TW9kZWw+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3BvcHVwRm9vdGVyVGVtcGxhdGUnKSBwb3B1cEZvb3RlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgnY29udGVudFRlbXBsYXRlJykgY29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9uVmFsaWRhdGlvbikge1xyXG4gICAgICB0aGlzLmZvcm0uaW5pdEZpZWxkcyh0aGlzLm1vZGVsLCB0aGlzLm9wdGlvblZhbGlkYXRpb24pXHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHlDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgPyAnbXJ4LWlucHV0X19yZWFkb25seScgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gZmFsc2UgP1xyXG4gICAgICAnbXJ4LWlucHV0LWNoZWNrZWQtc3VjY2VzcycgOlxyXG4gICAgICB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke1NlbGVjdFNpemVFbnVtW3RoaXMuc2l6ZV19ICR7dGhpcy5yZWFkb25seUNsYXNzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0U2VsZWN0ZWRMYWJlbHMoKTogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbm5lckl0ZW1zLmZpbHRlcihpID0+IGkuX19zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpbHRlcmVkSXRlbXMoKTogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbm5lckl0ZW1zLmZpbHRlcihpID0+IHtcclxuICAgICAgaWYgKHRoaXMuYmluZExhYmVsKSB7XHJcbiAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luW3RoaXMuYmluZExhYmVsXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmKGkuX19vcmlnaW5bJ2xhYmVsJ10pIHtcclxuICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpblsnbGFiZWwnXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW4pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0ludmFsaWRNZXNzYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5pbnZhbGlkTWVzc2FnZSB8fCAhIXRoaXMuaW52YWxpZE1lc3NhZ2U/Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldCBnZXRJY29uU3RhdGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmlzT3BlbiA/ICdvcGVuZWQnIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SWNvblNpemUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdtZWRpdW0nID8gJ2ljb24tZm9udC0xNicgOiAnaWNvbi1mb250LTI0JztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdChpdGVtOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuaW5uZXJJdGVtcyA9IHRoaXMuaW5uZXJJdGVtcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgaWYodGhpcy5zaW5nbGVDaGFuZ2UpIHtcclxuICAgICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWR9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy51c2UgPT09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZCA/ICFpLl9fc2VsZWN0ZWQgOiBmYWxzZX07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWR9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVySXRlbXMgPSB0aGlzLmlubmVySXRlbXMubWFwKGkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWQgPyAhaS5fX3NlbGVjdGVkIDogaS5fX3NlbGVjdGVkfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3B1cCgpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5pbm5lckl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckl0ZW0oaXRlbTogU2VsZWN0SW5uZXJJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMub25VbnNlbGVjdChpdGVtKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVW5zZWxlY3QoaXRlbTogU2VsZWN0SW5uZXJJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMuaW5uZXJJdGVtcy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBpZiAoaS5fX2lkID09PSBpdGVtLl9faWQpIHtcclxuICAgICAgICBpLl9fc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmlubmVySXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIHRoaXMuaW5uZXJJdGVtcyA9IHRoaXMuaW5uZXJJdGVtcy5tYXAoaXRlbSA9PiAoey4uLml0ZW0sIF9fc2VsZWN0ZWQ6IGZhbHNlfSkpO1xyXG5cclxuICAgIHRoaXMuZHJvcGRvd24udG9nZ2xlUG9wdXAoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlVmFsdWUoW10pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKGlzT3BlbjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc09wZW4gPSBpc09wZW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2xlYW5TZWxlY3RJdGVtKGl0ZW06IFNlbGVjdElubmVySXRlbU1vZGVsKSB7XHJcbiAgICByZXR1cm4gY2xlYW5TZWxlY3RJdGVtKGl0ZW0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXNPcHRpb24ob3B0aW9uOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCk6IFNlbGVjdElubmVySXRlbU1vZGVsIHtcclxuICAgIHJldHVybiBvcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXNMYWJlbChsYWJlbDogU2VsZWN0SW5uZXJJdGVtTW9kZWwpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCB7XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShzZWxlY3RlZDogYW55IHwgYW55W10gPSBbXSk6IHZvaWQge1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMub3JpZ2luU2VsZWN0ZWQgPSBzZWxlY3RlZFxyXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkKHRoaXMub3JpZ2luSXRlbXMsIHRoaXMub3JpZ2luU2VsZWN0ZWQpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlVGV4dFZhbHVlRW1wdHkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0uaW5pdE1vZGVsQ2hhbmdlZCh0aGlzLm1vZGVsKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQWRkTmV3Q3VzdG9tT3B0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5hZGRPcHRpb24odGhpcy5tb2RlbC5sYWJlbCk7XHJcbiAgICAgIHRoaXMubW9kZWwubGFiZWwgPSAnJztcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlVGV4dFZhbHVlRW1wdHkoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZChpdGVtczogYW55W10gPSBbXSwgc2VsZWN0ZWQ6IGFueVtdID0gW10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy5vcmlnaW5TZWxlY3RlZCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IGdldElubmVyU2VsZWN0ZWQoaXRlbXMsIHNlbGVjdGVkLCB0aGlzLmJpbmRWYWx1ZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBnZXRJbm5lclNlbGVjdGVkKGl0ZW1zLCBbc2VsZWN0ZWRdLCB0aGlzLmJpbmRWYWx1ZSlcclxuICAgIH1cclxuICAgIHRoaXMuaW5uZXJJdGVtcyA9IGdldElubmVySXRlbXMoaXRlbXMsIHRoaXMuc2VsZWN0ZWQsIHRoaXMuYmluZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUoc2VsZWN0ZWRJdGVtczogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSkge1xyXG4gICAgY29uc3QgY2xlYXJlZFNlbGVjdGVkID0gZ2V0U2VsZWN0ZWRJdGVtcyhzZWxlY3RlZEl0ZW1zLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgICBjb25zdCBvdXRwdXRTZWxlY3RlZCA9IHRoaXMubXVsdGlwbGUgPyBjbGVhcmVkU2VsZWN0ZWQgOiBjbGVhcmVkU2VsZWN0ZWQubGVuZ3RoID8gY2xlYXJlZFNlbGVjdGVkWzBdIDogbnVsbDtcclxuXHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChvdXRwdXRTZWxlY3RlZCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBvdXRwdXRTZWxlY3RlZCwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShvdXRwdXRTZWxlY3RlZCk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLi1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC1lcnJvcl09XCJpbnZhbGlkXCJcclxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbiAgY2xhc3M9XCJtcngtc2VsZWN0XCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X193cmFwcGVyXCI+XHJcbiAgICBAc3dpdGNoICh1c2UpIHtcclxuICAgICAgQGNhc2UgKCdkZWZhdWx0Jykge1xyXG4gICAgICAgIDxkaXYgXHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0XCJcclxuICAgICAgICAgIFttcnhQb3B1cFRyaWdnZXJdPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgW2lzRnVsbFdpZHRoRHJvcGRvd25dPVwiaXNGdWxsV2lkdGhEcm9wZG93blwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgQGlmIChnZXRTZWxlY3RlZExhYmVscy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgQGlmIChtdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fdmFsdWVzXCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKG11bHRpQ29sbGFwc2VDb3VudCAmJiBnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggPj0gbXVsdGlDb2xsYXBzZUNvdW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fYmFkZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD7QktGL0LHRgNCw0L3Qvjoge3sgZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoIH19PC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMTZcIiAoY2xpY2spPVwib25DbGVhcigkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsczsgdHJhY2sgaXRlbS5fX2lkOyBsZXQgZmlyc3QgPSAkZmlyc3Q7IGxldCBsYXN0ID0gJGxhc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGxhYmVsVGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3QsIGNsZWFyOiBjbGVhckl0ZW0uYmluZCh0aGlzKX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0TGFiZWxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X192YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsczsgdHJhY2sgaXRlbS5fX2lkKSB7XHJcbiAgICAgICAgICAgICAgICAgIHt7IGJpbmRMYWJlbCA/IGl0ZW0uX19vcmlnaW5bYmluZExhYmVsXSA6IGl0ZW0uX19vcmlnaW5bJ2xhYmVsJ10gfHwgaXRlbS5fX29yaWdpbiB9fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9kaXY+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19jb250cm9sc1wiPlxyXG4gICAgICAgICAgICBAaWYgKGlzTG9hZGluZykge1xyXG4gICAgICAgICAgICAgIDxtcngtbG9hZGVyXHJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplID09PSAnbGFyZ2UnID8gJ3NtYWxsJyA6ICdleHRyYS1zbWFsbCdcIlxyXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cIidicmFuZCdcIlxyXG4gICAgICAgICAgICAgID48L21yeC1sb2FkZXI+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpZiAoZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoICYmIGNsZWFyYWJsZSkge1xyXG4gICAgICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgbXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzLS1pY29uXCIgXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvblNpemVcIiBcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tY2hldnJvbi1kb3duIG1yeC1zZWxlY3RfX2lucHV0X19jb250cm9scy0taWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cIltnZXRJY29uU3RhdGUsIGdldEljb25TaXplXVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnbGluaycpIHtcclxuICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rXCJcclxuICAgICAgICAgIFttcnhQb3B1cFRyaWdnZXJdPVwiZHJvcGRvd25cIiBcclxuICAgICAgICAgIFtwb3B1cFBvc2l0aW9uXT1cInBvcHVwUG9zaXRpb25cIiBcclxuICAgICAgICAgIFtpc0Z1bGxXaWR0aERyb3Bkb3duXT1cImlzRnVsbFdpZHRoRHJvcGRvd25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rX19jb250cm9sc1wiPlxyXG4gICAgICAgICAgICBAaWYgKHNvcnRQbGFjZWhvbGRlcikge1xyXG4gICAgICAgICAgICAgIDxwPnt7IHNvcnRQbGFjZWhvbGRlciB9fTwvcD5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGlmIChzb3J0SWNvbikge1xyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIHt7c29ydEljb24gPT09ICdhc2MnID8gJ2ljb24tc29ydGluZy11cCcgOiAnaWNvbi1zb3J0aW5nLWRvd24nfX1cIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldEljb25TaXplXCJcclxuICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXQtbGlua19fY29udHJvbHNcIj5cclxuICAgICAgICAgICAgQGlmIChnZXRTZWxlY3RlZExhYmVscy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXQtbGlua19fdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZ2V0U2VsZWN0ZWRMYWJlbHM7IHRyYWNrIGl0ZW0uX19pZCkge1xyXG4gICAgICAgICAgICAgICAgICB7eyBiaW5kTGFiZWwgPyBpdGVtLl9fb3JpZ2luW2JpbmRMYWJlbF0gOiBpdGVtLl9fb3JpZ2luWydsYWJlbCddIHx8IGl0ZW0uX19vcmlnaW4gfX1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tY2hldnJvbi1kb3duIG1yeC1zZWxlY3RfX2lucHV0X19jb250cm9scy0taWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cIltnZXRJY29uU3RhdGUsIGdldEljb25TaXplXVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgPG1yeC1wb3B1cCAjZHJvcGRvd24gW2Nsb3NlQWZ0ZXJDbGlja109XCJjbG9zYWJsZVwiICh0b2dnbGUpPVwidG9nZ2xlUG9wdXAoJGV2ZW50KVwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkSXRlbXM7IHRyYWNrIGl0ZW0uX19pZDsgbGV0IGZpcnN0ID0gJGZpcnN0OyBsZXQgbGFzdCA9ICRsYXN0KSB7XHJcbiAgICAgICAgPG1yeC1wb3B1cC1pdGVtIFtjdXN0b21dPVwidHJ1ZVwiIFtpZF09XCJpdGVtLl9faWRcIiAoY2xpY2tlZCk9XCJvblNlbGVjdChpdGVtKVwiPlxyXG4gICAgICAgICAgQGlmIChvcHRpb25UZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0T3B0aW9uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbXJ4LXBvcHVwLWl0ZW0+XHJcbiAgICAgIH0gQGVtcHR5IHtcclxuICAgICAgICA8bXJ4LXBvcHVwLWl0ZW0gW2N1c3RvbV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2VtcHR5XCI+e3sgZW1wdHlUZXh0IH19PC9kaXY+XHJcbiAgICAgICAgPC9tcngtcG9wdXAtaXRlbT5cclxuICAgICAgfVxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICBAaWYgKHNlYXJjaGFibGUpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9fc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxtcngtaW5wdXQtc2VhcmNoXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgICAgICAgICAgID48L21yeC1pbnB1dC1zZWFyY2g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAoY29udGVudFRlbXBsYXRlKSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgKHBvcHVwSGVhZGVyVGVtcGxhdGUpIHtcclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9wdXBIZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICBAaWYgKCEhYWRkT3B0aW9uKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2V4dHJhLW9wdGlvblwiPlxyXG4gICAgICAgICAgICA8bXJ4LWlucHV0LXRleHRcclxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImV4dHJhT3B0aW9uUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwubGFiZWxcIlxyXG4gICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiMzAwXCJcclxuICAgICAgICAgICAgICBbaW52YWxpZF09XCIhIWZvcm0uZXJyb3JzWydsYWJlbCddXCJcclxuICAgICAgICAgICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZm9ybS5lcnJvcnNbJ2xhYmVsJ11cIlxyXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVRleHRWYWx1ZUVtcHR5KClcIlxyXG4gICAgICAgICAgICA+PC9tcngtaW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgPG1yeC1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbk9ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgaWNvbj1cIjxzcGFuIGNsYXNzPSdtcngtaWNvbiBpY29uLXBsdXMgaWNvbi1mb250LTI0Jz48L3NwYW4+XCJcclxuICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcclxuICAgICAgICAgICAgICB0eXBlPVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGROZXdDdXN0b21PcHRpb24oKVwiXHJcbiAgICAgICAgICAgID48L21yeC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAocG9wdXBGb290ZXJUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3B1cEZvb3RlclRlbXBsYXRlXCJcclxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21yeC1wb3B1cD5cclxuICA8L2Rpdj5cclxuXHJcbiAgQGlmIChpbnZhbGlkICYmIGlzSW52YWxpZE1lc3NhZ2UpIHtcclxuICAgIDxtcngtZXJyb3ItbWVzc2FnZSBbaW52YWxpZE1lc3NhZ2VdPVwiaW52YWxpZE1lc3NhZ2VcIj48L21yeC1lcnJvci1tZXNzYWdlPlxyXG4gIH1cclxuXHJcbiAgPG1yeC1zYXZlLXN0YXRlIFtmaWVsZHNdPVwiZmllbGRzXCIgW2lkXT1cInV1aWRcIiBbdHlwZV09XCInaW5wdXQnXCI+PC9tcngtc2F2ZS1zdGF0ZT5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRMYWJlbFRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gIEBpZiAoYXNMYWJlbChpdGVtKTsgYXMgbGFiZWwpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fYmFkZ2VcIj5cclxuICAgICAgPHA+e3sgYmluZExhYmVsID8gbGFiZWwuX19vcmlnaW5bYmluZExhYmVsXSA6IGxhYmVsLl9fb3JpZ2luWydsYWJlbCddIHx8IGxhYmVsLl9fb3JpZ2luIH19PC9wPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgaWNvbi1mb250LTE2XCIgKGNsaWNrKT1cIm9uVW5zZWxlY3QobGFiZWwpXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgQGlmIChhc09wdGlvbihpdGVtKTsgYXMgb3B0aW9uKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2l0ZW1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19pdGVtLS1jb250ZW50XCI+XHJcbiAgICAgICAgQGlmIChiaW5kSWNvbiAmJiBvcHRpb24uX19vcmlnaW5bYmluZEljb25dKSB7XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZm9udC0yNFwiIFtjbGFzc109XCJvcHRpb25bYmluZEljb25dXCI+PC9zcGFuPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPHA+e3sgYmluZExhYmVsID8gb3B0aW9uLl9fb3JpZ2luW2JpbmRMYWJlbF0gOiBvcHRpb24uX19vcmlnaW5bJ2xhYmVsJ10gfHwgb3B0aW9uLl9fb3JpZ2luIH19PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIEBpZiAob3B0aW9uLl9fc2VsZWN0ZWQpIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2hlY2sgaWNvbi1mb250LTI0XCI+PC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxTQUFTLENBQUM7QUFJMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxZQUFZLEVBQWdCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFnQnJELE1BQU0sT0FBTyxlQUFlO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixjQUFjLEdBQWdCLEVBQUUsQ0FBQztJQUNqQyxXQUFXLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxR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QkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFaUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUVXLGNBQWM7c0JBQTdDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUNDLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFDUSxtQkFBbUI7c0JBQXZELFlBQVk7dUJBQUMscUJBQXFCO2dCQUNFLG1CQUFtQjtzQkFBdkQsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBQ0YsZUFBZTtzQkFBL0MsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBRWQsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2VsZWN0U2l6ZUVudW0sIFNlbGVjdFNpemVUeXBlcyB9IGZyb20gJy4vZW51bXMnO1xyXG5pbXBvcnQgeyBQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BvcHVwL2NvbXBvbmVudHMvcG9wdXAvcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0SW5uZXJJdGVtTW9kZWwgfSBmcm9tICcuL21vZGVscy9zZWxlY3QtaW5uZXItaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IEFkZE9wdGlvbkZuLCBTZWxlY3RJdGVtTW9kZWwgfSBmcm9tICcuL21vZGVscy9zZWxlY3QtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IGdldFNlbGVjdGVkSXRlbXMgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LXNlbGVjdGVkLWl0ZW1zLmhlbHBlcic7XHJcbmltcG9ydCB7IGdldElubmVySXRlbXMgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWlubmVyLWl0ZW1zLmhlbHBlcic7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVGVtcGxhdGVPdXRwdXRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3RlbXBsYXRlLW91dHB1dC5tb2RlbCc7XHJcbmltcG9ydCB7IFBvc2l0aW9uRW51bSwgUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvb3ZlcmxheSc7XHJcbmltcG9ydCB7IGdldElubmVyU2VsZWN0ZWQgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWlubmVyLXNlbGVjdGVkLmhlbHBlcic7XHJcbmltcG9ydCB7IE1yeEZvcm1WYWxpZGF0b3IgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFNlbGVjdFZhbHVlVHlwZXMsIFNlbGVjdFZhbHVlV2l0aElkIH0gZnJvbSAnLi9zZWxlY3QuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmxlc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuICBwdWJsaWMgc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgb3JpZ2luU2VsZWN0ZWQ6IGFueSB8IGFueVtdID0gW107XHJcbiAgcHVibGljIG9yaWdpbkl0ZW1zOiBTZWxlY3RJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBzZWxlY3RlZDogU2VsZWN0SXRlbU1vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgaW5uZXJJdGVtczogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBmb3JtID0gbmV3IE1yeEZvcm1WYWxpZGF0b3IoKTtcclxuICBwdWJsaWMgbW9kZWwgPSB7XHJcbiAgICBsYWJlbDogJycsXHJcbiAgfTtcclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogYW55W10pIHtcclxuICAgIHRoaXMub3JpZ2luSXRlbXMgPSBpdGVtcztcclxuICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGVkKHRoaXMub3JpZ2luSXRlbXMsIHRoaXMub3JpZ2luU2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2xlYXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbG9zYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2l6ZTogU2VsZWN0U2l6ZVR5cGVzID0gJ2xhcmdlJztcclxuICBASW5wdXQoKSBiaW5kVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGJpbmRMYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYmluZEljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGVtcHR5VGV4dDogc3RyaW5nID0gJ9Cd0LUg0L3QsNC50LTQtdC90L4nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn0JLRi9Cx0LXRgNC40YLQtSDQt9C90LDRh9C10L3QuNC1JztcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nID0gJ9CS0LLQtdC00LjRgtC1INC30L3QsNGH0LXQvdC40LUnO1xyXG4gIEBJbnB1dCgpIG11bHRpQ29sbGFwc2VDb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYWRkT3B0aW9uITogQWRkT3B0aW9uRm47XHJcbiAgQElucHV0KCdpc0V4dHJhT3B0aW9uJykgb3B0aW9uVmFsaWRhdGlvbjogeyBsYWJlbDogeyByZXF1aXJlZDogYm9vbGVhbiwgbWluTGVuZ3RoOiBudW1iZXIgfSB9IHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZXh0cmFPcHRpb25QbGFjZWhvbGRlcjogc3RyaW5nID0gJ9CS0LLQtdC00LjRgtC1INC30L3QsNGH0LXQvdC40LUnO1xyXG4gIEBJbnB1dCgpIHVzZTogJ2RlZmF1bHQnIHwgJ2xpbmsnID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIHNvcnRJY29uOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNvcnRQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaXNGdWxsV2lkdGhEcm9wZG93bjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgcG9wdXBQb3NpdGlvbjogUG9zaXRpb25UeXBlID0gUG9zaXRpb25FbnVtLkJvdHRvbVN0YXJ0O1xyXG5cclxuICBASW5wdXQoKSBzaW5nbGVDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93biE6IFBvcHVwQ29tcG9uZW50O1xyXG5cclxuICBAQ29udGVudENoaWxkKCdvcHRpb25UZW1wbGF0ZScpIG9wdGlvblRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgnbGFiZWxUZW1wbGF0ZScpIGxhYmVsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdwb3B1cEhlYWRlclRlbXBsYXRlJykgcG9wdXBIZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPFRlbXBsYXRlT3V0cHV0TW9kZWw+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3BvcHVwRm9vdGVyVGVtcGxhdGUnKSBwb3B1cEZvb3RlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgnY29udGVudFRlbXBsYXRlJykgY29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdFZhbHVlVHlwZXM+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPFNlbGVjdFZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9uVmFsaWRhdGlvbikge1xyXG4gICAgICB0aGlzLmZvcm0uaW5pdEZpZWxkcyh0aGlzLm1vZGVsLCB0aGlzLm9wdGlvblZhbGlkYXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWFkb25seUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSA/ICdtcngtaW5wdXRfX3JlYWRvbmx5JyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja1ZhbGlkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/XHJcbiAgICAgICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6XHJcbiAgICAgIHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7U2VsZWN0U2l6ZUVudW1bdGhpcy5zaXplXX0gJHt0aGlzLnJlYWRvbmx5Q2xhc3N9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRTZWxlY3RlZExhYmVscygpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLmlubmVySXRlbXMuZmlsdGVyKGkgPT4gaS5fX3NlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyZWRJdGVtcygpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLmlubmVySXRlbXMuZmlsdGVyKGkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5iaW5kTGFiZWwpIHtcclxuICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW5bdGhpcy5iaW5kTGFiZWxdKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGkuX19vcmlnaW5bJ2xhYmVsJ10pIHtcclxuICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpblsnbGFiZWwnXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW4pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0ludmFsaWRNZXNzYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5pbnZhbGlkTWVzc2FnZSB8fCAhIXRoaXMuaW52YWxpZE1lc3NhZ2U/Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldCBnZXRJY29uU3RhdGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmlzT3BlbiA/ICdvcGVuZWQnIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SWNvblNpemUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdtZWRpdW0nID8gJ2ljb24tZm9udC0xNicgOiAnaWNvbi1mb250LTI0JztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdChpdGVtOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuaW5uZXJJdGVtcyA9IHRoaXMuaW5uZXJJdGVtcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlQ2hhbmdlKSB7XHJcbiAgICAgICAgICByZXR1cm4gey4uLmksIF9fc2VsZWN0ZWQ6IGkuX19pZCA9PT0gaXRlbS5fX2lkfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudXNlID09PSAnZGVmYXVsdCcpIHtcclxuICAgICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWQgPyAhaS5fX3NlbGVjdGVkIDogZmFsc2V9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gey4uLmksIF9fc2VsZWN0ZWQ6IGkuX19pZCA9PT0gaXRlbS5fX2lkfTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbm5lckl0ZW1zID0gdGhpcy5pbm5lckl0ZW1zLm1hcChpID0+IHtcclxuICAgICAgICByZXR1cm4gey4uLmksIF9fc2VsZWN0ZWQ6IGkuX19pZCA9PT0gaXRlbS5fX2lkID8gIWkuX19zZWxlY3RlZCA6IGkuX19zZWxlY3RlZH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZHJvcGRvd24udXBkYXRlUG9wdXAoKTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh0aGlzLmlubmVySXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFySXRlbShpdGVtOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCkge1xyXG4gICAgdGhpcy5vblVuc2VsZWN0KGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVW5zZWxlY3QoaXRlbTogU2VsZWN0SW5uZXJJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMuaW5uZXJJdGVtcy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBpZiAoaS5fX2lkID09PSBpdGVtLl9faWQpIHtcclxuICAgICAgICBpLl9fc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUodGhpcy5pbm5lckl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsZWFyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICB0aGlzLmlubmVySXRlbXMgPSB0aGlzLmlubmVySXRlbXMubWFwKGl0ZW0gPT4gKHsuLi5pdGVtLCBfX3NlbGVjdGVkOiBmYWxzZX0pKTtcclxuXHJcbiAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZVBvcHVwKGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZShbXSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlUG9wdXAoaXNPcGVuOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGlzT3BlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc09wdGlvbihvcHRpb246IFNlbGVjdElubmVySXRlbU1vZGVsKTogU2VsZWN0SW5uZXJJdGVtTW9kZWwge1xyXG4gICAgcmV0dXJuIG9wdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc0xhYmVsKGxhYmVsOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCk6IFNlbGVjdElubmVySXRlbU1vZGVsIHtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHNlbGVjdGVkOiBhbnkgfCBhbnlbXSA9IFtdKTogdm9pZCB7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5vcmlnaW5TZWxlY3RlZCA9IHNlbGVjdGVkO1xyXG4gICAgICB0aGlzLl91cGRhdGVTZWxlY3RlZCh0aGlzLm9yaWdpbkl0ZW1zLCB0aGlzLm9yaWdpblNlbGVjdGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VUZXh0VmFsdWVFbXB0eSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybS5pbml0TW9kZWxDaGFuZ2VkKHRoaXMubW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQWRkTmV3Q3VzdG9tT3B0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5hZGRPcHRpb24odGhpcy5tb2RlbC5sYWJlbCk7XHJcbiAgICAgIHRoaXMubW9kZWwubGFiZWwgPSAnJztcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlVGV4dFZhbHVlRW1wdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVNlbGVjdGVkKGl0ZW1zOiBhbnlbXSA9IFtdLCBzZWxlY3RlZDogYW55W10gPSBbXSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLm9yaWdpblNlbGVjdGVkKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkID0gZ2V0SW5uZXJTZWxlY3RlZChpdGVtcywgc2VsZWN0ZWQsIHRoaXMuYmluZFZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBnZXRJbm5lclNlbGVjdGVkKGl0ZW1zLCBbc2VsZWN0ZWRdLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlubmVySXRlbXMgPSBnZXRJbm5lckl0ZW1zKGl0ZW1zLCB0aGlzLnNlbGVjdGVkLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVWYWx1ZShzZWxlY3RlZEl0ZW1zOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdKSB7XHJcbiAgICBjb25zdCBjbGVhcmVkU2VsZWN0ZWQgPSBnZXRTZWxlY3RlZEl0ZW1zKHNlbGVjdGVkSXRlbXMsIHRoaXMuYmluZFZhbHVlKTtcclxuICAgIGNvbnN0IG91dHB1dFNlbGVjdGVkID0gdGhpcy5tdWx0aXBsZSA/IGNsZWFyZWRTZWxlY3RlZCA6IGNsZWFyZWRTZWxlY3RlZC5sZW5ndGggPyBjbGVhcmVkU2VsZWN0ZWRbMF0gOiBudWxsO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KG91dHB1dFNlbGVjdGVkKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh7dmFsdWU6IG91dHB1dFNlbGVjdGVkLCBpZDogdGhpcy51dWlkfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG91dHB1dFNlbGVjdGVkKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MuLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cImludmFsaWRcIlxyXG4gIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuICBjbGFzcz1cIm1yeC1zZWxlY3RcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX3dyYXBwZXJcIj5cclxuICAgIEBzd2l0Y2ggKHVzZSkge1xyXG4gICAgICBAY2FzZSAoJ2RlZmF1bHQnKSB7XHJcbiAgICAgICAgPGRpdiBcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRcIlxyXG4gICAgICAgICAgW21yeFBvcHVwVHJpZ2dlcl09XCJkcm9wZG93blwiXHJcbiAgICAgICAgICBbaXNGdWxsV2lkdGhEcm9wZG93bl09XCJpc0Z1bGxXaWR0aERyb3Bkb3duXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBAaWYgKGdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBAaWYgKG11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X192YWx1ZXNcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAobXVsdGlDb2xsYXBzZUNvdW50ICYmIGdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCA+PSBtdWx0aUNvbGxhcHNlQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19iYWRnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPtCS0YvQsdGA0LDQvdC+OiB7eyBnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggfX08L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWRpc2FibGVkICYmICFyZWFkb25seSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0xNlwiIChjbGljayk9XCJvbkNsZWFyKCRldmVudClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdldFNlbGVjdGVkTGFiZWxzOyB0cmFjayBpdGVtLl9faWQ7IGxldCBmaXJzdCA9ICRmaXJzdDsgbGV0IGxhc3QgPSAkbGFzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAobGFiZWxUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdCwgY2xlYXI6IGNsZWFySXRlbS5iaW5kKHRoaXMpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlZmF1bHRMYWJlbFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX3ZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdldFNlbGVjdGVkTGFiZWxzOyB0cmFjayBpdGVtLl9faWQpIHtcclxuICAgICAgICAgICAgICAgICAge3sgYmluZExhYmVsID8gaXRlbS5fX29yaWdpbltiaW5kTGFiZWxdIDogaXRlbS5fX29yaWdpblsnbGFiZWwnXSB8fCBpdGVtLl9fb3JpZ2luIH19XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX3BsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L2Rpdj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIEBpZiAoaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgPG1yeC1sb2FkZXJcclxuICAgICAgICAgICAgICAgIFtzaXplXT1cInNpemUgPT09ICdsYXJnZScgPyAnc21hbGwnIDogJ2V4dHJhLXNtYWxsJ1wiXHJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ2JyYW5kJ1wiXHJcbiAgICAgICAgICAgICAgPjwvbXJ4LWxvYWRlcj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGlmIChnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggJiYgY2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBtcngtc2VsZWN0X19pbnB1dF9fY29udHJvbHMtLWljb25cIiBcclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJY29uU2l6ZVwiIFxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jaGV2cm9uLWRvd24gbXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzLS1pY29uXCJcclxuICAgICAgICAgICAgICBbY2xhc3NdPVwiW2dldEljb25TdGF0ZSwgZ2V0SWNvblNpemVdXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCdsaW5rJykge1xyXG4gICAgICAgIDxkaXYgXHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtcIlxyXG4gICAgICAgICAgW21yeFBvcHVwVHJpZ2dlcl09XCJkcm9wZG93blwiIFxyXG4gICAgICAgICAgW3BvcHVwUG9zaXRpb25dPVwicG9wdXBQb3NpdGlvblwiIFxyXG4gICAgICAgICAgW2lzRnVsbFdpZHRoRHJvcGRvd25dPVwiaXNGdWxsV2lkdGhEcm9wZG93blwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIEBpZiAoc29ydFBsYWNlaG9sZGVyKSB7XHJcbiAgICAgICAgICAgICAgPHA+e3sgc29ydFBsYWNlaG9sZGVyIH19PC9wPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaWYgKHNvcnRJY29uKSB7XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24ge3tzb3J0SWNvbiA9PT0gJ2FzYycgPyAnaWNvbi1zb3J0aW5nLXVwJyA6ICdpY29uLXNvcnRpbmctZG93bid9fVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvblNpemVcIlxyXG4gICAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rX19jb250cm9sc1wiPlxyXG4gICAgICAgICAgICBAaWYgKGdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rX192YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsczsgdHJhY2sgaXRlbS5fX2lkKSB7XHJcbiAgICAgICAgICAgICAgICAgIHt7IGJpbmRMYWJlbCA/IGl0ZW0uX19vcmlnaW5bYmluZExhYmVsXSA6IGl0ZW0uX19vcmlnaW5bJ2xhYmVsJ10gfHwgaXRlbS5fX29yaWdpbiB9fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jaGV2cm9uLWRvd24gbXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzLS1pY29uXCJcclxuICAgICAgICAgICAgICBbY2xhc3NdPVwiW2dldEljb25TdGF0ZSwgZ2V0SWNvblNpemVdXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA8bXJ4LXBvcHVwICNkcm9wZG93biBbY2xvc2VBZnRlckNsaWNrXT1cImNsb3NhYmxlXCIgKHRvZ2dsZSk9XCJ0b2dnbGVQb3B1cCgkZXZlbnQpXCI+XHJcbiAgICAgIEBmb3IgKGl0ZW0gb2YgZmlsdGVyZWRJdGVtczsgdHJhY2sgaXRlbS5fX2lkOyBsZXQgZmlyc3QgPSAkZmlyc3Q7IGxldCBsYXN0ID0gJGxhc3QpIHtcclxuICAgICAgICA8bXJ4LXBvcHVwLWl0ZW0gW2N1c3RvbV09XCJ0cnVlXCIgW2lkXT1cIml0ZW0uX19pZFwiIChjbGlja2VkKT1cIm9uU2VsZWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgICBAaWYgKG9wdGlvblRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdH1cIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlZmF1bHRPcHRpb25UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdH1cIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tcngtcG9wdXAtaXRlbT5cclxuICAgICAgfSBAZW1wdHkge1xyXG4gICAgICAgIDxtcngtcG9wdXAtaXRlbSBbY3VzdG9tXT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9fZW1wdHlcIj57eyBlbXB0eVRleHQgfX08L2Rpdj5cclxuICAgICAgICA8L21yeC1wb3B1cC1pdGVtPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgIEBpZiAoc2VhcmNoYWJsZSkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19zZWFyY2hcIj5cclxuICAgICAgICAgICAgPG1yeC1pbnB1dC1zZWFyY2hcclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWlucHV0LXNlYXJjaD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGlmIChjb250ZW50VGVtcGxhdGUpIHtcclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAocG9wdXBIZWFkZXJUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3B1cEhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgIEBpZiAoISFhZGRPcHRpb24pIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9fZXh0cmEtb3B0aW9uXCI+XHJcbiAgICAgICAgICAgIDxtcngtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIlxyXG4gICAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZXh0cmFPcHRpb25QbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgW21heGxlbmd0aF09XCIzMDBcIlxyXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cIiEhZm9ybS5lcnJvcnNbJ2xhYmVsJ11cIlxyXG4gICAgICAgICAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJmb3JtLmVycm9yc1snbGFiZWwnXVwiXHJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlVGV4dFZhbHVlRW1wdHkoKVwiXHJcbiAgICAgICAgICAgID48L21yeC1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8bXJ4LWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBpY29uPVwiPHNwYW4gY2xhc3M9J21yeC1pY29uIGljb24tcGx1cyBpY29uLWZvbnQtMjQnPjwvc3Bhbj5cIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkFkZE5ld0N1c3RvbU9wdGlvbigpXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGlmIChwb3B1cEZvb3RlclRlbXBsYXRlKSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvcHVwRm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbXJ4LXBvcHVwPlxyXG4gIDwvZGl2PlxyXG5cclxuICBAaWYgKGludmFsaWQgJiYgaXNJbnZhbGlkTWVzc2FnZSkge1xyXG4gICAgPG1yeC1lcnJvci1tZXNzYWdlIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiPjwvbXJ4LWVycm9yLW1lc3NhZ2U+XHJcbiAgfVxyXG5cclxuICA8bXJ4LXNhdmUtc3RhdGUgW2ZpZWxkc109XCJmaWVsZHNcIiBbaWRdPVwidXVpZFwiIFt0eXBlXT1cIidpbnB1dCdcIj48L21yeC1zYXZlLXN0YXRlPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgQGlmIChhc0xhYmVsKGl0ZW0pOyBhcyBsYWJlbCkge1xyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19iYWRnZVwiPlxyXG4gICAgICA8cD57eyBiaW5kTGFiZWwgPyBsYWJlbC5fX29yaWdpbltiaW5kTGFiZWxdIDogbGFiZWwuX19vcmlnaW5bJ2xhYmVsJ10gfHwgbGFiZWwuX19vcmlnaW4gfX08L3A+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMTZcIiAoY2xpY2spPVwib25VbnNlbGVjdChsYWJlbClcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRPcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICBAaWYgKGFzT3B0aW9uKGl0ZW0pOyBhcyBvcHRpb24pIHtcclxuICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9faXRlbVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2l0ZW0tLWNvbnRlbnRcIj5cclxuICAgICAgICBAaWYgKGJpbmRJY29uICYmIG9wdGlvbi5fX29yaWdpbltiaW5kSWNvbl0pIHtcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1mb250LTI0XCIgW2NsYXNzXT1cIm9wdGlvbltiaW5kSWNvbl1cIj48L3NwYW4+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8cD57eyBiaW5kTGFiZWwgPyBvcHRpb24uX19vcmlnaW5bYmluZExhYmVsXSA6IG9wdGlvbi5fX29yaWdpblsnbGFiZWwnXSB8fCBvcHRpb24uX19vcmlnaW4gfX08L3A+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmIChvcHRpb24uX19zZWxlY3RlZCkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jaGVjayBpY29uLWZvbnQtMjRcIj48L3NwYW4+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9zZWxlY3Qvc2VsZWN0LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNlbGVjdFZhbHVlVHlwZXMgPSBhbnkgfCBhbnlbXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0VmFsdWVXaXRoSWQge1xyXG4gIHZhbHVlOiBTZWxlY3RWYWx1ZVR5cGVzLFxyXG4gIGlkOiBzdHJpbmdcclxufVxyXG4iXX0=
|
package/fesm2022/myrta-ui.mjs
CHANGED
|
@@ -4073,7 +4073,7 @@ class SelectComponent {
|
|
|
4073
4073
|
fields = [];
|
|
4074
4074
|
set items(items) {
|
|
4075
4075
|
this.originItems = items;
|
|
4076
|
-
this.
|
|
4076
|
+
this._updateSelected(this.originItems, this.originSelected);
|
|
4077
4077
|
}
|
|
4078
4078
|
multiple = false;
|
|
4079
4079
|
isLoading = false;
|
|
@@ -4173,7 +4173,7 @@ class SelectComponent {
|
|
|
4173
4173
|
});
|
|
4174
4174
|
}
|
|
4175
4175
|
this.dropdown.updatePopup();
|
|
4176
|
-
this.
|
|
4176
|
+
this._updateValue(this.innerItems);
|
|
4177
4177
|
}
|
|
4178
4178
|
clearItem(item) {
|
|
4179
4179
|
this.onUnselect(item);
|
|
@@ -4184,20 +4184,17 @@ class SelectComponent {
|
|
|
4184
4184
|
i.__selected = false;
|
|
4185
4185
|
}
|
|
4186
4186
|
});
|
|
4187
|
-
this.
|
|
4187
|
+
this._updateValue(this.innerItems);
|
|
4188
4188
|
}
|
|
4189
4189
|
onClear(event) {
|
|
4190
4190
|
event.stopPropagation();
|
|
4191
4191
|
this.innerItems = this.innerItems.map(item => ({ ...item, __selected: false }));
|
|
4192
4192
|
this.dropdown.togglePopup(false);
|
|
4193
|
-
this.
|
|
4193
|
+
this._updateValue([]);
|
|
4194
4194
|
}
|
|
4195
4195
|
togglePopup(isOpen) {
|
|
4196
4196
|
this.isOpen = isOpen;
|
|
4197
4197
|
}
|
|
4198
|
-
getCleanSelectItem(item) {
|
|
4199
|
-
return cleanSelectItem(item);
|
|
4200
|
-
}
|
|
4201
4198
|
asOption(option) {
|
|
4202
4199
|
return option;
|
|
4203
4200
|
}
|
|
@@ -4207,7 +4204,7 @@ class SelectComponent {
|
|
|
4207
4204
|
writeValue(selected = []) {
|
|
4208
4205
|
if (selected) {
|
|
4209
4206
|
this.originSelected = selected;
|
|
4210
|
-
this.
|
|
4207
|
+
this._updateSelected(this.originItems, this.originSelected);
|
|
4211
4208
|
}
|
|
4212
4209
|
}
|
|
4213
4210
|
changeTextValueEmpty() {
|
|
@@ -4220,7 +4217,7 @@ class SelectComponent {
|
|
|
4220
4217
|
this.changeTextValueEmpty();
|
|
4221
4218
|
}
|
|
4222
4219
|
}
|
|
4223
|
-
|
|
4220
|
+
_updateSelected(items = [], selected = []) {
|
|
4224
4221
|
if (this.multiple && Array.isArray(this.originSelected)) {
|
|
4225
4222
|
this.selected = getInnerSelected(items, selected, this.bindValue);
|
|
4226
4223
|
}
|
|
@@ -4229,7 +4226,7 @@ class SelectComponent {
|
|
|
4229
4226
|
}
|
|
4230
4227
|
this.innerItems = getInnerItems(items, this.selected, this.bindValue);
|
|
4231
4228
|
}
|
|
4232
|
-
|
|
4229
|
+
_updateValue(selectedItems) {
|
|
4233
4230
|
const clearedSelected = getSelectedItems(selectedItems, this.bindValue);
|
|
4234
4231
|
const outputSelected = this.multiple ? clearedSelected : clearedSelected.length ? clearedSelected[0] : null;
|
|
4235
4232
|
this.changed.emit(outputSelected);
|