nira-falcon 1.0.18 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/core-multi-select/core-multi-select.component.mjs +12 -5
- package/esm2022/lib/core-select/core-select.component.mjs +10 -3
- package/esm2022/lib/core-select-search/core-select-search.component.mjs +16 -5
- package/fesm2022/nira-falcon.mjs +32 -8
- package/fesm2022/nira-falcon.mjs.map +1 -1
- package/lib/core-select/core-select.component.d.ts +1 -0
- package/lib/core-select-search/core-select-search.component.d.ts +2 -1
- package/package.json +2 -2
|
@@ -199,14 +199,21 @@ export class CoreMultiSelectComponent {
|
|
|
199
199
|
}
|
|
200
200
|
else {
|
|
201
201
|
let flag = false;
|
|
202
|
-
Object.keys(this.selectedItems)
|
|
202
|
+
const selectedKeys = Object.keys(this.selectedItems);
|
|
203
|
+
selectedKeys.forEach((item) => {
|
|
203
204
|
if (this.singleSelectItems.find((data) => data == item)) {
|
|
204
205
|
flag = true;
|
|
205
206
|
return;
|
|
206
207
|
}
|
|
207
208
|
});
|
|
208
|
-
if (
|
|
209
|
+
if (selectedKeys.length > 0 &&
|
|
209
210
|
this.singleSelectItems.find((data) => data == selectedItem.value)) {
|
|
211
|
+
this.selectedItems = [];
|
|
212
|
+
this.selectedItems[selectedItem.value] = selectedItem;
|
|
213
|
+
}
|
|
214
|
+
else if (flag) {
|
|
215
|
+
this.selectedItems = [];
|
|
216
|
+
this.selectedItems[selectedItem.value] = selectedItem;
|
|
210
217
|
}
|
|
211
218
|
else if (!flag)
|
|
212
219
|
this.selectedItems[selectedItem.value] = selectedItem;
|
|
@@ -256,11 +263,11 @@ export class CoreMultiSelectComponent {
|
|
|
256
263
|
}
|
|
257
264
|
}
|
|
258
265
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreMultiSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
259
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreMultiSelectComponent, selector: "core-multi-select", inputs: { canAddValueKeyAndTitleKeyInSearchKeys: "canAddValueKeyAndTitleKeyInSearchKeys", inputFormControl: "inputFormControl", singleSelectItems: "singleSelectItems", label: "label", searchKeys: "searchKeys", titleKey: "titleKey", valueKey: "valueKey", items: "items", defaultValue: "defaultValue" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputSearch"], descendants: true }], ngImport: i0, template: "<div\r\n (keydown)=\"handleKeyBoard($event)\"\r\n tabindex=\"0\"\r\n class=\"dropdown\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-focus': focused,\r\n 'select-clicked': isOpenMenu,\r\n selectError: inputFormControl.touched && inputFormControl.errors,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"isSelectedItems || focused\">{{\r\n label\r\n }}</span>\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"input bg-transparent text-sm focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup)=\"onChangeText($event, true)\"\r\n (focus)=\"focused = true\"\r\n (blur)=\"focused = false\"\r\n />\r\n <!-- (keydown)=\"handleKeyBoard($event)\" -->\r\n <span\r\n class=\"text-content text-right\"\r\n [ngClass]=\"[\r\n label.length > 0 && !isSelectedItems ? 'placeholder' : 'selected',\r\n ]\"\r\n >{{ isSelectedItems || focused ? text : label }}</span\r\n >\r\n </div>\r\n <ul class=\"menu\" [ngClass]=\"{ 'menu-open': isOpenMenu }\">\r\n <app-core-multi-select-row\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [item]=\"item\"\r\n [id]=\"'scroll' + randomId + '-' + i\"\r\n [isSelected]=\"selectedItems[item.value] ? true : false\"\r\n [focusItemId]=\"focusItem?.value\"\r\n (onSelect)=\"onItemSelect(item, true)\"\r\n >\r\n </app-core-multi-select-row>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"inputFormControl.touched && inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown:focus{outline:none}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;overflow:hidden;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select .text-content{white-space:nowrap;display:block;overflow:hidden;word-wrap:break-word;text-overflow:ellipsis}.dropdown .select .selected{padding-inline:12px;font-size:14px;max-width:90%;color:#000000b3;flex:0 0 auto;overflow:hidden;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline-start:16px;flex:0 0 auto}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}.select-focus{background-color:#f2f4f70d!important;border-radius:3px;border:2px solid rgba(19,92,175,.397)!important}.input{flex:1 1 auto;width:100%;min-width:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CoreMultiSelectRowComponent, selector: "app-core-multi-select-row", inputs: ["isSelected", "focusItemId", "item"], outputs: ["onSelect"] }, { kind: "component", type: i4.ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
266
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreMultiSelectComponent, selector: "core-multi-select", inputs: { canAddValueKeyAndTitleKeyInSearchKeys: "canAddValueKeyAndTitleKeyInSearchKeys", inputFormControl: "inputFormControl", singleSelectItems: "singleSelectItems", label: "label", searchKeys: "searchKeys", titleKey: "titleKey", valueKey: "valueKey", items: "items", defaultValue: "defaultValue" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputSearch"], descendants: true }], ngImport: i0, template: "<div\r\n (keydown)=\"handleKeyBoard($event)\"\r\n tabindex=\"0\"\r\n class=\"dropdown\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-focus': focused,\r\n 'select-clicked': isOpenMenu,\r\n selectError: inputFormControl.touched && inputFormControl.errors,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"isSelectedItems || focused\">{{\r\n label\r\n }}</span>\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"input bg-transparent text-sm focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup)=\"onChangeText($event, true)\"\r\n (focus)=\"focused = true\"\r\n (blur)=\"focused = false\"\r\n />\r\n <!-- (keydown)=\"handleKeyBoard($event)\" -->\r\n <span\r\n class=\"text-content text-right\"\r\n [ngClass]=\"[\r\n label.length > 0 && !isSelectedItems ? 'placeholder' : 'selected',\r\n ]\"\r\n >{{ isSelectedItems || focused ? text : label }}</span\r\n >\r\n </div>\r\n <ul class=\"menu\" [ngClass]=\"{ 'menu-open': isOpenMenu }\">\r\n <app-core-multi-select-row\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [item]=\"item\"\r\n [id]=\"'scroll' + randomId + '-' + i\"\r\n [isSelected]=\"selectedItems[item.value] ? true : false\"\r\n [focusItemId]=\"focusItem?.value\"\r\n (onSelect)=\"onItemSelect(item, true)\"\r\n >\r\n </app-core-multi-select-row>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"inputFormControl.touched && inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown:focus{outline:none}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;overflow:hidden;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select .text-content{white-space:nowrap;display:block;overflow:hidden;word-wrap:break-word;text-overflow:ellipsis}.dropdown .select .selected{padding-inline-start:12px;padding-inline-end:6px;font-size:14px;max-width:90%;color:#000000b3;flex:0 0 auto;overflow:hidden;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline-start:16px;flex:0 0 auto}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}.select-focus{background-color:#f2f4f70d!important;border-radius:3px;border:2px solid rgba(19,92,175,.397)!important}.input{flex:1 1 auto;width:100%;min-width:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CoreMultiSelectRowComponent, selector: "app-core-multi-select-row", inputs: ["isSelected", "focusItemId", "item"], outputs: ["onSelect"] }, { kind: "component", type: i4.ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
260
267
|
}
|
|
261
268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreMultiSelectComponent, decorators: [{
|
|
262
269
|
type: Component,
|
|
263
|
-
args: [{ selector: 'core-multi-select', template: "<div\r\n (keydown)=\"handleKeyBoard($event)\"\r\n tabindex=\"0\"\r\n class=\"dropdown\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-focus': focused,\r\n 'select-clicked': isOpenMenu,\r\n selectError: inputFormControl.touched && inputFormControl.errors,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"isSelectedItems || focused\">{{\r\n label\r\n }}</span>\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"input bg-transparent text-sm focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup)=\"onChangeText($event, true)\"\r\n (focus)=\"focused = true\"\r\n (blur)=\"focused = false\"\r\n />\r\n <!-- (keydown)=\"handleKeyBoard($event)\" -->\r\n <span\r\n class=\"text-content text-right\"\r\n [ngClass]=\"[\r\n label.length > 0 && !isSelectedItems ? 'placeholder' : 'selected',\r\n ]\"\r\n >{{ isSelectedItems || focused ? text : label }}</span\r\n >\r\n </div>\r\n <ul class=\"menu\" [ngClass]=\"{ 'menu-open': isOpenMenu }\">\r\n <app-core-multi-select-row\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [item]=\"item\"\r\n [id]=\"'scroll' + randomId + '-' + i\"\r\n [isSelected]=\"selectedItems[item.value] ? true : false\"\r\n [focusItemId]=\"focusItem?.value\"\r\n (onSelect)=\"onItemSelect(item, true)\"\r\n >\r\n </app-core-multi-select-row>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"inputFormControl.touched && inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown:focus{outline:none}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;overflow:hidden;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select .text-content{white-space:nowrap;display:block;overflow:hidden;word-wrap:break-word;text-overflow:ellipsis}.dropdown .select .selected{padding-inline:12px;font-size:14px;max-width:90%;color:#000000b3;flex:0 0 auto;overflow:hidden;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline-start:16px;flex:0 0 auto}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}.select-focus{background-color:#f2f4f70d!important;border-radius:3px;border:2px solid rgba(19,92,175,.397)!important}.input{flex:1 1 auto;width:100%;min-width:0}\n"] }]
|
|
270
|
+
args: [{ selector: 'core-multi-select', template: "<div\r\n (keydown)=\"handleKeyBoard($event)\"\r\n tabindex=\"0\"\r\n class=\"dropdown\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-focus': focused,\r\n 'select-clicked': isOpenMenu,\r\n selectError: inputFormControl.touched && inputFormControl.errors,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"isSelectedItems || focused\">{{\r\n label\r\n }}</span>\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"input bg-transparent text-sm focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup)=\"onChangeText($event, true)\"\r\n (focus)=\"focused = true\"\r\n (blur)=\"focused = false\"\r\n />\r\n <!-- (keydown)=\"handleKeyBoard($event)\" -->\r\n <span\r\n class=\"text-content text-right\"\r\n [ngClass]=\"[\r\n label.length > 0 && !isSelectedItems ? 'placeholder' : 'selected',\r\n ]\"\r\n >{{ isSelectedItems || focused ? text : label }}</span\r\n >\r\n </div>\r\n <ul class=\"menu\" [ngClass]=\"{ 'menu-open': isOpenMenu }\">\r\n <app-core-multi-select-row\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [item]=\"item\"\r\n [id]=\"'scroll' + randomId + '-' + i\"\r\n [isSelected]=\"selectedItems[item.value] ? true : false\"\r\n [focusItemId]=\"focusItem?.value\"\r\n (onSelect)=\"onItemSelect(item, true)\"\r\n >\r\n </app-core-multi-select-row>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"inputFormControl.touched && inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown:focus{outline:none}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;overflow:hidden;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select .text-content{white-space:nowrap;display:block;overflow:hidden;word-wrap:break-word;text-overflow:ellipsis}.dropdown .select .selected{padding-inline-start:12px;padding-inline-end:6px;font-size:14px;max-width:90%;color:#000000b3;flex:0 0 auto;overflow:hidden;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline-start:16px;flex:0 0 auto}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}.select-focus{background-color:#f2f4f70d!important;border-radius:3px;border:2px solid rgba(19,92,175,.397)!important}.input{flex:1 1 auto;width:100%;min-width:0}\n"] }]
|
|
264
271
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { onItemSelected: [{
|
|
265
272
|
type: Output
|
|
266
273
|
}], inputElement: [{
|
|
@@ -286,4 +293,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
286
293
|
type: Input,
|
|
287
294
|
args: [{ required: true }]
|
|
288
295
|
}] } });
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtbXVsdGktc2VsZWN0L2NvcmUtbXVsdGktc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLW11bHRpLXNlbGVjdC9jb3JlLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBVXZDLE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsSUFBYSxRQUFRLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBYSxRQUFRLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBYSxLQUFLLENBQUMsSUFBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFD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QUExQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICcuLi9mYWxjb25UeXBlcyc7XHJcbmludGVyZmFjZSBJU2VsZWN0ZWRJdGVtc0RpY3Rpb25hcnkge1xyXG4gIFtpbmRleDogc3RyaW5nXTogYW55O1xyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1tdWx0aS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVNdWx0aVNlbGVjdENvbXBvbmVudCB7XHJcbiAgZm9jdXNJdGVtOiBNZW51SXRlbTxhbnk+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSBvbkl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRTZWFyY2gnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIEBJbnB1dCgpIGNhbkFkZFZhbHVlS2V5QW5kVGl0bGVLZXlJblNlYXJjaEtleXM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlucHV0Rm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbXSk7XHJcbiAgQElucHV0KCkgc2luZ2xlU2VsZWN0SXRlbXM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHNlYXJjaEtleXM6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHNldCB0aXRsZUtleShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX3RpdGxlS2V5ID0gZGF0YTtcclxuICAgIHRoaXMuaGFzVGl0bGVLZXkgPSB0cnVlO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCB2YWx1ZUtleShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX3ZhbHVlS2V5ID0gZGF0YTtcclxuICAgIHRoaXMuaGFzVmFsdWVLZXkgPSB0cnVlO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX2l0ZW1zID0gZGF0YTtcclxuICAgIHRoaXMuaGFzSXRlbXMgPSB0cnVlO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNldCBkZWZhdWx0VmFsdWUoZGF0YTogYW55W10pIHtcclxuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IGRhdGE7XHJcbiAgICB0aGlzLmhhc0RlZmF1bHRWYWx1ZSA9IHRydWU7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZURlZmF1bHRWYWx1ZSgpO1xyXG4gICAgdGhpcy5zaG93VGV4dCgpO1xyXG4gIH1cclxuICBzZWxlY3RlZEl0ZW1zOiBSZWNvcmQ8c3RyaW5nLCB7IHRpdGxlOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT5bXSA9IFtdO1xyXG4gIGZpbHRlcmVkSXRlbXM6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XHJcbiAgZm9jdXNJdGVtSWQgPSAnJztcclxuICBrZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIG5ld0l0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIGlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICBfaXRlbXM6IGFueSA9IFtdO1xyXG4gIF9kZWZhdWx0VmFsdWU6IHN0cmluZ1tdID0gW107XHJcbiAgX3RpdGxlS2V5ITogYW55O1xyXG4gIF92YWx1ZUtleSE6IGFueTtcclxuICBpbml0Q291bnRlciA9IDA7XHJcbiAgY3VycmVudEl0ZW1JbmRleCA9IDA7XHJcbiAgcmFuZG9tSWQgPSAwO1xyXG4gIGhhc1RpdGxlS2V5ID0gZmFsc2U7XHJcbiAgaGFzVmFsdWVLZXkgPSBmYWxzZTtcclxuICBoYXNJdGVtcyA9IGZhbHNlO1xyXG4gIGhhc0RlZmF1bHRWYWx1ZSA9IGZhbHNlO1xyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICB0ZXh0ID0gJyc7XHJcbiAgc2VhcmNoVGV4dCA9ICcnO1xyXG4gIGdldCBpc0ZvY3VzZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU2VsZWN0ZWRJdGVtcygpIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkSXRlbXMpLmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgKSB7fVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmhhc1RpdGxlS2V5ICYmXHJcbiAgICAgIHRoaXMuaGFzVmFsdWVLZXkgJiZcclxuICAgICAgdGhpcy5oYXNJdGVtcyAmJlxyXG4gICAgICB0aGlzLmhhc0RlZmF1bHRWYWx1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubmV3SXRlbXMgPSB0aGlzLmNoYW5nZUl0ZW1zVHlwZSh0aGlzLl9pdGVtcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIG9uQ2hhbmdlVGV4dChcclxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxyXG4gICAgY2FuT3Blbk1lbnU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICApIHtcclxuICAgIGlmIChcclxuICAgICAgZXZlbnQgJiZcclxuICAgICAgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fFxyXG4gICAgICAgIGV2ZW50LmtleSA9PT0gJ1RhYicgfHxcclxuICAgICAgICBldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8XHJcbiAgICAgICAgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fFxyXG4gICAgICAgIGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaFRleHQubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcy5uZXh0KHRoaXMubmV3SXRlbXMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaFRleHQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zLm5leHQoXHJcbiAgICAgICAgdGhpcy5uZXdJdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5rZXlzLnNvbWUoKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgaXRlbVtrZXldID09PSAnbnVtYmVyJ1xyXG4gICAgICAgICAgICAgID8gaXRlbVtrZXldID09IE51bWJlcih0aGlzLnNlYXJjaFRleHQpXHJcbiAgICAgICAgICAgICAgOiBTdHJpbmcoaXRlbVtrZXldKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFRleHQpIHx8XHJcbiAgICAgICAgICAgICAgICAgIFN0cmluZyhpdGVtW2tleV0pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcy5uZXh0KHRoaXMubmV3SXRlbXMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRJdGVtcy5nZXRWYWx1ZSgpLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5mb2N1c0l0ZW0gPSB0aGlzLmZpbHRlcmVkSXRlbXMuZ2V0VmFsdWUoKVswXTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgY2FuT3Blbk1lbnUgJiZcclxuICAgICAgdHlwZW9mIHRoaXMuc2VhcmNoVGV4dCA9PT0gJ3N0cmluZycgJiZcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Lmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzT3Blbk1lbnUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJhbmRvbUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApO1xyXG4gICAgdGhpcy5rZXlzID0gdGhpcy5zZWFyY2hLZXlzLmxlbmd0aCA+IDAgPyB0aGlzLnNlYXJjaEtleXMuc3BsaXQoJywnKSA6IFtdO1xyXG4gICAgaWYgKHRoaXMuY2FuQWRkVmFsdWVLZXlBbmRUaXRsZUtleUluU2VhcmNoS2V5cykge1xyXG4gICAgICB0aGlzLmtleXMucHVzaCh0aGlzLl90aXRsZUtleSk7XHJcbiAgICAgIHRoaXMua2V5cy5wdXNoKHRoaXMuX3ZhbHVlS2V5KTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5pdGlhbGl6ZURlZmF1bHRWYWx1ZSgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZVRleHQoKTtcclxuICB9XHJcblxyXG4gIHNldElucHV0Rm9jdXMoKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplRGVmYXVsdFZhbHVlKCkge1xyXG4gICAgaWYgKHRoaXMuX2RlZmF1bHRWYWx1ZS5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlLmZvckVhY2goKGl0ZW0xOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm5ld0l0ZW1zLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS52YWx1ZSA9PT0gaXRlbTEpO1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXNbdmFsdWUudmFsdWVdID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5Qm9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IGtleSA9IGV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZmlsdGVyZWRJdGVtcy5nZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gaXRlbXMuZmluZEluZGV4KFxyXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMuX3ZhbHVlS2V5XSA9PT0gdGhpcy5mb2N1c0l0ZW0/LnZhbHVlLFxyXG4gICAgKTtcclxuICAgIHN3aXRjaCAoa2V5LmtleSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy5mb2N1c0l0ZW0pIHtcclxuICAgICAgICAgIHRoaXMub25JdGVtU2VsZWN0KGl0ZW1zW3RoaXMuY3VycmVudEl0ZW1JbmRleF0sIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJyAnOlxyXG4gICAgICAgIHRoaXMuaXNPcGVuTWVudSA9ICF0aGlzLmlzT3Blbk1lbnU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5sZW5ndGggPiAwKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgICBjb25zdCBsYXN0SXRlbTogYW55ID0gdmFsdWVzW3ZhbHVlcy5sZW5ndGggLSAxXTtcclxuICAgICAgICBkZWxldGUgdGhpcy5zZWxlY3RlZEl0ZW1zW2xhc3RJdGVtXTtcclxuICAgICAgICB0aGlzLnNob3dUZXh0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbk1lbnUgJiYgaXRlbXMubGVuZ3RoIC0gMSA+IHRoaXMuY3VycmVudEl0ZW1JbmRleCkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5jdXJyZW50SXRlbUluZGV4ICsgMTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNJdGVtID0gaXRlbXNbdGhpcy5jdXJyZW50SXRlbUluZGV4XTtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuTWVudSAmJiB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPSB0aGlzLmN1cnJlbnRJdGVtSW5kZXggLSAxO1xyXG4gICAgICAgICAgdGhpcy5mb2N1c0l0ZW0gPSBpdGVtc1t0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xyXG4gICAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnVGFiJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VGV4dCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuICBwcml2YXRlIHNjcm9sbFRvQWN0aXZlKCkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxyXG4gICAgICAnc2Nyb2xsJyArIHRoaXMucmFuZG9tSWQgKyAnLScgKyB0aGlzLmN1cnJlbnRJdGVtSW5kZXgsXHJcbiAgICApO1xyXG4gICAgZWxlbWVudD8uc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICBibG9jazogJ2NlbnRlcicsXHJcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcclxuICAgIH0pO1xyXG4gIH1cclxuICBvbkl0ZW1TZWxlY3Qoc2VsZWN0ZWRJdGVtOiBhbnksIGlzRnJvbVVpOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zW3NlbGVjdGVkSXRlbS52YWx1ZV0pIHtcclxuICAgICAgZGVsZXRlIHRoaXMuc2VsZWN0ZWRJdGVtc1tzZWxlY3RlZEl0ZW0udmFsdWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGZsYWcgPSBmYWxzZTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZEl0ZW1zKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0SXRlbXMuZmluZCgoZGF0YSkgPT4gZGF0YSA9PSBpdGVtKSkge1xyXG4gICAgICAgICAgZmxhZyA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRJdGVtcykubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgIHRoaXMuc2luZ2xlU2VsZWN0SXRlbXMuZmluZCgoZGF0YSkgPT4gZGF0YSA9PSBzZWxlY3RlZEl0ZW0udmFsdWUpXHJcbiAgICAgICkge1xyXG4gICAgICB9IGVsc2UgaWYgKCFmbGFnKSB0aGlzLnNlbGVjdGVkSXRlbXNbc2VsZWN0ZWRJdGVtLnZhbHVlXSA9IHNlbGVjdGVkSXRlbTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd1RleHQoKTtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1RleHQoKSB7XHJcbiAgICBsZXQgdGV4dCA9ICcnO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IE9iamVjdC52YWx1ZXModGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIHNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA8IHNlbGVjdGVkSXRlbXMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHRleHQgPSBpdGVtLnRpdGxlICsgJyAsICcgKyB0ZXh0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRleHQgPSB0ZXh0ICsgaXRlbS50aXRsZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMudGV4dCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VJdGVtc1R5cGUoaXRlbXM6IGFueVtdKTogYW55W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0OiBhbnkgPSB7XHJcbiAgICAgICAgdGl0bGU6IGl0ZW1bdGhpcy5fdGl0bGVLZXldLFxyXG4gICAgICAgIHZhbHVlOiBpdGVtW3RoaXMuX3ZhbHVlS2V5XSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5rZXlzLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgIHJlc3VsdFtrZXldID0gaXRlbVtrZXldO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRoaXMuY2FuQWRkVmFsdWVLZXlBbmRUaXRsZUtleUluU2VhcmNoS2V5cykge1xyXG4gICAgICAgIHRoaXMua2V5cy5wdXNoKHRoaXMudGl0bGVLZXkpO1xyXG4gICAgICAgIHRoaXMua2V5cy5wdXNoKHRoaXMudmFsdWVLZXkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5NZW51Q2xpY2soKSB7XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IG5leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoXHJcbiAgICAgICFuZXh0Rm9jdXNlZEVsZW1lbnQgfHxcclxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhuZXh0Rm9jdXNlZEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAoa2V5ZG93bik9XCJoYW5kbGVLZXlCb2FyZCgkZXZlbnQpXCJcclxuICB0YWJpbmRleD1cIjBcIlxyXG4gIGNsYXNzPVwiZHJvcGRvd25cIlxyXG4gIChmb2N1c2luKT1cInNldElucHV0Rm9jdXMoKVwiXHJcbiAgKGZvY3Vzb3V0KT1cImZvY3VzT3V0KCRldmVudClcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAnc2VsZWN0LWZvY3VzJzogZm9jdXNlZCxcclxuICAgICAgJ3NlbGVjdC1jbGlja2VkJzogaXNPcGVuTWVudSxcclxuICAgICAgc2VsZWN0RXJyb3I6IGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyxcclxuICAgIH1cIlxyXG4gICAgKGNsaWNrKT1cIm9wZW5NZW51Q2xpY2soKVwiXHJcbiAgPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci10b3BcIiAqbmdJZj1cImlzU2VsZWN0ZWRJdGVtcyB8fCBmb2N1c2VkXCI+e3tcclxuICAgICAgbGFiZWxcclxuICAgIH19PC9zcGFuPlxyXG4gICAgPGFycm93LWRvd24taWNvblxyXG4gICAgICBjbGFzcz1cImNhcmV0IGZpbGwtc2Vjb25kYXJ5LXRleHQtY29sb3IgaC02XCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnY2FyZXQtcm90YXRlJzogaXNPcGVuTWVudSB9XCJcclxuICAgID48L2Fycm93LWRvd24taWNvbj5cclxuXHJcbiAgICA8aW5wdXRcclxuICAgICAgI2lucHV0U2VhcmNoXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgIGlkPVwiaW5wdXRTZWFyY2hcIlxyXG4gICAgICBjbGFzcz1cImlucHV0IGJnLXRyYW5zcGFyZW50IHRleHQtc20gZm9jdXM6b3V0bGluZS1ub25lXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgKGtleXVwKT1cIm9uQ2hhbmdlVGV4dCgkZXZlbnQsIHRydWUpXCJcclxuICAgICAgKGZvY3VzKT1cImZvY3VzZWQgPSB0cnVlXCJcclxuICAgICAgKGJsdXIpPVwiZm9jdXNlZCA9IGZhbHNlXCJcclxuICAgIC8+XHJcbiAgICA8IS0tIChrZXlkb3duKT1cImhhbmRsZUtleUJvYXJkKCRldmVudClcIiAtLT5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwidGV4dC1jb250ZW50IHRleHQtcmlnaHRcIlxyXG4gICAgICBbbmdDbGFzc109XCJbXHJcbiAgICAgICAgbGFiZWwubGVuZ3RoID4gMCAmJiAhaXNTZWxlY3RlZEl0ZW1zID8gJ3BsYWNlaG9sZGVyJyA6ICdzZWxlY3RlZCcsXHJcbiAgICAgIF1cIlxyXG4gICAgICA+e3sgaXNTZWxlY3RlZEl0ZW1zIHx8IGZvY3VzZWQgPyB0ZXh0IDogbGFiZWwgfX08L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8dWwgY2xhc3M9XCJtZW51XCIgW25nQ2xhc3NdPVwieyAnbWVudS1vcGVuJzogaXNPcGVuTWVudSB9XCI+XHJcbiAgICA8YXBwLWNvcmUtbXVsdGktc2VsZWN0LXJvd1xyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZEl0ZW1zIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgW2lkXT1cIidzY3JvbGwnICsgcmFuZG9tSWQgKyAnLScgKyBpXCJcclxuICAgICAgW2lzU2VsZWN0ZWRdPVwic2VsZWN0ZWRJdGVtc1tpdGVtLnZhbHVlXSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgIFtmb2N1c0l0ZW1JZF09XCJmb2N1c0l0ZW0/LnZhbHVlXCJcclxuICAgICAgKG9uU2VsZWN0KT1cIm9uSXRlbVNlbGVjdChpdGVtLCB0cnVlKVwiXHJcbiAgICA+XHJcbiAgICA8L2FwcC1jb3JlLW11bHRpLXNlbGVjdC1yb3c+XHJcbiAgPC91bD5cclxuICA8ZGl2IGNsYXNzPVwibGFiZWwtZXJyb3Igb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cImlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgPtin24zZhiDZgduM2YTYryDYrtin2YTbjCDYp9iz2Ko8L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtbXVsdGktc2VsZWN0L2NvcmUtbXVsdGktc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLW11bHRpLXNlbGVjdC9jb3JlLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBVXZDLE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsSUFBYSxRQUFRLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBYSxRQUFRLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBYSxLQUFLLENBQUMsSUFBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFD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LFNBQVM7dUJBQUMsYUFBYTtnQkFDZixxQ0FBcUM7c0JBQTdDLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDTyxRQUFRO3NCQUFwQixLQUFLO2dCQUtPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSztnQkFLeUIsWUFBWTtzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vZmFsY29uVHlwZXMnO1xyXG5pbnRlcmZhY2UgSVNlbGVjdGVkSXRlbXNEaWN0aW9uYXJ5IHtcclxuICBbaW5kZXg6IHN0cmluZ106IGFueTtcclxufVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtbXVsdGktc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTXVsdGlTZWxlY3RDb21wb25lbnQge1xyXG4gIGZvY3VzSXRlbTogTWVudUl0ZW08YW55PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0U2VhcmNoJykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBASW5wdXQoKSBjYW5BZGRWYWx1ZUtleUFuZFRpdGxlS2V5SW5TZWFyY2hLZXlzOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpbnB1dEZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW10pO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVNlbGVjdEl0ZW1zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBzZWFyY2hLZXlzOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBzZXQgdGl0bGVLZXkoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLl90aXRsZUtleSA9IGRhdGE7XHJcbiAgICB0aGlzLmhhc1RpdGxlS2V5ID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdmFsdWVLZXkoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLl92YWx1ZUtleSA9IGRhdGE7XHJcbiAgICB0aGlzLmhhc1ZhbHVlS2V5ID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgaXRlbXMoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLl9pdGVtcyA9IGRhdGE7XHJcbiAgICB0aGlzLmhhc0l0ZW1zID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgZGVmYXVsdFZhbHVlKGRhdGE6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9kZWZhdWx0VmFsdWUgPSBkYXRhO1xyXG4gICAgdGhpcy5oYXNEZWZhdWx0VmFsdWUgPSB0cnVlO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVEZWZhdWx0VmFsdWUoKTtcclxuICAgIHRoaXMuc2hvd1RleHQoKTtcclxuICB9XHJcbiAgc2VsZWN0ZWRJdGVtczogUmVjb3JkPHN0cmluZywgeyB0aXRsZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+W10gPSBbXTtcclxuICBmaWx0ZXJlZEl0ZW1zOiBCZWhhdmlvclN1YmplY3Q8YW55W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xyXG4gIGZvY3VzSXRlbUlkID0gJyc7XHJcbiAga2V5czogc3RyaW5nW10gPSBbXTtcclxuICBuZXdJdGVtczogYW55W10gPSBbXTtcclxuICBpc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgX2l0ZW1zOiBhbnkgPSBbXTtcclxuICBfZGVmYXVsdFZhbHVlOiBzdHJpbmdbXSA9IFtdO1xyXG4gIF90aXRsZUtleSE6IGFueTtcclxuICBfdmFsdWVLZXkhOiBhbnk7XHJcbiAgaW5pdENvdW50ZXIgPSAwO1xyXG4gIGN1cnJlbnRJdGVtSW5kZXggPSAwO1xyXG4gIHJhbmRvbUlkID0gMDtcclxuICBoYXNUaXRsZUtleSA9IGZhbHNlO1xyXG4gIGhhc1ZhbHVlS2V5ID0gZmFsc2U7XHJcbiAgaGFzSXRlbXMgPSBmYWxzZTtcclxuICBoYXNEZWZhdWx0VmFsdWUgPSBmYWxzZTtcclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgdGV4dCA9ICcnO1xyXG4gIHNlYXJjaFRleHQgPSAnJztcclxuICBnZXQgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZDtcclxuICB9XHJcblxyXG4gIGdldCBpc1NlbGVjdGVkSXRlbXMoKSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZEl0ZW1zKS5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICkge31cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5oYXNUaXRsZUtleSAmJlxyXG4gICAgICB0aGlzLmhhc1ZhbHVlS2V5ICYmXHJcbiAgICAgIHRoaXMuaGFzSXRlbXMgJiZcclxuICAgICAgdGhpcy5oYXNEZWZhdWx0VmFsdWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLm5ld0l0ZW1zID0gdGhpcy5jaGFuZ2VJdGVtc1R5cGUodGhpcy5faXRlbXMpO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3luYyBvbkNoYW5nZVRleHQoXHJcbiAgICBldmVudDogS2V5Ym9hcmRFdmVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcclxuICAgIGNhbk9wZW5NZW51OiBib29sZWFuID0gZmFsc2UsXHJcbiAgKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGV2ZW50ICYmXHJcbiAgICAgIChldmVudC5rZXkgPT09ICdFbnRlcicgfHxcclxuICAgICAgICBldmVudC5rZXkgPT09ICdUYWInIHx8XHJcbiAgICAgICAgZXZlbnQua2V5ID09PSAnRXNjYXBlJyB8fFxyXG4gICAgICAgIGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicgfHxcclxuICAgICAgICBldmVudC5rZXkgPT09ICdBcnJvd1VwJylcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLm5ld0l0ZW1zKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hUZXh0KSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcy5uZXh0KFxyXG4gICAgICAgIHRoaXMubmV3SXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICAgIHJlc3VsdCA9IHRoaXMua2V5cy5zb21lKChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIGl0ZW1ba2V5XSA9PT0gJ251bWJlcidcclxuICAgICAgICAgICAgICA/IGl0ZW1ba2V5XSA9PSBOdW1iZXIodGhpcy5zZWFyY2hUZXh0KVxyXG4gICAgICAgICAgICAgIDogU3RyaW5nKGl0ZW1ba2V5XSkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0KSB8fFxyXG4gICAgICAgICAgICAgICAgICBTdHJpbmcoaXRlbVtrZXldKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLm5ld0l0ZW1zKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMuZ2V0VmFsdWUoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNJdGVtID0gdGhpcy5maWx0ZXJlZEl0ZW1zLmdldFZhbHVlKClbMF07XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIGNhbk9wZW5NZW51ICYmXHJcbiAgICAgIHR5cGVvZiB0aGlzLnNlYXJjaFRleHQgPT09ICdzdHJpbmcnICYmXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yYW5kb21JZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwKTtcclxuICAgIHRoaXMua2V5cyA9IHRoaXMuc2VhcmNoS2V5cy5sZW5ndGggPiAwID8gdGhpcy5zZWFyY2hLZXlzLnNwbGl0KCcsJykgOiBbXTtcclxuICAgIGlmICh0aGlzLmNhbkFkZFZhbHVlS2V5QW5kVGl0bGVLZXlJblNlYXJjaEtleXMpIHtcclxuICAgICAgdGhpcy5rZXlzLnB1c2godGhpcy5fdGl0bGVLZXkpO1xyXG4gICAgICB0aGlzLmtleXMucHVzaCh0aGlzLl92YWx1ZUtleSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluaXRpYWxpemVEZWZhdWx0VmFsdWUoKTtcclxuICAgIHRoaXMub25DaGFuZ2VUZXh0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRJbnB1dEZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZURlZmF1bHRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLl9kZWZhdWx0VmFsdWUubGVuZ3RoID09IDApIHJldHVybjtcclxuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZS5mb3JFYWNoKChpdGVtMTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5uZXdJdGVtcy5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW0udmFsdWUgPT09IGl0ZW0xKTtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW3ZhbHVlLnZhbHVlXSA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUtleUJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBrZXkgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmZpbHRlcmVkSXRlbXMuZ2V0VmFsdWUoKTtcclxuICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IGl0ZW1zLmZpbmRJbmRleChcclxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLl92YWx1ZUtleV0gPT09IHRoaXMuZm9jdXNJdGVtPy52YWx1ZSxcclxuICAgICk7XHJcbiAgICBzd2l0Y2ggKGtleS5rZXkpIHtcclxuICAgICAgY2FzZSAnRW50ZXInOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNJdGVtKSB7XHJcbiAgICAgICAgICB0aGlzLm9uSXRlbVNlbGVjdChpdGVtc1t0aGlzLmN1cnJlbnRJdGVtSW5kZXhdLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICcgJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdCYWNrc3BhY2UnOlxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQubGVuZ3RoID4gMCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICAgICAgY29uc3QgbGFzdEl0ZW06IGFueSA9IHZhbHVlc1t2YWx1ZXMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuc2VsZWN0ZWRJdGVtc1tsYXN0SXRlbV07XHJcbiAgICAgICAgdGhpcy5zaG93VGV4dCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy5pc09wZW5NZW51ICYmIGl0ZW1zLmxlbmd0aCAtIDEgPiB0aGlzLmN1cnJlbnRJdGVtSW5kZXgpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IHRoaXMuY3VycmVudEl0ZW1JbmRleCArIDE7XHJcbiAgICAgICAgICB0aGlzLmZvY3VzSXRlbSA9IGl0ZW1zW3RoaXMuY3VycmVudEl0ZW1JbmRleF07XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbk1lbnUgJiYgdGhpcy5jdXJyZW50SXRlbUluZGV4ID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5jdXJyZW50SXRlbUluZGV4IC0gMTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNJdGVtID0gaXRlbXNbdGhpcy5jdXJyZW50SXRlbUluZGV4XTtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1RhYic6XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RleHQoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzY3JvbGxUb0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgJ3Njcm9sbCcgKyB0aGlzLnJhbmRvbUlkICsgJy0nICsgdGhpcy5jdXJyZW50SXRlbUluZGV4LFxyXG4gICAgKTtcclxuICAgIGVsZW1lbnQ/LnNjcm9sbEludG9WaWV3KHtcclxuICAgICAgYmxvY2s6ICdjZW50ZXInLFxyXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25JdGVtU2VsZWN0KHNlbGVjdGVkSXRlbTogYW55LCBpc0Zyb21VaTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtc1tzZWxlY3RlZEl0ZW0udmFsdWVdKSB7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLnNlbGVjdGVkSXRlbXNbc2VsZWN0ZWRJdGVtLnZhbHVlXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBmbGFnID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICAgIHNlbGVjdGVkS2V5cy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0SXRlbXMuZmluZCgoZGF0YSkgPT4gZGF0YSA9PSBpdGVtKSkge1xyXG4gICAgICAgICAgZmxhZyA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHNlbGVjdGVkS2V5cy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgdGhpcy5zaW5nbGVTZWxlY3RJdGVtcy5maW5kKChkYXRhKSA9PiBkYXRhID09IHNlbGVjdGVkSXRlbS52YWx1ZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW3NlbGVjdGVkSXRlbS52YWx1ZV0gPSBzZWxlY3RlZEl0ZW07XHJcbiAgICAgIH0gZWxzZSBpZiAoZmxhZykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1tzZWxlY3RlZEl0ZW0udmFsdWVdID0gc2VsZWN0ZWRJdGVtO1xyXG4gICAgICB9IGVsc2UgaWYgKCFmbGFnKSB0aGlzLnNlbGVjdGVkSXRlbXNbc2VsZWN0ZWRJdGVtLnZhbHVlXSA9IHNlbGVjdGVkSXRlbTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd1RleHQoKTtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1RleHQoKSB7XHJcbiAgICBsZXQgdGV4dCA9ICcnO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IE9iamVjdC52YWx1ZXModGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIHNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA8IHNlbGVjdGVkSXRlbXMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHRleHQgPSBpdGVtLnRpdGxlICsgJyAsICcgKyB0ZXh0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRleHQgPSB0ZXh0ICsgaXRlbS50aXRsZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMudGV4dCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VJdGVtc1R5cGUoaXRlbXM6IGFueVtdKTogYW55W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0OiBhbnkgPSB7XHJcbiAgICAgICAgdGl0bGU6IGl0ZW1bdGhpcy5fdGl0bGVLZXldLFxyXG4gICAgICAgIHZhbHVlOiBpdGVtW3RoaXMuX3ZhbHVlS2V5XSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5rZXlzLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgIHJlc3VsdFtrZXldID0gaXRlbVtrZXldO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRoaXMuY2FuQWRkVmFsdWVLZXlBbmRUaXRsZUtleUluU2VhcmNoS2V5cykge1xyXG4gICAgICAgIHRoaXMua2V5cy5wdXNoKHRoaXMudGl0bGVLZXkpO1xyXG4gICAgICAgIHRoaXMua2V5cy5wdXNoKHRoaXMudmFsdWVLZXkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5NZW51Q2xpY2soKSB7XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IG5leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoXHJcbiAgICAgICFuZXh0Rm9jdXNlZEVsZW1lbnQgfHxcclxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhuZXh0Rm9jdXNlZEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAoa2V5ZG93bik9XCJoYW5kbGVLZXlCb2FyZCgkZXZlbnQpXCJcclxuICB0YWJpbmRleD1cIjBcIlxyXG4gIGNsYXNzPVwiZHJvcGRvd25cIlxyXG4gIChmb2N1c2luKT1cInNldElucHV0Rm9jdXMoKVwiXHJcbiAgKGZvY3Vzb3V0KT1cImZvY3VzT3V0KCRldmVudClcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAnc2VsZWN0LWZvY3VzJzogZm9jdXNlZCxcclxuICAgICAgJ3NlbGVjdC1jbGlja2VkJzogaXNPcGVuTWVudSxcclxuICAgICAgc2VsZWN0RXJyb3I6IGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyxcclxuICAgIH1cIlxyXG4gICAgKGNsaWNrKT1cIm9wZW5NZW51Q2xpY2soKVwiXHJcbiAgPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci10b3BcIiAqbmdJZj1cImlzU2VsZWN0ZWRJdGVtcyB8fCBmb2N1c2VkXCI+e3tcclxuICAgICAgbGFiZWxcclxuICAgIH19PC9zcGFuPlxyXG4gICAgPGFycm93LWRvd24taWNvblxyXG4gICAgICBjbGFzcz1cImNhcmV0IGZpbGwtc2Vjb25kYXJ5LXRleHQtY29sb3IgaC02XCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnY2FyZXQtcm90YXRlJzogaXNPcGVuTWVudSB9XCJcclxuICAgID48L2Fycm93LWRvd24taWNvbj5cclxuXHJcbiAgICA8aW5wdXRcclxuICAgICAgI2lucHV0U2VhcmNoXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgIGlkPVwiaW5wdXRTZWFyY2hcIlxyXG4gICAgICBjbGFzcz1cImlucHV0IGJnLXRyYW5zcGFyZW50IHRleHQtc20gZm9jdXM6b3V0bGluZS1ub25lXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgKGtleXVwKT1cIm9uQ2hhbmdlVGV4dCgkZXZlbnQsIHRydWUpXCJcclxuICAgICAgKGZvY3VzKT1cImZvY3VzZWQgPSB0cnVlXCJcclxuICAgICAgKGJsdXIpPVwiZm9jdXNlZCA9IGZhbHNlXCJcclxuICAgIC8+XHJcbiAgICA8IS0tIChrZXlkb3duKT1cImhhbmRsZUtleUJvYXJkKCRldmVudClcIiAtLT5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwidGV4dC1jb250ZW50IHRleHQtcmlnaHRcIlxyXG4gICAgICBbbmdDbGFzc109XCJbXHJcbiAgICAgICAgbGFiZWwubGVuZ3RoID4gMCAmJiAhaXNTZWxlY3RlZEl0ZW1zID8gJ3BsYWNlaG9sZGVyJyA6ICdzZWxlY3RlZCcsXHJcbiAgICAgIF1cIlxyXG4gICAgICA+e3sgaXNTZWxlY3RlZEl0ZW1zIHx8IGZvY3VzZWQgPyB0ZXh0IDogbGFiZWwgfX08L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8dWwgY2xhc3M9XCJtZW51XCIgW25nQ2xhc3NdPVwieyAnbWVudS1vcGVuJzogaXNPcGVuTWVudSB9XCI+XHJcbiAgICA8YXBwLWNvcmUtbXVsdGktc2VsZWN0LXJvd1xyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZEl0ZW1zIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgW2lkXT1cIidzY3JvbGwnICsgcmFuZG9tSWQgKyAnLScgKyBpXCJcclxuICAgICAgW2lzU2VsZWN0ZWRdPVwic2VsZWN0ZWRJdGVtc1tpdGVtLnZhbHVlXSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgIFtmb2N1c0l0ZW1JZF09XCJmb2N1c0l0ZW0/LnZhbHVlXCJcclxuICAgICAgKG9uU2VsZWN0KT1cIm9uSXRlbVNlbGVjdChpdGVtLCB0cnVlKVwiXHJcbiAgICA+XHJcbiAgICA8L2FwcC1jb3JlLW11bHRpLXNlbGVjdC1yb3c+XHJcbiAgPC91bD5cclxuICA8ZGl2IGNsYXNzPVwibGFiZWwtZXJyb3Igb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cImlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgPtin24zZhiDZgduM2YTYryDYrtin2YTbjCDYp9iz2Ko8L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -31,6 +31,7 @@ export class CoreSelectComponent {
|
|
|
31
31
|
this.onItemSelected = new EventEmitter();
|
|
32
32
|
this.inputFormControl = new FormControl('', []);
|
|
33
33
|
this.currentIndex = 0;
|
|
34
|
+
this.isFocusElement = false;
|
|
34
35
|
}
|
|
35
36
|
init() {
|
|
36
37
|
this.titleKeyObject = this.titleKey;
|
|
@@ -54,12 +55,18 @@ export class CoreSelectComponent {
|
|
|
54
55
|
openMenuClick() {
|
|
55
56
|
if (this.disabled)
|
|
56
57
|
return;
|
|
57
|
-
this.
|
|
58
|
+
if (this.isFocusElement) {
|
|
59
|
+
this.isFocusElement = false;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.isOpenMenu = !this.isOpenMenu;
|
|
63
|
+
}
|
|
58
64
|
}
|
|
59
65
|
focus() {
|
|
60
66
|
setTimeout(() => {
|
|
61
67
|
this.selectContainer.toArray()[0].nativeElement.focus();
|
|
62
|
-
this.
|
|
68
|
+
this.isFocusElement = true;
|
|
69
|
+
this.isOpenMenu = !this.isOpenMenu;
|
|
63
70
|
});
|
|
64
71
|
}
|
|
65
72
|
handleKeyBoard(event) {
|
|
@@ -164,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
164
171
|
type: ViewChildren,
|
|
165
172
|
args: ['selectContainer']
|
|
166
173
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtc2VsZWN0L2NvcmUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC9jb3JlLXNlbGVjdC1mYWxjb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFVN0QsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QixJQUFhLEtBQUssQ0FBQyxJQUFTO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFhLFlBQVksQ0FBQyxJQUFPO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFRRCxZQUNVLEdBQXNCLEVBQ3RCLEtBQWlCO1FBRGpCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7UUEvQjNCLGlCQUFZLEdBQWdCLEVBQWlCLENBQUM7UUFDOUMsY0FBUyxHQUE0QixTQUFTLENBQUM7UUFHL0MsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ2pCLHFCQUFnQixH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QUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUN0RDtZQUNBLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN2QztJQUNILENBQUM7K0dBeEpVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJiQ3RCaEMsa3dFQXNFQTs7NEZEaERhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO2lJQWVkLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDMkIsZUFBZTtzQkFBL0MsWUFBWTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XHJcbnR5cGUgTWVudUl0ZW08VD4gPSB7XHJcbiAgdGl0bGU6IFQ7XHJcbiAgdmFsdWU6IFQ7XHJcbn07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXNlbGVjdCcgKyBlbnZpcm9ubWVudC50ZW1wTmFtZSxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXNlbGVjdCcgKyBlbnZpcm9ubWVudC5zdHlsZU5hbWVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNlbGVjdENvbXBvbmVudDxUPiB7XHJcbiAgc2VsZWN0ZWRJdGVtOiBNZW51SXRlbTxUPiA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gIGZvY3VzSXRlbTogTWVudUl0ZW08VD4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgdGl0bGVLZXlPYmplY3QhOiBrZXlvZiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgdmFsdWVLZXlPYmplY3QhOiBrZXlvZiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgbmV3SXRlbXM6IE1lbnVJdGVtPFQ+W10gPSBbXTtcclxuICBpc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgX2l0ZW1zOiBhbnkgPSBbXTtcclxuICBjdXJyZW50SXRlbUluZGV4ID0gMDtcclxuICByYW5kb21JZCA9IDA7XHJcbiAgX2RlZmF1bHRWYWx1ZSE6IFQ7XHJcbiAgQElucHV0KCkgdGl0bGVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nID0gJ3NtYWxsJztcclxuICBASW5wdXQoKSBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5faXRlbXMgPSBkYXRhO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBkZWZhdWx0VmFsdWUoZGF0YTogVCkge1xyXG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSBpbnB1dEZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW10pO1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ3NlbGVjdENvbnRhaW5lcicpIHNlbGVjdENvbnRhaW5lciE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcclxuICBjdXJyZW50SW5kZXggPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgKSB7fVxyXG4gIGluaXQoKSB7XHJcbiAgICB0eXBlIE9iamVjdEtleSA9ICh0eXBlb2YgdGhpcy5faXRlbXMpWzBdO1xyXG4gICAgdGhpcy50aXRsZUtleU9iamVjdCA9IHRoaXMudGl0bGVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy52YWx1ZUtleU9iamVjdCA9IHRoaXMudmFsdWVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy5uZXdJdGVtcyA9IHRoaXMuY2hhbmdlSXRlbXNUeXBlKHRoaXMuX2l0ZW1zKTtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLl9kZWZhdWx0VmFsdWUpO1xyXG4gICAgdGhpcy5vbkl0ZW1TZWxlY3QoXHJcbiAgICAgIHRoaXMubmV3SXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PSB0aGlzLl9kZWZhdWx0VmFsdWUpLFxyXG4gICAgICBmYWxzZSxcclxuICAgICk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yYW5kb21JZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwKTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlSXRlbXNUeXBlKGl0ZW1zOiBhbnlbXSk6IE1lbnVJdGVtPFQ+W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHRpdGxlOiBpdGVtW3RoaXMudGl0bGVLZXlPYmplY3RdLFxyXG4gICAgICAgIHZhbHVlOiBpdGVtW3RoaXMudmFsdWVLZXlPYmplY3RdLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuTWVudUNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuaXNPcGVuTWVudSA9ICF0aGlzLmlzT3Blbk1lbnU7XHJcbiAgfVxyXG4gIGZvY3VzKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0Q29udGFpbmVyLnRvQXJyYXkoKVswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMub3Blbk1lbnVDbGljaygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGhhbmRsZUtleUJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPSB0aGlzLl9pdGVtcy5maW5kSW5kZXgoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy52YWx1ZUtleU9iamVjdF0gPT09IHRoaXMuZm9jdXNJdGVtPy52YWx1ZSxcclxuICAgICk7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gIXRoaXMuaXNPcGVuTWVudTtcclxuICAgICAgICBpZiAodGhpcy5mb2N1c0l0ZW0pIHtcclxuICAgICAgICAgIHRoaXMub25JdGVtU2VsZWN0KHRoaXMuZm9jdXNJdGVtLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICcgJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmlzT3Blbk1lbnUgJiZcclxuICAgICAgICAgIHRoaXMubmV3SXRlbXMubGVuZ3RoIC0gMSA+IHRoaXMuY3VycmVudEl0ZW1JbmRleFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5jdXJyZW50SXRlbUluZGV4ICsgMTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNJdGVtID0gdGhpcy5uZXdJdGVtc1t0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xyXG4gICAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuTWVudSAmJiB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPSB0aGlzLmN1cnJlbnRJdGVtSW5kZXggLSAxO1xyXG4gICAgICAgICAgdGhpcy5mb2N1c0l0ZW0gPSB0aGlzLm5ld0l0ZW1zW3RoaXMuY3VycmVudEl0ZW1JbmRleF07XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnVGFiJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2Nyb2xsVG9BY3RpdmUoKSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgICdzY3JvbGwnICsgdGhpcy5yYW5kb21JZCArICctJyArIHRoaXMuY3VycmVudEl0ZW1JbmRleCxcclxuICAgICk7XHJcbiAgICBlbGVtZW50Py5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXHJcbiAgICAgIGlubGluZTogJ25lYXJlc3QnLFxyXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25JdGVtU2VsZWN0KHNlbGVjdGVkSXRlbTogTWVudUl0ZW08VD4gfCB1bmRlZmluZWQsIGlzRnJvbVVpOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNGcm9tVWkpIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0ge30gYXMgTWVudUl0ZW08VD47XHJcbiAgICAgIHRoaXMuZm9jdXNJdGVtID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW07XHJcbiAgICB0aGlzLmZvY3VzSXRlbSA9IHNlbGVjdGVkSXRlbTtcclxuICAgIGNvbnN0IG1haW5JdGVtID0gdGhpcy5faXRlbXMuZmluZChcclxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLnZhbHVlS2V5T2JqZWN0XSA9PT0gc2VsZWN0ZWRJdGVtLnZhbHVlLFxyXG4gICAgKTtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3RlZEl0ZW0udmFsdWUpO1xyXG4gICAgdGhpcy5vbkl0ZW1TZWxlY3RlZC5lbWl0KG1haW5JdGVtKTtcclxuICB9XHJcbiAgZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IG5leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoXHJcbiAgICAgICFuZXh0Rm9jdXNlZEVsZW1lbnQgfHxcclxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhuZXh0Rm9jdXNlZEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICB0YWJpbmRleD1cIjBcIlxyXG4gIChrZXlkb3duKT1cImhhbmRsZUtleUJvYXJkKCRldmVudClcIlxyXG4gIChmb2N1cyk9XCJmb2N1cygpXCJcclxuICAoZm9jdXNvdXQpPVwiZm9jdXNPdXQoJGV2ZW50KVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICAjc2VsZWN0Q29udGFpbmVyXHJcbiAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdzZWxlY3QtY2xpY2tlZCc6IGlzT3Blbk1lbnUsXHJcbiAgICAgICdoaWdobGlnaHQtYmFja2dyb3VuZCc6XHJcbiAgICAgICAgY2FuSGlnaGxpZ2h0QmFja2dyb3VuZCAmJlxyXG4gICAgICAgIChzZWxlY3RlZEl0ZW0gfCBqc29uKSA9PT0gKHt9IHwganNvbikgJiZcclxuICAgICAgICAhKGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyksXHJcbiAgICAgIHNlbGVjdEVycm9yOiBpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgJiYgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnMsXHJcbiAgICAgICdkaXNhYmxlLXNlbGVjdG9yJzogZGlzYWJsZWQsXHJcbiAgICB9XCJcclxuICAgIChjbGljayk9XCJvcGVuTWVudUNsaWNrKClcIlxyXG4gID5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwicGxhY2Vob2xkZXItdG9wXCJcclxuICAgICAgKm5nSWY9XCIoc2VsZWN0ZWRJdGVtIHwganNvbikgIT0gKHt9IHwganNvbilcIlxyXG4gICAgICA+e3sgbGFiZWwgfX08L3NwYW5cclxuICAgID5cclxuICAgIDxhcnJvdy1kb3duLWljb25cclxuICAgICAgY2xhc3M9XCJjYXJldCBmaWxsLXNlY29uZGFyeS10ZXh0LWNvbG9yIGgtNlwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2NhcmV0LXJvdGF0ZSc6IGlzT3Blbk1lbnUgfVwiXHJcbiAgICA+PC9hcnJvdy1kb3duLWljb24+XHJcblxyXG4gICAgPHNwYW5cclxuICAgICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICAgIGxhYmVsLmxlbmd0aCA+IDAgJiYgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09ICh7fSB8IGpzb24pXHJcbiAgICAgICAgICA/ICdwbGFjZWhvbGRlcidcclxuICAgICAgICAgIDogJ3NlbGVjdGVkJyxcclxuICAgICAgXVwiXHJcbiAgICAgID57e1xyXG4gICAgICAgIGxhYmVsLmxlbmd0aCA+IDAgJiYgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09ICh7fSB8IGpzb24pXHJcbiAgICAgICAgICA/IGxhYmVsXHJcbiAgICAgICAgICA6IHNlbGVjdGVkSXRlbS50aXRsZVxyXG4gICAgICB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwibm8tZGF0YVwiXHJcbiAgICAqbmdJZj1cIm5ld0l0ZW1zLmxlbmd0aCA9PT0gMFwiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdtZW51LW9wZW4tbm8tZGF0YSc6IGlzT3Blbk1lbnUgfVwiXHJcbiAgPlxyXG4gICAgPHdhcm5pbmctaWNvbiBjbGFzcz1cImljb24tY29sb3IgaW5saW5lLWJsb2NrIHctNlwiPjwvd2FybmluZy1pY29uPlxyXG4gICAgPGIgY2xhc3M9XCJjb250ZW50IGJsb2NrXCI+2YXZiNix2K/bjCDbjNin2YHYqiDZhti02K88L2I+XHJcbiAgPC9kaXY+XHJcbiAgPHVsIGNsYXNzPVwibWVudSBkcm9wZG93blwiIFtuZ0NsYXNzXT1cInsgJ21lbnUtb3Blbic6IGlzT3Blbk1lbnUgfVwiPlxyXG4gICAgPGxpXHJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5ld0l0ZW1zOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCJcclxuICAgICAgW2lkXT1cIidzY3JvbGwnICsgcmFuZG9tSWQgKyAnLScgKyBpXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0udmFsdWUgPT09IGZvY3VzSXRlbT8udmFsdWUgfVwiXHJcbiAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoaXRlbSwgdHJ1ZSlcIlxyXG4gICAgPlxyXG4gICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbiAgPGRpdiBjbGFzcz1cImxhYmVsLWVycm9yIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgKm5nSWY9XCJpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgJiYgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgID7Yp9uM2YYg2YHbjNmE2K8g2K7Yp9mE24wg2KfYs9iqPC9zcGFuXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtc2VsZWN0L2NvcmUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC9jb3JlLXNlbGVjdC1mYWxjb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFVN0QsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QixJQUFhLEtBQUssQ0FBQyxJQUFTO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFhLFlBQVksQ0FBQyxJQUFPO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFTRCxZQUNVLEdBQXNCLEVBQ3RCLEtBQWlCO1FBRGpCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFoQzNCLGlCQUFZLEdBQWdCLEVBQWlCLENBQUM7UUFDOUMsY0FBUyxHQUE0QixTQUFTLENBQUM7UUFHL0MsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ2pCLHFCQUFnQixH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Q0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFpQjtRQUN4QixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBQzlELElBQ0UsQ0FBQyxrQkFBa0I7WUFDbkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFDdEQ7WUFDQSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdkM7SUFDSCxDQUFDOytHQTlKVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwyYkN0QmhDLGt3RUFzRUE7OzRGRGhEYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTtpSUFlZCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQzJCLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xyXG50eXBlIE1lbnVJdGVtPFQ+ID0ge1xyXG4gIHRpdGxlOiBUO1xyXG4gIHZhbHVlOiBUO1xyXG59O1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1zZWxlY3QnICsgZW52aXJvbm1lbnQudGVtcE5hbWUsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1zZWxlY3QnICsgZW52aXJvbm1lbnQuc3R5bGVOYW1lXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVTZWxlY3RDb21wb25lbnQ8VD4ge1xyXG4gIHNlbGVjdGVkSXRlbTogTWVudUl0ZW08VD4gPSB7fSBhcyBNZW51SXRlbTxUPjtcclxuICBmb2N1c0l0ZW06IE1lbnVJdGVtPFQ+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIHRpdGxlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHZhbHVlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIG5ld0l0ZW1zOiBNZW51SXRlbTxUPltdID0gW107XHJcbiAgaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gIF9pdGVtczogYW55ID0gW107XHJcbiAgY3VycmVudEl0ZW1JbmRleCA9IDA7XHJcbiAgcmFuZG9tSWQgPSAwO1xyXG4gIF9kZWZhdWx0VmFsdWUhOiBUO1xyXG4gIEBJbnB1dCgpIHRpdGxlS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZyA9ICdzbWFsbCc7XHJcbiAgQElucHV0KCkgY2FuSGlnaGxpZ2h0QmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX2l0ZW1zID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgZGVmYXVsdFZhbHVlKGRhdGE6IFQpIHtcclxuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IGRhdGE7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgaW5wdXRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtdKTtcclxuICBAVmlld0NoaWxkcmVuKCdzZWxlY3RDb250YWluZXInKSBzZWxlY3RDb250YWluZXIhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcbiAgY3VycmVudEluZGV4ID0gMDtcclxuICBpc0ZvY3VzRWxlbWVudCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgKSB7fVxyXG4gIGluaXQoKSB7XHJcbiAgICB0eXBlIE9iamVjdEtleSA9ICh0eXBlb2YgdGhpcy5faXRlbXMpWzBdO1xyXG4gICAgdGhpcy50aXRsZUtleU9iamVjdCA9IHRoaXMudGl0bGVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy52YWx1ZUtleU9iamVjdCA9IHRoaXMudmFsdWVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy5uZXdJdGVtcyA9IHRoaXMuY2hhbmdlSXRlbXNUeXBlKHRoaXMuX2l0ZW1zKTtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLl9kZWZhdWx0VmFsdWUpO1xyXG4gICAgdGhpcy5vbkl0ZW1TZWxlY3QoXHJcbiAgICAgIHRoaXMubmV3SXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PSB0aGlzLl9kZWZhdWx0VmFsdWUpLFxyXG4gICAgICBmYWxzZSxcclxuICAgICk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yYW5kb21JZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwKTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlSXRlbXNUeXBlKGl0ZW1zOiBhbnlbXSk6IE1lbnVJdGVtPFQ+W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHRpdGxlOiBpdGVtW3RoaXMudGl0bGVLZXlPYmplY3RdLFxyXG4gICAgICAgIHZhbHVlOiBpdGVtW3RoaXMudmFsdWVLZXlPYmplY3RdLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuTWVudUNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmlzRm9jdXNFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuaXNGb2N1c0VsZW1lbnQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNPcGVuTWVudSA9ICF0aGlzLmlzT3Blbk1lbnU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZvY3VzKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0Q29udGFpbmVyLnRvQXJyYXkoKVswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMuaXNGb2N1c0VsZW1lbnQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGhhbmRsZUtleUJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPSB0aGlzLl9pdGVtcy5maW5kSW5kZXgoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy52YWx1ZUtleU9iamVjdF0gPT09IHRoaXMuZm9jdXNJdGVtPy52YWx1ZSxcclxuICAgICk7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gIXRoaXMuaXNPcGVuTWVudTtcclxuICAgICAgICBpZiAodGhpcy5mb2N1c0l0ZW0pIHtcclxuICAgICAgICAgIHRoaXMub25JdGVtU2VsZWN0KHRoaXMuZm9jdXNJdGVtLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICcgJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmlzT3Blbk1lbnUgJiZcclxuICAgICAgICAgIHRoaXMubmV3SXRlbXMubGVuZ3RoIC0gMSA+IHRoaXMuY3VycmVudEl0ZW1JbmRleFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5jdXJyZW50SXRlbUluZGV4ICsgMTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNJdGVtID0gdGhpcy5uZXdJdGVtc1t0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xyXG4gICAgICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuTWVudSAmJiB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPSB0aGlzLmN1cnJlbnRJdGVtSW5kZXggLSAxO1xyXG4gICAgICAgICAgdGhpcy5mb2N1c0l0ZW0gPSB0aGlzLm5ld0l0ZW1zW3RoaXMuY3VycmVudEl0ZW1JbmRleF07XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnVGFiJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2Nyb2xsVG9BY3RpdmUoKSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgICdzY3JvbGwnICsgdGhpcy5yYW5kb21JZCArICctJyArIHRoaXMuY3VycmVudEl0ZW1JbmRleCxcclxuICAgICk7XHJcbiAgICBlbGVtZW50Py5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXHJcbiAgICAgIGlubGluZTogJ25lYXJlc3QnLFxyXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25JdGVtU2VsZWN0KHNlbGVjdGVkSXRlbTogTWVudUl0ZW08VD4gfCB1bmRlZmluZWQsIGlzRnJvbVVpOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNGcm9tVWkpIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0ge30gYXMgTWVudUl0ZW08VD47XHJcbiAgICAgIHRoaXMuZm9jdXNJdGVtID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW07XHJcbiAgICB0aGlzLmZvY3VzSXRlbSA9IHNlbGVjdGVkSXRlbTtcclxuICAgIGNvbnN0IG1haW5JdGVtID0gdGhpcy5faXRlbXMuZmluZChcclxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLnZhbHVlS2V5T2JqZWN0XSA9PT0gc2VsZWN0ZWRJdGVtLnZhbHVlLFxyXG4gICAgKTtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3RlZEl0ZW0udmFsdWUpO1xyXG4gICAgdGhpcy5vbkl0ZW1TZWxlY3RlZC5lbWl0KG1haW5JdGVtKTtcclxuICB9XHJcbiAgZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IG5leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoXHJcbiAgICAgICFuZXh0Rm9jdXNlZEVsZW1lbnQgfHxcclxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhuZXh0Rm9jdXNlZEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICB0YWJpbmRleD1cIjBcIlxyXG4gIChrZXlkb3duKT1cImhhbmRsZUtleUJvYXJkKCRldmVudClcIlxyXG4gIChmb2N1cyk9XCJmb2N1cygpXCJcclxuICAoZm9jdXNvdXQpPVwiZm9jdXNPdXQoJGV2ZW50KVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICAjc2VsZWN0Q29udGFpbmVyXHJcbiAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdzZWxlY3QtY2xpY2tlZCc6IGlzT3Blbk1lbnUsXHJcbiAgICAgICdoaWdobGlnaHQtYmFja2dyb3VuZCc6XHJcbiAgICAgICAgY2FuSGlnaGxpZ2h0QmFja2dyb3VuZCAmJlxyXG4gICAgICAgIChzZWxlY3RlZEl0ZW0gfCBqc29uKSA9PT0gKHt9IHwganNvbikgJiZcclxuICAgICAgICAhKGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyksXHJcbiAgICAgIHNlbGVjdEVycm9yOiBpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgJiYgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnMsXHJcbiAgICAgICdkaXNhYmxlLXNlbGVjdG9yJzogZGlzYWJsZWQsXHJcbiAgICB9XCJcclxuICAgIChjbGljayk9XCJvcGVuTWVudUNsaWNrKClcIlxyXG4gID5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwicGxhY2Vob2xkZXItdG9wXCJcclxuICAgICAgKm5nSWY9XCIoc2VsZWN0ZWRJdGVtIHwganNvbikgIT0gKHt9IHwganNvbilcIlxyXG4gICAgICA+e3sgbGFiZWwgfX08L3NwYW5cclxuICAgID5cclxuICAgIDxhcnJvdy1kb3duLWljb25cclxuICAgICAgY2xhc3M9XCJjYXJldCBmaWxsLXNlY29uZGFyeS10ZXh0LWNvbG9yIGgtNlwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2NhcmV0LXJvdGF0ZSc6IGlzT3Blbk1lbnUgfVwiXHJcbiAgICA+PC9hcnJvdy1kb3duLWljb24+XHJcblxyXG4gICAgPHNwYW5cclxuICAgICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICAgIGxhYmVsLmxlbmd0aCA+IDAgJiYgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09ICh7fSB8IGpzb24pXHJcbiAgICAgICAgICA/ICdwbGFjZWhvbGRlcidcclxuICAgICAgICAgIDogJ3NlbGVjdGVkJyxcclxuICAgICAgXVwiXHJcbiAgICAgID57e1xyXG4gICAgICAgIGxhYmVsLmxlbmd0aCA+IDAgJiYgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09ICh7fSB8IGpzb24pXHJcbiAgICAgICAgICA/IGxhYmVsXHJcbiAgICAgICAgICA6IHNlbGVjdGVkSXRlbS50aXRsZVxyXG4gICAgICB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwibm8tZGF0YVwiXHJcbiAgICAqbmdJZj1cIm5ld0l0ZW1zLmxlbmd0aCA9PT0gMFwiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdtZW51LW9wZW4tbm8tZGF0YSc6IGlzT3Blbk1lbnUgfVwiXHJcbiAgPlxyXG4gICAgPHdhcm5pbmctaWNvbiBjbGFzcz1cImljb24tY29sb3IgaW5saW5lLWJsb2NrIHctNlwiPjwvd2FybmluZy1pY29uPlxyXG4gICAgPGIgY2xhc3M9XCJjb250ZW50IGJsb2NrXCI+2YXZiNix2K/bjCDbjNin2YHYqiDZhti02K88L2I+XHJcbiAgPC9kaXY+XHJcbiAgPHVsIGNsYXNzPVwibWVudSBkcm9wZG93blwiIFtuZ0NsYXNzXT1cInsgJ21lbnUtb3Blbic6IGlzT3Blbk1lbnUgfVwiPlxyXG4gICAgPGxpXHJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5ld0l0ZW1zOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCJcclxuICAgICAgW2lkXT1cIidzY3JvbGwnICsgcmFuZG9tSWQgKyAnLScgKyBpXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0udmFsdWUgPT09IGZvY3VzSXRlbT8udmFsdWUgfVwiXHJcbiAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoaXRlbSwgdHJ1ZSlcIlxyXG4gICAgPlxyXG4gICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbiAgPGRpdiBjbGFzcz1cImxhYmVsLWVycm9yIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgKm5nSWY9XCJpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgJiYgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgID7Yp9uM2YYg2YHbjNmE2K8g2K7Yp9mE24wg2KfYs9iqPC9zcGFuXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -4,14 +4,17 @@ import { BehaviorSubject } from 'rxjs';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
7
|
-
import * as i3 from "../../svg-icon/
|
|
8
|
-
import * as i4 from "../../svg-icon/
|
|
7
|
+
import * as i3 from "../../svg-icon/close-icon/close-icon.component";
|
|
8
|
+
import * as i4 from "../../svg-icon/warning-icon/warning-icon.component";
|
|
9
|
+
import * as i5 from "../../svg-icon/arrow-down-icon/arrow-down-icon.component";
|
|
9
10
|
export class CoreSelectSearchComponent {
|
|
10
11
|
set items(data) {
|
|
11
12
|
this._items = data;
|
|
12
13
|
this.init();
|
|
13
14
|
}
|
|
14
15
|
set defaultValue(data) {
|
|
16
|
+
if (data === undefined)
|
|
17
|
+
return;
|
|
15
18
|
this._defaultValue = data;
|
|
16
19
|
this.init();
|
|
17
20
|
}
|
|
@@ -23,6 +26,7 @@ export class CoreSelectSearchComponent {
|
|
|
23
26
|
this.isOpenMenu = false;
|
|
24
27
|
this._items = [];
|
|
25
28
|
this.keys = [];
|
|
29
|
+
this.searchText = undefined;
|
|
26
30
|
this.currentItemIndex = 0;
|
|
27
31
|
this.randomId = 0;
|
|
28
32
|
this.size = 'small';
|
|
@@ -45,6 +49,13 @@ export class CoreSelectSearchComponent {
|
|
|
45
49
|
this.itemSelect(this.newItems.find((item) => item.value == this._defaultValue), false);
|
|
46
50
|
this.onChangeText();
|
|
47
51
|
}
|
|
52
|
+
onClearInputClicked() {
|
|
53
|
+
this.selectedItem = {};
|
|
54
|
+
this.inputFormControl.setValue(this.selectedItem.title);
|
|
55
|
+
this.searchText = this.selectedItem.title;
|
|
56
|
+
this.filteredItems.next(this.newItems);
|
|
57
|
+
this.isOpenMenu = true;
|
|
58
|
+
}
|
|
48
59
|
ngOnInit() {
|
|
49
60
|
this.randomId = Math.floor(Math.random() * 10000);
|
|
50
61
|
this.keys = this.searchKeys.length > 0 ? this.searchKeys.split(',') : [];
|
|
@@ -195,11 +206,11 @@ export class CoreSelectSearchComponent {
|
|
|
195
206
|
}
|
|
196
207
|
}
|
|
197
208
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectSearchComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
198
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectSearchComponent, selector: "core-select-search", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", searchKeys: "searchKeys", canAddValueKeyAndTitleKeyInSearchKeys: "canAddValueKeyAndTitleKeyInSearchKeys", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputSearch"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"dropdown\"\r\n id=\"container\"\r\n (keydown)=\"handleKeyBoard($event)\"\r\n tabindex=\"0\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors,\r\n 'disable-selector': disabled,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"searchText\">{{ label }}</span>\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"input bg-transparent focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n [placeholder]=\"label\"\r\n (keyup)=\"onChangeText($event, true)\"\r\n />\r\n <!-- <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n > -->\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu\"\r\n *ngIf=\"newItems.length > 0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [id]=\"'scroll' + randomId + '-' + i\"\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect($event, item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"inputFormControl.touched && inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473)!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;max-width:90%;flex:0 0 auto;overflow:hidden;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px;flex:0 0 auto}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}.input{flex:1 1 auto;width:100%;min-width:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.WarningIconComponent, selector: "warning-icon" }, { kind: "component", type:
|
|
209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectSearchComponent, selector: "core-select-search", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", searchKeys: "searchKeys", canAddValueKeyAndTitleKeyInSearchKeys: "canAddValueKeyAndTitleKeyInSearchKeys", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputSearch"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"dropdown\"\r\n id=\"container\"\r\n (keydown)=\"handleKeyBoard($event)\"\r\n tabindex=\"0\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors,\r\n 'disable-selector': disabled,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"searchText\">{{ label }}</span>\r\n <arrow-down-icon\r\n *ngIf=\"!searchText\"\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n <close-icon\r\n *ngIf=\"searchText\"\r\n class=\"caret fill-secondary-text-color h-5\"\r\n (click)=\"onClearInputClicked(); $event.stopPropagation()\"\r\n ></close-icon>\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"input bg-transparent focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n [placeholder]=\"label\"\r\n (keyup)=\"onChangeText($event, true)\"\r\n />\r\n <!-- <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n > -->\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu\"\r\n *ngIf=\"newItems.length > 0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [id]=\"'scroll' + randomId + '-' + i\"\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect($event, item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"inputFormControl.touched && inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473)!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;max-width:90%;flex:0 0 auto;overflow:hidden;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px;flex:0 0 auto}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}.input{flex:1 1 auto;width:100%;min-width:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CloseIconComponent, selector: "close-icon" }, { kind: "component", type: i4.WarningIconComponent, selector: "warning-icon" }, { kind: "component", type: i5.ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
|
|
199
210
|
}
|
|
200
211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectSearchComponent, decorators: [{
|
|
201
212
|
type: Component,
|
|
202
|
-
args: [{ selector: 'core-select-search', template: "<div\r\n class=\"dropdown\"\r\n id=\"container\"\r\n (keydown)=\"handleKeyBoard($event)\"\r\n tabindex=\"0\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors,\r\n 'disable-selector': disabled,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"searchText\">{{ label }}</span>\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"input bg-transparent focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n [placeholder]=\"label\"\r\n (keyup)=\"onChangeText($event, true)\"\r\n />\r\n <!-- <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n > -->\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu\"\r\n *ngIf=\"newItems.length > 0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [id]=\"'scroll' + randomId + '-' + i\"\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect($event, item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"inputFormControl.touched && inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473)!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;max-width:90%;flex:0 0 auto;overflow:hidden;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px;flex:0 0 auto}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}.input{flex:1 1 auto;width:100%;min-width:0}\n"] }]
|
|
213
|
+
args: [{ selector: 'core-select-search', template: "<div\r\n class=\"dropdown\"\r\n id=\"container\"\r\n (keydown)=\"handleKeyBoard($event)\"\r\n tabindex=\"0\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors,\r\n 'disable-selector': disabled,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"searchText\">{{ label }}</span>\r\n <arrow-down-icon\r\n *ngIf=\"!searchText\"\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n <close-icon\r\n *ngIf=\"searchText\"\r\n class=\"caret fill-secondary-text-color h-5\"\r\n (click)=\"onClearInputClicked(); $event.stopPropagation()\"\r\n ></close-icon>\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"input bg-transparent focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n [placeholder]=\"label\"\r\n (keyup)=\"onChangeText($event, true)\"\r\n />\r\n <!-- <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n > -->\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu\"\r\n *ngIf=\"newItems.length > 0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [id]=\"'scroll' + randomId + '-' + i\"\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect($event, item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"inputFormControl.touched && inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473)!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;max-width:90%;flex:0 0 auto;overflow:hidden;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px;flex:0 0 auto}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}.input{flex:1 1 auto;width:100%;min-width:0}\n"] }]
|
|
203
214
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { titleKey: [{
|
|
204
215
|
type: Input
|
|
205
216
|
}], valueKey: [{
|
|
@@ -228,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
228
239
|
type: ViewChild,
|
|
229
240
|
args: ['inputSearch']
|
|
230
241
|
}] } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC1zZWFyY2gvY29yZS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC1zZWFyY2gvY29yZS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBUXJELE1BQU0sT0FBTyx5QkFBeUI7SUFtQnBDLElBQWEsS0FBSyxDQUFDLElBQVM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQWEsWUFBWSxDQUFDLElBQU87UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQU9ELFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFoQ3JDLGlCQUFZLEdBQWdCLEVBQWlCLENBQUM7UUFDOUMsY0FBUyxHQUE0QixTQUFTLENBQUM7UUFHL0MsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ2pCLFNBQUksR0FBYSxFQUFFLENB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YUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJy4uL2ZhbGNvblR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1zZWxlY3Qtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXNlbGVjdC1zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVTZWxlY3RTZWFyY2hDb21wb25lbnQ8VD4ge1xyXG4gIHNlbGVjdGVkSXRlbTogTWVudUl0ZW08VD4gPSB7fSBhcyBNZW51SXRlbTxUPjtcclxuICBmb2N1c0l0ZW06IE1lbnVJdGVtPFQ+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIHRpdGxlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHZhbHVlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIG5ld0l0ZW1zOiBNZW51SXRlbTxUPltdID0gW107XHJcbiAgaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gIF9pdGVtczogYW55ID0gW107XHJcbiAga2V5czogc3RyaW5nW10gPSBbXTtcclxuICBzZWFyY2hUZXh0ITogVDtcclxuICBjdXJyZW50SXRlbUluZGV4ID0gMDtcclxuICByYW5kb21JZCA9IDA7XHJcbiAgX2RlZmF1bHRWYWx1ZSE6IFQ7XHJcbiAgQElucHV0KCkgdGl0bGVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nID0gJ3NtYWxsJztcclxuICBASW5wdXQoKSBzZWFyY2hLZXlzOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBjYW5BZGRWYWx1ZUtleUFuZFRpdGxlS2V5SW5TZWFyY2hLZXlzOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5faXRlbXMgPSBkYXRhO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBkZWZhdWx0VmFsdWUoZGF0YTogVCkge1xyXG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSBpbnB1dEZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW10pO1xyXG4gIGZpbHRlcmVkSXRlbXM6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRTZWFyY2gnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5faXRlbXMubGVuZ3RoID09IDApIHJldHVybjtcclxuICAgIHR5cGUgT2JqZWN0S2V5ID0gKHR5cGVvZiB0aGlzLl9pdGVtcylbMF07XHJcbiAgICB0aGlzLnRpdGxlS2V5T2JqZWN0ID0gdGhpcy50aXRsZUtleSBhcyBPYmplY3RLZXk7XHJcbiAgICB0aGlzLnZhbHVlS2V5T2JqZWN0ID0gdGhpcy52YWx1ZUtleSBhcyBPYmplY3RLZXk7XHJcbiAgICB0aGlzLm5ld0l0ZW1zID0gdGhpcy5jaGFuZ2VJdGVtc1R5cGUodGhpcy5faXRlbXMpO1xyXG4gICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuX2RlZmF1bHRWYWx1ZSk7XHJcbiAgICB0aGlzLml0ZW1TZWxlY3QoXHJcbiAgICAgIHRoaXMubmV3SXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PSB0aGlzLl9kZWZhdWx0VmFsdWUpLFxyXG4gICAgICBmYWxzZSxcclxuICAgICk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlVGV4dCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJhbmRvbUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApO1xyXG4gICAgdGhpcy5rZXlzID0gdGhpcy5zZWFyY2hLZXlzLmxlbmd0aCA+IDAgPyB0aGlzLnNlYXJjaEtleXMuc3BsaXQoJywnKSA6IFtdO1xyXG4gICAgaWYgKHRoaXMuY2FuQWRkVmFsdWVLZXlBbmRUaXRsZUtleUluU2VhcmNoS2V5cykge1xyXG4gICAgICB0aGlzLmtleXMucHVzaCh0aGlzLnRpdGxlS2V5KTtcclxuICAgICAgdGhpcy5rZXlzLnB1c2godGhpcy52YWx1ZUtleSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICAgIHRoaXMub25DaGFuZ2VUZXh0KCk7XHJcbiAgICB0aGlzLnNldElucHV0Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUtleUJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBrZXkgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmZpbHRlcmVkSXRlbXMuZ2V0VmFsdWUoKTtcclxuICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IGl0ZW1zLmZpbmRJbmRleChcclxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLnZhbHVlS2V5T2JqZWN0XSA9PT0gdGhpcy5mb2N1c0l0ZW0/LnZhbHVlLFxyXG4gICAgKTtcclxuICAgIHN3aXRjaCAoa2V5LmtleSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy5mb2N1c0l0ZW0pIHtcclxuICAgICAgICAgIHRoaXMuaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtc1t0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xyXG4gICAgICAgICAgdGhpcy5pdGVtU2VsZWN0KHRoaXMuc2VsZWN0ZWRJdGVtLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICcgJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdCYWNrc3BhY2UnOlxyXG4gICAgICAgIHRoaXMuZm9jdXNJdGVtID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy5pc09wZW5NZW51ICYmIGl0ZW1zLmxlbmd0aCAtIDEgPiB0aGlzLmN1cnJlbnRJdGVtSW5kZXgpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IHRoaXMuY3VycmVudEl0ZW1JbmRleCArIDE7XHJcbiAgICAgICAgICB0aGlzLmZvY3VzSXRlbSA9IGl0ZW1zW3RoaXMuY3VycmVudEl0ZW1JbmRleF07XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbk1lbnUgJiYgdGhpcy5jdXJyZW50SXRlbUluZGV4ID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5jdXJyZW50SXRlbUluZGV4IC0gMTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNJdGVtID0gaXRlbXNbdGhpcy5jdXJyZW50SXRlbUluZGV4XTtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1RhYic6XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpdGVtU2VsZWN0KHNlbGVjdGVkSXRlbTogTWVudUl0ZW08VD4gfCB1bmRlZmluZWQsIGlzRnJvbVVpOiBib29sZWFuKSB7XHJcbiAgICBpZiAoaXNGcm9tVWkpIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0ge30gYXMgTWVudUl0ZW08VD47XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gc2VsZWN0ZWRJdGVtO1xyXG4gICAgY29uc3QgbWFpbkl0ZW0gPSB0aGlzLl9pdGVtcy5maW5kKFxyXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMudmFsdWVLZXlPYmplY3RdID09PSBzZWxlY3RlZEl0ZW0udmFsdWUsXHJcbiAgICApO1xyXG4gICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHNlbGVjdGVkSXRlbS50aXRsZSk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBzZWxlY3RlZEl0ZW0udGl0bGU7XHJcbiAgICB0aGlzLm9uSXRlbVNlbGVjdGVkLmVtaXQobWFpbkl0ZW0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZVRleHQoKTtcclxuICB9XHJcbiAgb25JdGVtU2VsZWN0KFxyXG4gICAgZXZlbnQ6IEV2ZW50LFxyXG4gICAgc2VsZWN0ZWRJdGVtOiBNZW51SXRlbTxUPiB8IHVuZGVmaW5lZCxcclxuICAgIGlzRnJvbVVpOiBib29sZWFuLFxyXG4gICk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuZm9jdXNJdGVtID0gc2VsZWN0ZWRJdGVtO1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0KHNlbGVjdGVkSXRlbSwgaXNGcm9tVWkpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlSXRlbXNUeXBlKGl0ZW1zOiBhbnlbXSk6IE1lbnVJdGVtPFQ+W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0OiBhbnkgPSB7XHJcbiAgICAgICAgdGl0bGU6IGl0ZW1bdGhpcy50aXRsZUtleU9iamVjdF0sXHJcbiAgICAgICAgdmFsdWU6IGl0ZW1bdGhpcy52YWx1ZUtleU9iamVjdF0sXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMua2V5cy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICByZXN1bHRba2V5XSA9IGl0ZW1ba2V5XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uQ2hhbmdlVGV4dChcclxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxyXG4gICAgY2FuT3Blbk1lbnU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICApIHtcclxuICAgIGlmIChcclxuICAgICAgZXZlbnQgJiZcclxuICAgICAgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fFxyXG4gICAgICAgIGV2ZW50LmtleSA9PT0gJ1RhYicgfHxcclxuICAgICAgICBldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8XHJcbiAgICAgICAgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fFxyXG4gICAgICAgIGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaFRleHQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zLm5leHQoXHJcbiAgICAgICAgdGhpcy5uZXdJdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5rZXlzLnNvbWUoKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgaXRlbVtrZXldID09PSAnbnVtYmVyJ1xyXG4gICAgICAgICAgICAgID8gaXRlbVtrZXldID09IHRoaXMuc2VhcmNoVGV4dFxyXG4gICAgICAgICAgICAgIDogaXRlbVtrZXldLnRvU3RyaW5nKCkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0KSB8fFxyXG4gICAgICAgICAgICAgICAgICBpdGVtW2tleV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLm5ld0l0ZW1zKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMuZ2V0VmFsdWUoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNJdGVtID0gdGhpcy5maWx0ZXJlZEl0ZW1zLmdldFZhbHVlKClbMF07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBjYW5PcGVuTWVudSAmJlxyXG4gICAgICAhdGhpcy5pc09wZW5NZW51ICYmXHJcbiAgICAgIHR5cGVvZiB0aGlzLnNlYXJjaFRleHQgPT09ICdzdHJpbmcnICYmXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldElucHV0Rm9jdXMoKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gIH1cclxuICBvcGVuTWVudUNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuaXNPcGVuTWVudSA9ICF0aGlzLmlzT3Blbk1lbnU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbFRvQWN0aXZlKCkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxyXG4gICAgICAnc2Nyb2xsJyArIHRoaXMucmFuZG9tSWQgKyAnLScgKyB0aGlzLmN1cnJlbnRJdGVtSW5kZXgsXHJcbiAgICApO1xyXG4gICAgZWxlbWVudD8uc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICBibG9jazogJ2NlbnRlcicsXHJcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IG5leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoXHJcbiAgICAgICFuZXh0Rm9jdXNlZEVsZW1lbnQgfHxcclxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhuZXh0Rm9jdXNlZEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICBpZD1cImNvbnRhaW5lclwiXHJcbiAgKGtleWRvd24pPVwiaGFuZGxlS2V5Qm9hcmQoJGV2ZW50KVwiXHJcbiAgdGFiaW5kZXg9XCIwXCJcclxuICAoZm9jdXNpbik9XCJzZXRJbnB1dEZvY3VzKClcIlxyXG4gIChmb2N1c291dCk9XCJmb2N1c091dCgkZXZlbnQpXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ3NlbGVjdC1jbGlja2VkJzogaXNPcGVuTWVudSxcclxuICAgICAgJ2hpZ2hsaWdodC1iYWNrZ3JvdW5kJzpcclxuICAgICAgICBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kICYmXHJcbiAgICAgICAgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09PSAoe30gfCBqc29uKSAmJlxyXG4gICAgICAgICEoaW5wdXRGb3JtQ29udHJvbC50b3VjaGVkICYmIGlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKSxcclxuICAgICAgc2VsZWN0RXJyb3I6IGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyxcclxuICAgICAgJ2Rpc2FibGUtc2VsZWN0b3InOiBkaXNhYmxlZCxcclxuICAgIH1cIlxyXG4gICAgKGNsaWNrKT1cIm9wZW5NZW51Q2xpY2soKVwiXHJcbiAgPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci10b3BcIiAqbmdJZj1cInNlYXJjaFRleHRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxhcnJvdy1kb3duLWljb25cclxuICAgICAgY2xhc3M9XCJjYXJldCBmaWxsLXNlY29uZGFyeS10ZXh0LWNvbG9yIGgtNlwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2NhcmV0LXJvdGF0ZSc6IGlzT3Blbk1lbnUgfVwiXHJcbiAgICA+PC9hcnJvdy1kb3duLWljb24+XHJcbiAgICA8aW5wdXRcclxuICAgICAgI2lucHV0U2VhcmNoXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgIGlkPVwiaW5wdXRTZWFyY2hcIlxyXG4gICAgICBjbGFzcz1cImlucHV0IGJnLXRyYW5zcGFyZW50IGZvY3VzOm91dGxpbmUtbm9uZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXHJcbiAgICAgIChrZXl1cCk9XCJvbkNoYW5nZVRleHQoJGV2ZW50LCB0cnVlKVwiXHJcbiAgICAvPlxyXG4gICAgPCEtLSA8c3BhblxyXG4gICAgICBbbmdDbGFzc109XCJbXHJcbiAgICAgICAgbGFiZWwubGVuZ3RoID4gMCAmJiAoc2VsZWN0ZWRJdGVtIHwganNvbikgPT0gKHt9IHwganNvbilcclxuICAgICAgICAgID8gJ3BsYWNlaG9sZGVyJ1xyXG4gICAgICAgICAgOiAnc2VsZWN0ZWQnXHJcbiAgICAgIF1cIlxyXG4gICAgICA+e3tcclxuICAgICAgICBsYWJlbC5sZW5ndGggPiAwICYmIChzZWxlY3RlZEl0ZW0gfCBqc29uKSA9PSAoe30gfCBqc29uKVxyXG4gICAgICAgICAgPyBsYWJlbFxyXG4gICAgICAgICAgOiBzZWxlY3RlZEl0ZW0udGl0bGVcclxuICAgICAgfX08L3NwYW5cclxuICAgID4gLS0+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJuby1kYXRhXCJcclxuICAgICpuZ0lmPVwibmV3SXRlbXMubGVuZ3RoID09PSAwXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ21lbnUtb3Blbi1uby1kYXRhJzogaXNPcGVuTWVudSB9XCJcclxuICA+XHJcbiAgICA8d2FybmluZy1pY29uIGNsYXNzPVwiaWNvbi1jb2xvciBpbmxpbmUtYmxvY2sgdy02XCI+PC93YXJuaW5nLWljb24+XHJcbiAgICA8YiBjbGFzcz1cImNvbnRlbnQgYmxvY2tcIj7ZhdmI2LHYr9uMINuM2KfZgdiqINmG2LTYrzwvYj5cclxuICA8L2Rpdj5cclxuICA8dWxcclxuICAgIGNsYXNzPVwibWVudVwiXHJcbiAgICAqbmdJZj1cIm5ld0l0ZW1zLmxlbmd0aCA+IDBcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnbWVudS1vcGVuJzogaXNPcGVuTWVudSB9XCJcclxuICA+XHJcbiAgICA8bGlcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtcyB8IGFzeW5jOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgW2lkXT1cIidzY3JvbGwnICsgcmFuZG9tSWQgKyAnLScgKyBpXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0udmFsdWUgPT09IGZvY3VzSXRlbT8udmFsdWUgfVwiXHJcbiAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoJGV2ZW50LCBpdGVtLCB0cnVlKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGl0ZW0udGl0bGUgfX1cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuICA8ZGl2IGNsYXNzPVwibGFiZWwtZXJyb3Igb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cImlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgPtin24zZhiDZgduM2YTYryDYrtin2YTbjCDYp9iz2Ko8L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC1zZWFyY2gvY29yZS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC1zZWFyY2gvY29yZS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVFyRCxNQUFNLE9BQU8seUJBQXlCO0lBbUJwQyxJQUFhLEtBQUssQ0FBQyxJQUFTO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFhLFlBQVksQ0FBQyxJQUFPO1FBQy9CLElBQUksSUFBSSxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFPRCxZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBakNyQyxpQkFBWSxHQUFnQixFQUFpQixDQUFDO1FBQzlDLGNBQVMsR0FBNEIsU0FBUyxDQUFDO1FBRy9DLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBQzdCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3BCLGVBQVUsR0FBa0IsU0FBUyxDQUFDO1FBQ3RDLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBSUosU0FBSSxHQUFXLE9BQU8sQ0FBQztRQUN2QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLDBDQUFxQyxHQUFZLElBQUksQ0FBQztRQUN0RCwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFVL0IsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxQyxxQkFBZ0IsR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLGtCQUFhLEdBQTJCLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRS9CLENBQUM7SUFFekMsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU87UUFFcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBcUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFxQixDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzlELEtBQUssQ0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFpQixDQUFDO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekUsSUFBSSxJQUFJLENBQUMscUNBQXFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFvQjtRQUNqQyxNQUFNLEdBQUcsR0FBRyxLQUFzQixDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQ3JDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUNuRSxDQUFDO1FBQ0YsUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ2YsS0FBSyxPQUFPO2dCQUNWLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7b0JBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDM0M7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDbkMsTUFBTTtZQUNSLEtBQUssV0FBVztnQkFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDM0IsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixNQUFNO1lBQ1IsS0FBSyxXQUFXO2dCQUNkLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7b0JBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUM5QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7aUJBQ3ZCO2dCQUNELE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRTtvQkFDaEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7b0JBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUM5QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7aUJBQ3ZCO2dCQUNELE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsWUFBcUMsRUFBRSxRQUFpQjtRQUNqRSxJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQWlCLENBQUM7WUFDdEMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQy9CLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQ2hFLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxZQUFZLENBQ1YsS0FBWSxFQUNaLFlBQXFDLEVBQ3JDLFFBQWlCO1FBRWpCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVk7UUFDMUIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxNQUFNLEdBQVE7Z0JBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ2pDLENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FDaEIsUUFBbUMsU0FBUyxFQUM1QyxjQUF1QixLQUFLO1FBRTVCLElBQ0UsS0FBSztZQUNMLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPO2dCQUNwQixLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUs7Z0JBQ25CLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUTtnQkFDdEIsS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXO2dCQUN6QixLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxFQUMxQjtZQUNBLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDakMsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtvQkFDdEMsT0FBTyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRO3dCQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVO3dCQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDOzRCQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDckUsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDeEM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUNFLFdBQVc7WUFDWCxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRO1lBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDMUI7WUFDQSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQ3JDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQ3ZELENBQUM7UUFDRixPQUFPLEVBQUUsY0FBYyxDQUFDO1lBQ3RCLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFpQjtRQUN4QixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBQzlELElBQ0UsQ0FBQyxrQkFBa0I7WUFDbkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFDdEQ7WUFDQSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdkM7SUFDSCxDQUFDOytHQXhPVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixrakJDckJ0Qyw4dUZBbUZBOzs0RkQ5RGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLG9CQUFvQjtpR0FpQnJCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxxQ0FBcUM7c0JBQTdDLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFb0IsWUFBWTtzQkFBckMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vZmFsY29uVHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLXNlbGVjdC1zZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXNlbGVjdC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtc2VsZWN0LXNlYXJjaC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNlbGVjdFNlYXJjaENvbXBvbmVudDxUPiB7XHJcbiAgc2VsZWN0ZWRJdGVtOiBNZW51SXRlbTxUPiA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gIGZvY3VzSXRlbTogTWVudUl0ZW08VD4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgdGl0bGVLZXlPYmplY3QhOiBrZXlvZiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgdmFsdWVLZXlPYmplY3QhOiBrZXlvZiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgbmV3SXRlbXM6IE1lbnVJdGVtPFQ+W10gPSBbXTtcclxuICBpc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgX2l0ZW1zOiBhbnkgPSBbXTtcclxuICBrZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNlYXJjaFRleHQ6IFQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgY3VycmVudEl0ZW1JbmRleCA9IDA7XHJcbiAgcmFuZG9tSWQgPSAwO1xyXG4gIF9kZWZhdWx0VmFsdWUhOiBUO1xyXG4gIEBJbnB1dCgpIHRpdGxlS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZyA9ICdzbWFsbCc7XHJcbiAgQElucHV0KCkgc2VhcmNoS2V5czogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgY2FuQWRkVmFsdWVLZXlBbmRUaXRsZUtleUluU2VhcmNoS2V5czogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2FuSGlnaGxpZ2h0QmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX2l0ZW1zID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgZGVmYXVsdFZhbHVlKGRhdGE6IFQpIHtcclxuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IGRhdGE7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgaW5wdXRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtdKTtcclxuICBmaWx0ZXJlZEl0ZW1zOiBCZWhhdmlvclN1YmplY3Q8YW55W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0U2VhcmNoJykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcbiAgICB0eXBlIE9iamVjdEtleSA9ICh0eXBlb2YgdGhpcy5faXRlbXMpWzBdO1xyXG4gICAgdGhpcy50aXRsZUtleU9iamVjdCA9IHRoaXMudGl0bGVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy52YWx1ZUtleU9iamVjdCA9IHRoaXMudmFsdWVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy5uZXdJdGVtcyA9IHRoaXMuY2hhbmdlSXRlbXNUeXBlKHRoaXMuX2l0ZW1zKTtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLl9kZWZhdWx0VmFsdWUpO1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0KFxyXG4gICAgICB0aGlzLm5ld0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT0gdGhpcy5fZGVmYXVsdFZhbHVlKSxcclxuICAgICAgZmFsc2UsXHJcbiAgICApO1xyXG4gICAgdGhpcy5vbkNoYW5nZVRleHQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXJJbnB1dENsaWNrZWQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtLnRpdGxlKTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuc2VsZWN0ZWRJdGVtLnRpdGxlO1xyXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zLm5leHQodGhpcy5uZXdJdGVtcyk7XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJhbmRvbUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApO1xyXG4gICAgdGhpcy5rZXlzID0gdGhpcy5zZWFyY2hLZXlzLmxlbmd0aCA+IDAgPyB0aGlzLnNlYXJjaEtleXMuc3BsaXQoJywnKSA6IFtdO1xyXG4gICAgaWYgKHRoaXMuY2FuQWRkVmFsdWVLZXlBbmRUaXRsZUtleUluU2VhcmNoS2V5cykge1xyXG4gICAgICB0aGlzLmtleXMucHVzaCh0aGlzLnRpdGxlS2V5KTtcclxuICAgICAgdGhpcy5rZXlzLnB1c2godGhpcy52YWx1ZUtleSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICAgIHRoaXMub25DaGFuZ2VUZXh0KCk7XHJcbiAgICB0aGlzLnNldElucHV0Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUtleUJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBrZXkgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmZpbHRlcmVkSXRlbXMuZ2V0VmFsdWUoKTtcclxuICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IGl0ZW1zLmZpbmRJbmRleChcclxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLnZhbHVlS2V5T2JqZWN0XSA9PT0gdGhpcy5mb2N1c0l0ZW0/LnZhbHVlLFxyXG4gICAgKTtcclxuICAgIHN3aXRjaCAoa2V5LmtleSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy5mb2N1c0l0ZW0pIHtcclxuICAgICAgICAgIHRoaXMuaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtc1t0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xyXG4gICAgICAgICAgdGhpcy5pdGVtU2VsZWN0KHRoaXMuc2VsZWN0ZWRJdGVtLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICcgJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdCYWNrc3BhY2UnOlxyXG4gICAgICAgIHRoaXMuZm9jdXNJdGVtID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy5pc09wZW5NZW51ICYmIGl0ZW1zLmxlbmd0aCAtIDEgPiB0aGlzLmN1cnJlbnRJdGVtSW5kZXgpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IHRoaXMuY3VycmVudEl0ZW1JbmRleCArIDE7XHJcbiAgICAgICAgICB0aGlzLmZvY3VzSXRlbSA9IGl0ZW1zW3RoaXMuY3VycmVudEl0ZW1JbmRleF07XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbk1lbnUgJiYgdGhpcy5jdXJyZW50SXRlbUluZGV4ID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5jdXJyZW50SXRlbUluZGV4IC0gMTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNJdGVtID0gaXRlbXNbdGhpcy5jdXJyZW50SXRlbUluZGV4XTtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1RhYic6XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpdGVtU2VsZWN0KHNlbGVjdGVkSXRlbTogTWVudUl0ZW08VD4gfCB1bmRlZmluZWQsIGlzRnJvbVVpOiBib29sZWFuKSB7XHJcbiAgICBpZiAoaXNGcm9tVWkpIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0ge30gYXMgTWVudUl0ZW08VD47XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gc2VsZWN0ZWRJdGVtO1xyXG4gICAgY29uc3QgbWFpbkl0ZW0gPSB0aGlzLl9pdGVtcy5maW5kKFxyXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMudmFsdWVLZXlPYmplY3RdID09PSBzZWxlY3RlZEl0ZW0udmFsdWUsXHJcbiAgICApO1xyXG4gICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHNlbGVjdGVkSXRlbS50aXRsZSk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBzZWxlY3RlZEl0ZW0udGl0bGU7XHJcbiAgICB0aGlzLm9uSXRlbVNlbGVjdGVkLmVtaXQobWFpbkl0ZW0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZVRleHQoKTtcclxuICB9XHJcbiAgb25JdGVtU2VsZWN0KFxyXG4gICAgZXZlbnQ6IEV2ZW50LFxyXG4gICAgc2VsZWN0ZWRJdGVtOiBNZW51SXRlbTxUPiB8IHVuZGVmaW5lZCxcclxuICAgIGlzRnJvbVVpOiBib29sZWFuLFxyXG4gICk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuZm9jdXNJdGVtID0gc2VsZWN0ZWRJdGVtO1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0KHNlbGVjdGVkSXRlbSwgaXNGcm9tVWkpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlSXRlbXNUeXBlKGl0ZW1zOiBhbnlbXSk6IE1lbnVJdGVtPFQ+W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0OiBhbnkgPSB7XHJcbiAgICAgICAgdGl0bGU6IGl0ZW1bdGhpcy50aXRsZUtleU9iamVjdF0sXHJcbiAgICAgICAgdmFsdWU6IGl0ZW1bdGhpcy52YWx1ZUtleU9iamVjdF0sXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMua2V5cy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICByZXN1bHRba2V5XSA9IGl0ZW1ba2V5XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uQ2hhbmdlVGV4dChcclxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxyXG4gICAgY2FuT3Blbk1lbnU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICApIHtcclxuICAgIGlmIChcclxuICAgICAgZXZlbnQgJiZcclxuICAgICAgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fFxyXG4gICAgICAgIGV2ZW50LmtleSA9PT0gJ1RhYicgfHxcclxuICAgICAgICBldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8XHJcbiAgICAgICAgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fFxyXG4gICAgICAgIGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaFRleHQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zLm5leHQoXHJcbiAgICAgICAgdGhpcy5uZXdJdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5rZXlzLnNvbWUoKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgaXRlbVtrZXldID09PSAnbnVtYmVyJ1xyXG4gICAgICAgICAgICAgID8gaXRlbVtrZXldID09IHRoaXMuc2VhcmNoVGV4dFxyXG4gICAgICAgICAgICAgIDogaXRlbVtrZXldLnRvU3RyaW5nKCkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0KSB8fFxyXG4gICAgICAgICAgICAgICAgICBpdGVtW2tleV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLm5ld0l0ZW1zKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMuZ2V0VmFsdWUoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNJdGVtID0gdGhpcy5maWx0ZXJlZEl0ZW1zLmdldFZhbHVlKClbMF07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBjYW5PcGVuTWVudSAmJlxyXG4gICAgICAhdGhpcy5pc09wZW5NZW51ICYmXHJcbiAgICAgIHR5cGVvZiB0aGlzLnNlYXJjaFRleHQgPT09ICdzdHJpbmcnICYmXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldElucHV0Rm9jdXMoKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gIH1cclxuICBvcGVuTWVudUNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuaXNPcGVuTWVudSA9ICF0aGlzLmlzT3Blbk1lbnU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbFRvQWN0aXZlKCkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxyXG4gICAgICAnc2Nyb2xsJyArIHRoaXMucmFuZG9tSWQgKyAnLScgKyB0aGlzLmN1cnJlbnRJdGVtSW5kZXgsXHJcbiAgICApO1xyXG4gICAgZWxlbWVudD8uc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICBibG9jazogJ2NlbnRlcicsXHJcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IG5leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoXHJcbiAgICAgICFuZXh0Rm9jdXNlZEVsZW1lbnQgfHxcclxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhuZXh0Rm9jdXNlZEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICBpZD1cImNvbnRhaW5lclwiXHJcbiAgKGtleWRvd24pPVwiaGFuZGxlS2V5Qm9hcmQoJGV2ZW50KVwiXHJcbiAgdGFiaW5kZXg9XCIwXCJcclxuICAoZm9jdXNpbik9XCJzZXRJbnB1dEZvY3VzKClcIlxyXG4gIChmb2N1c291dCk9XCJmb2N1c091dCgkZXZlbnQpXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ3NlbGVjdC1jbGlja2VkJzogaXNPcGVuTWVudSxcclxuICAgICAgJ2hpZ2hsaWdodC1iYWNrZ3JvdW5kJzpcclxuICAgICAgICBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kICYmXHJcbiAgICAgICAgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09PSAoe30gfCBqc29uKSAmJlxyXG4gICAgICAgICEoaW5wdXRGb3JtQ29udHJvbC50b3VjaGVkICYmIGlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKSxcclxuICAgICAgc2VsZWN0RXJyb3I6IGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyxcclxuICAgICAgJ2Rpc2FibGUtc2VsZWN0b3InOiBkaXNhYmxlZCxcclxuICAgIH1cIlxyXG4gICAgKGNsaWNrKT1cIm9wZW5NZW51Q2xpY2soKVwiXHJcbiAgPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci10b3BcIiAqbmdJZj1cInNlYXJjaFRleHRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxhcnJvdy1kb3duLWljb25cclxuICAgICAgKm5nSWY9XCIhc2VhcmNoVGV4dFwiXHJcbiAgICAgIGNsYXNzPVwiY2FyZXQgZmlsbC1zZWNvbmRhcnktdGV4dC1jb2xvciBoLTZcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdjYXJldC1yb3RhdGUnOiBpc09wZW5NZW51IH1cIlxyXG4gICAgPjwvYXJyb3ctZG93bi1pY29uPlxyXG4gICAgPGNsb3NlLWljb25cclxuICAgICAgKm5nSWY9XCJzZWFyY2hUZXh0XCJcclxuICAgICAgY2xhc3M9XCJjYXJldCBmaWxsLXNlY29uZGFyeS10ZXh0LWNvbG9yIGgtNVwiXHJcbiAgICAgIChjbGljayk9XCJvbkNsZWFySW5wdXRDbGlja2VkKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICA+PC9jbG9zZS1pY29uPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICNpbnB1dFNlYXJjaFxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICBpZD1cImlucHV0U2VhcmNoXCJcclxuICAgICAgY2xhc3M9XCJpbnB1dCBiZy10cmFuc3BhcmVudCBmb2N1czpvdXRsaW5lLW5vbmVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwibGFiZWxcIlxyXG4gICAgICAoa2V5dXApPVwib25DaGFuZ2VUZXh0KCRldmVudCwgdHJ1ZSlcIlxyXG4gICAgLz5cclxuICAgIDwhLS0gPHNwYW5cclxuICAgICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICAgIGxhYmVsLmxlbmd0aCA+IDAgJiYgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09ICh7fSB8IGpzb24pXHJcbiAgICAgICAgICA/ICdwbGFjZWhvbGRlcidcclxuICAgICAgICAgIDogJ3NlbGVjdGVkJ1xyXG4gICAgICBdXCJcclxuICAgICAgPnt7XHJcbiAgICAgICAgbGFiZWwubGVuZ3RoID4gMCAmJiAoc2VsZWN0ZWRJdGVtIHwganNvbikgPT0gKHt9IHwganNvbilcclxuICAgICAgICAgID8gbGFiZWxcclxuICAgICAgICAgIDogc2VsZWN0ZWRJdGVtLnRpdGxlXHJcbiAgICAgIH19PC9zcGFuXHJcbiAgICA+IC0tPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwibm8tZGF0YVwiXHJcbiAgICAqbmdJZj1cIm5ld0l0ZW1zLmxlbmd0aCA9PT0gMFwiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdtZW51LW9wZW4tbm8tZGF0YSc6IGlzT3Blbk1lbnUgfVwiXHJcbiAgPlxyXG4gICAgPHdhcm5pbmctaWNvbiBjbGFzcz1cImljb24tY29sb3IgaW5saW5lLWJsb2NrIHctNlwiPjwvd2FybmluZy1pY29uPlxyXG4gICAgPGIgY2xhc3M9XCJjb250ZW50IGJsb2NrXCI+2YXZiNix2K/bjCDbjNin2YHYqiDZhti02K88L2I+XHJcbiAgPC9kaXY+XHJcbiAgPHVsXHJcbiAgICBjbGFzcz1cIm1lbnVcIlxyXG4gICAgKm5nSWY9XCJuZXdJdGVtcy5sZW5ndGggPiAwXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ21lbnUtb3Blbic6IGlzT3Blbk1lbnUgfVwiXHJcbiAgPlxyXG4gICAgPGxpXHJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXMgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgIFtpZF09XCInc2Nyb2xsJyArIHJhbmRvbUlkICsgJy0nICsgaVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLnZhbHVlID09PSBmb2N1c0l0ZW0/LnZhbHVlIH1cIlxyXG4gICAgICAoY2xpY2spPVwib25JdGVtU2VsZWN0KCRldmVudCwgaXRlbSwgdHJ1ZSlcIlxyXG4gICAgPlxyXG4gICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbiAgPGRpdiBjbGFzcz1cImxhYmVsLWVycm9yIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgKm5nSWY9XCJpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgJiYgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgID7Yp9uM2YYg2YHbjNmE2K8g2K7Yp9mE24wg2KfYs9iqPC9zcGFuXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|