@ng-nest/ui 14.0.0 → 14.0.3
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/auto-complete/auto-complete.component.d.ts +2 -2
- package/base-form/base-form.component.d.ts +6 -3
- package/button/button.property.d.ts +11 -1
- package/cascade/cascade.component.d.ts +2 -3
- package/color-picker/color-picker.component.d.ts +1 -1
- package/core/config/config.d.ts +6 -0
- package/date-picker/date-picker.component.d.ts +1 -1
- package/date-picker/date-range.component.d.ts +1 -1
- package/dialog/dialog.module.d.ts +2 -1
- package/dialog/dialog.property.d.ts +2 -0
- package/esm2020/auto-complete/auto-complete.component.mjs +7 -5
- package/esm2020/base-form/base-form.component.mjs +11 -3
- package/esm2020/button/button.component.mjs +3 -3
- package/esm2020/button/button.property.mjs +7 -2
- package/esm2020/cascade/cascade.component.mjs +8 -9
- package/esm2020/checkbox/checkbox.component.mjs +6 -4
- package/esm2020/color-picker/color-picker-portal.component.mjs +3 -3
- package/esm2020/color-picker/color-picker.component.mjs +4 -3
- package/esm2020/core/config/config.mjs +1 -1
- package/esm2020/date-picker/date-picker.component.mjs +4 -3
- package/esm2020/date-picker/date-range.component.mjs +1 -1
- package/esm2020/dialog/dialog.module.mjs +8 -4
- package/esm2020/dialog/dialog.property.mjs +1 -1
- package/esm2020/find/find.component.mjs +5 -3
- package/esm2020/form/control.component.mjs +39 -26
- package/esm2020/form/form.component.mjs +16 -3
- package/esm2020/form/form.module.mjs +6 -3
- package/esm2020/form/form.property.mjs +10 -3
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/languages/en_US.mjs +6 -2
- package/esm2020/i18n/languages/zh_CN.mjs +6 -2
- package/esm2020/i18n/languages/zh_TW.mjs +6 -2
- package/esm2020/icon/icon.component.mjs +6 -2
- package/esm2020/input/input.component.mjs +23 -10
- package/esm2020/input/input.property.mjs +31 -2
- package/esm2020/input-number/input-number.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +16 -16
- package/esm2020/radio/radio.component.mjs +4 -3
- package/esm2020/rate/rate.component.mjs +8 -3
- package/esm2020/select/select-portal.component.mjs +15 -6
- package/esm2020/select/select.component.mjs +297 -42
- package/esm2020/select/select.module.mjs +35 -4
- package/esm2020/select/select.property.mjs +31 -3
- package/esm2020/slider-select/slider-select.component.mjs +6 -5
- package/esm2020/switch/switch.component.mjs +1 -1
- package/esm2020/table/table-body.component.mjs +15 -6
- package/esm2020/table/table-foot.component.mjs +7 -3
- package/esm2020/table/table-head.component.mjs +23 -7
- package/esm2020/table/table.component.mjs +55 -8
- package/esm2020/table/table.property.mjs +20 -5
- package/esm2020/tag/tag.component.mjs +5 -5
- package/esm2020/tag/tag.property.mjs +1 -1
- package/esm2020/textarea/textarea.component.mjs +3 -3
- package/esm2020/textarea/textarea.property.mjs +1 -6
- package/esm2020/theme/theme.component.mjs +1 -1
- package/esm2020/time-picker/time-picker.component.mjs +4 -3
- package/esm2020/transfer/transfer.component.mjs +1 -1
- package/esm2020/tree/tree-node.component.mjs +4 -70
- package/esm2020/tree/tree.component.mjs +123 -23
- package/esm2020/tree/tree.property.mjs +1 -1
- package/esm2020/upload/upload.component.mjs +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.mjs +6 -4
- package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-base-form.mjs +10 -2
- package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-button.mjs +8 -3
- package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.mjs +6 -7
- package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-checkbox.mjs +5 -3
- package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.mjs +5 -4
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +3 -2
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs +7 -3
- package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-find.mjs +4 -2
- package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +68 -31
- package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +15 -3
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-icon.mjs +5 -1
- package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input-number.mjs +2 -2
- package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input.mjs +52 -10
- package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-list.mjs +15 -15
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-radio.mjs +3 -2
- package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-rate.mjs +7 -2
- package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +375 -50
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider-select.mjs +5 -4
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +113 -23
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tag.mjs +4 -4
- package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-textarea.mjs +2 -7
- package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.mjs +3 -2
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs +125 -91
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs +6 -4
- package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-base-form.mjs +10 -2
- package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-button.mjs +8 -3
- package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-cascade.mjs +6 -7
- package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-checkbox.mjs +5 -3
- package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color-picker.mjs +5 -4
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +3 -2
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs +7 -3
- package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-find.mjs +4 -2
- package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +67 -31
- package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +15 -3
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-icon.mjs +5 -1
- package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input-number.mjs +2 -2
- package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input.mjs +52 -10
- package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-list.mjs +15 -15
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-radio.mjs +3 -2
- package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-rate.mjs +7 -2
- package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +372 -50
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider-select.mjs +5 -4
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +112 -23
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tag.mjs +4 -4
- package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-textarea.mjs +2 -7
- package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-picker.mjs +3 -2
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs +125 -91
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.component.d.ts +1 -1
- package/form/control.component.d.ts +6 -3
- package/form/examples/en_US/default/form-vaild/README.md +8 -0
- package/form/examples/zh_CN/default/form-vaild/README.md +8 -0
- package/form/form.component.d.ts +4 -1
- package/form/form.module.d.ts +2 -1
- package/form/form.property.d.ts +7 -2
- package/i18n/i18n.property.d.ts +6 -0
- package/i18n/languages/en_US.d.ts +4 -0
- package/i18n/languages/zh_CN.d.ts +4 -0
- package/i18n/languages/zh_TW.d.ts +4 -0
- package/input/input.component.d.ts +3 -0
- package/input/input.property.d.ts +31 -1
- package/input-number/input-number.component.d.ts +1 -1
- package/package.json +1 -1
- package/rate/rate.component.d.ts +1 -0
- package/select/examples/en_US/default/search/README.md +6 -0
- package/select/examples/zh_CN/default/search/README.md +6 -0
- package/select/select-portal.component.d.ts +6 -1
- package/select/select.component.d.ts +33 -6
- package/select/select.module.d.ts +4 -2
- package/select/select.property.d.ts +63 -2
- package/slider-select/slider-select.component.d.ts +1 -1
- package/switch/switch.component.d.ts +1 -1
- package/table/examples/en_US/default/fix/README.md +6 -0
- package/table/examples/en_US/default/head/README.md +6 -0
- package/table/examples/en_US/default/header/README.md +6 -0
- package/table/examples/zh_CN/default/fix/README.md +6 -0
- package/table/examples/zh_CN/default/head/README.md +6 -0
- package/table/examples/zh_CN/default/header/README.md +6 -0
- package/table/table-foot.component.d.ts +1 -0
- package/table/table-head.component.d.ts +2 -1
- package/table/table.component.d.ts +14 -2
- package/table/table.property.d.ts +48 -3
- package/tag/tag.component.d.ts +1 -1
- package/tag/tag.property.d.ts +1 -1
- package/time-picker/time-picker.component.d.ts +1 -1
- package/tree/tree-node.component.d.ts +0 -3
- package/tree/tree.component.d.ts +3 -0
- package/tree/tree.property.d.ts +5 -0
|
@@ -187,6 +187,7 @@ export class XTimePickerComponent extends XTimePickerProperty {
|
|
|
187
187
|
this.cdr.detectChanges();
|
|
188
188
|
if (this.onChange)
|
|
189
189
|
this.onChange(this.value);
|
|
190
|
+
this.formControlValidator();
|
|
190
191
|
this.nodeEmit.emit(this.value);
|
|
191
192
|
}
|
|
192
193
|
setValue(value) {
|
|
@@ -213,10 +214,10 @@ export class XTimePickerComponent extends XTimePickerProperty {
|
|
|
213
214
|
}
|
|
214
215
|
}
|
|
215
216
|
/** @nocollapse */ XTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTimePickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.DatePipe }, { token: i3.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
216
|
-
/** @nocollapse */ XTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTimePickerComponent, selector: "x-time-picker", providers: [XValueAccessor(XTimePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block}.x-time-picker{margin:0;padding:0;width:100%}.x-time-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
217
|
+
/** @nocollapse */ XTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTimePickerComponent, selector: "x-time-picker", providers: [XValueAccessor(XTimePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block;width:12rem}.x-time-picker{margin:0;padding:0;width:100%}.x-time-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
217
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTimePickerComponent, decorators: [{
|
|
218
219
|
type: Component,
|
|
219
|
-
args: [{ selector: `${XTimePickerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTimePickerComponent), DatePipe], template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block}.x-time-picker{margin:0;padding:0;width:100%}.x-time-picker x-input{width:100%}\n"] }]
|
|
220
|
+
args: [{ selector: `${XTimePickerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTimePickerComponent), DatePipe], template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block;width:12rem}.x-time-picker{margin:0;padding:0;width:100%}.x-time-picker x-input{width:100%}\n"] }]
|
|
220
221
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2.DatePipe }, { type: i3.Overlay }]; }, propDecorators: { datePicker: [{
|
|
221
222
|
type: ViewChild,
|
|
222
223
|
args: ['datePicker', { static: true }]
|
|
@@ -224,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
224
225
|
type: ViewChild,
|
|
225
226
|
args: ['inputCom', { static: true }]
|
|
226
227
|
}] } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQVcsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBVXZELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUF3QzNELFlBQ1MsUUFBbUIsRUFDbkIsVUFBc0IsRUFDckIsR0FBc0IsRUFDdEIsYUFBNkIsRUFDN0IsZ0JBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLE9BQWdCO1FBRXhCLEtBQUssRUFBRSxDQUFDO1FBUkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixl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QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLHNCQUFzQixFQUFFLFFBQVEsQ0FBQztrUUFHaEIsVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNBLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhUaW1lUGlja2VyUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UsIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlclByZWZpeCwgWFRpbWVQaWNrZXJQcm9wZXJ0eSB9IGZyb20gJy4vdGltZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNFbXB0eSwgWElzRGF0ZSwgWElzTnVtYmVyLCBYQ29ybmVyLCBYQ2xlYXJDbGFzcywgWElzU3RyaW5nIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRpbWVQaWNrZXJQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYVGltZVBpY2tlckNvbXBvbmVudCksIERhdGVQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRpbWVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBYVGltZVBpY2tlclByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJywgeyBzdGF0aWM6IHRydWUgfSkgZGF0ZVBpY2tlciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRDb20nLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoWElzRGF0ZSh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy52YWx1ZVR5cGUgPSAnZGF0ZSc7XHJcbiAgICB9IGVsc2UgaWYgKFhJc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnZhbHVlVHlwZSA9ICdudW1iZXInO1xyXG4gICAgfSBlbHNlIGlmIChYSXNTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpO1xyXG4gICAgICB0aGlzLnZhbHVlVHlwZSA9ICdzdHJpbmcnO1xyXG4gICAgfSBlbHNlIGlmIChYSXNFbXB0eSh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSByZWFkb25seTogYm9vbGVhbiA9IHRydWU7XHJcbiAgY2xlYXJhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBkaXNwbGF5VmFsdWU6IGFueSA9ICcnO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhUaW1lUGlja2VyUG9ydGFsQ29tcG9uZW50PjtcclxuICBpY29uOiBzdHJpbmcgPSAnZnRvLWNsb2NrJztcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gODtcclxuICBwcm90YWxUb2JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsdWVDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHZhbHVlVHlwZTogJ2RhdGUnIHwgJ251bWJlcicgfCAnc3RyaW5nJyA9ICdkYXRlJztcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXlcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmRhdGVQaWNrZXIubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldEZvcm1hdCgpO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldFBvcnRhbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybWF0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnSEg6bW06c3MnKSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdob3VyJykge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ID0gJ0hIJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdtaW51dGUnKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXQgPSAnSEg6bW0nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IHRydWU7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLmNsZWFyYWJsZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1sZWF2ZSgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5jbGVhcmFibGUpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2Z0by1jbG9jayc7XHJcbiAgICAgIHRoaXMuY2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUgPSAnJztcclxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XHJcbiAgICB0aGlzLm1sZWF2ZSgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmFuaW1hdGluZykgcmV0dXJuO1xyXG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhUaW1lUGlja2VyUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWENvcm5lcjtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucGxhY2VtZW50ICYmIHRoaXMucG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgdHlwZTogdGhpcy50eXBlLFxyXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgdmFsdWVDaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UsXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBpbnB1dENvbTogdGhpcy5pbnB1dENvbSxcclxuICAgICAgY2xvc2VQb3J0YWw6ICgpID0+IHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIG5vZGVFbWl0OiAobm9kZTogRGF0ZSkgPT4gdGhpcy5vbk5vZGVDbGljayhub2RlKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zZXRWYWx1ZShkYXRlKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKGRhdGUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLm5vZGVFbWl0LmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIFsnZGF0ZScsICdzdHJpbmcnXS5pbmNsdWRlcyh0aGlzLnZhbHVlVHlwZSkgPyBuZXcgRGF0ZSh2YWx1ZSkgOiB2YWx1ZS5nZXRUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoZGF0ZTogRGF0ZSB8IG51bWJlcikge1xyXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCB0aGlzLmZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBzZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxTZXJ2aWNlLnNldFBsYWNlbWVudCh7XHJcbiAgICAgIGVsZW1lbnRSZWY6IHRoaXMuaW5wdXRDb20uaW5wdXRSZWYsXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50IGFzIFhDb3JuZXIsICdib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCcsICd0b3Atc3RhcnQnLCAndG9wLWVuZCddLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW5PbjogJ3gtdGltZS1waWNrZXItcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsLm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2RhdGVQaWNrZXIgY2xhc3M9XCJ4LXRpbWUtcGlja2VyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdGltZS1waWNrZXItcm93XCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICAjaW5wdXRDb21cclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICBbbGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcclxuICAgICAgW2xhYmVsQWxpZ25dPVwibGFiZWxBbGlnblwiXHJcbiAgICAgIFtqdXN0aWZ5XT1cImp1c3RpZnlcIlxyXG4gICAgICBbYWxpZ25dPVwiYWxpZ25cIlxyXG4gICAgICBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiZGlzcGxheVZhbHVlXCJcclxuICAgICAgW3ZhbHVlVHBsXT1cInZhbHVlVHBsXCJcclxuICAgICAgW3ZhbHVlVHBsQ29udGV4dF09XCJ2YWx1ZVRwbENvbnRleHRcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICAgICAgW2JlZm9yZV09XCJiZWZvcmVcIlxyXG4gICAgICBbYWZ0ZXJdPVwiYWZ0ZXJcIlxyXG4gICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcclxuICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgIFtwb2ludGVyXT1cInRydWVcIlxyXG4gICAgICBbKGFjdGl2ZSldPVwiYWN0aXZlXCJcclxuICAgICAgKGNsZWFyRW1pdCk9XCJjbGVhckVtaXQoKVwiXHJcbiAgICAgICh4Q2xpY2spPVwic2hvd1BvcnRhbCgpXCJcclxuICAgICAgKHhNb3VzZWVudGVyKT1cIm1lbnRlcigpXCJcclxuICAgICAgKHhNb3VzZWxlYXZlKT1cIm1sZWF2ZSgpXCJcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQVcsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBVXZELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUF3QzNELFlBQ1MsUUFBbUIsRUFDbkIsVUFBc0IsRUFDYixHQUFzQixFQUM5QixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsUUFBa0IsRUFDbEIsT0FBZ0I7UUFFeEIsS0FBSyxFQUFFLENBQUM7UUFSRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDYixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUF6QmpCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDbEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFFdkIsU0FBSSxHQUFXLFdBQVcsQ0FBQztRQUczQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGdCQUFXLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUMsZUFBVSxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLG1CQUFjLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0MsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QyxjQUFTLEdBQWlDLE1BQU0sQ0FBQztRQUN6QyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVl6QyxDQUFDO0lBOUNRLFVBQVUsQ0FBQyxLQUFVO1FBQzVCLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7U0FDM0I7YUFBTSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1NBQzNCO2FBQU0sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBZ0NELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNULFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEYsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO2FBQ3ZCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sTUFBTSxHQUFrQjtZQUM1QixhQUFhLEVBQUUsRUFBRTtZQUNqQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRTtTQUMzRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RDLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxhQUFhLEVBQUUsTUFBTTtTQUN0QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFDcEIsRUFBRSxvQkFBb0IsRUFBRTthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXFCO1FBQy9CLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBcUQsQ0FBQztRQUM1RSxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBbUMsRUFBRSxFQUFFO1lBQzFHLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFZLENBQUM7WUFDMUUsS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDbkMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDM0MsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDekMsUUFBUSxFQUFFLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNoRCxTQUFTLEVBQUUsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7U0FDcEQsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXLENBQUMsSUFBVTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFXO1FBQ2xCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6RixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQW1CO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7WUFDckMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUNsQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBb0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUM7WUFDNUYsaUJBQWlCLEVBQUUsc0JBQXNCO1NBQzFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O29JQTFOVSxvQkFBb0I7d0hBQXBCLG9CQUFvQix3Q0FGcEIsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsRUFBRSxRQUFRLENBQUMsOFFDNUI3RCxxbENBb0NBOzJGRE5hLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxHQUFHLGlCQUFpQixFQUFFLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxzQkFBc0IsRUFBRSxRQUFRLENBQUM7a1FBR2hCLFVBQVU7c0JBQXBELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYVGltZVBpY2tlclBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vdGltZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRpbWVQaWNrZXJQcmVmaXgsIFhUaW1lUGlja2VyUHJvcGVydHkgfSBmcm9tICcuL3RpbWUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhJc0RhdGUsIFhJc051bWJlciwgWENvcm5lciwgWENsZWFyQ2xhc3MsIFhJc1N0cmluZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUaW1lUGlja2VyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFRpbWVQaWNrZXJDb21wb25lbnQpLCBEYXRlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUaW1lUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgWFRpbWVQaWNrZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicsIHsgc3RhdGljOiB0cnVlIH0pIGRhdGVQaWNrZXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q29tJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKFhJc0RhdGUodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZS5nZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMudmFsdWVUeXBlID0gJ2RhdGUnO1xyXG4gICAgfSBlbHNlIGlmIChYSXNOdW1iZXIodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy52YWx1ZVR5cGUgPSAnbnVtYmVyJztcclxuICAgIH0gZWxzZSBpZiAoWElzU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUodmFsdWUpLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy52YWx1ZVR5cGUgPSAnc3RyaW5nJztcclxuICAgIH0gZWxzZSBpZiAoWElzRW1wdHkodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGNsZWFyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVudGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYW5pbWF0aW5nID0gZmFsc2U7XHJcbiAgZGlzcGxheVZhbHVlOiBhbnkgPSAnJztcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYVGltZVBpY2tlclBvcnRhbENvbXBvbmVudD47XHJcbiAgaWNvbjogc3RyaW5nID0gJ2Z0by1jbG9jayc7XHJcbiAgYm94ITogRE9NUmVjdDtcclxuICBwcm90YWxIZWlnaHQhOiBudW1iZXI7XHJcbiAgbWF4Tm9kZXM6IG51bWJlciA9IDg7XHJcbiAgcHJvdGFsVG9ib3R0b206IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHZhbHVlQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGRhdGFDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcG9zaXRpb25DaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY2xvc2VTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICB2YWx1ZVR5cGU6ICdkYXRlJyB8ICdudW1iZXInIHwgJ3N0cmluZycgPSAnZGF0ZSc7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXlcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmRhdGVQaWNrZXIubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldEZvcm1hdCgpO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldFBvcnRhbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybWF0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnSEg6bW06c3MnKSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdob3VyJykge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ID0gJ0hIJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdtaW51dGUnKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXQgPSAnSEg6bW0nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IHRydWU7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLmNsZWFyYWJsZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1sZWF2ZSgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5jbGVhcmFibGUpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2Z0by1jbG9jayc7XHJcbiAgICAgIHRoaXMuY2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUgPSAnJztcclxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XHJcbiAgICB0aGlzLm1sZWF2ZSgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmFuaW1hdGluZykgcmV0dXJuO1xyXG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhUaW1lUGlja2VyUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWENvcm5lcjtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucGxhY2VtZW50ICYmIHRoaXMucG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgdHlwZTogdGhpcy50eXBlLFxyXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgdmFsdWVDaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UsXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBpbnB1dENvbTogdGhpcy5pbnB1dENvbSxcclxuICAgICAgY2xvc2VQb3J0YWw6ICgpID0+IHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIG5vZGVFbWl0OiAobm9kZTogRGF0ZSkgPT4gdGhpcy5vbk5vZGVDbGljayhub2RlKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zZXRWYWx1ZShkYXRlKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKGRhdGUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICB0aGlzLm5vZGVFbWl0LmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIFsnZGF0ZScsICdzdHJpbmcnXS5pbmNsdWRlcyh0aGlzLnZhbHVlVHlwZSkgPyBuZXcgRGF0ZSh2YWx1ZSkgOiB2YWx1ZS5nZXRUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoZGF0ZTogRGF0ZSB8IG51bWJlcikge1xyXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCB0aGlzLmZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBzZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxTZXJ2aWNlLnNldFBsYWNlbWVudCh7XHJcbiAgICAgIGVsZW1lbnRSZWY6IHRoaXMuaW5wdXRDb20uaW5wdXRSZWYsXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50IGFzIFhDb3JuZXIsICdib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCcsICd0b3Atc3RhcnQnLCAndG9wLWVuZCddLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW5PbjogJ3gtdGltZS1waWNrZXItcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsLm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2RhdGVQaWNrZXIgY2xhc3M9XCJ4LXRpbWUtcGlja2VyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdGltZS1waWNrZXItcm93XCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICAjaW5wdXRDb21cclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICBbbGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcclxuICAgICAgW2xhYmVsQWxpZ25dPVwibGFiZWxBbGlnblwiXHJcbiAgICAgIFtqdXN0aWZ5XT1cImp1c3RpZnlcIlxyXG4gICAgICBbYWxpZ25dPVwiYWxpZ25cIlxyXG4gICAgICBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgIFt2YWxpZGF0b3JdPVwidmFsaWRhdG9yXCJcclxuICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJkaXNwbGF5VmFsdWVcIlxyXG4gICAgICBbdmFsdWVUcGxdPVwidmFsdWVUcGxcIlxyXG4gICAgICBbdmFsdWVUcGxDb250ZXh0XT1cInZhbHVlVHBsQ29udGV4dFwiXHJcbiAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gICAgICBbYmVmb3JlXT1cImJlZm9yZVwiXHJcbiAgICAgIFthZnRlcl09XCJhZnRlclwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxyXG4gICAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICAgICAgW3BvaW50ZXJdPVwidHJ1ZVwiXHJcbiAgICAgIFsoYWN0aXZlKV09XCJhY3RpdmVcIlxyXG4gICAgICAoY2xlYXJFbWl0KT1cImNsZWFyRW1pdCgpXCJcclxuICAgICAgKHhDbGljayk9XCJzaG93UG9ydGFsKClcIlxyXG4gICAgICAoeE1vdXNlZW50ZXIpPVwibWVudGVyKClcIlxyXG4gICAgICAoeE1vdXNlbGVhdmUpPVwibWxlYXZlKClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -187,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
187
187
|
type: Component,
|
|
188
188
|
args: [{ selector: `${XTransferPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTransferComponent)], template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.list.length }\"\r\n ><span>{{ source.checkedCount }} / {{ source.list.length }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-box{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);width:12rem}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border-bottom:.0625rem solid var(--x-border);background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-title>span{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;padding:.25rem;height:18rem;overflow-y:auto}.x-transfer-list>li{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-list.cdk-drop-list-dragging>li:hover{background-color:transparent}.x-transfer-list.cdk-drop-list-dragging>li.cdk-drag-placeholder{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}.x-transfer-list.cdk-drop-list-dragging>li:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
|
|
189
189
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWtDLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFrQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBd0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBdUJ2RCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQTFCdEMsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFvQjtZQUN0QixJQUFJLEVBQUUsRUFB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LE9BQU8sQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2tJQWpMVSxrQkFBa0I7c0hBQWxCLGtCQUFrQixxQ0FGbEIsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxzRUN6QmpELHk3RkFtRUE7MkZEeENhLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxHQUFHLGVBQWUsRUFBRSxpQkFHZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyYW5zZmVyUHJlZml4LCBYVHJhbnNmZXJOb2RlLCBYVHJhbnNmZXJTb3VyY2UsIFhUcmFuc2ZlclByb3BlcnR5IH0gZnJvbSAnLi90cmFuc2Zlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0NoYW5nZSwgWElzRW1wdHksIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB0cmFuc2ZlckFycmF5SXRlbSwgbW92ZUl0ZW1JbkFycmF5LCBDZGtEcmFnRHJvcCwgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyYW5zZmVyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFuc2Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFRyYW5zZmVyQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmFuc2ZlckNvbXBvbmVudCBleHRlbmRzIFhUcmFuc2ZlclByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbm9kZXM6IFhUcmFuc2Zlck5vZGVbXSA9IFtdO1xyXG4gIGxlZnQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbjogdHJ1ZVxyXG4gIH07XHJcbiAgcmlnaHQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXNhYmxlZEJ1dHRvbjogdHJ1ZVxyXG4gIH07XHJcbiAgc2VhcmNoSW5wdXQ6IHN0cmluZyA9ICcnO1xyXG4gIHByaXZhdGUgX3RpdGxlcyA9IFsnTGlzdCcsICdTZWxlY3RlZCddO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRUaXRsZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoSW5wdXRDaGFuZ2Uoc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIHNvdXJjZS5saXN0ID0gc291cmNlLnNlYXJjaExpc3Q/LmZpbHRlcigoeCkgPT4geC5sYWJlbC5pbmRleE9mKHNvdXJjZS5zZWFyY2hJbnB1dCkgPj0gMCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQWxsQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGxldCBsaXN0ID0gKHNvdXJjZS5saXN0Py5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkKSBhcyBYVHJhbnNmZXJOb2RlW10pLm1hcCgoeCkgPT4ge1xyXG4gICAgICB4LmNoZWNrZWQgPSAkZXZlbnQ7XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfSk7XHJcbiAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gJGV2ZW50ID8gbGlzdC5sZW5ndGggOiAwO1xyXG4gICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSAkZXZlbnQ7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghJGV2ZW50KSAoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpLS07XHJcbiAgICBlbHNlIChzb3VyY2UuY2hlY2tlZENvdW50IGFzIG51bWJlcikrKztcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW92ZShmcm9tOiBYVHJhbnNmZXJTb3VyY2UsIHRvOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmIChmcm9tLmRpc2FibGVkQnV0dG9uKSByZXR1cm47XHJcbiAgICBsZXQgY2hlY2tlZEl0ZW1zID0gZnJvbS5saXN0Py5maWx0ZXIoKHgpID0+ICFYSXNFbXB0eSh4LmNoZWNrZWQpKSBhcyBYVHJhbnNmZXJOb2RlW107XHJcbiAgICBsZXQgaiA9IDA7XHJcbiAgICBjaGVja2VkSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IGZyb20ubGlzdD8uaW5kZXhPZih4KSBhcyBudW1iZXI7XHJcbiAgICAgIHguY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShmcm9tLmxpc3QgYXMgWFRyYW5zZmVyTm9kZVtdLCB0by5saXN0IGFzIFhUcmFuc2Zlck5vZGVbXSwgaW5kZXgsIGopO1xyXG4gICAgICBqKys7XHJcbiAgICB9KTtcclxuICAgIGZyb20uY2hlY2tlZEFsbCA9IGZhbHNlO1xyXG4gICAgZnJvbS5jaGVja2VkQ291bnQgPSAwO1xyXG4gICAgZnJvbS5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICBmcm9tLmRpc2FibGVkQnV0dG9uID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0U2VhcmNoTGlzdChmcm9tLCB0byk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkcm9wQ2RrKGV2ZW50OiBDZGtEcmFnRHJvcDxYVHJhbnNmZXJOb2RlW10gfCB1bmRlZmluZWQsIGFueT4pIHtcclxuICAgIGNvbnN0IGV2ID0gZXZlbnQgYXMgQ2RrRHJhZ0Ryb3A8WFRyYW5zZmVyTm9kZVtdPjtcclxuICAgIGlmIChldi5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXYuY29udGFpbmVyKSB7XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheShldi5jb250YWluZXIuZGF0YSwgZXYucHJldmlvdXNJbmRleCwgZXYuY3VycmVudEluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGV2LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsIGV2LmNvbnRhaW5lci5kYXRhLCBldi5wcmV2aW91c0luZGV4LCBldi5jdXJyZW50SW5kZXgpO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRBbGwodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVkaWNhdGUoaXRlbTogQ2RrRHJhZzxYVHJhbnNmZXJOb2RlPikge1xyXG4gICAgcmV0dXJuICFpdGVtLmRhdGEuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRyYW5zZmVyTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENoZWNrZWRBbGwoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmICgoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICAgIGlmIChzb3VyY2UuY2hlY2tlZENvdW50ID09PSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICBzb3VyY2UuY2hlY2tlZEFsbCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgICBzb3VyY2UuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvdXJjZS5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q2hlY2tlZENvdW50KC4uLnNvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykgc291cmNlLmNoZWNrZWRDb3VudCA9IHNvdXJjZS5saXN0Py5maWx0ZXIoKHgpID0+ICFYSXNFbXB0eSh4LmNoZWNrZWQpKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEJ1dHRvbkRpc2FibGVkKC4uLnNvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykgc291cmNlLmRpc2FibGVkQnV0dG9uID0gc291cmNlLmNoZWNrZWRDb3VudCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWUoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5yaWdodC5saXN0Py5tYXAoKHgpID0+IHguaWQpIGFzIGFueVtdO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0U2VhcmNoTGlzdCguLi5zb3VyY2VzOiBYVHJhbnNmZXJTb3VyY2VbXSkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgaWYgKFhJc0VtcHR5KHNvdXJjZS5zZWFyY2hJbnB1dCkpIHtcclxuICAgICAgICAgIHNvdXJjZS5zZWFyY2hMaXN0ID0gWy4uLihzb3VyY2UubGlzdCBhcyBYVHJhbnNmZXJOb2RlW10pXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGF0YSgpIHtcclxuICAgIFhTZXREYXRhPFhUcmFuc2Zlck5vZGU+KHRoaXMuZGF0YSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5ub2RlcyA9IHg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gdGhpcy52YWx1ZS5pbmRleE9mKHguaWQpIDwgMCk7XHJcbiAgICAgIHRoaXMucmlnaHQubGlzdCA9IHRoaXMubm9kZXMuZmlsdGVyKCh4KSA9PiB0aGlzLnZhbHVlLmluZGV4T2YoeC5pZCkgPj0gMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxlZnQubGlzdCA9IHRoaXMubm9kZXM7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgIC8vIFRvRG86IHgtY2hlY2tib3ggZXJyb3IuIEF0dGVtcHQgdG8gdXNlIGEgZGVzdHJveWVkIHZpZXc6IGRldGVjdENoYW5nZXNcclxuICAgIG9mKHRydWUpXHJcbiAgICAgIC5waXBlKGRlbGF5KDApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUaXRsZXMoKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy50aXRsZXMpKSB7XHJcbiAgICAgIHRoaXMudGl0bGVzID0gdGhpcy5fdGl0bGVzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sZWZ0LnRpdGxlID0gdGhpcy50aXRsZXNbMF07XHJcbiAgICBpZiAodGhpcy50aXRsZXMubGVuZ3RoID4gMSkgdGhpcy5yaWdodC50aXRsZSA9IHRoaXMudGl0bGVzWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmFuc2ZlciBjbGFzcz1cIngtdHJhbnNmZXJcIiBjZGtEcm9wTGlzdEdyb3VwIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYm94XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlVGl0bGVUcGw7IGNvbnRleHQ6IHsgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDx1bFxyXG4gICAgICBjbGFzcz1cIngtdHJhbnNmZXItbGlzdFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcENkaygkZXZlbnQpXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJsZWZ0Lmxpc3RcIlxyXG4gICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ1wiXHJcbiAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIGxlZnQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZU5vZGVUcGw7IGNvbnRleHQ6IHsgbm9kZTogbm9kZSwgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYnV0dG9uc1wiPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgW2Rpc2FibGVkXT1cImxlZnQuZGlzYWJsZWRCdXR0b25cIiAoY2xpY2spPVwibW92ZShsZWZ0LCByaWdodClcIj48L3gtYnV0dG9uPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgaWNvbj1cImZ0by1jaGV2cm9uLWxlZnRcIiBbZGlzYWJsZWRdPVwicmlnaHQuZGlzYWJsZWRCdXR0b25cIiAoY2xpY2spPVwibW92ZShyaWdodCwgbGVmdClcIj48L3gtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJveFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZVRpdGxlVHBsOyBjb250ZXh0OiB7IHNvdXJjZTogcmlnaHQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPHVsXHJcbiAgICAgIGNsYXNzPVwieC10cmFuc2Zlci1saXN0XCJcclxuICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICBbY2RrRHJvcExpc3REYXRhXT1cInJpZ2h0Lmxpc3RcIlxyXG4gICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ1wiXHJcbiAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIHJpZ2h0Lmxpc3Q7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VOb2RlVHBsOyBjb250ZXh0OiB7IG5vZGU6IG5vZGUsIHNvdXJjZTogcmlnaHQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvdXJjZVRpdGxlVHBsIGxldC1zb3VyY2U9XCJzb3VyY2VcIj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci10aXRsZVwiPlxyXG4gICAgPHgtY2hlY2tib3hcclxuICAgICAgW2RhdGFdPVwiW3RpdGxlVHBsID8gJycgOiBzb3VyY2UudGl0bGVdXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzb3VyY2UuY2hlY2tlZEFsbFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrZWRBbGxDaGFuZ2UoJGV2ZW50LCBzb3VyY2UpXCJcclxuICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic291cmNlLmluZGV0ZXJtaW5hdGVcIlxyXG4gICAgPjwveC1jaGVja2JveD5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0aXRsZVRwbDsgY29udGV4dDogeyAkdGl0bGU6IHNvdXJjZS50aXRsZSwgJGNoZWNrZWRDb3VudDogc291cmNlLmNoZWNrZWRDb3VudCwgJGNvdW50OiBzb3VyY2UubGlzdC5sZW5ndGggfVwiXHJcbiAgICAgID48c3Bhbj57eyBzb3VyY2UuY2hlY2tlZENvdW50IH19IC8ge3sgc291cmNlLmxpc3QubGVuZ3RoIH19PC9zcGFuPjwvbmctY29udGFpbmVyXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci1zZWFyY2hcIiAqbmdJZj1cInNlYXJjaFwiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgaWNvbj1cImZ0by1zZWFyY2hcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNvdXJjZS5zZWFyY2hJbnB1dFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaElucHV0Q2hhbmdlKHNvdXJjZSlcIlxyXG4gICAgICBjbGVhcmFibGVcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgPC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb3VyY2VOb2RlVHBsIGxldC1ub2RlPVwibm9kZVwiIGxldC1zb3VyY2U9XCJzb3VyY2VcIj5cclxuICA8eC1jaGVja2JveFxyXG4gICAgW2RhdGFdPVwiW3sgaWQ6IG5vZGUuaWQsIGxhYmVsOiBub2RlVHBsID8gbm9kZVRwbCA6IG5vZGUubGFiZWwsIG5vZGU6IG5vZGUgfV1cIlxyXG4gICAgW2Rpc2FibGVkXT1cIm5vZGUuZGlzYWJsZWRcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJub2RlLmNoZWNrZWRcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tlZENoYW5nZSgkZXZlbnQsIHNvdXJjZSlcIlxyXG4gID48L3gtY2hlY2tib3g+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWtDLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFrQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBd0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBdUJ2RCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ2IsR0FBc0IsRUFDL0IsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFMRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDYixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUExQnRDLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBb0I7WUFDdEIsSUFBSSxFQUFFLEVBQUU7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QUFPLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOztrSUFqTFUsa0JBQWtCO3NIQUFsQixrQkFBa0IscUNBRmxCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsc0VDekJqRCx5N0ZBbUVBOzJGRHhDYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsR0FBRyxlQUFlLEVBQUUsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmFuc2ZlclByZWZpeCwgWFRyYW5zZmVyTm9kZSwgWFRyYW5zZmVyU291cmNlLCBYVHJhbnNmZXJQcm9wZXJ0eSB9IGZyb20gJy4vdHJhbnNmZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhJc0VtcHR5LCBYU2V0RGF0YSwgWENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgdHJhbnNmZXJBcnJheUl0ZW0sIG1vdmVJdGVtSW5BcnJheSwgQ2RrRHJhZ0Ryb3AsIENka0RyYWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmFuc2ZlclByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2Zlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJhbnNmZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhUcmFuc2ZlckNvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJhbnNmZXJDb21wb25lbnQgZXh0ZW5kcyBYVHJhbnNmZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIG5vZGVzOiBYVHJhbnNmZXJOb2RlW10gPSBbXTtcclxuICBsZWZ0OiBYVHJhbnNmZXJTb3VyY2UgPSB7XHJcbiAgICBsaXN0OiBbXSxcclxuICAgIHNlYXJjaExpc3Q6IFtdLFxyXG4gICAgY2hlY2tlZENvdW50OiAwLFxyXG4gICAgZGlzYWJsZWRCdXR0b246IHRydWVcclxuICB9O1xyXG4gIHJpZ2h0OiBYVHJhbnNmZXJTb3VyY2UgPSB7XHJcbiAgICBsaXN0OiBbXSxcclxuICAgIHNlYXJjaExpc3Q6IFtdLFxyXG4gICAgY2hlY2tlZENvdW50OiAwLFxyXG4gICAgZGlzYWJsZWRCdXR0b246IHRydWVcclxuICB9O1xyXG4gIHNlYXJjaElucHV0OiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIF90aXRsZXMgPSBbJ0xpc3QnLCAnU2VsZWN0ZWQnXTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRhdGEgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaElucHV0Q2hhbmdlKHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBzb3VyY2UubGlzdCA9IHNvdXJjZS5zZWFyY2hMaXN0Py5maWx0ZXIoKHgpID0+IHgubGFiZWwuaW5kZXhPZihzb3VyY2Uuc2VhcmNoSW5wdXQpID49IDApO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tlZEFsbENoYW5nZSgkZXZlbnQ6IGJvb2xlYW4sIHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBsZXQgbGlzdCA9IChzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkgYXMgWFRyYW5zZmVyTm9kZVtdKS5tYXAoKHgpID0+IHtcclxuICAgICAgeC5jaGVja2VkID0gJGV2ZW50O1xyXG4gICAgICByZXR1cm4geDtcclxuICAgIH0pO1xyXG4gICAgc291cmNlLmNoZWNrZWRDb3VudCA9ICRldmVudCA/IGxpc3QubGVuZ3RoIDogMDtcclxuICAgIHNvdXJjZS5pbmRldGVybWluYXRlID0gJGV2ZW50O1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tlZENoYW5nZSgkZXZlbnQ6IGJvb2xlYW4sIHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBpZiAoISRldmVudCkgKHNvdXJjZS5jaGVja2VkQ291bnQgYXMgbnVtYmVyKS0tO1xyXG4gICAgZWxzZSAoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpKys7XHJcbiAgICB0aGlzLnNldENoZWNrZWRBbGwoc291cmNlKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoc291cmNlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG1vdmUoZnJvbTogWFRyYW5zZmVyU291cmNlLCB0bzogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBpZiAoZnJvbS5kaXNhYmxlZEJ1dHRvbikgcmV0dXJuO1xyXG4gICAgbGV0IGNoZWNrZWRJdGVtcyA9IGZyb20ubGlzdD8uZmlsdGVyKCh4KSA9PiAhWElzRW1wdHkoeC5jaGVja2VkKSkgYXMgWFRyYW5zZmVyTm9kZVtdO1xyXG4gICAgbGV0IGogPSAwO1xyXG4gICAgY2hlY2tlZEl0ZW1zLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgY29uc3QgaW5kZXggPSBmcm9tLmxpc3Q/LmluZGV4T2YoeCkgYXMgbnVtYmVyO1xyXG4gICAgICB4LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZnJvbS5saXN0IGFzIFhUcmFuc2Zlck5vZGVbXSwgdG8ubGlzdCBhcyBYVHJhbnNmZXJOb2RlW10sIGluZGV4LCBqKTtcclxuICAgICAgaisrO1xyXG4gICAgfSk7XHJcbiAgICBmcm9tLmNoZWNrZWRBbGwgPSBmYWxzZTtcclxuICAgIGZyb20uY2hlY2tlZENvdW50ID0gMDtcclxuICAgIGZyb20uaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgZnJvbS5kaXNhYmxlZEJ1dHRvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNldFNlYXJjaExpc3QoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZHJvcENkayhldmVudDogQ2RrRHJhZ0Ryb3A8WFRyYW5zZmVyTm9kZVtdIHwgdW5kZWZpbmVkLCBhbnk+KSB7XHJcbiAgICBjb25zdCBldiA9IGV2ZW50IGFzIENka0RyYWdEcm9wPFhUcmFuc2Zlck5vZGVbXT47XHJcbiAgICBpZiAoZXYucHJldmlvdXNDb250YWluZXIgPT09IGV2LmNvbnRhaW5lcikge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXYuY29udGFpbmVyLmRhdGEsIGV2LnByZXZpb3VzSW5kZXgsIGV2LmN1cnJlbnRJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShldi5wcmV2aW91c0NvbnRhaW5lci5kYXRhLCBldi5jb250YWluZXIuZGF0YSwgZXYucHJldmlvdXNJbmRleCwgZXYuY3VycmVudEluZGV4KTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQWxsKHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VhcmNoTGlzdCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJlZGljYXRlKGl0ZW06IENka0RyYWc8WFRyYW5zZmVyTm9kZT4pIHtcclxuICAgIHJldHVybiAhaXRlbS5kYXRhLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeU5vZGUoX2luZGV4OiBudW1iZXIsIGl0ZW06IFhUcmFuc2Zlck5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDaGVja2VkQWxsKC4uLnNvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykge1xyXG4gICAgICBpZiAoKHNvdXJjZS5jaGVja2VkQ291bnQgYXMgbnVtYmVyKSA+IDApIHtcclxuICAgICAgICBpZiAoc291cmNlLmNoZWNrZWRDb3VudCA9PT0gc291cmNlLmxpc3Q/LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpLmxlbmd0aCkge1xyXG4gICAgICAgICAgc291cmNlLmNoZWNrZWRBbGwgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2UuY2hlY2tlZEFsbCA9IGZhbHNlO1xyXG4gICAgICAgICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3VyY2UuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENoZWNrZWRDb3VudCguLi5zb3VyY2VzOiBYVHJhbnNmZXJTb3VyY2VbXSkge1xyXG4gICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHNvdXJjZS5jaGVja2VkQ291bnQgPSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAhWElzRW1wdHkoeC5jaGVja2VkKSkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRCdXR0b25EaXNhYmxlZCguLi5zb3VyY2VzOiBYVHJhbnNmZXJTb3VyY2VbXSkge1xyXG4gICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHNvdXJjZS5kaXNhYmxlZEJ1dHRvbiA9IHNvdXJjZS5jaGVja2VkQ291bnQgPT09IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlKCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMucmlnaHQubGlzdD8ubWFwKCh4KSA9PiB4LmlkKSBhcyBhbnlbXTtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlYXJjaExpc3QoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaCkge1xyXG4gICAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykge1xyXG4gICAgICAgIGlmIChYSXNFbXB0eShzb3VyY2Uuc2VhcmNoSW5wdXQpKSB7XHJcbiAgICAgICAgICBzb3VyY2Uuc2VhcmNoTGlzdCA9IFsuLi4oc291cmNlLmxpc3QgYXMgWFRyYW5zZmVyTm9kZVtdKV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGEoKSB7XHJcbiAgICBYU2V0RGF0YTxYVHJhbnNmZXJOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMubm9kZXMgPSB4O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldExpc3QoKSB7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubGVmdC5saXN0ID0gdGhpcy5ub2Rlcy5maWx0ZXIoKHgpID0+IHRoaXMudmFsdWUuaW5kZXhPZih4LmlkKSA8IDApO1xyXG4gICAgICB0aGlzLnJpZ2h0Lmxpc3QgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gdGhpcy52YWx1ZS5pbmRleE9mKHguaWQpID49IDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSB0aGlzLm5vZGVzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAvLyBUb0RvOiB4LWNoZWNrYm94IGVycm9yLiBBdHRlbXB0IHRvIHVzZSBhIGRlc3Ryb3llZCB2aWV3OiBkZXRlY3RDaGFuZ2VzXHJcbiAgICBvZih0cnVlKVxyXG4gICAgICAucGlwZShkZWxheSgwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VGl0bGVzKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudGl0bGVzKSkge1xyXG4gICAgICB0aGlzLnRpdGxlcyA9IHRoaXMuX3RpdGxlcztcclxuICAgIH1cclxuICAgIHRoaXMubGVmdC50aXRsZSA9IHRoaXMudGl0bGVzWzBdO1xyXG4gICAgaWYgKHRoaXMudGl0bGVzLmxlbmd0aCA+IDEpIHRoaXMucmlnaHQudGl0bGUgPSB0aGlzLnRpdGxlc1sxXTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjdHJhbnNmZXIgY2xhc3M9XCJ4LXRyYW5zZmVyXCIgY2RrRHJvcExpc3RHcm91cCBbbmdDbGFzc109XCJjbGFzc01hcFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJveFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZVRpdGxlVHBsOyBjb250ZXh0OiB7IHNvdXJjZTogbGVmdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8dWxcclxuICAgICAgY2xhc3M9XCJ4LXRyYW5zZmVyLWxpc3RcIlxyXG4gICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BDZGsoJGV2ZW50KVwiXHJcbiAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwibGVmdC5saXN0XCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWdcIlxyXG4gICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJwcmVkaWNhdGVcIlxyXG4gICAgPlxyXG4gICAgICA8bGkgY2xhc3M9XCJ4LXRyYW5zZmVyLWl0ZW1cIiAqbmdGb3I9XCJsZXQgbm9kZSBvZiBsZWZ0Lmxpc3Q7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VOb2RlVHBsOyBjb250ZXh0OiB7IG5vZGU6IG5vZGUsIHNvdXJjZTogbGVmdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJ1dHRvbnNcIj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiIFtkaXNhYmxlZF09XCJsZWZ0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUobGVmdCwgcmlnaHQpXCI+PC94LWJ1dHRvbj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgW2Rpc2FibGVkXT1cInJpZ2h0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUocmlnaHQsIGxlZnQpXCI+PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci1ib3hcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VUaXRsZVRwbDsgY29udGV4dDogeyBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDx1bFxyXG4gICAgICBjbGFzcz1cIngtdHJhbnNmZXItbGlzdFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcENkaygkZXZlbnQpXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJyaWdodC5saXN0XCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWdcIlxyXG4gICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJwcmVkaWNhdGVcIlxyXG4gICAgPlxyXG4gICAgICA8bGkgY2xhc3M9XCJ4LXRyYW5zZmVyLWl0ZW1cIiAqbmdGb3I9XCJsZXQgbm9kZSBvZiByaWdodC5saXN0OyB0cmFja0J5OiB0cmFja0J5Tm9kZVwiIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cIm5vZGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlTm9kZVRwbDsgY29udGV4dDogeyBub2RlOiBub2RlLCBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb3VyY2VUaXRsZVRwbCBsZXQtc291cmNlPVwic291cmNlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItdGl0bGVcIj5cclxuICAgIDx4LWNoZWNrYm94XHJcbiAgICAgIFtkYXRhXT1cIlt0aXRsZVRwbCA/ICcnIDogc291cmNlLnRpdGxlXVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic291cmNlLmNoZWNrZWRBbGxcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGVja2VkQWxsQ2hhbmdlKCRldmVudCwgc291cmNlKVwiXHJcbiAgICAgIFtpbmRldGVybWluYXRlXT1cInNvdXJjZS5pbmRldGVybWluYXRlXCJcclxuICAgID48L3gtY2hlY2tib3g+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGl0bGVUcGw7IGNvbnRleHQ6IHsgJHRpdGxlOiBzb3VyY2UudGl0bGUsICRjaGVja2VkQ291bnQ6IHNvdXJjZS5jaGVja2VkQ291bnQsICRjb3VudDogc291cmNlLmxpc3QubGVuZ3RoIH1cIlxyXG4gICAgICA+PHNwYW4+e3sgc291cmNlLmNoZWNrZWRDb3VudCB9fSAvIHt7IHNvdXJjZS5saXN0Lmxlbmd0aCB9fTwvc3Bhbj48L25nLWNvbnRhaW5lclxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItc2VhcmNoXCIgKm5nSWY9XCJzZWFyY2hcIj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgIGljb249XCJmdG8tc2VhcmNoXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzb3VyY2Uuc2VhcmNoSW5wdXRcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hJbnB1dENoYW5nZShzb3VyY2UpXCJcclxuICAgICAgY2xlYXJhYmxlXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PiAtLT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjc291cmNlTm9kZVRwbCBsZXQtbm9kZT1cIm5vZGVcIiBsZXQtc291cmNlPVwic291cmNlXCI+XHJcbiAgPHgtY2hlY2tib3hcclxuICAgIFtkYXRhXT1cIlt7IGlkOiBub2RlLmlkLCBsYWJlbDogbm9kZVRwbCA/IG5vZGVUcGwgOiBub2RlLmxhYmVsLCBub2RlOiBub2RlIH1dXCJcclxuICAgIFtkaXNhYmxlZF09XCJub2RlLmRpc2FibGVkXCJcclxuICAgIFsobmdNb2RlbCldPVwibm9kZS5jaGVja2VkXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrZWRDaGFuZ2UoJGV2ZW50LCBzb3VyY2UpXCJcclxuICA+PC94LWNoZWNrYm94PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';
|
|
2
2
|
import { XTreeNodePrefix, XTreeNodeProperty } from './tree.property';
|
|
3
3
|
import { XIsEmpty } from '@ng-nest/ui/core';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
import * as i1 from "@ng-nest/ui/core";
|
|
7
6
|
import * as i2 from "@angular/common";
|
|
@@ -45,74 +44,9 @@ export class XTreeNodeComponent extends XTreeNodeProperty {
|
|
|
45
44
|
this.setCheckbox();
|
|
46
45
|
this.setIndeterminate(this.node);
|
|
47
46
|
}
|
|
48
|
-
onToggle(event, node) {
|
|
49
|
-
node.open = !node.open;
|
|
50
|
-
if (this.virtualScroll) {
|
|
51
|
-
if (this.lazy && !node.childrenLoaded) {
|
|
52
|
-
this.getLazyData(node, () => this.virtualToggle(node));
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.virtualToggle(node);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
else if (node.open && !node.childrenLoaded) {
|
|
59
|
-
if (this.lazy) {
|
|
60
|
-
this.getLazyData(node);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
node.childrenLoaded = true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
event.preventDefault();
|
|
67
|
-
event.stopPropagation();
|
|
68
|
-
this.cdr.detectChanges();
|
|
69
|
-
}
|
|
70
|
-
virtualToggle(node) {
|
|
71
|
-
let index = this.tree.nodes.indexOf(node);
|
|
72
|
-
if (node.open) {
|
|
73
|
-
let addNodes = [];
|
|
74
|
-
const getNodes = (nd) => {
|
|
75
|
-
for (let child of nd.children) {
|
|
76
|
-
addNodes.push(child);
|
|
77
|
-
child.open && getNodes(child);
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
getNodes(node);
|
|
81
|
-
this.tree.nodes.splice(index + 1, 0, ...addNodes);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
let delCount = 0;
|
|
85
|
-
const getCount = (nd) => {
|
|
86
|
-
delCount += nd.children.length;
|
|
87
|
-
for (let child of nd.children) {
|
|
88
|
-
child.open && getCount(child);
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
getCount(node);
|
|
92
|
-
this.tree.nodes.splice(index + 1, delCount);
|
|
93
|
-
}
|
|
94
|
-
this.tree.nodes = [...this.tree.nodes];
|
|
95
|
-
}
|
|
96
|
-
getLazyData(node, callBack) {
|
|
97
|
-
this.loading = true;
|
|
98
|
-
this.lazyData(node.id)
|
|
99
|
-
.pipe(map((x) => x.map((y) => {
|
|
100
|
-
y.level = node.level + 1;
|
|
101
|
-
y.checked = node.checked;
|
|
102
|
-
return y;
|
|
103
|
-
})))
|
|
104
|
-
.subscribe((x) => {
|
|
105
|
-
node.children = x;
|
|
106
|
-
node.childrenLoaded = true;
|
|
107
|
-
this.loading = false;
|
|
108
|
-
if (callBack)
|
|
109
|
-
callBack();
|
|
110
|
-
this.cdr.detectChanges();
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
47
|
onActivate(event, node) {
|
|
114
48
|
const change = this.tree.activatedNode?.change;
|
|
115
|
-
this.tree.nodeOpen && node.leaf && this.onToggle(event, node);
|
|
49
|
+
this.tree.nodeOpen && node.leaf && this.tree.onToggle(event, node);
|
|
116
50
|
if (this.tree.activatedNode) {
|
|
117
51
|
if (this.tree.activatedNode.id === node.id && !this.tree.allowManyActivated)
|
|
118
52
|
return;
|
|
@@ -203,10 +137,10 @@ export class XTreeNodeComponent extends XTreeNodeProperty {
|
|
|
203
137
|
}
|
|
204
138
|
}
|
|
205
139
|
/** @nocollapse */ XTreeNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeNodeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
206
|
-
/** @nocollapse */ XTreeNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: { parent: "parent", tree: "tree" }, host: { properties: { "class.x-tree-node": "this.rootClass" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"loading\" type=\"fto-loader\" [spin]=\"loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XLinkComponent, selector: "x-link" }, { kind: "component", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["parent", "tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
140
|
+
/** @nocollapse */ XTreeNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: { parent: "parent", tree: "tree" }, host: { properties: { "class.x-tree-node": "this.rootClass" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!node.loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"node.loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XLinkComponent, selector: "x-link" }, { kind: "component", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["parent", "tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
207
141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeNodeComponent, decorators: [{
|
|
208
142
|
type: Component,
|
|
209
|
-
args: [{ selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"loading\" type=\"fto-loader\" [spin]=\"loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
|
|
143
|
+
args: [{ selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!node.loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"node.loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
|
|
210
144
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { parent: [{
|
|
211
145
|
type: Input
|
|
212
146
|
}], tree: [{
|
|
@@ -215,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
215
149
|
type: HostBinding,
|
|
216
150
|
args: ['class.x-tree-node']
|
|
217
151
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWEsaUJBQWlCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUE0QixNQUFNLGtCQUFrQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBVXJDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFpQnZEO0lBQ0UsMkNBQTJDO0lBQ3BDLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQW5CSixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFxQnpCLENBQUM7SUFwQkQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsS0FBSztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFB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Q0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUE2QjtRQUN2RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7a0lBbk1VLGtCQUFrQjtzSEFBbEIsa0JBQWtCLHNNQ3ZCL0IsbW5FQTBEQSwyNkREbkNhLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLEdBQUcsZUFBZSxNQUFNLGVBQWUsR0FBRyxpQkFHckMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDNEIsU0FBUztzQkFBMUMsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVOb2RlUHJlZml4LCBYVHJlZU5vZGUsIFhUcmVlTm9kZVByb3BlcnR5LCBYVHJlZUFjdGlvbiB9IGZyb20gJy4vdHJlZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29uZmlnU2VydmljZSwgWEJvb2xlYW4gfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVOb2RlUHJlZml4fSwgWyR7WFRyZWVOb2RlUHJlZml4fV1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtbm9kZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmVlTm9kZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlTm9kZVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBwYXJlbnQhOiBYVHJlZU5vZGVDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgdHJlZTogYW55O1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MueC10cmVlLW5vZGUnKSByb290Q2xhc3MgPSB0cnVlO1xyXG4gIHByaXZhdGUgX2xvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IGxvYWRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcclxuICB9XHJcbiAgcHVibGljIHNldCBsb2FkaW5nKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFkZGluZ0xlZnQoKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMubm9kZT8ubGV2ZWwgPyB0aGlzLm5vZGUubGV2ZWwgOiAwKSAqIE51bWJlcih0aGlzLnRyZWUuc3BhY2luZyk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBPcHRpb25hbCgpIHB1YmxpYyB0cmVlOiBYVHJlZUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5ub2RlLmNoYW5nZSA9IChjaGVjazogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoY2hlY2spIHRoaXMuc2V0Q2hlY2tib3goKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfTtcclxuICAgIHRoaXMubGV2ZWwgPSB0aGlzLm5vZGU/LmxldmVsID8gdGhpcy5ub2RlLmxldmVsIDogMDtcclxuICAgIGlmICghdGhpcy50cmVlLmxldmVsQ2hlY2spIHJldHVybjtcclxuICAgIGlmICh0aGlzLm5vZGUuY2hlY2tlZCkgdGhpcy5zZXRDaGVja2JveCgpO1xyXG4gICAgdGhpcy5zZXRJbmRldGVybWluYXRlKHRoaXMubm9kZSk7XHJcbiAgfVxyXG5cclxuICBvblRvZ2dsZShldmVudDogRXZlbnQsIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbm9kZS5vcGVuID0gIW5vZGUub3BlbjtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgaWYgKHRoaXMubGF6eSAmJiAhbm9kZS5jaGlsZHJlbkxvYWRlZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0TGF6eURhdGEobm9kZSwgKCkgPT4gdGhpcy52aXJ0dWFsVG9nZ2xlKG5vZGUpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpcnR1YWxUb2dnbGUobm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobm9kZS5vcGVuICYmICFub2RlLmNoaWxkcmVuTG9hZGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmxhenkpIHtcclxuICAgICAgICB0aGlzLmdldExhenlEYXRhKG5vZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUuY2hpbGRyZW5Mb2FkZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB2aXJ0dWFsVG9nZ2xlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy50cmVlLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICBpZiAobm9kZS5vcGVuKSB7XHJcbiAgICAgIGxldCBhZGROb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgICAgY29uc3QgZ2V0Tm9kZXMgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgYWRkTm9kZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICBjaGlsZC5vcGVuICYmIGdldE5vZGVzKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldE5vZGVzKG5vZGUpO1xyXG4gICAgICB0aGlzLnRyZWUubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4uYWRkTm9kZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGRlbENvdW50ID0gMDtcclxuICAgICAgY29uc3QgZ2V0Q291bnQgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGRlbENvdW50ICs9IG5kLmNoaWxkcmVuIS5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgbmQuY2hpbGRyZW4hKSB7XHJcbiAgICAgICAgICBjaGlsZC5vcGVuICYmIGdldENvdW50KGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldENvdW50KG5vZGUpO1xyXG4gICAgICB0aGlzLnRyZWUubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgZGVsQ291bnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmVlLm5vZGVzID0gWy4uLnRoaXMudHJlZS5ub2Rlc107XHJcbiAgfVxyXG5cclxuICBnZXRMYXp5RGF0YShub2RlOiBYVHJlZU5vZGUsIGNhbGxCYWNrPzogKCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICh0aGlzLmxhenlEYXRhIGFzIChwaWQ/OiBhbnkpID0+IE9ic2VydmFibGU8WFRyZWVOb2RlW10+KShub2RlLmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+XHJcbiAgICAgICAgICB4Lm1hcCgoeSkgPT4ge1xyXG4gICAgICAgICAgICB5LmxldmVsID0gKG5vZGUubGV2ZWwgYXMgbnVtYmVyKSArIDE7XHJcbiAgICAgICAgICAgIHkuY2hlY2tlZCA9IG5vZGUuY2hlY2tlZDtcclxuICAgICAgICAgICAgcmV0dXJuIHk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHg7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbkxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGNhbGxCYWNrKSBjYWxsQmFjaygpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkFjdGl2YXRlKGV2ZW50OiBFdmVudCwgbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBjb25zdCBjaGFuZ2U6IEZ1bmN0aW9uID0gdGhpcy50cmVlLmFjdGl2YXRlZE5vZGU/LmNoYW5nZSBhcyBGdW5jdGlvbjtcclxuICAgIHRoaXMudHJlZS5ub2RlT3BlbiAmJiBub2RlLmxlYWYgJiYgdGhpcy5vblRvZ2dsZShldmVudCwgbm9kZSk7XHJcbiAgICBpZiAodGhpcy50cmVlLmFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgaWYgKHRoaXMudHJlZS5hY3RpdmF0ZWROb2RlLmlkID09PSBub2RlLmlkICYmICF0aGlzLnRyZWUuYWxsb3dNYW55QWN0aXZhdGVkKSByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWUuYWN0aXZhdGVkTm9kZSA9IG5vZGU7XHJcbiAgICB0aGlzLnRyZWUuYWN0aXZhdGVkQ2hhbmdlLmVtaXQobm9kZSk7XHJcbiAgICBjaGFuZ2UgJiYgY2hhbmdlKCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2hlY2tib3hDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNldENoZWNrYm94KCk7XHJcbiAgICB0aGlzLnRyZWUuY2hlY2tib3hDaGFuZ2UuZW1pdCh0aGlzLm5vZGUpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tib3goKSB7XHJcbiAgICBpZiAoIXRoaXMudHJlZS5sZXZlbENoZWNrKSByZXR1cm47XHJcbiAgICB0aGlzLm5vZGUuaW5kZXRlcm1pbmF0ZSA9IHRoaXMubm9kZS5jaGVja2VkO1xyXG4gICAgdGhpcy5ub2RlLmNoaWxkcmVuICYmIHRoaXMuc2V0Q2hpbGRyZW5DaGVja2JveCh0aGlzLm5vZGUuY2hlY2tlZCBhcyBib29sZWFuKTtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgY29uc3Qgc2V0UGFyZW50ID0gKG5vZGU6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGxldCBwYXJlbnQgPSB0aGlzLnRyZWUubm9kZXMuZmluZCgoeDogWFRyZWVOb2RlKSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICAgICAgaWYgKCFwYXJlbnQgfHwgWElzRW1wdHkocGFyZW50LmNoaWxkcmVuKSkgcmV0dXJuO1xyXG4gICAgICAgIGxldCBjaGVja2VkTGlzdCA9IHBhcmVudC5jaGlsZHJlbj8uZmlsdGVyKCh5OiBYVHJlZU5vZGUpID0+IHkuY2hlY2tlZCk7XHJcbiAgICAgICAgbGV0IGluZGV0ZXJtaW5hdGVMaXN0ID0gcGFyZW50LmNoaWxkcmVuPy5maWx0ZXIoKHk6IFhUcmVlTm9kZSkgPT4geS5pbmRldGVybWluYXRlKTtcclxuICAgICAgICBwYXJlbnQuY2hlY2tlZCA9IGNoZWNrZWRMaXN0Py5sZW5ndGggPT09IHBhcmVudC5jaGlsZHJlbj8ubGVuZ3RoO1xyXG4gICAgICAgIHBhcmVudC5pbmRldGVybWluYXRlID0gKGNoZWNrZWRMaXN0IGFzIFhUcmVlTm9kZVtdKS5sZW5ndGggPiAwIHx8IChpbmRldGVybWluYXRlTGlzdCBhcyBYVHJlZU5vZGVbXSkubGVuZ3RoID4gMDtcclxuICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICBzZXRQYXJlbnQocGFyZW50KTtcclxuICAgICAgfTtcclxuICAgICAgc2V0UGFyZW50KHRoaXMubm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhcmVudD8uc2V0UGFyZW50Q2hlY2tib3goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENoaWxkcmVuQ2hlY2tib3goY2hlY2tlZDogYm9vbGVhbikge1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAoY2hpbGRyZW46IFhUcmVlTm9kZVtdLCBpc0NoZWNrZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkcmVuKSkgcmV0dXJuO1xyXG4gICAgICBmb3IgKGxldCB4IG9mIGNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHguZGlzYWJsZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgIHguY2hlY2tlZCA9IGlzQ2hlY2tlZDtcclxuICAgICAgICB4LmluZGV0ZXJtaW5hdGUgPSBpc0NoZWNrZWQ7XHJcbiAgICAgICAgeC5jaGFuZ2UgJiYgeC5jaGFuZ2UoKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBpc0NoZWNrZWQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy5ub2RlLmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBjaGVja2VkKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFBhcmVudENoZWNrYm94KCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMubm9kZS5jaGlsZHJlbikpIHJldHVybjtcclxuICAgIGxldCBjaGVja2VkTGlzdCA9IHRoaXMubm9kZS5jaGlsZHJlbj8uZmlsdGVyKCh4KSA9PiB4LmNoZWNrZWQpO1xyXG4gICAgbGV0IGluZGV0ZXJtaW5hdGVMaXN0ID0gdGhpcy5ub2RlLmNoaWxkcmVuPy5maWx0ZXIoKHgpID0+IHguaW5kZXRlcm1pbmF0ZSk7XHJcbiAgICB0aGlzLm5vZGUuY2hlY2tlZCA9IGNoZWNrZWRMaXN0Py5sZW5ndGggPT09IHRoaXMubm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xyXG4gICAgdGhpcy5ub2RlLmluZGV0ZXJtaW5hdGUgPSAoY2hlY2tlZExpc3QgYXMgWFRyZWVOb2RlW10pLmxlbmd0aCA+IDAgfHwgKGluZGV0ZXJtaW5hdGVMaXN0IGFzIFhUcmVlTm9kZVtdKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5wYXJlbnQ/LnNldFBhcmVudENoZWNrYm94KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRJbmRldGVybWluYXRlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0Q2hpbGRyZW4gPSAoY2hpbGRyZW46IFhUcmVlTm9kZVtdKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShjaGlsZHJlbikpIHJldHVybjtcclxuICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIGlmICh4LmluZGV0ZXJtaW5hdGUgfHwgeC5jaGVja2VkKSB7XHJcbiAgICAgICAgICBub2RlLmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0Q2hpbGRyZW4obm9kZS5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXROb2RlRGlzYWJsZWQoZGlzYWJsZWQ/OiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gZGlzYWJsZWQgYXMgWEJvb2xlYW47XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbihldmVudDogRXZlbnQsIGFjdGlvbjogWFRyZWVBY3Rpb24sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgYWN0aW9uLmhhbmRsZXIgJiYgYWN0aW9uLmhhbmRsZXIobm9kZSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVHJlZUFjdGlvbiB8IFhUcmVlTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIngtdHJlZS1ub2RlLWNvbnRlbnRcIlxyXG4gIFtjbGFzcy54LWFjdGl2YXRlZF09XCJ0cmVlLmFjdGl2YXRlZE5vZGU/LmlkID09PSBub2RlLmlkXCJcclxuICBbc3R5bGUucGFkZGluZy1sZWZ0LnJlbV09XCJwYWRkaW5nTGVmdFwiXHJcbiAgW3N0eWxlLmhlaWdodC5yZW1dPVwibm9kZS5oZWlnaHQgPyBub2RlLmhlaWdodCA6IG5vZGVIZWlnaHQgPyBub2RlSGVpZ2h0IDogJydcIlxyXG4gIFtzdHlsZS5hbGlnbi1pdGVtc109XCJub2RlLmFsaWduSXRlbXMgPyBub2RlLmFsaWduSXRlbXMgOiBub2RlQWxpZ25JdGVtc1wiXHJcbiAgKGNsaWNrKT1cIm9uQWN0aXZhdGUoJGV2ZW50LCBub2RlKVwiXHJcbj5cclxuICA8eC1pY29uXHJcbiAgICAqbmdJZj1cIiFsb2FkaW5nXCJcclxuICAgIFtjbGFzcy5pcy1sZWFmXT1cIiFub2RlLmxlYWZcIlxyXG4gICAgW2NsYXNzLmlzLW9wZW5dPVwibm9kZS5vcGVuXCJcclxuICAgIHR5cGU9XCJmdG8tY2hldnJvbi1yaWdodFwiXHJcbiAgICAoY2xpY2spPVwiIXRyZWUubm9kZU9wZW4gJiYgb25Ub2dnbGUoJGV2ZW50LCBub2RlKVwiXHJcbiAgPjwveC1pY29uPlxyXG4gIDx4LWljb24gKm5nSWY9XCJsb2FkaW5nXCIgdHlwZT1cImZ0by1sb2FkZXJcIiBbc3Bpbl09XCJsb2FkaW5nXCI+PC94LWljb24+XHJcbiAgPHgtY2hlY2tib3hcclxuICAgICpuZ0lmPVwidHJlZS5jaGVja2JveFwiXHJcbiAgICBbZGF0YV09XCJbeyBsYWJlbDogJycsIGlkOiBub2RlLmlkIH1dXCJcclxuICAgIFsobmdNb2RlbCldPVwibm9kZS5jaGVja2VkXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoKVwiXHJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJub2RlLmluZGV0ZXJtaW5hdGVcIlxyXG4gICAgW2Rpc2FibGVkXT1cImdldE5vZGVEaXNhYmxlZChub2RlLmRpc2FibGVkKVwiXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICA+PC94LWNoZWNrYm94PlxyXG4gIDxzcGFuXHJcbiAgICBjbGFzcz1cIngtdHJlZS1ub2RlLWxhYmVsXCJcclxuICAgIFtjbGFzcy5ub3dyYXBdPVwibm9kZS5ub3dyYXAgPT09IGZhbHNlIHx8IG5vZGUubm93cmFwID09PSB0cnVlID8gbm9kZS5ub3dyYXAgOiBub2RlTm93cmFwXCJcclxuICAgIFt0aXRsZV09XCJub2RlLmxhYmVsXCJcclxuICAgICpuZ0lmPVwiIXRyZWUubGFiZWxUcGw7IGVsc2UgbGFiZWxUcGxcIlxyXG4gICAgPnt7IG5vZGUubGFiZWwgfX08L3NwYW5cclxuICA+XHJcbiAgPG5nLXRlbXBsYXRlICNsYWJlbFRwbD5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0cmVlLmxhYmVsVHBsOyBjb250ZXh0OiB7ICRub2RlOiBub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxzcGFuIGNsYXNzPVwieC10cmVlLW5vZGUtb3BlcmF0aW9uc1wiPlxyXG4gICAgPHgtbGlua1xyXG4gICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRyZWUuYWN0aW9uczsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBbaWNvbl09XCJhY3Rpb24uaWNvblwiXHJcbiAgICAgIFt0aXRsZV09XCJhY3Rpb24ubGFiZWxcIlxyXG4gICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCBhY3Rpb24sIG5vZGUpXCJcclxuICAgID48L3gtbGluaz5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG48dWwgKm5nSWY9XCIhdmlydHVhbFNjcm9sbCAmJiAobm9kZS5jaGlsZHJlbkxvYWRlZCB8fCAobm9kZS5sZWFmICYmIG5vZGUub3BlbikpXCIgW2hpZGRlbl09XCIhbm9kZS5vcGVuXCI+XHJcbiAgPGxpXHJcbiAgICB4LXRyZWUtbm9kZVxyXG4gICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW47IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgIFtub2RlXT1cImNoaWxkXCJcclxuICAgIFtwYXJlbnRdPVwidGhpc1wiXHJcbiAgICBbbGF6eV09XCJsYXp5XCJcclxuICAgIFtsYXp5RGF0YV09XCJsYXp5RGF0YVwiXHJcbiAgICBbbm9kZUhlaWdodF09XCJub2RlSGVpZ2h0XCJcclxuICAgIFtub2RlTm93cmFwXT1cIm5vZGVOb3dyYXBcIlxyXG4gICAgW25vZGVBbGlnbkl0ZW1zXT1cIm5vZGVBbGlnbkl0ZW1zXCJcclxuICAgIFt0cmVlXT1cInRyZWVcIlxyXG4gID48L2xpPlxyXG48L3VsPlxyXG4iXX0=
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWEsaUJBQWlCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUE0QixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFTdEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQWlCdkQ7SUFDRSwyQ0FBMkM7SUFDcEMsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFMRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBbkJKLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDM0MsYUFBUSxHQUFHLEtBQUssQ0FBQztJQXFCekIsQ0FBQztJQXBCRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8s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bml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmVlTm9kZVByZWZpeCwgWFRyZWVOb2RlLCBYVHJlZU5vZGVQcm9wZXJ0eSwgWFRyZWVBY3Rpb24gfSBmcm9tICcuL3RyZWUucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNFbXB0eSwgWENvbmZpZ1NlcnZpY2UsIFhCb29sZWFuIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVOb2RlUHJlZml4fSwgWyR7WFRyZWVOb2RlUHJlZml4fV1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtbm9kZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmVlTm9kZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlTm9kZVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBwYXJlbnQhOiBYVHJlZU5vZGVDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgdHJlZTogYW55O1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MueC10cmVlLW5vZGUnKSByb290Q2xhc3MgPSB0cnVlO1xyXG4gIHByaXZhdGUgX2xvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IGxvYWRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcclxuICB9XHJcbiAgcHVibGljIHNldCBsb2FkaW5nKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFkZGluZ0xlZnQoKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMubm9kZT8ubGV2ZWwgPyB0aGlzLm5vZGUubGV2ZWwgOiAwKSAqIE51bWJlcih0aGlzLnRyZWUuc3BhY2luZyk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBPcHRpb25hbCgpIHB1YmxpYyB0cmVlOiBYVHJlZUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5ub2RlLmNoYW5nZSA9IChjaGVjazogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoY2hlY2spIHRoaXMuc2V0Q2hlY2tib3goKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfTtcclxuICAgIHRoaXMubGV2ZWwgPSB0aGlzLm5vZGU/LmxldmVsID8gdGhpcy5ub2RlLmxldmVsIDogMDtcclxuICAgIGlmICghdGhpcy50cmVlLmxldmVsQ2hlY2spIHJldHVybjtcclxuICAgIGlmICh0aGlzLm5vZGUuY2hlY2tlZCkgdGhpcy5zZXRDaGVja2JveCgpO1xyXG4gICAgdGhpcy5zZXRJbmRldGVybWluYXRlKHRoaXMubm9kZSk7XHJcbiAgfVxyXG5cclxuICBcclxuXHJcbiAgb25BY3RpdmF0ZShldmVudDogRXZlbnQsIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgY2hhbmdlOiBGdW5jdGlvbiA9IHRoaXMudHJlZS5hY3RpdmF0ZWROb2RlPy5jaGFuZ2UgYXMgRnVuY3Rpb247XHJcbiAgICB0aGlzLnRyZWUubm9kZU9wZW4gJiYgbm9kZS5sZWFmICYmIHRoaXMudHJlZS5vblRvZ2dsZShldmVudCwgbm9kZSk7XHJcbiAgICBpZiAodGhpcy50cmVlLmFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgaWYgKHRoaXMudHJlZS5hY3RpdmF0ZWROb2RlLmlkID09PSBub2RlLmlkICYmICF0aGlzLnRyZWUuYWxsb3dNYW55QWN0aXZhdGVkKSByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWUuYWN0aXZhdGVkTm9kZSA9IG5vZGU7XHJcbiAgICB0aGlzLnRyZWUuYWN0aXZhdGVkQ2hhbmdlLmVtaXQobm9kZSk7XHJcbiAgICBjaGFuZ2UgJiYgY2hhbmdlKCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2hlY2tib3hDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNldENoZWNrYm94KCk7XHJcbiAgICB0aGlzLnRyZWUuY2hlY2tib3hDaGFuZ2UuZW1pdCh0aGlzLm5vZGUpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tib3goKSB7XHJcbiAgICBpZiAoIXRoaXMudHJlZS5sZXZlbENoZWNrKSByZXR1cm47XHJcbiAgICB0aGlzLm5vZGUuaW5kZXRlcm1pbmF0ZSA9IHRoaXMubm9kZS5jaGVja2VkO1xyXG4gICAgdGhpcy5ub2RlLmNoaWxkcmVuICYmIHRoaXMuc2V0Q2hpbGRyZW5DaGVja2JveCh0aGlzLm5vZGUuY2hlY2tlZCBhcyBib29sZWFuKTtcclxuICAgIGlmICh0aGlzLnZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgY29uc3Qgc2V0UGFyZW50ID0gKG5vZGU6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGxldCBwYXJlbnQgPSB0aGlzLnRyZWUubm9kZXMuZmluZCgoeDogWFRyZWVOb2RlKSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICAgICAgaWYgKCFwYXJlbnQgfHwgWElzRW1wdHkocGFyZW50LmNoaWxkcmVuKSkgcmV0dXJuO1xyXG4gICAgICAgIGxldCBjaGVja2VkTGlzdCA9IHBhcmVudC5jaGlsZHJlbj8uZmlsdGVyKCh5OiBYVHJlZU5vZGUpID0+IHkuY2hlY2tlZCk7XHJcbiAgICAgICAgbGV0IGluZGV0ZXJtaW5hdGVMaXN0ID0gcGFyZW50LmNoaWxkcmVuPy5maWx0ZXIoKHk6IFhUcmVlTm9kZSkgPT4geS5pbmRldGVybWluYXRlKTtcclxuICAgICAgICBwYXJlbnQuY2hlY2tlZCA9IGNoZWNrZWRMaXN0Py5sZW5ndGggPT09IHBhcmVudC5jaGlsZHJlbj8ubGVuZ3RoO1xyXG4gICAgICAgIHBhcmVudC5pbmRldGVybWluYXRlID0gKGNoZWNrZWRMaXN0IGFzIFhUcmVlTm9kZVtdKS5sZW5ndGggPiAwIHx8IChpbmRldGVybWluYXRlTGlzdCBhcyBYVHJlZU5vZGVbXSkubGVuZ3RoID4gMDtcclxuICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICBzZXRQYXJlbnQocGFyZW50KTtcclxuICAgICAgfTtcclxuICAgICAgc2V0UGFyZW50KHRoaXMubm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhcmVudD8uc2V0UGFyZW50Q2hlY2tib3goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENoaWxkcmVuQ2hlY2tib3goY2hlY2tlZDogYm9vbGVhbikge1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAoY2hpbGRyZW46IFhUcmVlTm9kZVtdLCBpc0NoZWNrZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkcmVuKSkgcmV0dXJuO1xyXG4gICAgICBmb3IgKGxldCB4IG9mIGNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHguZGlzYWJsZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgIHguY2hlY2tlZCA9IGlzQ2hlY2tlZDtcclxuICAgICAgICB4LmluZGV0ZXJtaW5hdGUgPSBpc0NoZWNrZWQ7XHJcbiAgICAgICAgeC5jaGFuZ2UgJiYgeC5jaGFuZ2UoKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBpc0NoZWNrZWQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy5ub2RlLmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBjaGVja2VkKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFBhcmVudENoZWNrYm94KCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMubm9kZS5jaGlsZHJlbikpIHJldHVybjtcclxuICAgIGxldCBjaGVja2VkTGlzdCA9IHRoaXMubm9kZS5jaGlsZHJlbj8uZmlsdGVyKCh4KSA9PiB4LmNoZWNrZWQpO1xyXG4gICAgbGV0IGluZGV0ZXJtaW5hdGVMaXN0ID0gdGhpcy5ub2RlLmNoaWxkcmVuPy5maWx0ZXIoKHgpID0+IHguaW5kZXRlcm1pbmF0ZSk7XHJcbiAgICB0aGlzLm5vZGUuY2hlY2tlZCA9IGNoZWNrZWRMaXN0Py5sZW5ndGggPT09IHRoaXMubm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xyXG4gICAgdGhpcy5ub2RlLmluZGV0ZXJtaW5hdGUgPSAoY2hlY2tlZExpc3QgYXMgWFRyZWVOb2RlW10pLmxlbmd0aCA+IDAgfHwgKGluZGV0ZXJtaW5hdGVMaXN0IGFzIFhUcmVlTm9kZVtdKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5wYXJlbnQ/LnNldFBhcmVudENoZWNrYm94KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRJbmRldGVybWluYXRlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0Q2hpbGRyZW4gPSAoY2hpbGRyZW46IFhUcmVlTm9kZVtdKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShjaGlsZHJlbikpIHJldHVybjtcclxuICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIGlmICh4LmluZGV0ZXJtaW5hdGUgfHwgeC5jaGVja2VkKSB7XHJcbiAgICAgICAgICBub2RlLmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0Q2hpbGRyZW4obm9kZS5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXROb2RlRGlzYWJsZWQoZGlzYWJsZWQ/OiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gZGlzYWJsZWQgYXMgWEJvb2xlYW47XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbihldmVudDogRXZlbnQsIGFjdGlvbjogWFRyZWVBY3Rpb24sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgYWN0aW9uLmhhbmRsZXIgJiYgYWN0aW9uLmhhbmRsZXIobm9kZSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVHJlZUFjdGlvbiB8IFhUcmVlTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIngtdHJlZS1ub2RlLWNvbnRlbnRcIlxyXG4gIFtjbGFzcy54LWFjdGl2YXRlZF09XCJ0cmVlLmFjdGl2YXRlZE5vZGU/LmlkID09PSBub2RlLmlkXCJcclxuICBbc3R5bGUucGFkZGluZy1sZWZ0LnJlbV09XCJwYWRkaW5nTGVmdFwiXHJcbiAgW3N0eWxlLmhlaWdodC5yZW1dPVwibm9kZS5oZWlnaHQgPyBub2RlLmhlaWdodCA6IG5vZGVIZWlnaHQgPyBub2RlSGVpZ2h0IDogJydcIlxyXG4gIFtzdHlsZS5hbGlnbi1pdGVtc109XCJub2RlLmFsaWduSXRlbXMgPyBub2RlLmFsaWduSXRlbXMgOiBub2RlQWxpZ25JdGVtc1wiXHJcbiAgKGNsaWNrKT1cIm9uQWN0aXZhdGUoJGV2ZW50LCBub2RlKVwiXHJcbj5cclxuICA8eC1pY29uXHJcbiAgICAqbmdJZj1cIiFub2RlLmxvYWRpbmdcIlxyXG4gICAgW2NsYXNzLmlzLWxlYWZdPVwiIW5vZGUubGVhZlwiXHJcbiAgICBbY2xhc3MuaXMtb3Blbl09XCJub2RlLm9wZW5cIlxyXG4gICAgdHlwZT1cImZ0by1jaGV2cm9uLXJpZ2h0XCJcclxuICAgIChjbGljayk9XCIhdHJlZS5ub2RlT3BlbiAmJiB0cmVlLm9uVG9nZ2xlKCRldmVudCwgbm9kZSlcIlxyXG4gID48L3gtaWNvbj5cclxuICA8eC1pY29uICpuZ0lmPVwibm9kZS5sb2FkaW5nXCIgdHlwZT1cImZ0by1sb2FkZXJcIiBbc3Bpbl09XCJub2RlLmxvYWRpbmdcIj48L3gtaWNvbj5cclxuICA8eC1jaGVja2JveFxyXG4gICAgKm5nSWY9XCJ0cmVlLmNoZWNrYm94XCJcclxuICAgIFtkYXRhXT1cIlt7IGxhYmVsOiAnJywgaWQ6IG5vZGUuaWQgfV1cIlxyXG4gICAgWyhuZ01vZGVsKV09XCJub2RlLmNoZWNrZWRcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGVja2JveENoYW5nZSgpXCJcclxuICAgIFtpbmRldGVybWluYXRlXT1cIm5vZGUuaW5kZXRlcm1pbmF0ZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZ2V0Tm9kZURpc2FibGVkKG5vZGUuZGlzYWJsZWQpXCJcclxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gID48L3gtY2hlY2tib3g+XHJcbiAgPHNwYW5cclxuICAgIGNsYXNzPVwieC10cmVlLW5vZGUtbGFiZWxcIlxyXG4gICAgW2NsYXNzLm5vd3JhcF09XCJub2RlLm5vd3JhcCA9PT0gZmFsc2UgfHwgbm9kZS5ub3dyYXAgPT09IHRydWUgPyBub2RlLm5vd3JhcCA6IG5vZGVOb3dyYXBcIlxyXG4gICAgW3RpdGxlXT1cIm5vZGUubGFiZWxcIlxyXG4gICAgKm5nSWY9XCIhdHJlZS5sYWJlbFRwbDsgZWxzZSBsYWJlbFRwbFwiXHJcbiAgICA+e3sgbm9kZS5sYWJlbCB9fTwvc3BhblxyXG4gID5cclxuICA8bmctdGVtcGxhdGUgI2xhYmVsVHBsPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRyZWUubGFiZWxUcGw7IGNvbnRleHQ6IHsgJG5vZGU6IG5vZGUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPHNwYW4gY2xhc3M9XCJ4LXRyZWUtbm9kZS1vcGVyYXRpb25zXCI+XHJcbiAgICA8eC1saW5rXHJcbiAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdHJlZS5hY3Rpb25zOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcclxuICAgICAgW3RpdGxlXT1cImFjdGlvbi5sYWJlbFwiXHJcbiAgICAgIChjbGljayk9XCJvbkFjdGlvbigkZXZlbnQsIGFjdGlvbiwgbm9kZSlcIlxyXG4gICAgPjwveC1saW5rPlxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+XHJcbjx1bCAqbmdJZj1cIiF2aXJ0dWFsU2Nyb2xsICYmIChub2RlLmNoaWxkcmVuTG9hZGVkIHx8IChub2RlLmxlYWYgJiYgbm9kZS5vcGVuKSlcIiBbaGlkZGVuXT1cIiFub2RlLm9wZW5cIj5cclxuICA8bGlcclxuICAgIHgtdHJlZS1ub2RlXHJcbiAgICAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbjsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgW25vZGVdPVwiY2hpbGRcIlxyXG4gICAgW3BhcmVudF09XCJ0aGlzXCJcclxuICAgIFtsYXp5XT1cImxhenlcIlxyXG4gICAgW2xhenlEYXRhXT1cImxhenlEYXRhXCJcclxuICAgIFtub2RlSGVpZ2h0XT1cIm5vZGVIZWlnaHRcIlxyXG4gICAgW25vZGVOb3dyYXBdPVwibm9kZU5vd3JhcFwiXHJcbiAgICBbbm9kZUFsaWduSXRlbXNdPVwibm9kZUFsaWduSXRlbXNcIlxyXG4gICAgW3RyZWVdPVwidHJlZVwiXHJcbiAgPjwvbGk+XHJcbjwvdWw+XHJcbiJdfQ==
|