@ng-nest/ui 16.0.2 → 16.0.4
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 +4 -1
- package/cascade/cascade.component.d.ts +4 -1
- package/color-picker/color-picker.component.d.ts +4 -1
- package/core/functions/parent-path.d.ts +1 -0
- package/date-picker/date-picker.component.d.ts +4 -1
- package/date-picker/date-range.component.d.ts +2 -0
- package/esm2022/auto-complete/auto-complete.component.mjs +35 -7
- package/esm2022/cascade/cascade.component.mjs +36 -8
- package/esm2022/color-picker/color-picker.component.mjs +36 -8
- package/esm2022/core/functions/parent-path.mjs +10 -1
- package/esm2022/date-picker/date-picker.component.mjs +36 -9
- package/esm2022/date-picker/date-range.component.mjs +31 -6
- package/esm2022/form/control.component.mjs +2 -2
- package/esm2022/form/form.property.mjs +1 -1
- package/esm2022/input-number/input-number.component.mjs +14 -10
- package/esm2022/select/select.component.mjs +37 -9
- package/esm2022/table/table-body.component.mjs +2 -1
- package/esm2022/tabs/tab-content.component.mjs +3 -3
- package/esm2022/time-picker/time-picker.component.mjs +32 -6
- package/esm2022/tree-select/tree-select.component.mjs +36 -8
- package/fesm2022/ng-nest-ui-auto-complete.mjs +34 -7
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +35 -8
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +34 -7
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +10 -1
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +60 -8
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +1 -1
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +13 -10
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +37 -10
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +1 -0
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +2 -2
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +31 -5
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +35 -8
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/form/form.property.d.ts +10 -0
- package/input-number/input-number.component.d.ts +3 -1
- package/package.json +19 -19
- package/select/select.component.d.ts +4 -1
- package/time-picker/time-picker.component.d.ts +2 -0
- package/tree-select/tree-select.component.d.ts +4 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { interval } from 'rxjs';
|
|
2
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy,
|
|
1
|
+
import { fromEvent, interval } from 'rxjs';
|
|
2
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, inject } from '@angular/core';
|
|
3
3
|
import { XIsEmpty, XClearClass, isNotNil } from '@ng-nest/ui/core';
|
|
4
4
|
import { XInputNumberPrefix, XInputNumberProperty } from './input-number.property';
|
|
5
5
|
import { XValueAccessor } from '@ng-nest/ui/base-form';
|
|
6
|
+
import { DOCUMENT } from '@angular/common';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@ng-nest/ui/core";
|
|
8
9
|
import * as i2 from "@angular/common";
|
|
@@ -15,9 +16,6 @@ class XInputNumberComponent extends XInputNumberProperty {
|
|
|
15
16
|
this.setDisplayValue();
|
|
16
17
|
this.cdr.detectChanges();
|
|
17
18
|
}
|
|
18
|
-
onMouseup(event) {
|
|
19
|
-
this.up(event);
|
|
20
|
-
}
|
|
21
19
|
constructor(renderer, cdr, configService) {
|
|
22
20
|
super();
|
|
23
21
|
this.renderer = renderer;
|
|
@@ -29,6 +27,8 @@ class XInputNumberComponent extends XInputNumberProperty {
|
|
|
29
27
|
this.icon = '';
|
|
30
28
|
this.iconSpin = false;
|
|
31
29
|
this.clearable = false;
|
|
30
|
+
this.isDown = false;
|
|
31
|
+
this.document = inject(DOCUMENT);
|
|
32
32
|
}
|
|
33
33
|
ngOnInit() {
|
|
34
34
|
this.setFlex(this.inputNumber.nativeElement, this.renderer, this.justify, this.align, this.direction);
|
|
@@ -59,10 +59,14 @@ class XInputNumberComponent extends XInputNumberProperty {
|
|
|
59
59
|
return;
|
|
60
60
|
event.preventDefault();
|
|
61
61
|
event.stopPropagation();
|
|
62
|
+
this.isDown = true;
|
|
62
63
|
this.timer = setTimeout(() => {
|
|
63
64
|
this.mousedown$ = interval(Number(this.debounce)).subscribe(() => {
|
|
64
65
|
this.plus(event, limit, increase);
|
|
65
66
|
});
|
|
67
|
+
this.mouseup$ = fromEvent(this.document.documentElement, 'mouseup').subscribe((event) => {
|
|
68
|
+
this.up(event);
|
|
69
|
+
});
|
|
66
70
|
}, 150);
|
|
67
71
|
}
|
|
68
72
|
up(event) {
|
|
@@ -70,8 +74,11 @@ class XInputNumberComponent extends XInputNumberProperty {
|
|
|
70
74
|
return;
|
|
71
75
|
event.preventDefault();
|
|
72
76
|
event.stopPropagation();
|
|
77
|
+
this.isDown = false;
|
|
73
78
|
if (this.mousedown$)
|
|
74
79
|
this.mousedown$.unsubscribe();
|
|
80
|
+
if (this.mouseup$)
|
|
81
|
+
this.mouseup$.unsubscribe();
|
|
75
82
|
}
|
|
76
83
|
plus(event, limit, increase = true) {
|
|
77
84
|
if (this.disabled)
|
|
@@ -108,7 +115,7 @@ class XInputNumberComponent extends XInputNumberProperty {
|
|
|
108
115
|
this.cdr.detectChanges();
|
|
109
116
|
}
|
|
110
117
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: XInputNumberComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: XInputNumberComponent, selector: "x-input-number",
|
|
118
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: XInputNumberComponent, selector: "x-input-number", providers: [XValueAccessor(XInputNumberComponent)], viewQueries: [{ propertyName: "inputNumber", first: true, predicate: ["inputNumber"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #inputNumber class=\"x-input-number\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || minDisabled\"\r\n (click)=\"!minDisabled && plus($event, step, false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled && down($event, step, false)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\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 [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n (ngModelChange)=\"change($event)\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"beforeButtonTpl\"\r\n [after]=\"afterButtonTpl\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n (xInput)=\"formControlValidator()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || maxDisabled\"\r\n (click)=\"!maxDisabled && plus($event, step); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled && down($event, step)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n <ng-container *ngIf=\"invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-number{display:inline-block;width:12rem}.x-input-number{margin:0;padding:0;width:100%}.x-input-number-input{width:100%}.x-input-number-input input{text-align:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XInputComponent, selector: "x-input" }, { kind: "component", type: i5.XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
112
119
|
}
|
|
113
120
|
export { XInputNumberComponent };
|
|
114
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: XInputNumberComponent, decorators: [{
|
|
@@ -117,8 +124,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
117
124
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { inputNumber: [{
|
|
118
125
|
type: ViewChild,
|
|
119
126
|
args: ['inputNumber', { static: true }]
|
|
120
|
-
}], onMouseup: [{
|
|
121
|
-
type: HostListener,
|
|
122
|
-
args: ['document:mouseup', ['$event']]
|
|
123
127
|
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQix1QkFBdUIsRUFJdkIsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFXLFdBQVcsRUFBa0IsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBRXZELE1BUWEscUJBQXNCLFNBQVEsb0JBQW9CO0lBR3BELFVBQVUsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFXNkMsU0FBUyxDQUFDLEtBQVk7UUFDbEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsWUFBbUIsUUFBbUIsRUFBa0IsR0FBc0IsRUFBUyxhQUE2QjtRQUNsSCxLQUFLLEVBQUUsQ0FBQztRQURTLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBa0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFB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QUcsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMvRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO2lJQW5HVSxxQkFBcUI7cUhBQXJCLHFCQUFxQiwyR0FGckIsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQywyS0N0QnBELHMwRUFpRUE7O1NEekNhLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLEdBQUcsa0JBQWtCLEVBQUUsaUJBR2xCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLHVCQUF1QixDQUFDOzZKQUdOLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFpQkksU0FBUztzQkFBdEQsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbiwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhOdW1iZXIsIFhDbGVhckNsYXNzLCBYQ29uZmlnU2VydmljZSwgaXNOb3ROaWwgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWElucHV0TnVtYmVyUHJlZml4LCBYSW5wdXROdW1iZXJQcm9wZXJ0eSB9IGZyb20gJy4vaW5wdXQtbnVtYmVyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hJbnB1dE51bWJlclByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0eWxlL2luZGV4LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhJbnB1dE51bWJlckNvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYSW5wdXROdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBYSW5wdXROdW1iZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXROdW1iZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dE51bWJlciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5VmFsdWU6IGFueSA9ICcnO1xyXG4gIG1pbkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbWF4RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtb3VzZWRvd24kITogU3Vic2NyaXB0aW9uO1xyXG4gIHRpbWVyOiBhbnk7XHJcbiAgaWNvbjogc3RyaW5nID0gJyc7XHJcbiAgaWNvblNwaW4gPSBmYWxzZTtcclxuICBjbGVhcmFibGUgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pIG9uTW91c2V1cChldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMudXAoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHB1YmxpYyBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmlucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICBYQ2xlYXJDbGFzcyh0aGlzLmxhYmVsTWFwKTtcclxuICAgIHRoaXMubGFiZWxNYXBbYHgtdGV4dC1hbGlnbi0ke3RoaXMubGFiZWxBbGlnbn1gXSA9IHRoaXMubGFiZWxBbGlnbiA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXlWYWx1ZSgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHRoaXMuZGlzcGxheVZhbHVlID0gTnVtYmVyKHRoaXMudmFsdWUpLnRvRml4ZWQoTnVtYmVyKHRoaXMucHJlY2lzaW9uKSk7XHJcbiAgICBpZiAoIXRoaXMuZm9ybWF0dGVyKSByZXR1cm47XHJcbiAgICBjb25zdCBkaXNwbGF5VmFsdWUgPSBpc05vdE5pbCh0aGlzLmZvcm1hdHRlcihOdW1iZXIodGhpcy52YWx1ZSkpKSA/IHRoaXMuZm9ybWF0dGVyKE51bWJlcih0aGlzLnZhbHVlKSkgOiAnJztcclxuICAgIGlmIChpc05vdE5pbChkaXNwbGF5VmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gZGlzcGxheVZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmVyaWZ5KHZhbHVlKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZG93bihldmVudDogRXZlbnQsIGxpbWl0OiBYTnVtYmVyLCBpbmNyZWFzZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW91c2Vkb3duJCA9IGludGVydmFsKE51bWJlcih0aGlzLmRlYm91bmNlKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnBsdXMoZXZlbnQsIGxpbWl0LCBpbmNyZWFzZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgMTUwKTtcclxuICB9XHJcblxyXG4gIHVwKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLm1vdXNlZG93biQpIHRoaXMubW91c2Vkb3duJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcGx1cyhldmVudDogRXZlbnQsIGxpbWl0OiBYTnVtYmVyLCBpbmNyZWFzZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICBsaW1pdCA9IE51bWJlcihsaW1pdCk7XHJcbiAgICBpZiAoIWluY3JlYXNlKSBsaW1pdCA9IC1saW1pdDtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLnRpbWVyKSBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XHJcbiAgICBpZiAoTnVtYmVyLmlzTmFOKCt0aGlzLnZhbHVlKSkgdGhpcy52YWx1ZSA9IDA7XHJcbiAgICBsZXQgdmFsdWUgPSBOdW1iZXIodGhpcy52YWx1ZSkgKyBsaW1pdDtcclxuICAgIHRoaXMudmVyaWZ5KHZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdmVyaWZ5KHZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnN0IG9sZFZhbHVlOiBudW1iZXIgPSB0aGlzLnZhbHVlO1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgaWYgKE51bWJlci5pc05hTigrdGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG9sZFZhbHVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm1heERpc2FibGVkID0gdmFsdWUgPj0gdGhpcy5tYXg7XHJcbiAgICB0aGlzLm1pbkRpc2FibGVkID0gdmFsdWUgPD0gdGhpcy5taW47XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5tYXhEaXNhYmxlZCA/IHRoaXMubWF4IDogdGhpcy5taW5EaXNhYmxlZCA/IHRoaXMubWluIDogdmFsdWU7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNpbnB1dE51bWJlciBjbGFzcz1cIngtaW5wdXQtbnVtYmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtaW5wdXQtbnVtYmVyLXJvd1wiPlxyXG4gICAgPG5nLXRlbXBsYXRlICNiZWZvcmVCdXR0b25UcGw+XHJcbiAgICAgIDx4LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwieC1pbnB1dC1udW1iZXItcmVkdWNlXCJcclxuICAgICAgICBpY29uPVwiZnRvLW1pbnVzXCJcclxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICBbb25seUljb25dPVwiIWJvcmRlcmVkXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbWluRGlzYWJsZWRcIlxyXG4gICAgICAgIChjbGljayk9XCIhbWluRGlzYWJsZWQgJiYgcGx1cygkZXZlbnQsIHN0ZXAsIGZhbHNlKTsgZm9ybUNvbnRyb2xWYWxpZGF0b3IoKVwiXHJcbiAgICAgICAgYXR0clR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChtb3VzZWRvd24pPVwiIW1pbkRpc2FibGVkICYmIGRvd24oJGV2ZW50LCBzdGVwLCBmYWxzZSlcIlxyXG4gICAgICAgIChtb3VzZXVwKT1cInVwKCRldmVudClcIlxyXG4gICAgICA+PC94LWJ1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICAjaW5wdXRFbGVSZWZcclxuICAgICAgY2xhc3M9XCJ4LWlucHV0LW51bWJlci1pbnB1dFwiXHJcbiAgICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgIFtsYWJlbFdpZHRoXT1cImxhYmVsV2lkdGhcIlxyXG4gICAgICBbbGFiZWxBbGlnbl09XCJsYWJlbEFsaWduXCJcclxuICAgICAgW2p1c3RpZnldPVwianVzdGlmeVwiXHJcbiAgICAgIFthbGlnbl09XCJhbGlnblwiXHJcbiAgICAgIFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgW3ZhbGlkYXRvcl09XCJ2YWxpZGF0b3JcIlxyXG4gICAgICBbaWNvbl09XCJpY29uXCJcclxuICAgICAgW2ljb25TcGluXT1cImljb25TcGluXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImRpc3BsYXlWYWx1ZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW3ZhbHVlVHBsXT1cInZhbHVlVHBsXCJcclxuICAgICAgW3ZhbHVlVHBsQ29udGV4dF09XCJ2YWx1ZVRwbENvbnRleHRcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICAgICAgW2JlZm9yZV09XCJiZWZvcmVCdXR0b25UcGxcIlxyXG4gICAgICBbYWZ0ZXJdPVwiYWZ0ZXJCdXR0b25UcGxcIlxyXG4gICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcclxuICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgICh4SW5wdXQpPVwiZm9ybUNvbnRyb2xWYWxpZGF0b3IoKVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gICAgPG5nLXRlbXBsYXRlICNhZnRlckJ1dHRvblRwbD5cclxuICAgICAgPHgtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJ4LWlucHV0LW51bWJlci1wbHVzXCJcclxuICAgICAgICBpY29uPVwiZnRvLXBsdXNcIlxyXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgIFtvbmx5SWNvbl09XCIhYm9yZGVyZWRcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBtYXhEaXNhYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIiFtYXhEaXNhYmxlZCAmJiBwbHVzKCRldmVudCwgc3RlcCk7IGZvcm1Db250cm9sVmFsaWRhdG9yKClcIlxyXG4gICAgICAgIGF0dHJUeXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAobW91c2Vkb3duKT1cIiFtYXhEaXNhYmxlZCAmJiBkb3duKCRldmVudCwgc3RlcClcIlxyXG4gICAgICAgIChtb3VzZXVwKT1cInVwKCRldmVudClcIlxyXG4gICAgICA+PC94LWJ1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW52YWxpZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC10b3AtbGVmdFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC10b3AtcmlnaHRcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtYm90dG9tLWxlZnRcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtYm90dG9tLXJpZ2h0XCI+PC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBSXZCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBVyxXQUFXLEVBQWtCLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFFM0MsTUFRYSxxQkFBc0IsU0FBUSxvQkFBb0I7SUFHcEQsVUFBVSxDQUFDLEtBQVU7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQWVELFlBQW1CLFFBQW1CLEVBQWtCLEdBQXNCLEVBQVMsYUFBNkI7UUFDbEgsS0FBSyxFQUFFLENBQUM7UUFEUyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQWtCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsa0JBQWEsR0FBYixhQUFhLENB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QUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLHVCQUF1QixDQUFDOzZKQUdOLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50LCBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYSXNFbXB0eSwgWE51bWJlciwgWENsZWFyQ2xhc3MsIFhDb25maWdTZXJ2aWNlLCBpc05vdE5pbCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXROdW1iZXJQcmVmaXgsIFhJbnB1dE51bWJlclByb3BlcnR5IH0gZnJvbSAnLi9pbnB1dC1udW1iZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYSW5wdXROdW1iZXJQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS9pbmRleC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYSW5wdXROdW1iZXJDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWElucHV0TnVtYmVyQ29tcG9uZW50IGV4dGVuZHMgWElucHV0TnVtYmVyUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TnVtYmVyJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXROdW1iZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheVZhbHVlOiBhbnkgPSAnJztcclxuICBtaW5EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1heERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbW91c2Vkb3duJCE6IFN1YnNjcmlwdGlvbjtcclxuICBtb3VzZXVwJCE6IFN1YnNjcmlwdGlvbjtcclxuICB0aW1lcjogYW55O1xyXG4gIGljb246IHN0cmluZyA9ICcnO1xyXG4gIGljb25TcGluID0gZmFsc2U7XHJcbiAgY2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgaXNEb3duID0gZmFsc2U7XHJcblxyXG4gIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHB1YmxpYyBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmlucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICBYQ2xlYXJDbGFzcyh0aGlzLmxhYmVsTWFwKTtcclxuICAgIHRoaXMubGFiZWxNYXBbYHgtdGV4dC1hbGlnbi0ke3RoaXMubGFiZWxBbGlnbn1gXSA9IHRoaXMubGFiZWxBbGlnbiA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXlWYWx1ZSgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHRoaXMuZGlzcGxheVZhbHVlID0gTnVtYmVyKHRoaXMudmFsdWUpLnRvRml4ZWQoTnVtYmVyKHRoaXMucHJlY2lzaW9uKSk7XHJcbiAgICBpZiAoIXRoaXMuZm9ybWF0dGVyKSByZXR1cm47XHJcbiAgICBjb25zdCBkaXNwbGF5VmFsdWUgPSBpc05vdE5pbCh0aGlzLmZvcm1hdHRlcihOdW1iZXIodGhpcy52YWx1ZSkpKSA/IHRoaXMuZm9ybWF0dGVyKE51bWJlcih0aGlzLnZhbHVlKSkgOiAnJztcclxuICAgIGlmIChpc05vdE5pbChkaXNwbGF5VmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gZGlzcGxheVZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmVyaWZ5KHZhbHVlKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZG93bihldmVudDogRXZlbnQsIGxpbWl0OiBYTnVtYmVyLCBpbmNyZWFzZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlzRG93biA9IHRydWU7XHJcbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW91c2Vkb3duJCA9IGludGVydmFsKE51bWJlcih0aGlzLmRlYm91bmNlKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnBsdXMoZXZlbnQsIGxpbWl0LCBpbmNyZWFzZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm1vdXNldXAkID0gZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnbW91c2V1cCcpLnN1YnNjcmliZSgoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy51cChldmVudCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgMTUwKTtcclxuICB9XHJcblxyXG4gIHVwKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuaXNEb3duID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5tb3VzZWRvd24kKSB0aGlzLm1vdXNlZG93biQudW5zdWJzY3JpYmUoKTtcclxuICAgIGlmICh0aGlzLm1vdXNldXAkKSB0aGlzLm1vdXNldXAkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwbHVzKGV2ZW50OiBFdmVudCwgbGltaXQ6IFhOdW1iZXIsIGluY3JlYXNlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGxpbWl0ID0gTnVtYmVyKGxpbWl0KTtcclxuICAgIGlmICghaW5jcmVhc2UpIGxpbWl0ID0gLWxpbWl0O1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMudGltZXIpIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcclxuICAgIGlmIChOdW1iZXIuaXNOYU4oK3RoaXMudmFsdWUpKSB0aGlzLnZhbHVlID0gMDtcclxuICAgIGxldCB2YWx1ZSA9IE51bWJlcih0aGlzLnZhbHVlKSArIGxpbWl0O1xyXG4gICAgdGhpcy52ZXJpZnkodmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB2ZXJpZnkodmFsdWU6IGFueSkge1xyXG4gICAgY29uc3Qgb2xkVmFsdWU6IG51bWJlciA9IHRoaXMudmFsdWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICBpZiAoTnVtYmVyLmlzTmFOKCt0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gb2xkVmFsdWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubWF4RGlzYWJsZWQgPSB2YWx1ZSA+PSB0aGlzLm1heDtcclxuICAgIHRoaXMubWluRGlzYWJsZWQgPSB2YWx1ZSA8PSB0aGlzLm1pbjtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLm1heERpc2FibGVkID8gdGhpcy5tYXggOiB0aGlzLm1pbkRpc2FibGVkID8gdGhpcy5taW4gOiB2YWx1ZTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2lucHV0TnVtYmVyIGNsYXNzPVwieC1pbnB1dC1udW1iZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1pbnB1dC1udW1iZXItcm93XCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2JlZm9yZUJ1dHRvblRwbD5cclxuICAgICAgPHgtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJ4LWlucHV0LW51bWJlci1yZWR1Y2VcIlxyXG4gICAgICAgIGljb249XCJmdG8tbWludXNcIlxyXG4gICAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgIFtvbmx5SWNvbl09XCIhYm9yZGVyZWRcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBtaW5EaXNhYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIiFtaW5EaXNhYmxlZCAmJiBwbHVzKCRldmVudCwgc3RlcCwgZmFsc2UpOyBmb3JtQ29udHJvbFZhbGlkYXRvcigpXCJcclxuICAgICAgICBhdHRyVHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKG1vdXNlZG93bik9XCIhbWluRGlzYWJsZWQgJiYgZG93bigkZXZlbnQsIHN0ZXAsIGZhbHNlKVwiXHJcbiAgICAgICAgKG1vdXNldXApPVwidXAoJGV2ZW50KVwiXHJcbiAgICAgID48L3gtYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgICNpbnB1dEVsZVJlZlxyXG4gICAgICBjbGFzcz1cIngtaW5wdXQtbnVtYmVyLWlucHV0XCJcclxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgW2xhYmVsV2lkdGhdPVwibGFiZWxXaWR0aFwiXHJcbiAgICAgIFtsYWJlbEFsaWduXT1cImxhYmVsQWxpZ25cIlxyXG4gICAgICBbanVzdGlmeV09XCJqdXN0aWZ5XCJcclxuICAgICAgW2FsaWduXT1cImFsaWduXCJcclxuICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICBbdmFsaWRhdG9yXT1cInZhbGlkYXRvclwiXHJcbiAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICBbaWNvblNwaW5dPVwiaWNvblNwaW5cIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiZGlzcGxheVZhbHVlXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbdmFsdWVUcGxdPVwidmFsdWVUcGxcIlxyXG4gICAgICBbdmFsdWVUcGxDb250ZXh0XT1cInZhbHVlVHBsQ29udGV4dFwiXHJcbiAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gICAgICBbYmVmb3JlXT1cImJlZm9yZUJ1dHRvblRwbFwiXHJcbiAgICAgIFthZnRlcl09XCJhZnRlckJ1dHRvblRwbFwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxyXG4gICAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICAgICAgKHhJbnB1dCk9XCJmb3JtQ29udHJvbFZhbGlkYXRvcigpXCJcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2FmdGVyQnV0dG9uVHBsPlxyXG4gICAgICA8eC1idXR0b25cclxuICAgICAgICBjbGFzcz1cIngtaW5wdXQtbnVtYmVyLXBsdXNcIlxyXG4gICAgICAgIGljb249XCJmdG8tcGx1c1wiXHJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgW29ubHlJY29uXT1cIiFib3JkZXJlZFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IG1heERpc2FibGVkXCJcclxuICAgICAgICAoY2xpY2spPVwiIW1heERpc2FibGVkICYmIHBsdXMoJGV2ZW50LCBzdGVwKTsgZm9ybUNvbnRyb2xWYWxpZGF0b3IoKVwiXHJcbiAgICAgICAgYXR0clR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChtb3VzZWRvd24pPVwiIW1heERpc2FibGVkICYmIGRvd24oJGV2ZW50LCBzdGVwKVwiXHJcbiAgICAgICAgKG1vdXNldXApPVwidXAoJGV2ZW50KVwiXHJcbiAgICAgID48L3gtYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnZhbGlkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LXRvcC1sZWZ0XCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LXRvcC1yaWdodFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC1ib3R0b20tbGVmdFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC1ib3R0b20tcmlnaHRcIj48L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|