@coreui/angular-pro 4.0.0-alpha.4 → 4.0.0-alpha.5
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/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +59 -41
- package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +5 -3
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select.module.mjs +1 -1
- package/esm2020/lib/multi-select/multi-select.service.mjs +1 -1
- package/esm2020/lib/multi-select/multi-select.type.mjs +1 -1
- package/esm2020/lib/multi-select/public_api.mjs +1 -1
- package/esm2020/lib/popover/popover.directive.mjs +1 -1
- package/esm2020/public-api.mjs +1 -1
- package/fesm2015/coreui-angular-pro.mjs +70 -50
- package/fesm2015/coreui-angular-pro.mjs.map +1 -1
- package/fesm2020/coreui-angular-pro.mjs +70 -50
- package/fesm2020/coreui-angular-pro.mjs.map +1 -1
- package/lib/multi-select/multi-select/multi-select.component.d.ts +2 -3
- package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +2 -1
- package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +5 -4
- package/package.json +1 -1
|
@@ -27,7 +27,9 @@ import * as i6 from "../../button/button-close.directive";
|
|
|
27
27
|
// });
|
|
28
28
|
// };
|
|
29
29
|
export class MultiSelectComponent {
|
|
30
|
-
constructor(elementRef, renderer, ngZone, changeDetectorRef, viewContainerRef, focusMonitor, multiSelectService
|
|
30
|
+
constructor(elementRef, renderer, ngZone, changeDetectorRef, viewContainerRef, focusMonitor, multiSelectService
|
|
31
|
+
// private listenersService: ListenersService
|
|
32
|
+
) {
|
|
31
33
|
this.elementRef = elementRef;
|
|
32
34
|
this.renderer = renderer;
|
|
33
35
|
this.ngZone = ngZone;
|
|
@@ -41,7 +43,7 @@ export class MultiSelectComponent {
|
|
|
41
43
|
this._multiple = false;
|
|
42
44
|
this.nativeName = '';
|
|
43
45
|
this.nativeId = '';
|
|
44
|
-
|
|
46
|
+
// @Input() options = [];
|
|
45
47
|
this.optionsMaxHeight = 'auto';
|
|
46
48
|
this.optionsStyle = 'checkbox';
|
|
47
49
|
this.placeholder = 'Select...';
|
|
@@ -63,7 +65,11 @@ export class MultiSelectComponent {
|
|
|
63
65
|
this._subtreeFocused = this.focusOrigin(null);
|
|
64
66
|
}
|
|
65
67
|
writeValue(value) {
|
|
66
|
-
|
|
68
|
+
// console.log('writeValue', value)
|
|
69
|
+
if (value !== null) {
|
|
70
|
+
this.value = value;
|
|
71
|
+
// this.onChange(this.value);
|
|
72
|
+
}
|
|
67
73
|
}
|
|
68
74
|
registerOnChange(fn) {
|
|
69
75
|
this.onChange = fn;
|
|
@@ -88,8 +94,9 @@ export class MultiSelectComponent {
|
|
|
88
94
|
set value(value) {
|
|
89
95
|
const newValue = Array.isArray(value) ? [...value] : [value ?? ''];
|
|
90
96
|
if (this._value.toString() !== newValue.toString()) {
|
|
97
|
+
// console.log('set value', value)
|
|
91
98
|
this._value = newValue;
|
|
92
|
-
this.
|
|
99
|
+
this.onChange(newValue);
|
|
93
100
|
this.updateNativeSelect();
|
|
94
101
|
this.valueChange.emit(this.value);
|
|
95
102
|
}
|
|
@@ -120,7 +127,8 @@ export class MultiSelectComponent {
|
|
|
120
127
|
return {
|
|
121
128
|
'form-multi-select': true,
|
|
122
129
|
'form-multi-select-selection-tags': this.selectionType === 'tags',
|
|
123
|
-
show: this.visible
|
|
130
|
+
show: this.visible,
|
|
131
|
+
disabled: this.disabled
|
|
124
132
|
};
|
|
125
133
|
}
|
|
126
134
|
get tabIndex() {
|
|
@@ -132,36 +140,42 @@ export class MultiSelectComponent {
|
|
|
132
140
|
});
|
|
133
141
|
}
|
|
134
142
|
onKeyUp($event) {
|
|
135
|
-
console.log('keyup', $event.key);
|
|
136
|
-
if (
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
// this.focusMonitor.focusVia(this.inputElement ?? this.elementRef, 'keyboard');
|
|
141
|
-
}
|
|
142
|
-
else if ($event.key === 'Enter') {
|
|
143
|
-
// } else {
|
|
144
|
-
this.visible = true;
|
|
145
|
-
if (!this.search) {
|
|
143
|
+
// console.log('keyup', $event.key);
|
|
144
|
+
if (!this.disabled) {
|
|
145
|
+
if ($event.key === 'Escape') {
|
|
146
|
+
this.visible = false;
|
|
147
|
+
this.inputValue = '';
|
|
146
148
|
this.setFocus();
|
|
149
|
+
// this.focusMonitor.focusVia(this.inputElement ?? this.elementRef, 'keyboard');
|
|
150
|
+
}
|
|
151
|
+
else if ($event.key === 'Enter') {
|
|
152
|
+
// } else {
|
|
153
|
+
this.visible = true;
|
|
154
|
+
if (!this.search) {
|
|
155
|
+
this.setFocus();
|
|
156
|
+
}
|
|
147
157
|
}
|
|
148
158
|
}
|
|
149
159
|
}
|
|
150
160
|
manage($event) {
|
|
151
|
-
console.log('keydown', $event.key);
|
|
152
|
-
if (
|
|
153
|
-
$event.
|
|
161
|
+
// console.log('keydown', $event.key);
|
|
162
|
+
if (!this.disabled) {
|
|
163
|
+
if ($event.key === 'Enter' && $event.target === this.inputElement.nativeElement) {
|
|
164
|
+
$event.preventDefault();
|
|
165
|
+
}
|
|
166
|
+
this.listKeyManager.onKeydown($event);
|
|
154
167
|
}
|
|
155
|
-
this.listKeyManager.onKeydown($event);
|
|
156
168
|
}
|
|
157
169
|
onClick($event) {
|
|
158
|
-
if (!this.
|
|
159
|
-
|
|
170
|
+
if (!this.disabled) {
|
|
171
|
+
if (!this.visible) {
|
|
172
|
+
this.visible = !this.visible;
|
|
173
|
+
}
|
|
174
|
+
this.setFocus();
|
|
160
175
|
}
|
|
161
|
-
this.setFocus();
|
|
162
176
|
}
|
|
163
177
|
set inputValue(value) {
|
|
164
|
-
console.log('inputValue', value);
|
|
178
|
+
// console.log('inputValue', value);
|
|
165
179
|
this._inputValue = value;
|
|
166
180
|
// this.visible = !!value ?? this.visible;
|
|
167
181
|
this.filterOptions(value);
|
|
@@ -173,7 +187,7 @@ export class MultiSelectComponent {
|
|
|
173
187
|
return this._subtreeFocused;
|
|
174
188
|
}
|
|
175
189
|
set subtreeFocused(value) {
|
|
176
|
-
this._subtreeFocused = value;
|
|
190
|
+
this._subtreeFocused = this.disabled ? false : value;
|
|
177
191
|
this.visible = value === false ? false : this.visible;
|
|
178
192
|
}
|
|
179
193
|
focusOrigin(origin) {
|
|
@@ -194,12 +208,13 @@ export class MultiSelectComponent {
|
|
|
194
208
|
this.visibleOptions = this.multiSelectOptions.length;
|
|
195
209
|
this.multiSelectOptions.forEach((option, index) => {
|
|
196
210
|
option.optionsStyle = this.optionsStyle;
|
|
211
|
+
option.selected = option.value !== undefined ? this.value.includes(option.value) || option.selected : option.selected;
|
|
197
212
|
});
|
|
198
|
-
this._selectedOptions = this.multiSelectOptions.filter((option) => option.selected);
|
|
213
|
+
this._selectedOptions = this.multiSelectOptions.filter((option) => !!option.selected);
|
|
199
214
|
setTimeout(() => {
|
|
200
215
|
this.value = this._selectedOptions.map(item => item.value);
|
|
201
216
|
});
|
|
202
|
-
this.value = this._selectedOptions.map(item => item.value);
|
|
217
|
+
// this.value = this._selectedOptions.map(item => item.value);
|
|
203
218
|
this.listKeyManager = new FocusKeyManager(this.multiSelectOptions).withHomeAndEnd();
|
|
204
219
|
this.listKeyManager.skipPredicate(item => !item.visible);
|
|
205
220
|
this.multiselectSubscribe();
|
|
@@ -208,14 +223,16 @@ export class MultiSelectComponent {
|
|
|
208
223
|
ngAfterViewInit() {
|
|
209
224
|
// this.setListeners();
|
|
210
225
|
this.focusMonitorSubscription = this.focusMonitor.monitor(this.elementRef, true).subscribe((origin) => this.ngZone.run(() => {
|
|
211
|
-
|
|
212
|
-
|
|
226
|
+
if (!this.disabled) {
|
|
227
|
+
this.subtreeFocused = this.focusOrigin(origin);
|
|
228
|
+
this.changeDetectorRef.markForCheck();
|
|
229
|
+
}
|
|
213
230
|
}));
|
|
214
231
|
}
|
|
215
|
-
handleInputClick($event) {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
232
|
+
// handleInputClick($event: MouseEvent) {
|
|
233
|
+
// console.log('handleInputClick', $event);
|
|
234
|
+
// // this.visible = !this.visible;
|
|
235
|
+
// }
|
|
219
236
|
multiselectSubscribe(subscribe = true) {
|
|
220
237
|
if (subscribe) {
|
|
221
238
|
this.multiselectVisibleSubscription = this.multiSelectService.multiSelectVisible$.subscribe((visible) => {
|
|
@@ -233,7 +250,7 @@ export class MultiSelectComponent {
|
|
|
233
250
|
}
|
|
234
251
|
});
|
|
235
252
|
}
|
|
236
|
-
this._selectedOptions = this.multiSelectOptions.filter((option) => option.selected);
|
|
253
|
+
this._selectedOptions = this.multiSelectOptions.filter((option) => !!option.selected);
|
|
237
254
|
this.value = this._selectedOptions.map(item => item.value);
|
|
238
255
|
});
|
|
239
256
|
}
|
|
@@ -302,7 +319,9 @@ export class MultiSelectComponent {
|
|
|
302
319
|
return;
|
|
303
320
|
}
|
|
304
321
|
}
|
|
305
|
-
|
|
322
|
+
if (!this.disabled) {
|
|
323
|
+
this.focusMonitor.focusVia(this.inputElement ?? this.elementRef, 'program');
|
|
324
|
+
}
|
|
306
325
|
}
|
|
307
326
|
filterOptions(value) {
|
|
308
327
|
const searchString = value.toLowerCase() ?? '';
|
|
@@ -334,11 +353,12 @@ export class MultiSelectComponent {
|
|
|
334
353
|
this.nativeSelectRef.instance.name = this.nativeName;
|
|
335
354
|
this.nativeSelectRef.instance.form = this.nativeId;
|
|
336
355
|
this.nativeSelectRef.instance.options = options;
|
|
356
|
+
this.nativeSelectRef.instance.disabled = this.disabled;
|
|
337
357
|
this.nativeSelectRef.instance.changeDetectorRef.detectChanges();
|
|
338
358
|
}
|
|
339
359
|
}
|
|
340
360
|
MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.FocusMonitor }, { token: i2.MultiSelectService }], target: i0.ɵɵFactoryTarget.Component });
|
|
341
|
-
MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectComponent, selector: "c-multi-select", inputs: { cleaner: "cleaner", disabled: "disabled", multiple: "multiple", nativeName: "nativeName", nativeId: "nativeId",
|
|
361
|
+
MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectComponent, selector: "c-multi-select", inputs: { cleaner: "cleaner", disabled: "disabled", multiple: "multiple", nativeName: "nativeName", nativeId: "nativeId", optionsMaxHeight: "optionsMaxHeight", optionsStyle: "optionsStyle", placeholder: "placeholder", search: "search", searchNoResultsLabel: "searchNoResultsLabel", selectAll: "selectAll", selectAllLabel: "selectAllLabel", selectionType: "selectionType", selectionTypeCounterText: "selectionTypeCounterText", value: "value", visible: "visible" }, outputs: { valueChange: "valueChange", visibleChange: "visibleChange" }, host: { listeners: { "keyup": "onKeyUp($event)", "keydown": "manage($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex" } }, providers: [
|
|
342
362
|
MultiSelectService,
|
|
343
363
|
// ListenersService,
|
|
344
364
|
{
|
|
@@ -346,7 +366,7 @@ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
346
366
|
useExisting: forwardRef(() => MultiSelectComponent),
|
|
347
367
|
multi: true
|
|
348
368
|
}
|
|
349
|
-
], queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownElement", first: true, predicate: ["dropdownElement"], descendants: true }], exportAs: ["cMultiSelect"], ngImport: i0, template: "<div class=\"form-multi-select-selection\">\n <ng-template [ngIf]=\"selectionType==='tags'\">\n <c-multi-select-tag (remove)=\"handleTagRemove($event)\" *ngFor=\"let option of selectedOptions; index as i\"\n [option]=\"option\" tabindex=\"-1\"></c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType==='text'\">\n <span class=\"bg-light\">{{selectedOptionsText}}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType==='counter'\">\n <span>{{counterText}}</span>\n </ng-template>\n</div>\n\n<input #inputElement\n [(ngModel)]=\"inputValue\"\n [disabled]=\"!search\"\n [placeholder]=\"(selectedOptions.length === 0 && selectionType!=='counter') ? placeholder : ''\"\n autocomplete=\"off\"\n
|
|
369
|
+
], queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownElement", first: true, predicate: ["dropdownElement"], descendants: true }], exportAs: ["cMultiSelect"], ngImport: i0, template: "<div class=\"form-multi-select-selection\">\r\n <ng-template [ngIf]=\"selectionType==='tags'\">\r\n <c-multi-select-tag (remove)=\"handleTagRemove($event)\" *ngFor=\"let option of selectedOptions; index as i\"\r\n [option]=\"option\" tabindex=\"-1\"></c-multi-select-tag>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType==='text'\">\r\n <span class=\"bg-light\">{{selectedOptionsText}}</span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType==='counter'\">\r\n <span>{{counterText}}</span>\r\n </ng-template>\r\n</div>\r\n\r\n<input #inputElement\r\n [(ngModel)]=\"inputValue\"\r\n [disabled]=\"disabled || !search\"\r\n [placeholder]=\"(selectedOptions.length === 0 && selectionType!=='counter') ? placeholder : ''\"\r\n autocomplete=\"off\"\r\n [ngClass]=\"{'form-multi-select-search ms-1': true, disabled: disabled}\" tabindex=\"{{disabled ? '-1' : '0'}}\"\r\n type=\"text\">\r\n\r\n<button (click)=\"clearAllOptions($event)\"\r\n *ngIf=\"cleaner && selectedOptions.length > 0\"\r\n [disabled]=\"disabled || !isDropdownVisible\"\r\n aria-label=\"Clear all\"\r\n cButtonClose\r\n class=\"form-multi-select-selection-cleaner\"\r\n size=\"sm\">\r\n</button>\r\n\r\n<div #dropdownElement class=\"form-multi-select-dropdown\">\r\n <ng-template [ngIf]=\"visibleOptions>0\" [ngIfElse]=\"optionsEmpty\">\r\n <button (click)=\"selectAllOptions()\"\r\n *ngIf=\"selectAll && multiple\"\r\n class=\"form-multi-select-all\">\r\n {{selectAllLabel}}\r\n </button>\r\n <div #multiselectOptionsDiv\r\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, 'overflow': 'scroll'} : {}\"\r\n class=\"form-multi-select-options\">\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n <ng-template #optionsEmpty>\r\n <div class=\"form-multi-select-options-empty\">{{searchNoResultsLabel}}</div>\r\n </ng-template>\r\n</div>\r\n\r\n", styles: [":host{display:block}:host.cdk-focused:not(.disabled){color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host .form-multi-select-search:disabled,:host .form-multi-select-search.disabled{background-color:var(--cui-input-disabled-bg, #d8dbe0);border-color:var(--cui-input-disabled-border-color, #b1b7c1);opacity:1}\n"], components: [{ type: i3.MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: ["option"], outputs: ["remove"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.ButtonCloseDirective, selector: "[cButtonClose]", inputs: ["white"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
350
370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
351
371
|
type: Component,
|
|
352
372
|
args: [{ selector: 'c-multi-select', exportAs: 'cMultiSelect', providers: [
|
|
@@ -357,7 +377,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
357
377
|
useExisting: forwardRef(() => MultiSelectComponent),
|
|
358
378
|
multi: true
|
|
359
379
|
}
|
|
360
|
-
], template: "<div class=\"form-multi-select-selection\">\n <ng-template [ngIf]=\"selectionType==='tags'\">\n <c-multi-select-tag (remove)=\"handleTagRemove($event)\" *ngFor=\"let option of selectedOptions; index as i\"\n [option]=\"option\" tabindex=\"-1\"></c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType==='text'\">\n <span class=\"bg-light\">{{selectedOptionsText}}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType==='counter'\">\n <span>{{counterText}}</span>\n </ng-template>\n</div>\n\n<input #inputElement\n [(ngModel)]=\"inputValue\"\n [disabled]=\"!search\"\n [placeholder]=\"(selectedOptions.length === 0 && selectionType!=='counter') ? placeholder : ''\"\n autocomplete=\"off\"\n
|
|
380
|
+
], template: "<div class=\"form-multi-select-selection\">\r\n <ng-template [ngIf]=\"selectionType==='tags'\">\r\n <c-multi-select-tag (remove)=\"handleTagRemove($event)\" *ngFor=\"let option of selectedOptions; index as i\"\r\n [option]=\"option\" tabindex=\"-1\"></c-multi-select-tag>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType==='text'\">\r\n <span class=\"bg-light\">{{selectedOptionsText}}</span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType==='counter'\">\r\n <span>{{counterText}}</span>\r\n </ng-template>\r\n</div>\r\n\r\n<input #inputElement\r\n [(ngModel)]=\"inputValue\"\r\n [disabled]=\"disabled || !search\"\r\n [placeholder]=\"(selectedOptions.length === 0 && selectionType!=='counter') ? placeholder : ''\"\r\n autocomplete=\"off\"\r\n [ngClass]=\"{'form-multi-select-search ms-1': true, disabled: disabled}\" tabindex=\"{{disabled ? '-1' : '0'}}\"\r\n type=\"text\">\r\n\r\n<button (click)=\"clearAllOptions($event)\"\r\n *ngIf=\"cleaner && selectedOptions.length > 0\"\r\n [disabled]=\"disabled || !isDropdownVisible\"\r\n aria-label=\"Clear all\"\r\n cButtonClose\r\n class=\"form-multi-select-selection-cleaner\"\r\n size=\"sm\">\r\n</button>\r\n\r\n<div #dropdownElement class=\"form-multi-select-dropdown\">\r\n <ng-template [ngIf]=\"visibleOptions>0\" [ngIfElse]=\"optionsEmpty\">\r\n <button (click)=\"selectAllOptions()\"\r\n *ngIf=\"selectAll && multiple\"\r\n class=\"form-multi-select-all\">\r\n {{selectAllLabel}}\r\n </button>\r\n <div #multiselectOptionsDiv\r\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, 'overflow': 'scroll'} : {}\"\r\n class=\"form-multi-select-options\">\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n <ng-template #optionsEmpty>\r\n <div class=\"form-multi-select-options-empty\">{{searchNoResultsLabel}}</div>\r\n </ng-template>\r\n</div>\r\n\r\n", styles: [":host{display:block}:host.cdk-focused:not(.disabled){color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host .form-multi-select-search:disabled,:host .form-multi-select-search.disabled{background-color:var(--cui-input-disabled-bg, #d8dbe0);border-color:var(--cui-input-disabled-border-color, #b1b7c1);opacity:1}\n"] }]
|
|
361
381
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.FocusMonitor }, { type: i2.MultiSelectService }]; }, propDecorators: { cleaner: [{
|
|
362
382
|
type: Input
|
|
363
383
|
}], disabled: [{
|
|
@@ -368,8 +388,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
368
388
|
type: Input
|
|
369
389
|
}], nativeId: [{
|
|
370
390
|
type: Input
|
|
371
|
-
}], options: [{
|
|
372
|
-
type: Input
|
|
373
391
|
}], optionsMaxHeight: [{
|
|
374
392
|
type: Input
|
|
375
393
|
}], optionsStyle: [{
|
|
@@ -421,4 +439,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
421
439
|
type: HostListener,
|
|
422
440
|
args: ['click', ['$event']]
|
|
423
441
|
}] } });
|
|
424
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBNkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7OztBQUV0SCw0REFBNEQ7QUFDNUQsOERBQThEO0FBQzlELHVGQUF1RjtBQUN2RixZQUFZO0FBQ1osS0FBSztBQUNMLEVBQUU7QUFDRix1REFBdUQ7QUFDdkQsK0RBQStEO0FBQy9ELDZCQUE2QjtBQUM3Qix1QkFBdUI7QUFDdkIsUUFBUTtBQUNSLGNBQWM7QUFDZCxRQUFRO0FBQ1IsS0FBSztBQWlCTCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlB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QUksRUFBRTtnQkFLdkMsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNLLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUVGLFdBQVc7c0JBQXBDLFdBQVc7dUJBQUMsT0FBTztnQkFTUixRQUFRO3NCQURuQixXQUFXO3VCQUFDLGVBQWU7Z0JBV08sT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0JJLE1BQU07c0JBQTFDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFBLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIsIEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLy8gaW1wb3J0IHsgTGlzdGVuZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpc3RlbmVycy5zZXJ2aWNlJztcbmltcG9ydCB7IElNdWx0aVNlbGVjdCwgSU9wdGlvbiB9IGZyb20gJy4uL211bHRpLXNlbGVjdC50eXBlJztcbmltcG9ydCB7IE11bHRpU2VsZWN0U2VydmljZSB9IGZyb20gJy4uL211bHRpLXNlbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0L211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudCc7XG5cbi8vIGNvbnN0IGZsYXR0ZW5BcnJheSA9IChvcHRpb25zOiBJT3B0aW9uW10pOiBJT3B0aW9uW10gPT4ge1xuLy8gICByZXR1cm4gb3B0aW9ucy5yZWR1Y2UoKGFjYzogSU9wdGlvbltdLCB2YWw6IElPcHRpb24pID0+IHtcbi8vICAgICByZXR1cm4gYWNjLmNvbmNhdChBcnJheS5pc0FycmF5KHZhbC5vcHRpb25zKSA/IGZsYXR0ZW5BcnJheSh2YWwub3B0aW9ucykgOiB2YWwpO1xuLy8gICB9LCBbXSk7XG4vLyB9O1xuLy9cbi8vIGNvbnN0IGdldFNlbGVjdGVkT3B0aW9ucyA9IChvcHRpb25zOiBJT3B0aW9uW10pID0+IHtcbi8vICAgcmV0dXJuIGZsYXR0ZW5BcnJheShvcHRpb25zKS5maWx0ZXIoKG9wdGlvbjogSU9wdGlvbikgPT4ge1xuLy8gICAgIGlmIChvcHRpb24uc2VsZWN0ZWQpIHtcbi8vICAgICAgIHJldHVybiBvcHRpb247XG4vLyAgICAgfVxuLy8gICAgIHJldHVybjtcbi8vICAgfSk7XG4vLyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLW11bHRpLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjTXVsdGlTZWxlY3QnLFxuICBwcm92aWRlcnM6IFtcbiAgICBNdWx0aVNlbGVjdFNlcnZpY2UsXG4gICAgLy8gTGlzdGVuZXJzU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgSU11bHRpU2VsZWN0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0U2VydmljZTogTXVsdGlTZWxlY3RTZXJ2aWNlLFxuICAgIC8vIHByaXZhdGUgbGlzdGVuZXJzU2VydmljZTogTGlzdGVuZXJzU2VydmljZVxuICApIHt9XG5cbiAgb25DaGFuZ2U6IGFueSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiAoc3RyaW5nIHwgc3RyaW5nW10pKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX211bHRpcGxlOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xuXG4gIEBJbnB1dCgpIGNsZWFuZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IG11bHRpcGxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGU7XG4gIH1cbiAgcHJpdmF0ZSBfbXVsdGlwbGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBuYXRpdmVOYW1lID0gJyc7XG4gIEBJbnB1dCgpIG5hdGl2ZUlkID0gJyc7XG4gIEBJbnB1dCgpIG9wdGlvbnMgPSBbXTtcbiAgQElucHV0KCkgb3B0aW9uc01heEhlaWdodCA9ICdhdXRvJztcbiAgQElucHV0KCkgb3B0aW9uc1N0eWxlOiAnY2hlY2tib3gnIHwgJ3RleHQnID0gJ2NoZWNrYm94JztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnU2VsZWN0Li4uJztcbiAgQElucHV0KCkgc2VhcmNoID0gdHJ1ZTtcbiAgQElucHV0KCkgc2VhcmNoTm9SZXN1bHRzTGFiZWwgPSAnbm8gaXRlbXMnO1xuICBASW5wdXQoKSBzZWxlY3RBbGwgPSB0cnVlO1xuICBASW5wdXQoKSBzZWxlY3RBbGxMYWJlbCA9ICdTZWxlY3QgYWxsIG9wdGlvbnMnO1xuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlOiAnY291bnRlcicgfCAndGFncycgfCAndGV4dCcgPSAndGFncyc7XG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGVDb3VudGVyVGV4dDogc3RyaW5nID0gJ2l0ZW0ocykgc2VsZWN0ZWQnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gWy4uLnZhbHVlXSA6IFt2YWx1ZSA/PyAnJ107XG4gICAgaWYgKHRoaXMuX3ZhbHVlLnRvU3RyaW5nKCkgIT09IG5ld1ZhbHVlLnRvU3RyaW5nKCkpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLnVwZGF0ZU5hdGl2ZVNlbGVjdCgpO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyBbLi4udGhpcy5fdmFsdWVdIDogdGhpcy5fdmFsdWVbMF0/LnRvU3RyaW5nKCkgPz8gJyc7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZ1tdID0gWycnXTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHN0cmluZ1tdPigpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fdmlzaWJsZSkge1xuICAgICAgdGhpcy5fdmlzaWJsZSA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlcnZpY2UudG9nZ2xlVmlzaWJsZShuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIGdldCB2aXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG4gIHByaXZhdGUgX3Zpc2libGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBpc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuXG4gIGdldCBzZWxlY3RlZE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkT3B0aW9ucztcbiAgfVxuICBwcml2YXRlIF9zZWxlY3RlZE9wdGlvbnM6IGFueVtdID0gW107XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uc1RleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24ubGFiZWwpLmpvaW4oJywgJyk7XG4gIH1cblxuICBnZXQgY291bnRlclRleHQoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aH0gJHt0aGlzLnNlbGVjdGlvblR5cGVDb3VudGVyVGV4dH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBtdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBtdWx0aVNlbGVjdE9wdGlvbnNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgbXVsdGlTZWxlY3RPcHRpb25zITogUXVlcnlMaXN0PE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGxpc3RLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93bkVsZW1lbnQnKSBkcm9wZG93bkVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdmb3JtLW11bHRpLXNlbGVjdCc6IHRydWUsXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLXRhZ3MnOiB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd0YWdzJyxcbiAgICAgIHNob3c6IHRoaXMudmlzaWJsZVxuICAgIH07XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICBwcml2YXRlIGdldCB0YWJJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiSW5kZXg7XG4gIH1cbiAgcHJpdmF0ZSBzZXQgdGFiSW5kZXgodmFsdWUpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy5zZWFyY2ggPyAnLTEnIDogdmFsdWUgPT09IG51bGwgPyBudWxsIDogJzAnO1xuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgX3RhYkluZGV4OiBzdHJpbmcgfCBudWxsID0gJy0xJztcblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pIG9uS2V5VXAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ2tleXVwJywgJGV2ZW50LmtleSk7XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5zZXRGb2N1cygpO1xuICAgICAgLy8gdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dEVsZW1lbnQgPz8gdGhpcy5lbGVtZW50UmVmLCAna2V5Ym9hcmQnKTtcbiAgICB9IGVsc2UgaWYgKCRldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIC8vIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLnNlYXJjaCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG1hbmFnZSgkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zb2xlLmxvZygna2V5ZG93bicsICRldmVudC5rZXkpO1xuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRW50ZXInICYmICRldmVudC50YXJnZXQgPT09IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLm9uS2V5ZG93bigkZXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBvbkNsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xuICAgIH1cbiAgICB0aGlzLnNldEZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgdmlzaWJsZU9wdGlvbnMgPSAwO1xuXG4gIHNldCBpbnB1dFZhbHVlKHZhbHVlKSB7XG4gICAgY29uc29sZS5sb2coJ2lucHV0VmFsdWUnLCB2YWx1ZSk7XG4gICAgdGhpcy5faW5wdXRWYWx1ZSA9IHZhbHVlO1xuICAgIC8vIHRoaXMudmlzaWJsZSA9ICEhdmFsdWUgPz8gdGhpcy52aXNpYmxlO1xuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyh2YWx1ZSk7XG4gIH1cblxuICBnZXQgaW5wdXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2lucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIGdldCBzdWJ0cmVlRm9jdXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3VidHJlZUZvY3VzZWQ7XG4gIH1cblxuICBzZXQgc3VidHJlZUZvY3VzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdWJ0cmVlRm9jdXNlZCA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlID09PSBmYWxzZSA/IGZhbHNlIDogdGhpcy52aXNpYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3VidHJlZUZvY3VzZWQgPSB0aGlzLmZvY3VzT3JpZ2luKG51bGwpO1xuXG4gIHByaXZhdGUgbmF0aXZlU2VsZWN0UmVmITogYW55O1xuXG4gIGZvY3VzT3JpZ2luKG9yaWdpbjogRm9jdXNPcmlnaW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBmb2N1c2VkID0gISFvcmlnaW47XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZm9jdXNlZCA/IHRoaXMuaW5wdXRWYWx1ZSA6ICcnO1xuICAgIHJldHVybiBmb2N1c2VkO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJJbmRleCA9ICcwJztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubXVsdGlzZWxlY3RTdWJzY3JpYmUoZmFsc2UpO1xuICAgIC8vIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYpO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZU9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5sZW5ndGg7XG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgb3B0aW9uLm9wdGlvbnNTdHlsZSA9IHRoaXMub3B0aW9uc1N0eWxlO1xuICAgIH0pO1xuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5fc2VsZWN0ZWRPcHRpb25zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpO1xuXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCk7XG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5za2lwUHJlZGljYXRlKGl0ZW0gPT4gIWl0ZW0udmlzaWJsZSk7XG4gICAgdGhpcy5tdWx0aXNlbGVjdFN1YnNjcmliZSgpO1xuICAgIHRoaXMuY3JlYXRlTmF0aXZlU2VsZWN0KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5zZXRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiA9IHRoaXMuZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLCB0cnVlKS5zdWJzY3JpYmUoKG9yaWdpbikgPT5cbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuc3VidHJlZUZvY3VzZWQgPSB0aGlzLmZvY3VzT3JpZ2luKG9yaWdpbik7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBoYW5kbGVJbnB1dENsaWNrKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnNvbGUubG9nKCdoYW5kbGVJbnB1dENsaWNrJywgJGV2ZW50KTtcbiAgICAvLyB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBtdWx0aXNlbGVjdFN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgdGhpcy5tdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFZpc2libGUkLnN1YnNjcmliZShcbiAgICAgICAgKHZpc2libGUpID0+IHtcbiAgICAgICAgICB0aGlzLmlzRHJvcGRvd25WaXNpYmxlID0gdmlzaWJsZTtcbiAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2aXNpYmxlKTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgdGhpcy5tdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5tdWx0aVNlbGVjdFNlcnZpY2UubXVsdGlTZWxlY3RTdGF0ZSQuc3Vic2NyaWJlKFxuICAgICAgICAob3B0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCA9PT0gdHJ1ZSAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnNcbiAgICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9ucy5yZXZlcnNlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXRlbSAhPT0gb3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCk7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhckFsbE9wdGlvbnMoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRPcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgaWYgKCFvcHRpb24uX2Rpc2FibGVkKSBvcHRpb24uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLnNldEZvY3VzKCk7XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKCkge1xuICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZvckVhY2goKG9wdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gcHJpdmF0ZSBzZXRMaXN0ZW5lcnMoKSB7XG4gIC8vICAgaWYgKHRoaXMuc2VhcmNoKSB7XG4gIC8vICAgICBjb25zdCBjb25maWdGb3JJbnB1dDogSUxpc3RlbmVyc0NvbmZpZyA9IHtcbiAgLy8gICAgICAgaG9zdEVsZW1lbnQ6IHRoaXMuaW5wdXRFbGVtZW50ID8/IHRoaXMuZWxlbWVudFJlZixcbiAgLy8gICAgICAgdHJpZ2dlcjogWydmb2N1cycsICdjbGljayddLFxuICAvLyAgICAgICBjYWxsYmFja09uOiAoKSA9PiB7XG4gIC8vICAgICAgICAgY29uc29sZS5sb2coJ2ZvY3VzIGlucHV0Jyk7XG4gIC8vICAgICAgICAgdGhpcy50YWJJbmRleCA9IG51bGw7XG4gIC8vICAgICAgICAgLy8gdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfTtcbiAgLy8gICAgIHRoaXMubGlzdGVuZXJzU2VydmljZS5zZXRMaXN0ZW5lcnMoY29uZmlnRm9ySW5wdXQpO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBjb25zdCBjb25maWdGb3JIb3N0OiBJTGlzdGVuZXJzQ29uZmlnID0ge1xuICAvLyAgICAgaG9zdEVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZixcbiAgLy8gICAgIHRyaWdnZXI6IFsnZm9jdXMnXSxcbiAgLy8gICAgIGNhbGxiYWNrT246ICgpID0+IHtcbiAgLy8gICAgICAgY29uc29sZS5sb2coJ2ZvY3VzJyk7XG4gIC8vICAgICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCkge1xuICAvLyAgICAgICAgIHRoaXMuc2V0Rm9jdXMoKVxuICAvLyAgICAgICB9XG4gIC8vICAgICAgIC8vIHRoaXMuaW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIC8vICAgICB9LFxuICAvLyAgICAgY2FsbGJhY2tPZmY6ICgpID0+IHtcbiAgLy8gICAgICAgY29uc29sZS5sb2coJ2JsdXInKTtcbiAgLy8gICAgIH1cbiAgLy8gICB9O1xuICAvLyAgIHRoaXMubGlzdGVuZXJzU2VydmljZS5zZXRMaXN0ZW5lcnMoY29uZmlnRm9ySG9zdCk7XG4gIC8vIH1cblxuICBwcml2YXRlIGNsZWFyTGlzdGVuZXJzKCkge1xuICAgIC8vIHRoaXMubGlzdGVuZXJzU2VydmljZS5jbGVhckxpc3RlbmVycygpO1xuICB9XG5cbiAgaGFuZGxlVGFnUmVtb3ZlKCRldmVudDogSU9wdGlvbikge1xuICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgfVxuXG4gIHNldEZvY3VzKCkge1xuICAgIGNvbnN0IGZpcnN0U2VsZWN0ZWRPcHRpb24gPVxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZCkgPz9cbiAgICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZpbmQoKGl0ZW0sIGluZGV4KSA9PiBpbmRleCA9PT0gMCk7XG4gICAgaWYgKGZpcnN0U2VsZWN0ZWRPcHRpb24gJiYgdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSkge1xuICAgICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGZpcnN0U2VsZWN0ZWRPcHRpb24pO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIGlmICghdGhpcy5zZWFyY2gpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmlucHV0RWxlbWVudCA/PyB0aGlzLmVsZW1lbnRSZWYsICdwcm9ncmFtJyk7XG4gIH1cblxuICBmaWx0ZXJPcHRpb25zKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWFyY2hTdHJpbmcgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpID8/ICcnO1xuICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zPy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKCEhc2VhcmNoU3RyaW5nKSB7XG4gICAgICAgIGl0ZW0udmlzaWJsZSA9IGl0ZW0ubGFiZWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSA/PyB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbS52aXNpYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnZpc2libGVPcHRpb25zID0gdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnM/LmZpbHRlcigoaXRlbSkgPT4gaXRlbS52aXNpYmxlKS5sZW5ndGg7XG4gIH1cblxuICBjcmVhdGVOYXRpdmVTZWxlY3QoKSB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgY29uc3QgbmF0aXZlU2VsZWN0UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCk7XG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYgPSBuYXRpdmVTZWxlY3RSZWY7XG4gICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcbiAgfVxuXG4gIHVwZGF0ZU5hdGl2ZVNlbGVjdCgpIHtcblxuICAgIGlmICghdGhpcy5uYXRpdmVTZWxlY3RSZWYpIHJldHVybjtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoaXRlbSA9PiB7XG4gICAgICBjb25zdCB7IHNlbGVjdGVkLCB2YWx1ZSwgbGFiZWwgfSA9IGl0ZW07XG4gICAgICByZXR1cm4geyBzZWxlY3RlZCwgdmFsdWUsIGxhYmVsIH07XG4gICAgfSk7XG5cbiAgICAvLyBjb25zdCBuYXRpdmVTZWxlY3RSZWYgPSB0aGlzLm5hdGl2ZVNlbGVjdFJlZjtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2UubmFtZSA9IHRoaXMubmF0aXZlTmFtZTtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5mb3JtID0gdGhpcy5uYXRpdmVJZDtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uXCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3Rpb25UeXBlPT09J3RhZ3MnXCI+XG4gICAgPGMtbXVsdGktc2VsZWN0LXRhZyAocmVtb3ZlKT1cImhhbmRsZVRhZ1JlbW92ZSgkZXZlbnQpXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnM7IGluZGV4IGFzIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbl09XCJvcHRpb25cIiB0YWJpbmRleD1cIi0xXCI+PC9jLW11bHRpLXNlbGVjdC10YWc+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3Rpb25UeXBlPT09J3RleHQnXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJiZy1saWdodFwiPnt7c2VsZWN0ZWRPcHRpb25zVGV4dH19PC9zcGFuPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZT09PSdjb3VudGVyJ1wiPlxuICAgIDxzcGFuPnt7Y291bnRlclRleHR9fTwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48aW5wdXQgI2lucHV0RWxlbWVudFxuICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICAgW2Rpc2FibGVkXT1cIiFzZWFyY2hcIlxuICAgICAgIFtwbGFjZWhvbGRlcl09XCIoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCAmJiBzZWxlY3Rpb25UeXBlIT09J2NvdW50ZXInKSA/IHBsYWNlaG9sZGVyIDogJydcIlxuICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1zZWFyY2ggbXMtMVwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgdHlwZT1cInRleHRcIj5cblxuPGJ1dHRvbiAoY2xpY2spPVwiY2xlYXJBbGxPcHRpb25zKCRldmVudClcIlxuICAgICAgICAqbmdJZj1cImNsZWFuZXIgJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDBcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRHJvcGRvd25WaXNpYmxlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIGFsbFwiXG4gICAgICAgIGNCdXR0b25DbG9zZVxuICAgICAgICBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LXNlbGVjdGlvbi1jbGVhbmVyXCJcbiAgICAgICAgc2l6ZT1cInNtXCI+XG48L2J1dHRvbj5cblxuPGRpdiAjZHJvcGRvd25FbGVtZW50IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtZHJvcGRvd25cIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInZpc2libGVPcHRpb25zPjBcIiBbbmdJZkVsc2VdPVwib3B0aW9uc0VtcHR5XCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic2VsZWN0QWxsT3B0aW9ucygpXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0QWxsICYmIG11bHRpcGxlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtYWxsXCI+XG4gICAgICB7e3NlbGVjdEFsbExhYmVsfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICNtdWx0aXNlbGVjdE9wdGlvbnNEaXZcbiAgICAgICAgIFtuZ1N0eWxlXT1cIm9wdGlvbnNNYXhIZWlnaHQgIT09ICdhdXRvJyA/IHsgJ21heEhlaWdodC5weCc6IG9wdGlvbnNNYXhIZWlnaHQsICdvdmVyZmxvdyc6ICdzY3JvbGwnfSA6IHt9XCJcbiAgICAgICAgIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI29wdGlvbnNFbXB0eT5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9ucy1lbXB0eVwiPnt7c2VhcmNoTm9SZXN1bHRzTGFiZWx9fTwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbiJdfQ==
|
|
442
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBNkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7OztBQUV0SCw0REFBNEQ7QUFDNUQsOERBQThEO0FBQzlELHVGQUF1RjtBQUN2RixZQUFZO0FBQ1osS0FBSztBQUNMLEVBQUU7QUFDRix1REFBdUQ7QUFDdkQsK0RBQStEO0FBQy9ELDZCQUE2QjtBQUM3Qix1QkFBdUI7QUFDdkIsUUFBUTtBQUNSLGNBQWM7QUFDZCxRQUFRO0FBQ1IsS0FBSztBQWlCTCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlB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QUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixLQUFLO2dCQWdCYSxXQUFXO3NCQUE3QixNQUFNO2dCQUdILE9BQU87c0JBRFYsS0FBSztnQkFhYSxhQUFhO3NCQUEvQixNQUFNO2dCQXVCUCxrQkFBa0I7c0JBRGpCLGVBQWU7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUt2QyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0ssZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRUYsV0FBVztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPO2dCQVVSLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsZUFBZTtnQkFXTyxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFrQkksTUFBTTtzQkFBMUMsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVUEsT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciwgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gaW1wb3J0IHsgTGlzdGVuZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpc3RlbmVycy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSU11bHRpU2VsZWN0LCBJT3B0aW9uIH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LnR5cGUnO1xyXG5pbXBvcnQgeyBNdWx0aVNlbGVjdFNlcnZpY2UgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE11bHRpU2VsZWN0TmF0aXZlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50JztcclxuXHJcbi8vIGNvbnN0IGZsYXR0ZW5BcnJheSA9IChvcHRpb25zOiBJT3B0aW9uW10pOiBJT3B0aW9uW10gPT4ge1xyXG4vLyAgIHJldHVybiBvcHRpb25zLnJlZHVjZSgoYWNjOiBJT3B0aW9uW10sIHZhbDogSU9wdGlvbikgPT4ge1xyXG4vLyAgICAgcmV0dXJuIGFjYy5jb25jYXQoQXJyYXkuaXNBcnJheSh2YWwub3B0aW9ucykgPyBmbGF0dGVuQXJyYXkodmFsLm9wdGlvbnMpIDogdmFsKTtcclxuLy8gICB9LCBbXSk7XHJcbi8vIH07XHJcbi8vXHJcbi8vIGNvbnN0IGdldFNlbGVjdGVkT3B0aW9ucyA9IChvcHRpb25zOiBJT3B0aW9uW10pID0+IHtcclxuLy8gICByZXR1cm4gZmxhdHRlbkFycmF5KG9wdGlvbnMpLmZpbHRlcigob3B0aW9uOiBJT3B0aW9uKSA9PiB7XHJcbi8vICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XHJcbi8vICAgICAgIHJldHVybiBvcHRpb247XHJcbi8vICAgICB9XHJcbi8vICAgICByZXR1cm47XHJcbi8vICAgfSk7XHJcbi8vIH07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2MtbXVsdGktc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBleHBvcnRBczogJ2NNdWx0aVNlbGVjdCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBNdWx0aVNlbGVjdFNlcnZpY2UsXHJcbiAgICAvLyBMaXN0ZW5lcnNTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBJTXVsdGlTZWxlY3QsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcclxuICAgIHByaXZhdGUgbXVsdGlTZWxlY3RTZXJ2aWNlOiBNdWx0aVNlbGVjdFNlcnZpY2VcclxuICAgIC8vIHByaXZhdGUgbGlzdGVuZXJzU2VydmljZTogTGlzdGVuZXJzU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgb25DaGFuZ2U6IGFueSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogKHN0cmluZyB8IHN0cmluZ1tdKSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3dyaXRlVmFsdWUnLCB2YWx1ZSlcclxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIC8vIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbXVsdGlwbGU6IEJvb2xlYW5JbnB1dDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgQElucHV0KCkgY2xlYW5lciA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbXVsdGlwbGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xyXG4gIH1cclxuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBuYXRpdmVOYW1lID0gJyc7XHJcbiAgQElucHV0KCkgbmF0aXZlSWQgPSAnJztcclxuICAvLyBASW5wdXQoKSBvcHRpb25zID0gW107XHJcbiAgQElucHV0KCkgb3B0aW9uc01heEhlaWdodCA9ICdhdXRvJztcclxuICBASW5wdXQoKSBvcHRpb25zU3R5bGU6ICdjaGVja2JveCcgfCAndGV4dCcgPSAnY2hlY2tib3gnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdC4uLic7XHJcbiAgQElucHV0KCkgc2VhcmNoID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWFyY2hOb1Jlc3VsdHNMYWJlbCA9ICdubyBpdGVtcyc7XHJcbiAgQElucHV0KCkgc2VsZWN0QWxsID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWxlY3RBbGxMYWJlbCA9ICdTZWxlY3QgYWxsIG9wdGlvbnMnO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGU6ICdjb3VudGVyJyB8ICd0YWdzJyB8ICd0ZXh0JyA9ICd0YWdzJztcclxuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlQ291bnRlclRleHQ6IHN0cmluZyA9ICdpdGVtKHMpIHNlbGVjdGVkJztcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gWy4uLnZhbHVlXSA6IFt2YWx1ZSA/PyAnJ107XHJcbiAgICBpZiAodGhpcy5fdmFsdWUudG9TdHJpbmcoKSAhPT0gbmV3VmFsdWUudG9TdHJpbmcoKSkge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygnc2V0IHZhbHVlJywgdmFsdWUpXHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xyXG4gICAgICB0aGlzLnVwZGF0ZU5hdGl2ZVNlbGVjdCgpO1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCB2YWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gWy4uLnRoaXMuX3ZhbHVlXSA6IHRoaXMuX3ZhbHVlWzBdPy50b1N0cmluZygpID8/ICcnO1xyXG4gIH1cclxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nW10gPSBbJyddO1xyXG5cclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHN0cmluZ1tdPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuX3Zpc2libGUpIHtcclxuICAgICAgdGhpcy5fdmlzaWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLm11bHRpU2VsZWN0U2VydmljZS50b2dnbGVWaXNpYmxlKG5ld1ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHZpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgaXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE9wdGlvbnM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgZ2V0IHNlbGVjdGVkT3B0aW9uc1RleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5sYWJlbCkuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIGdldCBjb3VudGVyVGV4dCgpIHtcclxuICAgIHJldHVybiBgJHt0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGh9ICR7dGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHR9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxyXG4gIG11bHRpU2VsZWN0T3B0aW9ucyE6IFF1ZXJ5TGlzdDxNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudD47XHJcblxyXG4gIHByaXZhdGUgbGlzdEtleU1hbmFnZXIhOiBGb2N1c0tleU1hbmFnZXI8TXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQ+O1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duRWxlbWVudCcpIGRyb3Bkb3duRWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3QnOiB0cnVlLFxyXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLXRhZ3MnOiB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd0YWdzJyxcclxuICAgICAgc2hvdzogdGhpcy52aXNpYmxlLFxyXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXHJcbiAgcHJpdmF0ZSBnZXQgdGFiSW5kZXgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFiSW5kZXg7XHJcbiAgfVxyXG4gIHByaXZhdGUgc2V0IHRhYkluZGV4KHZhbHVlKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fdGFiSW5kZXggPSB0aGlzLl9kaXNhYmxlZCB8fCB0aGlzLnNlYXJjaCA/ICctMScgOiB2YWx1ZSA9PT0gbnVsbCA/IG51bGwgOiAnMCc7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdGFiSW5kZXg6IHN0cmluZyB8IG51bGwgPSAnLTEnO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pIG9uS2V5VXAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygna2V5dXAnLCAkZXZlbnQua2V5KTtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnNldEZvY3VzKCk7XHJcbiAgICAgICAgLy8gdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dEVsZW1lbnQgPz8gdGhpcy5lbGVtZW50UmVmLCAna2V5Ym9hcmQnKTtcclxuICAgICAgfSBlbHNlIGlmICgkZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2gpIHtcclxuICAgICAgICAgIHRoaXMuc2V0Rm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBtYW5hZ2UoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygna2V5ZG93bicsICRldmVudC5rZXkpO1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGlmICgkZXZlbnQua2V5ID09PSAnRW50ZXInICYmICRldmVudC50YXJnZXQgPT09IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLm9uS2V5ZG93bigkZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBvbkNsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldEZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdmlzaWJsZU9wdGlvbnMgPSAwO1xyXG5cclxuICBzZXQgaW5wdXRWYWx1ZSh2YWx1ZSkge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2lucHV0VmFsdWUnLCB2YWx1ZSk7XHJcbiAgICB0aGlzLl9pbnB1dFZhbHVlID0gdmFsdWU7XHJcbiAgICAvLyB0aGlzLnZpc2libGUgPSAhIXZhbHVlID8/IHRoaXMudmlzaWJsZTtcclxuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBpbnB1dFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lucHV0VmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBnZXQgc3VidHJlZUZvY3VzZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VidHJlZUZvY3VzZWQ7XHJcbiAgfVxyXG5cclxuICBzZXQgc3VidHJlZUZvY3VzZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3N1YnRyZWVGb2N1c2VkID0gdGhpcy5kaXNhYmxlZCA/IGZhbHNlIDogdmFsdWU7XHJcbiAgICB0aGlzLnZpc2libGUgPSB2YWx1ZSA9PT0gZmFsc2UgPyBmYWxzZSA6IHRoaXMudmlzaWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc3VidHJlZUZvY3VzZWQgPSB0aGlzLmZvY3VzT3JpZ2luKG51bGwpO1xyXG5cclxuICBwcml2YXRlIG5hdGl2ZVNlbGVjdFJlZiE6IGFueTtcclxuXHJcbiAgZm9jdXNPcmlnaW4ob3JpZ2luOiBGb2N1c09yaWdpbik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZm9jdXNlZCA/IHRoaXMuaW5wdXRWYWx1ZSA6ICcnO1xyXG4gICAgcmV0dXJuIGZvY3VzZWQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGFiSW5kZXggPSAnMCc7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubXVsdGlzZWxlY3RTdWJzY3JpYmUoZmFsc2UpO1xyXG4gICAgLy8gdGhpcy5jbGVhckxpc3RlbmVycygpO1xyXG4gICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmKTtcclxuICAgIHRoaXMuZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmxlbmd0aDtcclxuICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZvckVhY2goKG9wdGlvbiwgaW5kZXgpID0+IHtcclxuICAgICAgb3B0aW9uLm9wdGlvbnNTdHlsZSA9IHRoaXMub3B0aW9uc1N0eWxlO1xyXG4gICAgICBvcHRpb24uc2VsZWN0ZWQgPSBvcHRpb24udmFsdWUgIT09IHVuZGVmaW5lZCA/IHRoaXMudmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKSB8fCBvcHRpb24uc2VsZWN0ZWQgOiBvcHRpb24uc2VsZWN0ZWQ7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiAhIW9wdGlvbi5zZWxlY3RlZCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy52YWx1ZSA9IHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcclxuXHJcbiAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLm11bHRpU2VsZWN0T3B0aW9ucykud2l0aEhvbWVBbmRFbmQoKTtcclxuICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2tpcFByZWRpY2F0ZShpdGVtID0+ICFpdGVtLnZpc2libGUpO1xyXG4gICAgdGhpcy5tdWx0aXNlbGVjdFN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5jcmVhdGVOYXRpdmVTZWxlY3QoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuc2V0TGlzdGVuZXJzKCk7XHJcbiAgICB0aGlzLmZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiA9IHRoaXMuZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLCB0cnVlKS5zdWJzY3JpYmUoKG9yaWdpbikgPT5cclxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgIHRoaXMuc3VidHJlZUZvY3VzZWQgPSB0aGlzLmZvY3VzT3JpZ2luKG9yaWdpbik7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBoYW5kbGVJbnB1dENsaWNrKCRldmVudDogTW91c2VFdmVudCkge1xyXG4gIC8vICAgY29uc29sZS5sb2coJ2hhbmRsZUlucHV0Q2xpY2snLCAkZXZlbnQpO1xyXG4gIC8vICAgLy8gdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgbXVsdGlzZWxlY3RTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKHN1YnNjcmliZSkge1xyXG4gICAgICB0aGlzLm11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMubXVsdGlTZWxlY3RTZXJ2aWNlLm11bHRpU2VsZWN0VmlzaWJsZSQuc3Vic2NyaWJlKFxyXG4gICAgICAgICh2aXNpYmxlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzRHJvcGRvd25WaXNpYmxlID0gdmlzaWJsZTtcclxuICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZpc2libGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMubXVsdGlTZWxlY3RTZXJ2aWNlLm11bHRpU2VsZWN0U3RhdGUkLnN1YnNjcmliZShcclxuICAgICAgICAob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICBpZiAob3B0aW9uLnNlbGVjdGVkID09PSB0cnVlICYmICF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zXHJcbiAgICAgICAgICAgICAgLnRvQXJyYXkoKVxyXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uc2VsZWN0ZWQpO1xyXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnMucmV2ZXJzZSgpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXRlbSAhPT0gb3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiAhIW9wdGlvbi5zZWxlY3RlZCk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5fc2VsZWN0ZWRPcHRpb25zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RWaXNpYmxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5tdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJBbGxPcHRpb25zKCRldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRPcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICBpZiAoIW9wdGlvbi5fZGlzYWJsZWQpIG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldEZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGxPcHRpb25zKCkge1xyXG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBzZXRMaXN0ZW5lcnMoKSB7XHJcbiAgLy8gICBpZiAodGhpcy5zZWFyY2gpIHtcclxuICAvLyAgICAgY29uc3QgY29uZmlnRm9ySW5wdXQ6IElMaXN0ZW5lcnNDb25maWcgPSB7XHJcbiAgLy8gICAgICAgaG9zdEVsZW1lbnQ6IHRoaXMuaW5wdXRFbGVtZW50ID8/IHRoaXMuZWxlbWVudFJlZixcclxuICAvLyAgICAgICB0cmlnZ2VyOiBbJ2ZvY3VzJywgJ2NsaWNrJ10sXHJcbiAgLy8gICAgICAgY2FsbGJhY2tPbjogKCkgPT4ge1xyXG4gIC8vICAgICAgICAgY29uc29sZS5sb2coJ2ZvY3VzIGlucHV0Jyk7XHJcbiAgLy8gICAgICAgICB0aGlzLnRhYkluZGV4ID0gbnVsbDtcclxuICAvLyAgICAgICAgIC8vIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9O1xyXG4gIC8vICAgICB0aGlzLmxpc3RlbmVyc1NlcnZpY2Uuc2V0TGlzdGVuZXJzKGNvbmZpZ0ZvcklucHV0KTtcclxuICAvLyAgIH1cclxuICAvL1xyXG4gIC8vICAgY29uc3QgY29uZmlnRm9ySG9zdDogSUxpc3RlbmVyc0NvbmZpZyA9IHtcclxuICAvLyAgICAgaG9zdEVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZixcclxuICAvLyAgICAgdHJpZ2dlcjogWydmb2N1cyddLFxyXG4gIC8vICAgICBjYWxsYmFja09uOiAoKSA9PiB7XHJcbiAgLy8gICAgICAgY29uc29sZS5sb2coJ2ZvY3VzJyk7XHJcbiAgLy8gICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XHJcbiAgLy8gICAgICAgICB0aGlzLnNldEZvY3VzKClcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgLy8gdGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAvLyAgICAgfSxcclxuICAvLyAgICAgY2FsbGJhY2tPZmY6ICgpID0+IHtcclxuICAvLyAgICAgICBjb25zb2xlLmxvZygnYmx1cicpO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9O1xyXG4gIC8vICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLnNldExpc3RlbmVycyhjb25maWdGb3JIb3N0KTtcclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJMaXN0ZW5lcnMoKSB7XHJcbiAgICAvLyB0aGlzLmxpc3RlbmVyc1NlcnZpY2UuY2xlYXJMaXN0ZW5lcnMoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVRhZ1JlbW92ZSgkZXZlbnQ6IElPcHRpb24pIHtcclxuICAgIHRoaXMuc2V0Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHNldEZvY3VzKCkge1xyXG4gICAgY29uc3QgZmlyc3RTZWxlY3RlZE9wdGlvbiA9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uc2VsZWN0ZWQpID8/XHJcbiAgICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZpbmQoKGl0ZW0sIGluZGV4KSA9PiBpbmRleCA9PT0gMCk7XHJcbiAgICBpZiAoZmlyc3RTZWxlY3RlZE9wdGlvbiAmJiB0aGlzLmlzRHJvcGRvd25WaXNpYmxlKSB7XHJcbiAgICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShmaXJzdFNlbGVjdGVkT3B0aW9uKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgaWYgKCF0aGlzLnNlYXJjaCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuaW5wdXRFbGVtZW50ID8/IHRoaXMuZWxlbWVudFJlZiwgJ3Byb2dyYW0nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlck9wdGlvbnModmFsdWU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2VhcmNoU3RyaW5nID0gdmFsdWUudG9Mb3dlckNhc2UoKSA/PyAnJztcclxuICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zPy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoISFzZWFyY2hTdHJpbmcpIHtcclxuICAgICAgICBpdGVtLnZpc2libGUgPSBpdGVtLmxhYmVsPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZykgPz8gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpdGVtLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMudmlzaWJsZU9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucz8uZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZpc2libGUpLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU5hdGl2ZVNlbGVjdCgpIHtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgY29uc3QgbmF0aXZlU2VsZWN0UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCk7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZiA9IG5hdGl2ZVNlbGVjdFJlZjtcclxuICAgIHRoaXMudXBkYXRlTmF0aXZlU2VsZWN0KCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOYXRpdmVTZWxlY3QoKSB7XHJcblxyXG4gICAgaWYgKCF0aGlzLm5hdGl2ZVNlbGVjdFJlZikgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHZhbHVlLCBsYWJlbCB9ID0gaXRlbTtcclxuICAgICAgcmV0dXJuIHsgc2VsZWN0ZWQsIHZhbHVlLCBsYWJlbCB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gY29uc3QgbmF0aXZlU2VsZWN0UmVmID0gdGhpcy5uYXRpdmVTZWxlY3RSZWY7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5uYW1lID0gdGhpcy5uYXRpdmVOYW1lO1xyXG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2UuZm9ybSA9IHRoaXMubmF0aXZlSWQ7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5vcHRpb25zID0gb3B0aW9ucztcclxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcclxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1zZWxlY3Rpb25cIj5cclxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZT09PSd0YWdzJ1wiPlxyXG4gICAgPGMtbXVsdGktc2VsZWN0LXRhZyAocmVtb3ZlKT1cImhhbmRsZVRhZ1JlbW92ZSgkZXZlbnQpXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnM7IGluZGV4IGFzIGlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cIm9wdGlvblwiIHRhYmluZGV4PVwiLTFcIj48L2MtbXVsdGktc2VsZWN0LXRhZz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3Rpb25UeXBlPT09J3RleHQnXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImJnLWxpZ2h0XCI+e3tzZWxlY3RlZE9wdGlvbnNUZXh0fX08L3NwYW4+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZT09PSdjb3VudGVyJ1wiPlxyXG4gICAgPHNwYW4+e3tjb3VudGVyVGV4dH19PC9zcGFuPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5cclxuPGlucHV0ICNpbnB1dEVsZW1lbnRcclxuICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXHJcbiAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIXNlYXJjaFwiXHJcbiAgICAgICBbcGxhY2Vob2xkZXJdPVwiKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDAgJiYgc2VsZWN0aW9uVHlwZSE9PSdjb3VudGVyJykgPyBwbGFjZWhvbGRlciA6ICcnXCJcclxuICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICBbbmdDbGFzc109XCJ7J2Zvcm0tbXVsdGktc2VsZWN0LXNlYXJjaCBtcy0xJzogdHJ1ZSwgZGlzYWJsZWQ6IGRpc2FibGVkfVwiIHRhYmluZGV4PVwie3tkaXNhYmxlZCA/ICctMScgOiAnMCd9fVwiXHJcbiAgICAgICB0eXBlPVwidGV4dFwiPlxyXG5cclxuPGJ1dHRvbiAoY2xpY2spPVwiY2xlYXJBbGxPcHRpb25zKCRldmVudClcIlxyXG4gICAgICAgICpuZ0lmPVwiY2xlYW5lciAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFpc0Ryb3Bkb3duVmlzaWJsZVwiXHJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIGFsbFwiXHJcbiAgICAgICAgY0J1dHRvbkNsb3NlXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1zZWxlY3Rpb24tY2xlYW5lclwiXHJcbiAgICAgICAgc2l6ZT1cInNtXCI+XHJcbjwvYnV0dG9uPlxyXG5cclxuPGRpdiAjZHJvcGRvd25FbGVtZW50IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtZHJvcGRvd25cIj5cclxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwidmlzaWJsZU9wdGlvbnM+MFwiIFtuZ0lmRWxzZV09XCJvcHRpb25zRW1wdHlcIj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cInNlbGVjdEFsbE9wdGlvbnMoKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0QWxsICYmIG11bHRpcGxlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1hbGxcIj5cclxuICAgICAge3tzZWxlY3RBbGxMYWJlbH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgI211bHRpc2VsZWN0T3B0aW9uc0RpdlxyXG4gICAgICAgICBbbmdTdHlsZV09XCJvcHRpb25zTWF4SGVpZ2h0ICE9PSAnYXV0bycgPyB7ICdtYXhIZWlnaHQucHgnOiBvcHRpb25zTWF4SGVpZ2h0LCAnb3ZlcmZsb3cnOiAnc2Nyb2xsJ30gOiB7fVwiXHJcbiAgICAgICAgIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9uc1wiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjb3B0aW9uc0VtcHR5PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LW9wdGlvbnMtZW1wdHlcIj57e3NlYXJjaE5vUmVzdWx0c0xhYmVsfX08L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
|
package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs
CHANGED
|
@@ -10,10 +10,10 @@ export class MultiSelectNativeSelectComponent {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
MultiSelectNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectNativeSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
-
MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectNativeSelectComponent, selector: "c-multi-select-native-select", inputs: { form: "form", id: "id", multiple: "multiple", name: "name", options: "options" }, ngImport: i0, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [selected]=\"option.selected\"\n [value]=\"option.value\"\n tabindex=\"-1\"\n ></option>\n</select>\n\n", styles: [":host{display:none}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13
|
+
MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectNativeSelectComponent, selector: "c-multi-select-native-select", inputs: { form: "form", id: "id", multiple: "multiple", name: "name", options: "options", disabled: "disabled" }, ngImport: i0, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [label]=\"option.label\"\r\n [selected]=\"option.selected\"\r\n [value]=\"option.value\"\r\n [disabled]=\"disabled\"\r\n tabindex=\"-1\"\r\n ></option>\r\n</select>\r\n\r\n", styles: [":host{display:none}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectNativeSelectComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
|
-
args: [{ selector: 'c-multi-select-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [selected]=\"option.selected\"\n [value]=\"option.value\"\n tabindex=\"-1\"\n ></option>\n</select>\n\n", styles: [":host{display:none}\n"] }]
|
|
16
|
+
args: [{ selector: 'c-multi-select-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [label]=\"option.label\"\r\n [selected]=\"option.selected\"\r\n [value]=\"option.value\"\r\n [disabled]=\"disabled\"\r\n tabindex=\"-1\"\r\n ></option>\r\n</select>\r\n\r\n", styles: [":host{display:none}\n"] }]
|
|
17
17
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { form: [{
|
|
18
18
|
type: Input
|
|
19
19
|
}], id: [{
|
|
@@ -24,5 +24,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
24
24
|
type: Input
|
|
25
25
|
}], options: [{
|
|
26
26
|
type: Input
|
|
27
|
+
}], disabled: [{
|
|
28
|
+
type: Input
|
|
27
29
|
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFDUyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJwQyxTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ25CLE9BQUUsR0FBWSxFQUFFLENBQUM7SUFRdEIsQ0FBQzs7NkhBWE0sZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msc0xDUjdDLG9YQVdBOzJGREhhLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07d0dBSXRDLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYy1tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZvcm0/OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBhbnk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHsgfVxyXG59XHJcbiIsIjxzZWxlY3QgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW25hbWVdPVwibmFtZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHRhYmluZGV4PVwiLTFcIiBbaWRdPVwiaWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICA8b3B0aW9uXHJcbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxyXG4gICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXHJcbiAgICBbc2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkXCJcclxuICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gID48L29wdGlvbj5cclxuPC9zZWxlY3Q+XHJcblxyXG4iXX0=
|
package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs
CHANGED
|
@@ -9,12 +9,12 @@ export class MultiSelectOptgroupLabelComponent {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
MultiSelectOptgroupLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptgroupLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
-
MultiSelectOptgroupLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] });
|
|
12
|
+
MultiSelectOptgroupLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [":host{display:block}\n"] });
|
|
13
13
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptgroupLabelComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
|
-
args: [{ selector: 'c-multi-select-optgroup-label', template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
|
|
15
|
+
args: [{ selector: 'c-multi-select-optgroup-label', template: "<ng-content></ng-content>\r\n", styles: [":host{display:block}\n"] }]
|
|
16
16
|
}], ctorParameters: function () { return []; }, propDecorators: { hostClasses: [{
|
|
17
17
|
type: HostBinding,
|
|
18
18
|
args: ['class']
|
|
19
19
|
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1vcHRncm91cC9tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW9wdGdyb3VwL211bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPdkQsTUFBTSxPQUFPLGlDQUFpQztJQUU1QyxnQkFBZ0IsQ0FBQztJQUVqQixJQUEwQixXQUFXO1FBQ25DLE9BQU87WUFDTCxrQ0FBa0MsRUFBRSxJQUFJO1NBQ3pDLENBQUM7SUFDSixDQUFDOzs4SEFSVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyw0SENQOUMsK0JBQ0E7MkZETWEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLCtCQUErQjswRUFRZixXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2MtbXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAtbGFiZWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RPcHRncm91cExhYmVsQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdmb3JtLW11bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbCc6IHRydWVcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuIl19
|
|
@@ -10,10 +10,10 @@ export class MultiSelectOptgroupComponent {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
MultiSelectOptgroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptgroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
-
MultiSelectOptgroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptgroupComponent, selector: "c-multi-select-optgroup", inputs: { label: "label", disabled: "disabled" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"], components: [{ type: i1.MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
13
|
+
MultiSelectOptgroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptgroupComponent, selector: "c-multi-select-optgroup", inputs: { label: "label", disabled: "disabled" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\r\n<ng-content></ng-content>\r\n", styles: [":host{display:block}\n"], components: [{ type: i1.MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptgroupComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
|
-
args: [{ selector: 'c-multi-select-optgroup', template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
|
|
16
|
+
args: [{ selector: 'c-multi-select-optgroup', template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\r\n<ng-content></ng-content>\r\n", styles: [":host{display:block}\n"] }]
|
|
17
17
|
}], propDecorators: { label: [{
|
|
18
18
|
type: Input
|
|
19
19
|
}], disabled: [{
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
22
22
|
type: HostBinding,
|
|
23
23
|
args: ['class']
|
|
24
24
|
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1vcHRncm91cC9tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW9wdGdyb3VwL211bHRpLXNlbGVjdC1vcHRncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPOUQsTUFBTSxPQUFPLDRCQUE0QjtJQUt2QyxJQUEwQixXQUFXO1FBQ25DLE9BQU87WUFDTCwyQkFBMkIsRUFBRSxJQUFJO1NBQ2xDLENBQUM7SUFDSixDQUFDOzt5SEFUVSw0QkFBNEI7NkdBQTVCLDRCQUE0Qix3S0NQekMsMkhBRUE7MkZES2EsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLHlCQUF5Qjs4QkFNMUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2MtbXVsdGktc2VsZWN0LW9wdGdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LW9wdGdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RPcHRncm91cENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbjsgLy90b2RvXHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9ucyc6IHRydWVcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxjLW11bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9jLW11bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbD5cclxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4iXX0=
|
|
@@ -87,10 +87,10 @@ export class MultiSelectOptionComponent {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
MultiSelectOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptionComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FocusMonitor }, { token: i2.MultiSelectService }], target: i0.ɵɵFactoryTarget.Component });
|
|
90
|
-
MultiSelectOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptionComponent, selector: "c-multi-select-option", inputs: { disabled: "disabled", selected: "selected", optionsStyle: "optionsStyle", label: "label", value: "value", visible: "visible" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown": "onKeyUp($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex", "attr.disabled": "this.ariaDisabled", "attr.aria-disabled": "this.ariaDisabled", "attr.aria-selected": "this.ariaSelected" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentDiv"], descendants: true }], ngImport: i0, template: "<div #contentDiv><ng-content></ng-content></div>\n<div *ngIf=\"!hasContent\">\n {{label ?? value}}\n</div>\n\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host.form-multi-select-option.disabled,:host.form-multi-select-option:disabled{pointer-events:all;cursor:default}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
90
|
+
MultiSelectOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptionComponent, selector: "c-multi-select-option", inputs: { disabled: "disabled", selected: "selected", optionsStyle: "optionsStyle", label: "label", value: "value", visible: "visible" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown": "onKeyUp($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex", "attr.disabled": "this.ariaDisabled", "attr.aria-disabled": "this.ariaDisabled", "attr.aria-selected": "this.ariaSelected" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentDiv"], descendants: true }], ngImport: i0, template: "<div #contentDiv><ng-content></ng-content></div>\r\n<div *ngIf=\"!hasContent\">\r\n {{label ?? value}}\r\n</div>\r\n\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host.form-multi-select-option.disabled,:host.form-multi-select-option:disabled{pointer-events:all;cursor:default}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
91
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptionComponent, decorators: [{
|
|
92
92
|
type: Component,
|
|
93
|
-
args: [{ selector: 'c-multi-select-option', template: "<div #contentDiv><ng-content></ng-content></div>\n<div *ngIf=\"!hasContent\">\n {{label ?? value}}\n</div>\n\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host.form-multi-select-option.disabled,:host.form-multi-select-option:disabled{pointer-events:all;cursor:default}\n"] }]
|
|
93
|
+
args: [{ selector: 'c-multi-select-option', template: "<div #contentDiv><ng-content></ng-content></div>\r\n<div *ngIf=\"!hasContent\">\r\n {{label ?? value}}\r\n</div>\r\n\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host.form-multi-select-option.disabled,:host.form-multi-select-option:disabled{pointer-events:all;cursor:default}\n"] }]
|
|
94
94
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FocusMonitor }, { type: i2.MultiSelectService }]; }, propDecorators: { disabled: [{
|
|
95
95
|
type: Input
|
|
96
96
|
}], selected: [{
|
|
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
130
130
|
type: HostListener,
|
|
131
131
|
args: ['click', ['$event']]
|
|
132
132
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3Qtb3B0aW9uL211bHRpLXNlbGVjdC1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVU1RSxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQ1UsVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsWUFBMEIsRUFDMUIsa0JBQXNDO1FBSHRDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBYXhDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFpQmxCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFakIsaUJBQVksR0FBMEIsVUFBVSxDQUFDO1FBR2pELFlBQU8sR0FBWSxJQUFJLENBQUM7UUFFdkIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSXZELGVBQVUsR0FBRyxJQUFJLENBQUM7SUF4Q2QsQ0FBQztJQUtMLElBQ0ksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxD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QUNOLE9BQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQW9CO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7dUhBakhVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDJuQkN0QnZDLDJIQUtBOzJGRGlCYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsdUJBQXVCO3FMQWlCN0IsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFpQkcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUVrQixPQUFPO3NCQUEvQixTQUFTO3VCQUFDLFlBQVk7Z0JBS25CLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVlSLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsZUFBZTtnQkFPaEIsWUFBWTtzQkFGdkIsV0FBVzt1QkFBQyxlQUFlOztzQkFDM0IsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBTXJCLFlBQVk7c0JBRHZCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU1qQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVM1QixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBGb2N1c2FibGVPcHRpb24sIEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4sIEhpZ2hsaWdodGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcblxyXG5pbXBvcnQgeyBNdWx0aVNlbGVjdFNlcnZpY2UgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2MtbXVsdGktc2VsZWN0LW9wdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC1vcHRpb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBGb2N1c2FibGVPcHRpb24sIEhpZ2hsaWdodGFibGUge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXHJcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0U2VydmljZTogTXVsdGlTZWxlY3RTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NlbGVjdGVkOiBCb29sZWFuSW5wdXQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgc2VsZWN0ZWQodmFsdWU6IChib29sZWFuIHwgdW5kZWZpbmVkKSkge1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkICE9PSBuZXdWYWx1ZSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xyXG4gICAgICB0aGlzLm11bHRpU2VsZWN0U2VydmljZS50b2dnbGVPcHRpb24odGhpcyk7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgc2VsZWN0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbnNTdHlsZTogKCdjaGVja2JveCcgfCAndGV4dCcpID0gJ2NoZWNrYm94JztcclxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcclxuICBASW5wdXQoKSB2YWx1ZT86IHN0cmluZztcclxuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250ZW50RGl2JykgY29udGVudD86IEVsZW1lbnRSZWY7XHJcblxyXG4gIGhhc0NvbnRlbnQgPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICBnZXQgaG9zdENsYXNzZXMoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9uJzogdHJ1ZSxcclxuICAgICAgJ2Zvcm0tbXVsdGktc2VsZWN0ZWQnOiB0aGlzLnNlbGVjdGVkLFxyXG4gICAgICBbYGZvcm0tbXVsdGktc2VsZWN0LW9wdGlvbi13aXRoLSR7dGhpcy5vcHRpb25zU3R5bGV9YF06ICEhdGhpcy5vcHRpb25zU3R5bGUsXHJcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxyXG4gICAgICAnZC1ub25lJzogIXRoaXMudmlzaWJsZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXHJcbiAgcHJpdmF0ZSBnZXQgdGFiSW5kZXgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/ICctMScgOiAnMCc7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRpc2FibGVkJylcclxuICBwcml2YXRlIGdldCBhcmlhRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKVxyXG4gIHByaXZhdGUgZ2V0IGFyaWFTZWxlY3RlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRW50ZXInIHx8ICRldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5kaXNhYmxlZCA/IHRoaXMuc2VsZWN0ZWQgOiAhdGhpcy5zZWxlY3RlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLmRpc2FibGVkID8gdGhpcy5zZWxlY3RlZCA6ICF0aGlzLnNlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaGFzQ29udGVudCA9ICEhdGhpcy5jb250ZW50Py5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXRoaXMubGFiZWwpIHtcclxuICAgICAgdGhpcy5sYWJlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCB8fCB0aGlzLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0IHx8IHRoaXMubGFiZWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBzZXRJbmFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gPHN0cmluZz4odGhpcy5sYWJlbCA/PyB0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmVsZW1lbnRSZWYsICdwcm9ncmFtJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2NvbnRlbnREaXY+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIWhhc0NvbnRlbnRcIj5cclxuICB7e2xhYmVsID8/IHZhbHVlfX1cclxuPC9kaXY+XHJcblxyXG4iXX0=
|