@alauda/ui 6.5.9-beta.2 → 6.5.9-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/card/helper-directives.d.ts +3 -0
- package/dialog/dialog.component.d.ts +0 -6
- package/dialog/dialog.service.d.ts +0 -2
- package/esm2020/card/card.component.mjs +2 -2
- package/esm2020/card/helper-directives.mjs +5 -3
- package/esm2020/dialog/dialog.component.mjs +3 -11
- package/esm2020/dialog/dialog.service.mjs +2 -16
- package/esm2020/input/number-input/number-input.component.mjs +11 -6
- package/esm2020/tabs/tab-header.component.mjs +2 -2
- package/esm2020/time-picker/panel/panel.component.mjs +10 -6
- package/fesm2015/alauda-ui.mjs +29 -40
- package/fesm2015/alauda-ui.mjs.map +1 -1
- package/fesm2020/alauda-ui.mjs +29 -40
- package/fesm2020/alauda-ui.mjs.map +1 -1
- package/input/number-input/number-input.component.d.ts +2 -1
- package/package.json +1 -1
- package/src/input/number-input/README.md +1 -0
- package/theme/_var.scss +1 -1
- package/time-picker/panel/panel.component.d.ts +1 -0
|
@@ -20,6 +20,7 @@ export class NumberInputComponent extends CommonFormControl {
|
|
|
20
20
|
this.placeholder = '';
|
|
21
21
|
this.controlsPosition = '';
|
|
22
22
|
this.angleControls = false;
|
|
23
|
+
this.clearable = false;
|
|
23
24
|
this.isFocus = false;
|
|
24
25
|
}
|
|
25
26
|
ngAfterContentInit() {
|
|
@@ -36,10 +37,12 @@ export class NumberInputComponent extends CommonFormControl {
|
|
|
36
37
|
return v;
|
|
37
38
|
}
|
|
38
39
|
modelOut(value) {
|
|
39
|
-
return
|
|
40
|
+
return value === null && this.clearable
|
|
41
|
+
? value
|
|
42
|
+
: Math.max(coerceNumber(this.min, Number.MIN_SAFE_INTEGER), Math.min(coerceNumber(this.max, Number.MAX_SAFE_INTEGER), this.parsePrecision(value)));
|
|
40
43
|
}
|
|
41
44
|
inputChanged(value) {
|
|
42
|
-
this.emitModel(coerceNumber(value, this.model));
|
|
45
|
+
this.emitModel(coerceNumber(value, !value && this.clearable ? null : this.model));
|
|
43
46
|
}
|
|
44
47
|
takeOneStep(positive) {
|
|
45
48
|
if (positive) {
|
|
@@ -60,13 +63,13 @@ export class NumberInputComponent extends CommonFormControl {
|
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
NumberInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NumberInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
NumberInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: NumberInputComponent, selector: "aui-number-input", inputs: { size: "size", min: "min", max: "max", step: "step", precision: "precision", controls: "controls", placeholder: "placeholder", controlsPosition: "controlsPosition", angleControls: "angleControls" }, providers: [
|
|
66
|
+
NumberInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: NumberInputComponent, selector: "aui-number-input", inputs: { size: "size", min: "min", max: "max", step: "step", precision: "precision", controls: "controls", placeholder: "placeholder", controlsPosition: "controlsPosition", angleControls: "angleControls", clearable: "clearable" }, providers: [
|
|
64
67
|
{
|
|
65
68
|
provide: NG_VALUE_ACCESSOR,
|
|
66
69
|
useExisting: forwardRef(() => NumberInputComponent),
|
|
67
70
|
multi: true,
|
|
68
71
|
},
|
|
69
|
-
], queries: [{ propertyName: "addonBeforeRefs", predicate: InputAddonBeforeDirective }, { propertyName: "addonAfterRefs", predicate: InputAddonAfterDirective }], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n", styles: [".aui-number-input{display:inline-flex;height:var(--aui-inline-height-m);color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));border-radius:var(--aui-border-radius-m)}.aui-number-input--small{height:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__inner{width:132px}.aui-number-input--small .aui-number-input__control{width:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__control--angle-up,.aui-number-input--small .aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-s) - 2px)}.aui-number-input__inner{display:flex;width:var(--aui-form-item-width-s);height:100%;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);color:inherit;background-color:inherit;z-index:1}.aui-number-input__inner:hover{border-color:rgb(var(--aui-color-primary))}.aui-number-input__input{margin:0;padding:0 calc(var(--aui-spacing-m) + 1px);min-width:0;height:100%;border:0;border-radius:inherit;background-color:inherit;color:inherit;-webkit-text-fill-color:inherit;cursor:inherit;outline:none}.aui-number-input:hover:not(.isDisabled) .aui-number-input__inner .aui-number-input__controls{display:flex}.aui-number-input.isFocused .aui-number-input__inner{border-color:rgb(var(--aui-color-primary))}:root .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input.isDisabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input.isDisabled .aui-number-input__inner{border:1px solid rgb(var(--aui-color-n-7))}.aui-number-input.hasBefore .aui-number-input__inner{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input.hasAfter .aui-number-input__inner{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input.hasBefore.hasAfter .aui-number-input__inner{border-radius:0}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-up{border-top-right-radius:var(--aui-border-radius-m)}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-down{border-bottom-right-radius:var(--aui-border-radius-m)}.aui-number-input__control{flex-shrink:0;width:calc(var(--aui-inline-height-m) - 2px);border:none;color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));background-clip:padding-box;cursor:pointer;outline:none;position:relative;height:100%;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-number-input__control:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-number-input__control:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-5))}:root .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input__control[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input__control:before{content:\"\";display:block;position:absolute;top:0;left:-1px;width:0;height:100%;border-right:1px solid rgb(var(--aui-color-border))}.aui-number-input__control--decrease{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__control--decrease:before{left:100%}.aui-number-input__control--increase{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input__control--angle-up,.aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-m) - 2px);height:calc(50% - .5px)!important;border:none}.aui-number-input__control--angle-up:focus,.aui-number-input__control--angle-down:focus{z-index:1}.aui-number-input__control--angle-down{margin-top:1px}.aui-number-input__controls{display:none;flex-direction:column;border-left:1px solid rgb(var(--aui-color-border));position:relative}.aui-number-input__controls:after{content:\"\";display:block;width:100%;height:1px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-color:rgb(var(--aui-color-border))}.aui-number-input__addon{display:flex;align-items:center;flex-shrink:0;padding:0 var(--aui-inline-padding-xs);border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8));font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-number-input__addon--before{border-right:none;border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__addon--after{border-left:none;border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}aui-number-input.ng-invalid.ng-dirty .aui-number-input__inner,.ng-submitted aui-number-input.ng-invalid .aui-number-input__inner{border-color:rgb(var(--aui-color-red))}\n"], components: [{ type: i1.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ClickOutsideDirective, selector: "[auiClickOutside]", outputs: ["auiClickOutside"], exportAs: ["auiClickOutside"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
72
|
+
], queries: [{ propertyName: "addonBeforeRefs", predicate: InputAddonBeforeDirective }, { propertyName: "addonAfterRefs", predicate: InputAddonAfterDirective }], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n", styles: [".aui-number-input{display:inline-flex;height:var(--aui-inline-height-m);color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));border-radius:var(--aui-border-radius-m)}.aui-number-input--small{height:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__inner{width:132px}.aui-number-input--small .aui-number-input__control{width:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__control--angle-up,.aui-number-input--small .aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-s) - 2px)}.aui-number-input__inner{display:flex;width:var(--aui-form-item-width-s);height:100%;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);color:inherit;background-color:inherit;z-index:1}.aui-number-input__inner:hover{border-color:rgb(var(--aui-color-primary))}.aui-number-input__input{margin:0;padding:0 calc(var(--aui-spacing-m) + 1px);min-width:0;height:100%;border:0;border-radius:inherit;background-color:inherit;color:inherit;-webkit-text-fill-color:inherit;cursor:inherit;outline:none}.aui-number-input:hover:not(.isDisabled) .aui-number-input__inner .aui-number-input__controls{display:flex}.aui-number-input.isFocused .aui-number-input__inner{border-color:rgb(var(--aui-color-primary))}:root .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input.isDisabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input.isDisabled .aui-number-input__inner{border:1px solid rgb(var(--aui-color-n-7))}.aui-number-input.hasBefore .aui-number-input__inner{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input.hasAfter .aui-number-input__inner{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input.hasBefore.hasAfter .aui-number-input__inner{border-radius:0}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-up{border-top-right-radius:var(--aui-border-radius-m)}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-down{border-bottom-right-radius:var(--aui-border-radius-m)}.aui-number-input__control{flex-shrink:0;width:calc(var(--aui-inline-height-m) - 2px);border:none;color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));background-clip:padding-box;cursor:pointer;outline:none;position:relative;height:100%;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-number-input__control:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-number-input__control:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-5))}:root .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input__control[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input__control:before{content:\"\";display:block;position:absolute;top:0;left:-1px;width:0;height:100%;border-right:1px solid rgb(var(--aui-color-border))}.aui-number-input__control--decrease{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__control--decrease:before{left:100%}.aui-number-input__control--increase{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input__control--angle-up,.aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-m) - 2px);height:calc(50% - .5px)!important;border:none;display:flex;align-items:center;justify-content:center}.aui-number-input__control--angle-up:focus,.aui-number-input__control--angle-down:focus{z-index:1}.aui-number-input__control--angle-down{margin-top:1px}.aui-number-input__controls{display:none;flex-direction:column;border-left:1px solid rgb(var(--aui-color-border));position:relative}.aui-number-input__controls:after{content:\"\";display:block;width:100%;height:1px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-color:rgb(var(--aui-color-border))}.aui-number-input__addon{display:flex;align-items:center;flex-shrink:0;padding:0 var(--aui-inline-padding-xs);border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8));font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-number-input__addon--before{border-right:none;border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__addon--after{border-left:none;border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}aui-number-input.ng-invalid.ng-dirty .aui-number-input__inner,.ng-submitted aui-number-input.ng-invalid .aui-number-input__inner{border-color:rgb(var(--aui-color-red))}\n"], components: [{ type: i1.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ClickOutsideDirective, selector: "[auiClickOutside]", outputs: ["auiClickOutside"], exportAs: ["auiClickOutside"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
70
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
71
74
|
type: Component,
|
|
72
75
|
args: [{ selector: 'aui-number-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
|
|
@@ -75,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
75
78
|
useExisting: forwardRef(() => NumberInputComponent),
|
|
76
79
|
multi: true,
|
|
77
80
|
},
|
|
78
|
-
], template: "<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n", styles: [".aui-number-input{display:inline-flex;height:var(--aui-inline-height-m);color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));border-radius:var(--aui-border-radius-m)}.aui-number-input--small{height:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__inner{width:132px}.aui-number-input--small .aui-number-input__control{width:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__control--angle-up,.aui-number-input--small .aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-s) - 2px)}.aui-number-input__inner{display:flex;width:var(--aui-form-item-width-s);height:100%;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);color:inherit;background-color:inherit;z-index:1}.aui-number-input__inner:hover{border-color:rgb(var(--aui-color-primary))}.aui-number-input__input{margin:0;padding:0 calc(var(--aui-spacing-m) + 1px);min-width:0;height:100%;border:0;border-radius:inherit;background-color:inherit;color:inherit;-webkit-text-fill-color:inherit;cursor:inherit;outline:none}.aui-number-input:hover:not(.isDisabled) .aui-number-input__inner .aui-number-input__controls{display:flex}.aui-number-input.isFocused .aui-number-input__inner{border-color:rgb(var(--aui-color-primary))}:root .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input.isDisabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input.isDisabled .aui-number-input__inner{border:1px solid rgb(var(--aui-color-n-7))}.aui-number-input.hasBefore .aui-number-input__inner{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input.hasAfter .aui-number-input__inner{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input.hasBefore.hasAfter .aui-number-input__inner{border-radius:0}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-up{border-top-right-radius:var(--aui-border-radius-m)}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-down{border-bottom-right-radius:var(--aui-border-radius-m)}.aui-number-input__control{flex-shrink:0;width:calc(var(--aui-inline-height-m) - 2px);border:none;color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));background-clip:padding-box;cursor:pointer;outline:none;position:relative;height:100%;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-number-input__control:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-number-input__control:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-5))}:root .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input__control[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input__control:before{content:\"\";display:block;position:absolute;top:0;left:-1px;width:0;height:100%;border-right:1px solid rgb(var(--aui-color-border))}.aui-number-input__control--decrease{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__control--decrease:before{left:100%}.aui-number-input__control--increase{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input__control--angle-up,.aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-m) - 2px);height:calc(50% - .5px)!important;border:none}.aui-number-input__control--angle-up:focus,.aui-number-input__control--angle-down:focus{z-index:1}.aui-number-input__control--angle-down{margin-top:1px}.aui-number-input__controls{display:none;flex-direction:column;border-left:1px solid rgb(var(--aui-color-border));position:relative}.aui-number-input__controls:after{content:\"\";display:block;width:100%;height:1px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-color:rgb(var(--aui-color-border))}.aui-number-input__addon{display:flex;align-items:center;flex-shrink:0;padding:0 var(--aui-inline-padding-xs);border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8));font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-number-input__addon--before{border-right:none;border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__addon--after{border-left:none;border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}aui-number-input.ng-invalid.ng-dirty .aui-number-input__inner,.ng-submitted aui-number-input.ng-invalid .aui-number-input__inner{border-color:rgb(var(--aui-color-red))}\n"] }]
|
|
81
|
+
], template: "<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n", styles: [".aui-number-input{display:inline-flex;height:var(--aui-inline-height-m);color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));border-radius:var(--aui-border-radius-m)}.aui-number-input--small{height:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__inner{width:132px}.aui-number-input--small .aui-number-input__control{width:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__control--angle-up,.aui-number-input--small .aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-s) - 2px)}.aui-number-input__inner{display:flex;width:var(--aui-form-item-width-s);height:100%;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);color:inherit;background-color:inherit;z-index:1}.aui-number-input__inner:hover{border-color:rgb(var(--aui-color-primary))}.aui-number-input__input{margin:0;padding:0 calc(var(--aui-spacing-m) + 1px);min-width:0;height:100%;border:0;border-radius:inherit;background-color:inherit;color:inherit;-webkit-text-fill-color:inherit;cursor:inherit;outline:none}.aui-number-input:hover:not(.isDisabled) .aui-number-input__inner .aui-number-input__controls{display:flex}.aui-number-input.isFocused .aui-number-input__inner{border-color:rgb(var(--aui-color-primary))}:root .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input.isDisabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input.isDisabled .aui-number-input__inner{border:1px solid rgb(var(--aui-color-n-7))}.aui-number-input.hasBefore .aui-number-input__inner{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input.hasAfter .aui-number-input__inner{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input.hasBefore.hasAfter .aui-number-input__inner{border-radius:0}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-up{border-top-right-radius:var(--aui-border-radius-m)}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-down{border-bottom-right-radius:var(--aui-border-radius-m)}.aui-number-input__control{flex-shrink:0;width:calc(var(--aui-inline-height-m) - 2px);border:none;color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));background-clip:padding-box;cursor:pointer;outline:none;position:relative;height:100%;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-number-input__control:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-number-input__control:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-5))}:root .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input__control[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input__control:before{content:\"\";display:block;position:absolute;top:0;left:-1px;width:0;height:100%;border-right:1px solid rgb(var(--aui-color-border))}.aui-number-input__control--decrease{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__control--decrease:before{left:100%}.aui-number-input__control--increase{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input__control--angle-up,.aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-m) - 2px);height:calc(50% - .5px)!important;border:none;display:flex;align-items:center;justify-content:center}.aui-number-input__control--angle-up:focus,.aui-number-input__control--angle-down:focus{z-index:1}.aui-number-input__control--angle-down{margin-top:1px}.aui-number-input__controls{display:none;flex-direction:column;border-left:1px solid rgb(var(--aui-color-border));position:relative}.aui-number-input__controls:after{content:\"\";display:block;width:100%;height:1px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-color:rgb(var(--aui-color-border))}.aui-number-input__addon{display:flex;align-items:center;flex-shrink:0;padding:0 var(--aui-inline-padding-xs);border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8));font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-number-input__addon--before{border-right:none;border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__addon--after{border-left:none;border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}aui-number-input.ng-invalid.ng-dirty .aui-number-input__inner,.ng-submitted aui-number-input.ng-invalid .aui-number-input__inner{border-color:rgb(var(--aui-color-red))}\n"] }]
|
|
79
82
|
}], propDecorators: { size: [{
|
|
80
83
|
type: Input
|
|
81
84
|
}], min: [{
|
|
@@ -94,6 +97,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
94
97
|
type: Input
|
|
95
98
|
}], angleControls: [{
|
|
96
99
|
type: Input
|
|
100
|
+
}], clearable: [{
|
|
101
|
+
type: Input
|
|
97
102
|
}], inputRef: [{
|
|
98
103
|
type: ViewChild,
|
|
99
104
|
args: ['inputRef', { read: ElementRef }]
|
|
@@ -104,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
104
109
|
type: ContentChildren,
|
|
105
110
|
args: [InputAddonAfterDirective]
|
|
106
111
|
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsZUFBZSxHQUVoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQU8sUUFBUSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUMxQixNQUFNLHNCQUFzQixDQUFDOzs7OztBQWlCOUIsTUFBTSxPQUFPLG9CQUNYLFNBQVEsaUJBQXlCO0lBaEJuQzs7UUFtQkUsUUFBRyxHQUFRLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBR3hDLFNBQUksR0FBa0IsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUczQyxRQUFHLEdBQW9CLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUcvQyxRQUFHLEdBQW9CLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUcvQyxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBTVQsYUFBUSxHQUFHLElBQUksQ0FBQztRQUdoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUdqQixxQkFBZ0IsR0FBRyxFQUFF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QkFDaEIsS0FBSyxhQUNmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFTRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUkxQixlQUFlO3NCQUQvQixlQUFlO3VCQUFDLHlCQUF5QjtnQkFJekIsY0FBYztzQkFEOUIsZUFBZTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vZm9ybSc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQmVtLCBidWlsZEJlbSwgY29lcmNlTnVtYmVyLCB3YXRjaENvbnRlbnRFeGlzdCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7XG4gIElucHV0QWRkb25BZnRlckRpcmVjdGl2ZSxcbiAgSW5wdXRBZGRvbkJlZm9yZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vaGVscGVyLWRpcmVjdGl2ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktbnVtYmVyLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTnVtYmVySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBDb21tb25Gb3JtQ29udHJvbDxudW1iZXI+XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICBiZW06IEJlbSA9IGJ1aWxkQmVtKCdhdWktbnVtYmVyLWlucHV0Jyk7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogQ29tcG9uZW50U2l6ZSA9IENvbXBvbmVudFNpemUuTWVkaXVtO1xuXG4gIEBJbnB1dCgpXG4gIG1pbjogc3RyaW5nIHwgbnVtYmVyID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XG5cbiAgQElucHV0KClcbiAgbWF4OiBzdHJpbmcgfCBudW1iZXIgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblxuICBASW5wdXQoKVxuICBzdGVwID0gMTtcblxuICBASW5wdXQoKVxuICBwcmVjaXNpb246IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBjb250cm9scyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnJztcblxuICBASW5wdXQoKVxuICBjb250cm9sc1Bvc2l0aW9uID0gJyc7XG5cbiAgQElucHV0KClcbiAgYW5nbGVDb250cm9scyA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGlucHV0UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oSW5wdXRBZGRvbkJlZm9yZURpcmVjdGl2ZSlcbiAgcHJpdmF0ZSByZWFkb25seSBhZGRvbkJlZm9yZVJlZnM6IFF1ZXJ5TGlzdDxJbnB1dEFkZG9uQmVmb3JlRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKElucHV0QWRkb25BZnRlckRpcmVjdGl2ZSlcbiAgcHJpdmF0ZSByZWFkb25seSBhZGRvbkFmdGVyUmVmczogUXVlcnlMaXN0PElucHV0QWRkb25BZnRlckRpcmVjdGl2ZT47XG5cbiAgaXNGb2N1cyA9IGZhbHNlO1xuXG4gIGhhc0FkZG9uQmVmb3JlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaGFzQWRkb25BZnRlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuaGFzQWRkb25CZWZvcmUkID0gd2F0Y2hDb250ZW50RXhpc3QodGhpcy5hZGRvbkJlZm9yZVJlZnMpO1xuICAgIHRoaXMuaGFzQWRkb25BZnRlciQgPSB3YXRjaENvbnRlbnRFeGlzdCh0aGlzLmFkZG9uQWZ0ZXJSZWZzKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAodGhpcy5tb2RlbCA/PyAnJykgKyAnJztcbiAgfVxuXG4gIG92ZXJyaWRlIHZhbHVlSW4odjogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICh2ID8/ICcnKSArICcnO1xuICAgIH1cbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIG92ZXJyaWRlIG1vZGVsT3V0KHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoXG4gICAgICBjb2VyY2VOdW1iZXIodGhpcy5taW4sIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKSxcbiAgICAgIE1hdGgubWluKFxuICAgICAgICBjb2VyY2VOdW1iZXIodGhpcy5tYXgsIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSxcbiAgICAgICAgdGhpcy5wYXJzZVByZWNpc2lvbih2YWx1ZSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBpbnB1dENoYW5nZWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZW1pdE1vZGVsKGNvZXJjZU51bWJlcih2YWx1ZSwgdGhpcy5tb2RlbCkpO1xuICB9XG5cbiAgdGFrZU9uZVN0ZXAocG9zaXRpdmU6IGJvb2xlYW4pIHtcbiAgICBpZiAocG9zaXRpdmUpIHtcbiAgICAgIHRoaXMuZW1pdE1vZGVsKCh0aGlzLm1vZGVsID8/IDApICsgdGhpcy5zdGVwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0TW9kZWwoKHRoaXMubW9kZWwgPz8gMCkgLSB0aGlzLnN0ZXApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VQcmVjaXNpb24odmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMucHJlY2lzaW9uID8/IHRoaXMuZ2V0U3RlcFByZWNpc2lvbigpO1xuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlLnRvRml4ZWQocHJlY2lzaW9uKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFN0ZXBQcmVjaXNpb24oKSB7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuc3RlcCArICcnO1xuICAgIGNvbnN0IGluZGV4ID0gc3RlcC5pbmRleE9mKCcuJyk7XG4gICAgcmV0dXJuIGluZGV4IDwgMCA/IDAgOiBzdGVwLnNsaWNlKGluZGV4ICsgMSkubGVuZ3RoO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzc109XCJiZW0uYmxvY2soc2l6ZSlcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgaXNGb2N1c2VkOiBpc0ZvY3VzLFxuICAgIGlzRGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgIGhhc0JlZm9yZTogaGFzQWRkb25CZWZvcmUkIHwgYXN5bmMsXG4gICAgaGFzQWZ0ZXI6IGhhc0FkZG9uQWZ0ZXIkIHwgYXN5bmNcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICAqbmdJZj1cImhhc0FkZG9uQmVmb3JlJCB8IGFzeW5jXCJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2FkZG9uJywgJ2JlZm9yZScpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthdWlJbnB1dEFkZG9uQmVmb3JlXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2lubmVyJylcIlxuICAgIGF1aUNsaWNrT3V0c2lkZVxuICAgIChhdWlDbGlja091dHNpZGUpPVwiaXNGb2N1cyA9IGZhbHNlXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiY29udHJvbHMgJiYgIWFuZ2xlQ29udHJvbHNcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgnY29udHJvbCcsICdkZWNyZWFzZScpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBtb2RlbCA8PSBtaW5cIlxuICAgICAgKGNsaWNrKT1cInRha2VPbmVTdGVwKGZhbHNlKTsgaXNGb2N1cyA9IHRydWVcIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwibWludXNcIj48L2F1aS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgKGNoYW5nZSk9XCJpbnB1dENoYW5nZWQoJGFueSgkZXZlbnQpLnRhcmdldC52YWx1ZSlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCdpbnB1dCcpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAoZm9jdXMpPVwiaXNGb2N1cyA9IHRydWVcIlxuICAgICAgKGJsdXIpPVwiaXNGb2N1cyA9IGZhbHNlXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBhbmdsZUNvbnRyb2xzID8gJ2xlZnQnIDogJ2NlbnRlcicgfVwiXG4gICAgLz5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cImNvbnRyb2xzICYmICFhbmdsZUNvbnRyb2xzXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRyb2wnLCAnaW5jcmVhc2UnKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbW9kZWwgPj0gbWF4XCJcbiAgICAgIChjbGljayk9XCJ0YWtlT25lU3RlcCh0cnVlKTsgaXNGb2N1cyA9IHRydWVcIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwicGx1c1wiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJjb250cm9scyAmJiBhbmdsZUNvbnRyb2xzXCJcbiAgICAgIGNsYXNzPVwiYXVpLW51bWJlci1pbnB1dF9fY29udHJvbHNcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCdjb250cm9sJywgJ2FuZ2xlLXVwJylcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbW9kZWwgPj0gbWF4XCJcbiAgICAgICAgKGNsaWNrKT1cInRha2VPbmVTdGVwKHRydWUpOyBpc0ZvY3VzID0gdHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxhdWktaWNvbiBpY29uPVwiYW5nbGVfdXBcIj48L2F1aS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgnY29udHJvbCcsICdhbmdsZS1kb3duJylcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbW9kZWwgPD0gbWluXCJcbiAgICAgICAgKGNsaWNrKT1cInRha2VPbmVTdGVwKGZhbHNlKTsgaXNGb2N1cyA9IHRydWVcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cImFuZ2xlX2Rvd25cIj48L2F1aS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJoYXNBZGRvbkFmdGVyJCB8IGFzeW5jXCJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2FkZG9uJywgJ2FmdGVyJylcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2F1aUlucHV0QWRkb25BZnRlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsZUFBZSxHQUVoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQU8sUUFBUSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUMxQixNQUFNLHNCQUFzQixDQUFDOzs7OztBQWlCOUIsTUFBTSxPQUFPLG9CQUNYLFNBQVEsaUJBQXlCO0lBaEJuQzs7UUFtQkUsUUFBRyxHQUFRLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBR3hDLFNBQUksR0FBa0IsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUczQyxRQUFHLEdBQW9CLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUcvQyxRQUFHLEdBQW9CLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUcvQyxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBTVQsYUFBUSxHQUFHLElBQUksQ0FBQztRQUdoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUdqQixxQkFBZ0IsR0FBRyxFQUFF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QUFFLElBQUk7U0FDWjtLQUNGLDBEQXlDZ0IseUJBQXlCLGlEQUd6Qix3QkFBd0IsOEdBTlYsVUFBVSxvREMzRTNDLDB4RUE4RUE7MkZEdkNhLG9CQUFvQjtrQkFmaEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxhQUNmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFTRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJMUIsZUFBZTtzQkFEL0IsZUFBZTt1QkFBQyx5QkFBeUI7Z0JBSXpCLGNBQWM7c0JBRDlCLGVBQWU7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgUXVlcnlMaXN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb21tb25Gb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2Zvcm0nO1xuaW1wb3J0IHsgQ29tcG9uZW50U2l6ZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJlbSwgYnVpbGRCZW0sIGNvZXJjZU51bWJlciwgd2F0Y2hDb250ZW50RXhpc3QgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBJbnB1dEFkZG9uQWZ0ZXJEaXJlY3RpdmUsXG4gIElucHV0QWRkb25CZWZvcmVEaXJlY3RpdmUsXG59IGZyb20gJy4uL2hlbHBlci1kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLW51bWJlci1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1iZXItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlcklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcklucHV0Q29tcG9uZW50XG4gIGV4dGVuZHMgQ29tbW9uRm9ybUNvbnRyb2w8bnVtYmVyPlxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXRcbntcbiAgYmVtOiBCZW0gPSBidWlsZEJlbSgnYXVpLW51bWJlci1pbnB1dCcpO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IENvbXBvbmVudFNpemUgPSBDb21wb25lbnRTaXplLk1lZGl1bTtcblxuICBASW5wdXQoKVxuICBtaW46IHN0cmluZyB8IG51bWJlciA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xuXG4gIEBJbnB1dCgpXG4gIG1heDogc3RyaW5nIHwgbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgQElucHV0KClcbiAgc3RlcCA9IDE7XG5cbiAgQElucHV0KClcbiAgcHJlY2lzaW9uOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgY29udHJvbHMgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KClcbiAgY29udHJvbHNQb3NpdGlvbiA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGFuZ2xlQ29udHJvbHMgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBjbGVhcmFibGUgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdpbnB1dFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkcmVuKElucHV0QWRkb25CZWZvcmVEaXJlY3RpdmUpXG4gIHByaXZhdGUgcmVhZG9ubHkgYWRkb25CZWZvcmVSZWZzOiBRdWVyeUxpc3Q8SW5wdXRBZGRvbkJlZm9yZURpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihJbnB1dEFkZG9uQWZ0ZXJEaXJlY3RpdmUpXG4gIHByaXZhdGUgcmVhZG9ubHkgYWRkb25BZnRlclJlZnM6IFF1ZXJ5TGlzdDxJbnB1dEFkZG9uQWZ0ZXJEaXJlY3RpdmU+O1xuXG4gIGlzRm9jdXMgPSBmYWxzZTtcblxuICBoYXNBZGRvbkJlZm9yZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGhhc0FkZG9uQWZ0ZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmhhc0FkZG9uQmVmb3JlJCA9IHdhdGNoQ29udGVudEV4aXN0KHRoaXMuYWRkb25CZWZvcmVSZWZzKTtcbiAgICB0aGlzLmhhc0FkZG9uQWZ0ZXIkID0gd2F0Y2hDb250ZW50RXhpc3QodGhpcy5hZGRvbkFmdGVyUmVmcyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gKHRoaXMubW9kZWwgPz8gJycpICsgJyc7XG4gIH1cblxuICBvdmVycmlkZSB2YWx1ZUluKHY6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmlucHV0UmVmKSB7XG4gICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAodiA/PyAnJykgKyAnJztcbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBvdmVycmlkZSBtb2RlbE91dCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsICYmIHRoaXMuY2xlYXJhYmxlXG4gICAgICA/IHZhbHVlXG4gICAgICA6IE1hdGgubWF4KFxuICAgICAgICAgIGNvZXJjZU51bWJlcih0aGlzLm1pbiwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLFxuICAgICAgICAgIE1hdGgubWluKFxuICAgICAgICAgICAgY29lcmNlTnVtYmVyKHRoaXMubWF4LCBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiksXG4gICAgICAgICAgICB0aGlzLnBhcnNlUHJlY2lzaW9uKHZhbHVlKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVtaXRNb2RlbChcbiAgICAgIGNvZXJjZU51bWJlcih2YWx1ZSwgIXZhbHVlICYmIHRoaXMuY2xlYXJhYmxlID8gbnVsbCA6IHRoaXMubW9kZWwpLFxuICAgICk7XG4gIH1cblxuICB0YWtlT25lU3RlcChwb3NpdGl2ZTogYm9vbGVhbikge1xuICAgIGlmIChwb3NpdGl2ZSkge1xuICAgICAgdGhpcy5lbWl0TW9kZWwoKHRoaXMubW9kZWwgPz8gMCkgKyB0aGlzLnN0ZXApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXRNb2RlbCgodGhpcy5tb2RlbCA/PyAwKSAtIHRoaXMuc3RlcCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVByZWNpc2lvbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJlY2lzaW9uID0gdGhpcy5wcmVjaXNpb24gPz8gdGhpcy5nZXRTdGVwUHJlY2lzaW9uKCk7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUudG9GaXhlZChwcmVjaXNpb24pKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RlcFByZWNpc2lvbigpIHtcbiAgICBjb25zdCBzdGVwID0gdGhpcy5zdGVwICsgJyc7XG4gICAgY29uc3QgaW5kZXggPSBzdGVwLmluZGV4T2YoJy4nKTtcbiAgICByZXR1cm4gaW5kZXggPCAwID8gMCA6IHN0ZXAuc2xpY2UoaW5kZXggKyAxKS5sZW5ndGg7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cImJlbS5ibG9jayhzaXplKVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICBpc0ZvY3VzZWQ6IGlzRm9jdXMsXG4gICAgaXNEaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgaGFzQmVmb3JlOiBoYXNBZGRvbkJlZm9yZSQgfCBhc3luYyxcbiAgICBoYXNBZnRlcjogaGFzQWRkb25BZnRlciQgfCBhc3luY1xuICB9XCJcbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiaGFzQWRkb25CZWZvcmUkIHwgYXN5bmNcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnYWRkb24nLCAnYmVmb3JlJylcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2F1aUlucHV0QWRkb25CZWZvcmVdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnaW5uZXInKVwiXG4gICAgYXVpQ2xpY2tPdXRzaWRlXG4gICAgKGF1aUNsaWNrT3V0c2lkZSk9XCJpc0ZvY3VzID0gZmFsc2VcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJjb250cm9scyAmJiAhYW5nbGVDb250cm9sc1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCdjb250cm9sJywgJ2RlY3JlYXNlJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IG1vZGVsIDw9IG1pblwiXG4gICAgICAoY2xpY2spPVwidGFrZU9uZVN0ZXAoZmFsc2UpOyBpc0ZvY3VzID0gdHJ1ZVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJtaW51c1wiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRSZWZcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAoY2hhbmdlKT1cImlucHV0Q2hhbmdlZCgkYW55KCRldmVudCkudGFyZ2V0LnZhbHVlKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2lucHV0JylcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIChmb2N1cyk9XCJpc0ZvY3VzID0gdHJ1ZVwiXG4gICAgICAoYmx1cik9XCJpc0ZvY3VzID0gZmFsc2VcIlxuICAgICAgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGFuZ2xlQ29udHJvbHMgPyAnbGVmdCcgOiAnY2VudGVyJyB9XCJcbiAgICAvPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiY29udHJvbHMgJiYgIWFuZ2xlQ29udHJvbHNcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbbmdDbGFzc109XCJiZW0uZWxlbWVudCgnY29udHJvbCcsICdpbmNyZWFzZScpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBtb2RlbCA+PSBtYXhcIlxuICAgICAgKGNsaWNrKT1cInRha2VPbmVTdGVwKHRydWUpOyBpc0ZvY3VzID0gdHJ1ZVwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJwbHVzXCI+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImNvbnRyb2xzICYmIGFuZ2xlQ29udHJvbHNcIlxuICAgICAgY2xhc3M9XCJhdWktbnVtYmVyLWlucHV0X19jb250cm9sc1wiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRyb2wnLCAnYW5nbGUtdXAnKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBtb2RlbCA+PSBtYXhcIlxuICAgICAgICAoY2xpY2spPVwidGFrZU9uZVN0ZXAodHJ1ZSk7IGlzRm9jdXMgPSB0cnVlXCJcbiAgICAgID5cbiAgICAgICAgPGF1aS1pY29uIGljb249XCJhbmdsZV91cFwiPjwvYXVpLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImJlbS5lbGVtZW50KCdjb250cm9sJywgJ2FuZ2xlLWRvd24nKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBtb2RlbCA8PSBtaW5cIlxuICAgICAgICAoY2xpY2spPVwidGFrZU9uZVN0ZXAoZmFsc2UpOyBpc0ZvY3VzID0gdHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxhdWktaWNvbiBpY29uPVwiYW5nbGVfZG93blwiPjwvYXVpLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImhhc0FkZG9uQWZ0ZXIkIHwgYXN5bmNcIlxuICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnYWRkb24nLCAnYWZ0ZXInKVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYXVpSW5wdXRBZGRvbkFmdGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -324,10 +324,10 @@ export class TabHeaderComponent {
|
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
TabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TabHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component });
|
|
327
|
-
TabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TabHeaderComponent, selector: "aui-tab-header", inputs: { type: "type", size: "size", selectedIndex: "selectedIndex" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, queries: [{ propertyName: "_headerAddon", first: true, predicate: TabHeaderAddonDirective, descendants: true }, { propertyName: "_title", first: true, predicate: TabTitleDirective, descendants: true }, { propertyName: "_labelWrappers", predicate: TabLabelWrapperDirective }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_paginationWrapper", first: true, predicate: ["paginationWrapper"], descendants: true, static: true }, { propertyName: "_activeIndicator", first: true, predicate: TabHeaderActiveIndicatorComponent, descendants: true, static: true }], ngImport: i0, template: "<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".aui-tab-header{display:flex;flex-direction:column;flex-shrink:0;position:relative;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header--large .aui-tab-label{padding:16px 20px;font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--medium .aui-tab-label{padding:12px 20px;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--small .aui-tab-label{padding:8px 16px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tab-header__header-wrapper{display:flex;flex-shrink:0;position:relative}.aui-tab-header__title{display:flex;justify-content:space-between;color:rgb(var(--aui-color-n-1));font-size:var(--aui-font-size-xxl);margin-inline:20px;padding:20px 0
|
|
327
|
+
TabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TabHeaderComponent, selector: "aui-tab-header", inputs: { type: "type", size: "size", selectedIndex: "selectedIndex" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, queries: [{ propertyName: "_headerAddon", first: true, predicate: TabHeaderAddonDirective, descendants: true }, { propertyName: "_title", first: true, predicate: TabTitleDirective, descendants: true }, { propertyName: "_labelWrappers", predicate: TabLabelWrapperDirective }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_paginationWrapper", first: true, predicate: ["paginationWrapper"], descendants: true, static: true }, { propertyName: "_activeIndicator", first: true, predicate: TabHeaderActiveIndicatorComponent, descendants: true, static: true }], ngImport: i0, template: "<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".aui-tab-header{display:flex;flex-direction:column;flex-shrink:0;position:relative;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header--large .aui-tab-label{padding:16px 20px;font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--medium .aui-tab-label{padding:12px 20px;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--small .aui-tab-label{padding:8px 16px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tab-header__header-wrapper{display:flex;flex-shrink:0;position:relative}.aui-tab-header__title{display:flex;justify-content:space-between;color:rgb(var(--aui-color-n-1));font-size:var(--aui-font-size-xxl);margin-inline:20px;padding:20px 0 12px;font-weight:var(--aui-font-weight-bolder);border-bottom:1px rgb(var(--aui-color-n-8)) solid;line-height:32px}.aui-tab-header--card{background-color:rgb(var(--aui-color-button-bg))}.aui-tab-header--line{border-radius:var(--aui-border-radius-l);overflow:hidden;box-shadow:0 0 4px #3234371a;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header__pagination-wrapper{display:flex;overflow:hidden;flex-grow:1;align-items:center;position:relative}.aui-tab-header__pagination-button{width:32px;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;z-index:3;box-shadow:0 0 4px #ccc;opacity:.6;transition:box-shadow .3s,opacity .3s,color .3s}.aui-tab-header__pagination-button:hover{opacity:1;color:rgb(var(--aui-color-primary))}.aui-tab-header__pagination-button:first-of-type{margin-right:1px}.aui-tab-header__pagination-button:last-of-type{margin-left:1px}.aui-tab-header__pagination-button[disabled]{cursor:default;box-shadow:none;opacity:.1}.aui-tab-header__tab-list-container{display:flex;flex-grow:1;overflow:hidden;position:relative;z-index:1}.aui-tab-header__tab-list{flex-grow:1;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header__labels{display:flex}.aui-tab-header__labels:focus{outline:none}.aui-tab-header__addon{display:inline-flex;align-items:center;justify-content:center;margin:0 8px}.aui-tab-header__spacer{flex:1 1 0}.aui-tab-label{position:relative;cursor:pointer;box-sizing:border-box;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;color:rgb(var(--aui-color-n-2));font-weight:var(--aui-font-weight-bold);z-index:2;transition:opacity .3s}.aui-tab-label:focus,.aui-tab-label.isActive{outline:none}.aui-tab-label:not(.aui-tab-label--disabled).isActive,.aui-tab-label:not(.aui-tab-label--disabled):hover{color:rgb(var(--aui-color-primary))}.aui-tab-label.aui-tab-label--disabled{cursor:not-allowed;opacity:.2}.aui-tab-label__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aui-tab-label__close{margin-left:8px;font-size:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:rgb(var(--aui-color-n-4));transition:all .3s ease}.aui-tab-label__close:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tab-label.cdk-focused:not(.cdk-mouse-focused){box-shadow:inset 0 0 0 3px rgba(var(--aui-color-primary),.3)}aui-tab-header-active-indicator{display:flex;height:100%;position:absolute;top:0;pointer-events:none;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header-active-indicator{position:relative;flex:1;height:100%;z-index:1}.aui-tab-header-active-indicator:after{content:\"\";position:absolute;display:block;background:rgb(var(--aui-color-primary));height:2px}.aui-tab-header-active-indicator--line:after{width:100%;left:0;bottom:0}.aui-tab-header-active-indicator--card{background-color:rgb(var(--aui-color-n-10))}.aui-tab-header-active-indicator--card:after{width:calc(100% + 2px);top:0;left:-1px}\n"], components: [{ type: i2.IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { type: i3.TabHeaderActiveIndicatorComponent, selector: "aui-tab-header-active-indicator", inputs: ["type"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i6.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
328
328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TabHeaderComponent, decorators: [{
|
|
329
329
|
type: Component,
|
|
330
|
-
args: [{ selector: 'aui-tab-header', encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".aui-tab-header{display:flex;flex-direction:column;flex-shrink:0;position:relative;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header--large .aui-tab-label{padding:16px 20px;font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--medium .aui-tab-label{padding:12px 20px;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--small .aui-tab-label{padding:8px 16px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tab-header__header-wrapper{display:flex;flex-shrink:0;position:relative}.aui-tab-header__title{display:flex;justify-content:space-between;color:rgb(var(--aui-color-n-1));font-size:var(--aui-font-size-xxl);margin-inline:20px;padding:20px 0
|
|
330
|
+
args: [{ selector: 'aui-tab-header', encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"bem.block(type, size)\">\n <ng-container *ngIf=\"_title\">\n <div [ngClass]=\"bem.element('title')\">\n <ng-template [cdkPortalOutlet]=\"_title\"></ng-template>\n </div>\n </ng-container>\n <div [ngClass]=\"bem.element('header-wrapper')\">\n <div\n [ngClass]=\"bem.element('pagination-wrapper')\"\n #paginationWrapper\n >\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('before')\"\n [attr.disabled]=\"_disableScrollBefore ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </div>\n <div\n [ngClass]=\"bem.element('tab-list-container')\"\n (keydown)=\"_handleKeydown($event)\"\n #tabListContainer\n >\n <div\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\"\n [ngClass]=\"bem.element('tab-list')\"\n #tabList\n >\n <div [ngClass]=\"bem.element('labels')\"><ng-content></ng-content></div>\n <aui-tab-header-active-indicator\n [type]=\"type\"\n ></aui-tab-header-active-indicator>\n </div>\n </div>\n <div\n *ngIf=\"_showPaginationControls\"\n (click)=\"_scrollHeader('after')\"\n [attr.disabled]=\"_disableScrollAfter ? '' : null\"\n [ngClass]=\"bem.element('pagination-button')\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </div>\n </div>\n <!-- If there is addon template, use it. -->\n <ng-container *ngIf=\"_showAddon\">\n <div [ngClass]=\"bem.element('addon')\">\n <ng-template [cdkPortalOutlet]=\"_headerAddon\"></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".aui-tab-header{display:flex;flex-direction:column;flex-shrink:0;position:relative;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header--large .aui-tab-label{padding:16px 20px;font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--medium .aui-tab-label{padding:12px 20px;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-bolder)}.aui-tab-header--small .aui-tab-label{padding:8px 16px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tab-header__header-wrapper{display:flex;flex-shrink:0;position:relative}.aui-tab-header__title{display:flex;justify-content:space-between;color:rgb(var(--aui-color-n-1));font-size:var(--aui-font-size-xxl);margin-inline:20px;padding:20px 0 12px;font-weight:var(--aui-font-weight-bolder);border-bottom:1px rgb(var(--aui-color-n-8)) solid;line-height:32px}.aui-tab-header--card{background-color:rgb(var(--aui-color-button-bg))}.aui-tab-header--line{border-radius:var(--aui-border-radius-l);overflow:hidden;box-shadow:0 0 4px #3234371a;background-color:rgb(var(--aui-color-n-10))}.aui-tab-header__pagination-wrapper{display:flex;overflow:hidden;flex-grow:1;align-items:center;position:relative}.aui-tab-header__pagination-button{width:32px;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;z-index:3;box-shadow:0 0 4px #ccc;opacity:.6;transition:box-shadow .3s,opacity .3s,color .3s}.aui-tab-header__pagination-button:hover{opacity:1;color:rgb(var(--aui-color-primary))}.aui-tab-header__pagination-button:first-of-type{margin-right:1px}.aui-tab-header__pagination-button:last-of-type{margin-left:1px}.aui-tab-header__pagination-button[disabled]{cursor:default;box-shadow:none;opacity:.1}.aui-tab-header__tab-list-container{display:flex;flex-grow:1;overflow:hidden;position:relative;z-index:1}.aui-tab-header__tab-list{flex-grow:1;position:relative;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header__labels{display:flex}.aui-tab-header__labels:focus{outline:none}.aui-tab-header__addon{display:inline-flex;align-items:center;justify-content:center;margin:0 8px}.aui-tab-header__spacer{flex:1 1 0}.aui-tab-label{position:relative;cursor:pointer;box-sizing:border-box;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;color:rgb(var(--aui-color-n-2));font-weight:var(--aui-font-weight-bold);z-index:2;transition:opacity .3s}.aui-tab-label:focus,.aui-tab-label.isActive{outline:none}.aui-tab-label:not(.aui-tab-label--disabled).isActive,.aui-tab-label:not(.aui-tab-label--disabled):hover{color:rgb(var(--aui-color-primary))}.aui-tab-label.aui-tab-label--disabled{cursor:not-allowed;opacity:.2}.aui-tab-label__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aui-tab-label__close{margin-left:8px;font-size:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:rgb(var(--aui-color-n-4));transition:all .3s ease}.aui-tab-label__close:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tab-label.cdk-focused:not(.cdk-mouse-focused){box-shadow:inset 0 0 0 3px rgba(var(--aui-color-primary),.3)}aui-tab-header-active-indicator{display:flex;height:100%;position:absolute;top:0;pointer-events:none;transition:all .3s cubic-bezier(.35,0,.25,1)}.aui-tab-header-active-indicator{position:relative;flex:1;height:100%;z-index:1}.aui-tab-header-active-indicator:after{content:\"\";position:absolute;display:block;background:rgb(var(--aui-color-primary));height:2px}.aui-tab-header-active-indicator--line:after{width:100%;left:0;bottom:0}.aui-tab-header-active-indicator--card{background-color:rgb(var(--aui-color-n-10))}.aui-tab-header-active-indicator--card:after{width:calc(100% + 2px);top:0;left:-1px}\n"] }]
|
|
331
331
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }]; }, propDecorators: { type: [{
|
|
332
332
|
type: Input
|
|
333
333
|
}], size: [{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
4
|
import { updateDateByTimeModel } from '../../date-picker/calendar/util';
|
|
@@ -55,6 +55,9 @@ export class TimePickerPanelComponent extends CommonFormControl {
|
|
|
55
55
|
get totalWidth() {
|
|
56
56
|
return this.enabledColumns * TIME_PICKER_COLUMN_WIDTH;
|
|
57
57
|
}
|
|
58
|
+
onMousedown() {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
58
61
|
isDisabled(value, type) {
|
|
59
62
|
const currentValue = this.model;
|
|
60
63
|
if (this.disabled) {
|
|
@@ -177,7 +180,7 @@ export class TimePickerPanelComponent extends CommonFormControl {
|
|
|
177
180
|
}
|
|
178
181
|
}
|
|
179
182
|
TimePickerPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TimePickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
-
TimePickerPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TimePickerPanelComponent, selector: "aui-time-picker-panel", inputs: { format: "format", hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep", footerTemplate: "footerTemplate", disableHours: "disableHours", disableMinutes: "disableMinutes", disableSeconds: "disableSeconds" }, outputs: { confirm: "confirm" }, host: {
|
|
183
|
+
TimePickerPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TimePickerPanelComponent, selector: "aui-time-picker-panel", inputs: { format: "format", hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep", footerTemplate: "footerTemplate", disableHours: "disableHours", disableMinutes: "disableMinutes", disableSeconds: "disableSeconds" }, outputs: { confirm: "confirm" }, host: { listeners: { "mousedown": "onMousedown()" } }, providers: [
|
|
181
184
|
{
|
|
182
185
|
provide: NG_VALUE_ACCESSOR,
|
|
183
186
|
useExisting: forwardRef(() => TimePickerPanelComponent),
|
|
@@ -192,11 +195,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
192
195
|
useExisting: forwardRef(() => TimePickerPanelComponent),
|
|
193
196
|
multi: true,
|
|
194
197
|
},
|
|
195
|
-
],
|
|
196
|
-
mousedown: '$event.preventDefault()',
|
|
197
|
-
}, template: "<div\n *ngIf=\"enabledColumns\"\n [class]=\"bem.block()\"\n [style.width.px]=\"totalWidth\"\n>\n <div [class]=\"bem.element('content')\">\n <div\n [class]=\"bem.element('column')\"\n #hourRef\n *ngIf=\"hourEnabled\"\n >\n <ul>\n <li\n *ngFor=\"let item of getControlTypeConfig(TimePickerControlType.Hour)\"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Hour),\n selected: matchValue(item, TimePickerControlType.Hour, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Hour)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #minuteRef\n *ngIf=\"minuteEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Minute);\n trackBy: trackBy\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Minute),\n selected: matchValue(item, TimePickerControlType.Minute, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Minute)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #secondRef\n *ngIf=\"secondEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Second)\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Second),\n selected: matchValue(item, TimePickerControlType.Second, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Second)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!footerTemplate; else customFooter\">\n <div [class]=\"bem.element('footer')\">\n <button\n aui-button=\"inline\"\n (click)=\"selectNow()\"\n [size]=\"ComponentSize.Small\"\n >\n {{ 'now' | auiI18n }}\n </button>\n <button\n aui-button=\"primary\"\n [size]=\"ComponentSize.Small\"\n (click)=\"$event.stopImmediatePropagation(); confirm.next()\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </div>\n </ng-container>\n <ng-template #customFooter>\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: this }\"\n ></ng-container>\n </ng-template>\n</div>\n", styles: [".aui-time-picker-panel{display:flex;flex-direction:column;background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m);overflow:hidden;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}:root .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-time-picker-panel ul,.aui-time-picker-panel li{border:none}.aui-time-picker-panel__content{display:flex;flex-direction:row;height:252px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:9px}.aui-time-picker-panel__column{flex:1;align-self:stretch;text-align:center;overflow:auto}.aui-time-picker-panel__column::-webkit-scrollbar{width:4px;height:4px}.aui-time-picker-panel__column::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-time-picker-panel__column::-webkit-scrollbar-corner{background-color:transparent}.aui-time-picker-panel__column ul{min-height:252px;list-style:none;padding:0;margin:0}.aui-time-picker-panel__column-strut{height:224px;width:1px;visibility:hidden}.aui-time-picker-panel__column+.aui-time-picker-panel__column{border-left:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__cell{flex:none;width:100%;height:28px;color:rgb(var(--aui-color-main-text));line-height:28px;cursor:pointer}.aui-time-picker-panel__cell:hover{background-color:rgb(var(--aui-color-p-6));color:rgb(var(--aui-color-primary))}.aui-time-picker-panel__cell.selected{background-color:rgb(var(--aui-color-p-7));color:rgb(var(--aui-color-primary));font-weight:var(--aui-font-weight-bold)}.aui-time-picker-panel__cell.disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}\n"] }]
|
|
198
|
+
], template: "<div\n *ngIf=\"enabledColumns\"\n [class]=\"bem.block()\"\n [style.width.px]=\"totalWidth\"\n>\n <div [class]=\"bem.element('content')\">\n <div\n [class]=\"bem.element('column')\"\n #hourRef\n *ngIf=\"hourEnabled\"\n >\n <ul>\n <li\n *ngFor=\"let item of getControlTypeConfig(TimePickerControlType.Hour)\"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Hour),\n selected: matchValue(item, TimePickerControlType.Hour, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Hour)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #minuteRef\n *ngIf=\"minuteEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Minute);\n trackBy: trackBy\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Minute),\n selected: matchValue(item, TimePickerControlType.Minute, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Minute)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #secondRef\n *ngIf=\"secondEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Second)\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Second),\n selected: matchValue(item, TimePickerControlType.Second, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Second)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!footerTemplate; else customFooter\">\n <div [class]=\"bem.element('footer')\">\n <button\n aui-button=\"inline\"\n (click)=\"selectNow()\"\n [size]=\"ComponentSize.Small\"\n >\n {{ 'now' | auiI18n }}\n </button>\n <button\n aui-button=\"primary\"\n [size]=\"ComponentSize.Small\"\n (click)=\"$event.stopImmediatePropagation(); confirm.next()\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </div>\n </ng-container>\n <ng-template #customFooter>\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: this }\"\n ></ng-container>\n </ng-template>\n</div>\n", styles: [".aui-time-picker-panel{display:flex;flex-direction:column;background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m);overflow:hidden;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}:root .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-time-picker-panel ul,.aui-time-picker-panel li{border:none}.aui-time-picker-panel__content{display:flex;flex-direction:row;height:252px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:9px}.aui-time-picker-panel__column{flex:1;align-self:stretch;text-align:center;overflow:auto}.aui-time-picker-panel__column::-webkit-scrollbar{width:4px;height:4px}.aui-time-picker-panel__column::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-time-picker-panel__column::-webkit-scrollbar-corner{background-color:transparent}.aui-time-picker-panel__column ul{min-height:252px;list-style:none;padding:0;margin:0}.aui-time-picker-panel__column-strut{height:224px;width:1px;visibility:hidden}.aui-time-picker-panel__column+.aui-time-picker-panel__column{border-left:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__cell{flex:none;width:100%;height:28px;color:rgb(var(--aui-color-main-text));line-height:28px;cursor:pointer}.aui-time-picker-panel__cell:hover{background-color:rgb(var(--aui-color-p-6));color:rgb(var(--aui-color-primary))}.aui-time-picker-panel__cell.selected{background-color:rgb(var(--aui-color-p-7));color:rgb(var(--aui-color-primary));font-weight:var(--aui-font-weight-bold)}.aui-time-picker-panel__cell.disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}\n"] }]
|
|
198
199
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { format: [{
|
|
199
200
|
type: Input
|
|
201
|
+
}], onMousedown: [{
|
|
202
|
+
type: HostListener,
|
|
203
|
+
args: ['mousedown']
|
|
200
204
|
}], hourStep: [{
|
|
201
205
|
type: Input
|
|
202
206
|
}], minuteStep: [{
|
|
@@ -223,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
223
227
|
type: ViewChild,
|
|
224
228
|
args: ['secondRef', { static: false }]
|
|
225
229
|
}] } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci9wYW5lbC9wYW5lbC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sS0FBZ0IsTUFBTSxPQUFPLENBQUM7QUFFckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEdBQ2IsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBRTVELE1BQU0sd0JBQXdCLEdBQUcsRUFBRSxDQUFDO0FBQ3BDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBbUI5QyxNQUFNLE9BQU8sd0JBQ1gsU0FBUSxpQkFBd0I7SUFnRmhDLFlBQStCLEdBQXNCO1FBQ25ELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURrQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxEckQsYUFBUSxHQUFH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LENBQUM7WUFDdkQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDRWQzdDSCx3akdBcUdBOzJGRG5EYSx3QkFBd0I7a0JBakJwQyxTQUFTOytCQUNFLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsUUFDSzt3QkFDSixTQUFTLEVBQUUseUJBQXlCO3FCQUNyQzt3R0FPRyxNQUFNO3NCQURULEtBQUs7Z0JBMkJOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixPQUFPO3NCQUROLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBaUJOLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUl2QyxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJekMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyB1cGRhdGVEYXRlQnlUaW1lTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci9jYWxlbmRhci91dGlsJztcbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vZm9ybS9jb21tb24tZm9ybSc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBDT05UUk9MX0lURU1fSEVJR0hULFxuICBIT1VSX0lURU1TLFxuICBNSU5VVEVfSVRFTVMsXG4gIFNFQ09ORF9JVEVNUyxcbn0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgVGltZVBpY2tlckNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vdGltZS1waWNrZXIudHlwZSc7XG5cbmNvbnN0IFRJTUVfUElDS0VSX0NPTFVNTl9XSURUSCA9IDgwO1xuY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS10aW1lLXBpY2tlci1wYW5lbCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGltZS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFuZWwudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhbmVsLnN0eWxlLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGltZVBpY2tlclBhbmVsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBtb3VzZWRvd246ICckZXZlbnQucHJldmVudERlZmF1bHQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVQaWNrZXJQYW5lbENvbXBvbmVudFxuICBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPERheWpzPlxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKVxuICBzZXQgZm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZm9ybWF0ID0gdmFsdWU7XG4gICAgICBjb25zdCBjaGFyU2V0ID0gbmV3IFNldCh2YWx1ZSk7XG4gICAgICB0aGlzLmhvdXJFbmFibGVkID0gY2hhclNldC5oYXMoJ0gnKSB8fCBjaGFyU2V0LmhhcygnaCcpO1xuICAgICAgdGhpcy5taW51dGVFbmFibGVkID0gY2hhclNldC5oYXMoJ20nKTtcbiAgICAgIHRoaXMuc2Vjb25kRW5hYmxlZCA9IGNoYXJTZXQuaGFzKCdzJyk7XG4gICAgICB0aGlzLmVuYWJsZWRDb2x1bW5zID0gW1xuICAgICAgICB0aGlzLmhvdXJFbmFibGVkLFxuICAgICAgICB0aGlzLm1pbnV0ZUVuYWJsZWQsXG4gICAgICAgIHRoaXMuc2Vjb25kRW5hYmxlZCxcbiAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICBnZXQgZm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1hdDogc3RyaW5nO1xuXG4gIGdldCB0b3RhbFdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWRDb2x1bW5zICogVElNRV9QSUNLRVJfQ09MVU1OX1dJRFRIO1xuICB9XG5cbiAgQElucHV0KClcbiAgaG91clN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIG1pbnV0ZVN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIHNlY29uZFN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBAT3V0cHV0KClcbiAgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlSG91cnM6ICgpID0+IG51bWJlcltdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVNaW51dGVzOiAoaG91cj86IG51bWJlcikgPT4gbnVtYmVyW107XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZVNlY29uZHM6IChob3VyPzogbnVtYmVyLCBtaW51dGU/OiBudW1iZXIpID0+IG51bWJlcltdO1xuXG4gIGhvdXJFbmFibGVkOiBib29sZWFuO1xuICBtaW51dGVFbmFibGVkOiBib29sZWFuO1xuICBzZWNvbmRFbmFibGVkOiBib29sZWFuO1xuXG4gIFRpbWVQaWNrZXJDb250cm9sVHlwZSA9IFRpbWVQaWNrZXJDb250cm9sVHlwZTtcbiAgSE9VUl9JVEVNX0NPTkZJRyA9IEhPVVJfSVRFTVM7XG4gIE1JTlVURV9JVEVNX0NPTkZJRyA9IE1JTlVURV9JVEVNUztcbiAgU0VDT05EX0lURU1fQ09ORklHID0gU0VDT05EX0lURU1TO1xuXG4gIENPTlRST0xfSVRFTV9IRUlHSFQgPSBDT05UUk9MX0lURU1fSEVJR0hUO1xuICBDb21wb25lbnRTaXplID0gQ29tcG9uZW50U2l6ZTtcbiAgYmVtID0gYmVtO1xuXG4gIEBWaWV3Q2hpbGQoJ2hvdXJSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgaG91clJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnbWludXRlUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1pbnV0ZVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnc2Vjb25kUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHNlY29uZFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgZW5hYmxlZENvbHVtbnMgPSAwO1xuXG4gIC8vIOeUqOS6juaOp+WItuWIneasoea7muWKqO+8jOaYr+WQpuWxleekuua7muWKqOWKqOeUu+aViOaenFxuICBmaXJzdFNjcm9sbGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihjZHIpO1xuICAgIHRoaXMubW9kZWwkLnN1YnNjcmliZShfID0+IHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgaXNEaXNhYmxlZCh2YWx1ZTogbnVtYmVyLCB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUpIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLm1vZGVsO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKSB7XG4gICAgICByZXR1cm4gKCF0aGlzLmRpc2FibGVIb3VycyA/IFtdIDogdGhpcy5kaXNhYmxlSG91cnMoKSkuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgIXRoaXMuZGlzYWJsZU1pbnV0ZXMgPyBbXSA6IHRoaXMuZGlzYWJsZU1pbnV0ZXMoY3VycmVudFZhbHVlPy5ob3VyKCkpXG4gICAgICApLmluY2x1ZGVzKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICF0aGlzLmRpc2FibGVTZWNvbmRzXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogdGhpcy5kaXNhYmxlU2Vjb25kcyhjdXJyZW50VmFsdWU/LmhvdXIoKSwgY3VycmVudFZhbHVlPy5taW51dGUoKSlcbiAgICAgICkuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgaG91clN0ZXAsIG1pbnV0ZVN0ZXAsIHNlY29uZFN0ZXAgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChob3VyU3RlcD8uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgdGhpcy5IT1VSX0lURU1fQ09ORklHID0gSE9VUl9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIGhvdXJTdGVwLmN1cnJlbnRWYWx1ZSA9PT0gMCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChtaW51dGVTdGVwPy5jdXJyZW50VmFsdWUgPiAwKSB7XG4gICAgICB0aGlzLk1JTlVURV9JVEVNX0NPTkZJRyA9IE1JTlVURV9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIG1pbnV0ZVN0ZXAuY3VycmVudFZhbHVlID09PSAwLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHNlY29uZFN0ZXA/LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMuU0VDT05EX0lURU1fQ09ORklHID0gU0VDT05EX0lURU1TLmZpbHRlcihcbiAgICAgICAgaSA9PiBpICUgc2Vjb25kU3RlcC5jdXJyZW50VmFsdWUgPT09IDAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IERheWpzKSB7XG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jU2Nyb2xsT2Zmc2V0KCF0aGlzLmZpcnN0U2Nyb2xsZWQgPyAwIDogMTIwLCB2YWx1ZSk7XG4gIH1cblxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogbnVtYmVyLCB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpcnN0U2Nyb2xsZWQgPSB0cnVlO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc3luY1ZhbHVlKHZhbHVlLCB0eXBlLCB0aGlzLm1vZGVsKTtcbiAgICB0aGlzLnN5bmNTY3JvbGxPZmZzZXQoMTIwLCByZXN1bHQpO1xuICB9XG5cbiAgc3luY1ZhbHVlKHZhbHVlOiBudW1iZXIsIHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSwgY3VycmVudFZhbHVlOiBEYXlqcykge1xuICAgIGlmICghdHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSAoXG4gICAgICBjdXJyZW50VmFsdWUgfHxcbiAgICAgIHVwZGF0ZURhdGVCeVRpbWVNb2RlbChkYXlqcygpLCB7IGhvdXI6IDAsIG1pbnV0ZTogMCwgc2Vjb25kOiAwIH0pXG4gICAgKS5zZXQodHlwZSwgdmFsdWUpO1xuICAgIHRoaXMuZW1pdE1vZGVsKHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN5bmNTY3JvbGxPZmZzZXQoZHVyYXRpb246IG51bWJlciwgdmFsdWU6IERheWpzKSB7XG4gICAgY29uc3QgZW1wdHkgPSAhdmFsdWU7XG4gICAgY29uc3QgY29uZmlnID0gW1xuICAgICAge1xuICAgICAgICByZWY6IHRoaXMuaG91clJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5ob3VyRW5hYmxlZCxcbiAgICAgICAgc3RlcDogdGhpcy5ob3VyU3RlcCxcbiAgICAgICAgdHlwZTogJ2hvdXInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcmVmOiB0aGlzLm1pbnV0ZVJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5taW51dGVFbmFibGVkLFxuICAgICAgICBzdGVwOiB0aGlzLm1pbnV0ZVN0ZXAsXG4gICAgICAgIHR5cGU6ICdtaW51dGUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcmVmOiB0aGlzLnNlY29uZFJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5zZWNvbmRFbmFibGVkLFxuICAgICAgICBzdGVwOiB0aGlzLnNlY29uZFN0ZXAsXG4gICAgICAgIHR5cGU6ICdzZWNvbmQnLFxuICAgICAgfSxcbiAgICBdIGFzIGNvbnN0O1xuXG4gICAgY29uZmlnLmZvckVhY2goY2YgPT4ge1xuICAgICAgaWYgKGNmLmVuYWJsZWQgJiYgY2YucmVmKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsQnlWYWx1ZShcbiAgICAgICAgICBjZi5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBlbXB0eSA/IDAgOiB2YWx1ZS5nZXQoY2YudHlwZSksXG4gICAgICAgICAgY2Yuc3RlcCxcbiAgICAgICAgICBlbXB0eSA/IDAgOiBkdXJhdGlvbixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIWVtcHR5KSB7XG4gICAgICB0aGlzLmZpcnN0U2Nyb2xsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsQnlWYWx1ZShcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICB2YWx1ZTogbnVtYmVyLFxuICAgIGRpdmlkZUJ5OiBudW1iZXIsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3QgdGFyZ2V0T2Zmc2V0ID0gKHZhbHVlICogQ09OVFJPTF9JVEVNX0hFSUdIVCkgLyBkaXZpZGVCeTtcbiAgICBjb25zdCBjdXJyZW50VG9wID0gZWxlbWVudC5zY3JvbGxUb3A7XG4gICAgaWYgKGN1cnJlbnRUb3AgPT09IHRhcmdldE9mZnNldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWR1cmF0aW9uKSB7XG4gICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IHRhcmdldE9mZnNldDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHRhcmdldE9mZnNldCAtIGN1cnJlbnRUb3A7XG4gICAgICAvLyDmr4/kuKp0aWNr5rua5Yqo6Led56a7XG4gICAgICBjb25zdCBwZXJUaWNrID0gKGRpZmZlcmVuY2UgLyBkdXJhdGlvbikgKiAxMDtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSBjdXJyZW50VG9wICsgcGVyVGljaztcbiAgICAgICAgaWYgKGVsZW1lbnQuc2Nyb2xsVG9wID09PSB0YXJnZXRPZmZzZXQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JvbGxCeVZhbHVlKGVsZW1lbnQsIHZhbHVlLCBkaXZpZGVCeSwgZHVyYXRpb24gLSAxMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBtYXRjaFZhbHVlKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgdHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlLFxuICAgIGN1cnJEYXRlOiBEYXlqcyxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGN1cnJEYXRlPy5nZXQodHlwZSkgPT09IHZhbHVlO1xuICB9XG5cbiAgZ2V0Q29udHJvbFR5cGVDb25maWcodHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB7XG4gICAgICBbVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXJdOiB0aGlzLkhPVVJfSVRFTV9DT05GSUcsXG4gICAgICBbVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZV06IHRoaXMuTUlOVVRFX0lURU1fQ09ORklHLFxuICAgICAgW1RpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmRdOiB0aGlzLlNFQ09ORF9JVEVNX0NPTkZJRyxcbiAgICB9W3R5cGVdO1xuICB9XG5cbiAgc2VsZWN0Tm93KCkge1xuICAgIHRoaXMuZmlyc3RTY3JvbGxlZCA9IHRydWU7XG4gICAgdGhpcy5lbWl0TW9kZWwoZGF5anMoKSk7XG4gIH1cblxuICB0cmFja0J5KF9pbmRleDogbnVtYmVyLCBjb250ZW50OiBudW1iZXIpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cImVuYWJsZWRDb2x1bW5zXCJcbiAgW2NsYXNzXT1cImJlbS5ibG9jaygpXCJcbiAgW3N0eWxlLndpZHRoLnB4XT1cInRvdGFsV2lkdGhcIlxuPlxuICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29udGVudCcpXCI+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4nKVwiXG4gICAgICAjaG91clJlZlxuICAgICAgKm5nSWY9XCJob3VyRW5hYmxlZFwiXG4gICAgPlxuICAgICAgPHVsPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRDb250cm9sVHlwZUNvbmZpZyhUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91cilcIlxuICAgICAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIkNPTlRST0xfSVRFTV9IRUlHSFRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBtYXRjaFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyLCBtb2RlbClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXIpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0gfCBudW1iZXI6ICcyLjAtMCcgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uLXN0cnV0JylcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbicpXCJcbiAgICAgICNtaW51dGVSZWZcbiAgICAgICpuZ0lmPVwibWludXRlRW5hYmxlZFwiXG4gICAgPlxuICAgICAgPHVsPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBpdGVtIG9mIGdldENvbnRyb2xUeXBlQ29uZmlnKFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUpO1xuICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjZWxsJylcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiQ09OVFJPTF9JVEVNX0hFSUdIVFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSksXG4gICAgICAgICAgICBzZWxlY3RlZDogbWF0Y2hWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlLCBtb2RlbClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbSB8IG51bWJlcjogJzIuMC0wJyB9fVxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4tc3RydXQnKVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uJylcIlxuICAgICAgI3NlY29uZFJlZlxuICAgICAgKm5nSWY9XCJzZWNvbmRFbmFibGVkXCJcbiAgICA+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaVxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZ2V0Q29udHJvbFR5cGVDb25maWcoVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZClcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIkNPTlRST0xfSVRFTV9IRUlHSFRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IG1hdGNoVmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZCwgbW9kZWwpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0gfCBudW1iZXI6ICcyLjAtMCcgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uLXN0cnV0JylcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmb290ZXJUZW1wbGF0ZTsgZWxzZSBjdXN0b21Gb290ZXJcIj5cbiAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnZm9vdGVyJylcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYXVpLWJ1dHRvbj1cImlubGluZVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3ROb3coKVwiXG4gICAgICAgIFtzaXplXT1cIkNvbXBvbmVudFNpemUuU21hbGxcIlxuICAgICAgPlxuICAgICAgICB7eyAnbm93JyB8IGF1aUkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFtzaXplXT1cIkNvbXBvbmVudFNpemUuU21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOyBjb25maXJtLm5leHQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdjb25maXJtJyB8IGF1aUkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21Gb290ZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0aGlzIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci9wYW5lbC9wYW5lbC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUU1RCxNQUFNLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUNwQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQWdCOUMsTUFBTSxPQUFPLHdCQUNYLFNBQVEsaUJBQXdCO0lBb0ZoQyxZQUErQixHQUFzQjtRQUNuRCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEa0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFsRHJE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QUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO1lBQ3ZELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiw0VkM5Q0gsd2pHQXFHQTsyRkRyRGEsd0JBQXdCO2tCQWRwQyxTQUFTOytCQUNFLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0dBT0csTUFBTTtzQkFEVCxLQUFLO2dCQTBCcUIsV0FBVztzQkFBckMsWUFBWTt1QkFBQyxXQUFXO2dCQUt6QixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sT0FBTztzQkFETixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQWlCTixPQUFPO3NCQUROLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJdkMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSXpDLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyB1cGRhdGVEYXRlQnlUaW1lTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci9jYWxlbmRhci91dGlsJztcbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vZm9ybS9jb21tb24tZm9ybSc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBDT05UUk9MX0lURU1fSEVJR0hULFxuICBIT1VSX0lURU1TLFxuICBNSU5VVEVfSVRFTVMsXG4gIFNFQ09ORF9JVEVNUyxcbn0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgVGltZVBpY2tlckNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vdGltZS1waWNrZXIudHlwZSc7XG5cbmNvbnN0IFRJTUVfUElDS0VSX0NPTFVNTl9XSURUSCA9IDgwO1xuY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS10aW1lLXBpY2tlci1wYW5lbCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGltZS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFuZWwudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhbmVsLnN0eWxlLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGltZVBpY2tlclBhbmVsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVQaWNrZXJQYW5lbENvbXBvbmVudFxuICBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPERheWpzPlxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKVxuICBzZXQgZm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZm9ybWF0ID0gdmFsdWU7XG4gICAgICBjb25zdCBjaGFyU2V0ID0gbmV3IFNldCh2YWx1ZSk7XG4gICAgICB0aGlzLmhvdXJFbmFibGVkID0gY2hhclNldC5oYXMoJ0gnKSB8fCBjaGFyU2V0LmhhcygnaCcpO1xuICAgICAgdGhpcy5taW51dGVFbmFibGVkID0gY2hhclNldC5oYXMoJ20nKTtcbiAgICAgIHRoaXMuc2Vjb25kRW5hYmxlZCA9IGNoYXJTZXQuaGFzKCdzJyk7XG4gICAgICB0aGlzLmVuYWJsZWRDb2x1bW5zID0gW1xuICAgICAgICB0aGlzLmhvdXJFbmFibGVkLFxuICAgICAgICB0aGlzLm1pbnV0ZUVuYWJsZWQsXG4gICAgICAgIHRoaXMuc2Vjb25kRW5hYmxlZCxcbiAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICBnZXQgZm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1hdDogc3RyaW5nO1xuXG4gIGdldCB0b3RhbFdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWRDb2x1bW5zICogVElNRV9QSUNLRVJfQ09MVU1OX1dJRFRIO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJykgb25Nb3VzZWRvd24oKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQElucHV0KClcbiAgaG91clN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIG1pbnV0ZVN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIHNlY29uZFN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBAT3V0cHV0KClcbiAgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlSG91cnM6ICgpID0+IG51bWJlcltdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVNaW51dGVzOiAoaG91cj86IG51bWJlcikgPT4gbnVtYmVyW107XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZVNlY29uZHM6IChob3VyPzogbnVtYmVyLCBtaW51dGU/OiBudW1iZXIpID0+IG51bWJlcltdO1xuXG4gIGhvdXJFbmFibGVkOiBib29sZWFuO1xuICBtaW51dGVFbmFibGVkOiBib29sZWFuO1xuICBzZWNvbmRFbmFibGVkOiBib29sZWFuO1xuXG4gIFRpbWVQaWNrZXJDb250cm9sVHlwZSA9IFRpbWVQaWNrZXJDb250cm9sVHlwZTtcbiAgSE9VUl9JVEVNX0NPTkZJRyA9IEhPVVJfSVRFTVM7XG4gIE1JTlVURV9JVEVNX0NPTkZJRyA9IE1JTlVURV9JVEVNUztcbiAgU0VDT05EX0lURU1fQ09ORklHID0gU0VDT05EX0lURU1TO1xuXG4gIENPTlRST0xfSVRFTV9IRUlHSFQgPSBDT05UUk9MX0lURU1fSEVJR0hUO1xuICBDb21wb25lbnRTaXplID0gQ29tcG9uZW50U2l6ZTtcbiAgYmVtID0gYmVtO1xuXG4gIEBWaWV3Q2hpbGQoJ2hvdXJSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgaG91clJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnbWludXRlUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1pbnV0ZVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnc2Vjb25kUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHNlY29uZFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgZW5hYmxlZENvbHVtbnMgPSAwO1xuXG4gIC8vIOeUqOS6juaOp+WItuWIneasoea7muWKqO+8jOaYr+WQpuWxleekuua7muWKqOWKqOeUu+aViOaenFxuICBmaXJzdFNjcm9sbGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihjZHIpO1xuICAgIHRoaXMubW9kZWwkLnN1YnNjcmliZShfID0+IHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgaXNEaXNhYmxlZCh2YWx1ZTogbnVtYmVyLCB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUpIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLm1vZGVsO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKSB7XG4gICAgICByZXR1cm4gKCF0aGlzLmRpc2FibGVIb3VycyA/IFtdIDogdGhpcy5kaXNhYmxlSG91cnMoKSkuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgIXRoaXMuZGlzYWJsZU1pbnV0ZXMgPyBbXSA6IHRoaXMuZGlzYWJsZU1pbnV0ZXMoY3VycmVudFZhbHVlPy5ob3VyKCkpXG4gICAgICApLmluY2x1ZGVzKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICF0aGlzLmRpc2FibGVTZWNvbmRzXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogdGhpcy5kaXNhYmxlU2Vjb25kcyhjdXJyZW50VmFsdWU/LmhvdXIoKSwgY3VycmVudFZhbHVlPy5taW51dGUoKSlcbiAgICAgICkuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgaG91clN0ZXAsIG1pbnV0ZVN0ZXAsIHNlY29uZFN0ZXAgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChob3VyU3RlcD8uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgdGhpcy5IT1VSX0lURU1fQ09ORklHID0gSE9VUl9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIGhvdXJTdGVwLmN1cnJlbnRWYWx1ZSA9PT0gMCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChtaW51dGVTdGVwPy5jdXJyZW50VmFsdWUgPiAwKSB7XG4gICAgICB0aGlzLk1JTlVURV9JVEVNX0NPTkZJRyA9IE1JTlVURV9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIG1pbnV0ZVN0ZXAuY3VycmVudFZhbHVlID09PSAwLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHNlY29uZFN0ZXA/LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMuU0VDT05EX0lURU1fQ09ORklHID0gU0VDT05EX0lURU1TLmZpbHRlcihcbiAgICAgICAgaSA9PiBpICUgc2Vjb25kU3RlcC5jdXJyZW50VmFsdWUgPT09IDAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IERheWpzKSB7XG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jU2Nyb2xsT2Zmc2V0KCF0aGlzLmZpcnN0U2Nyb2xsZWQgPyAwIDogMTIwLCB2YWx1ZSk7XG4gIH1cblxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogbnVtYmVyLCB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpcnN0U2Nyb2xsZWQgPSB0cnVlO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc3luY1ZhbHVlKHZhbHVlLCB0eXBlLCB0aGlzLm1vZGVsKTtcbiAgICB0aGlzLnN5bmNTY3JvbGxPZmZzZXQoMTIwLCByZXN1bHQpO1xuICB9XG5cbiAgc3luY1ZhbHVlKHZhbHVlOiBudW1iZXIsIHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSwgY3VycmVudFZhbHVlOiBEYXlqcykge1xuICAgIGlmICghdHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSAoXG4gICAgICBjdXJyZW50VmFsdWUgfHxcbiAgICAgIHVwZGF0ZURhdGVCeVRpbWVNb2RlbChkYXlqcygpLCB7IGhvdXI6IDAsIG1pbnV0ZTogMCwgc2Vjb25kOiAwIH0pXG4gICAgKS5zZXQodHlwZSwgdmFsdWUpO1xuICAgIHRoaXMuZW1pdE1vZGVsKHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN5bmNTY3JvbGxPZmZzZXQoZHVyYXRpb246IG51bWJlciwgdmFsdWU6IERheWpzKSB7XG4gICAgY29uc3QgZW1wdHkgPSAhdmFsdWU7XG4gICAgY29uc3QgY29uZmlnID0gW1xuICAgICAge1xuICAgICAgICByZWY6IHRoaXMuaG91clJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5ob3VyRW5hYmxlZCxcbiAgICAgICAgc3RlcDogdGhpcy5ob3VyU3RlcCxcbiAgICAgICAgdHlwZTogJ2hvdXInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcmVmOiB0aGlzLm1pbnV0ZVJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5taW51dGVFbmFibGVkLFxuICAgICAgICBzdGVwOiB0aGlzLm1pbnV0ZVN0ZXAsXG4gICAgICAgIHR5cGU6ICdtaW51dGUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcmVmOiB0aGlzLnNlY29uZFJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5zZWNvbmRFbmFibGVkLFxuICAgICAgICBzdGVwOiB0aGlzLnNlY29uZFN0ZXAsXG4gICAgICAgIHR5cGU6ICdzZWNvbmQnLFxuICAgICAgfSxcbiAgICBdIGFzIGNvbnN0O1xuXG4gICAgY29uZmlnLmZvckVhY2goY2YgPT4ge1xuICAgICAgaWYgKGNmLmVuYWJsZWQgJiYgY2YucmVmKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsQnlWYWx1ZShcbiAgICAgICAgICBjZi5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBlbXB0eSA/IDAgOiB2YWx1ZS5nZXQoY2YudHlwZSksXG4gICAgICAgICAgY2Yuc3RlcCxcbiAgICAgICAgICBlbXB0eSA/IDAgOiBkdXJhdGlvbixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIWVtcHR5KSB7XG4gICAgICB0aGlzLmZpcnN0U2Nyb2xsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsQnlWYWx1ZShcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICB2YWx1ZTogbnVtYmVyLFxuICAgIGRpdmlkZUJ5OiBudW1iZXIsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3QgdGFyZ2V0T2Zmc2V0ID0gKHZhbHVlICogQ09OVFJPTF9JVEVNX0hFSUdIVCkgLyBkaXZpZGVCeTtcbiAgICBjb25zdCBjdXJyZW50VG9wID0gZWxlbWVudC5zY3JvbGxUb3A7XG4gICAgaWYgKGN1cnJlbnRUb3AgPT09IHRhcmdldE9mZnNldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWR1cmF0aW9uKSB7XG4gICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IHRhcmdldE9mZnNldDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHRhcmdldE9mZnNldCAtIGN1cnJlbnRUb3A7XG4gICAgICAvLyDmr4/kuKp0aWNr5rua5Yqo6Led56a7XG4gICAgICBjb25zdCBwZXJUaWNrID0gKGRpZmZlcmVuY2UgLyBkdXJhdGlvbikgKiAxMDtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSBjdXJyZW50VG9wICsgcGVyVGljaztcbiAgICAgICAgaWYgKGVsZW1lbnQuc2Nyb2xsVG9wID09PSB0YXJnZXRPZmZzZXQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JvbGxCeVZhbHVlKGVsZW1lbnQsIHZhbHVlLCBkaXZpZGVCeSwgZHVyYXRpb24gLSAxMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBtYXRjaFZhbHVlKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgdHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlLFxuICAgIGN1cnJEYXRlOiBEYXlqcyxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGN1cnJEYXRlPy5nZXQodHlwZSkgPT09IHZhbHVlO1xuICB9XG5cbiAgZ2V0Q29udHJvbFR5cGVDb25maWcodHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB7XG4gICAgICBbVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXJdOiB0aGlzLkhPVVJfSVRFTV9DT05GSUcsXG4gICAgICBbVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZV06IHRoaXMuTUlOVVRFX0lURU1fQ09ORklHLFxuICAgICAgW1RpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmRdOiB0aGlzLlNFQ09ORF9JVEVNX0NPTkZJRyxcbiAgICB9W3R5cGVdO1xuICB9XG5cbiAgc2VsZWN0Tm93KCkge1xuICAgIHRoaXMuZmlyc3RTY3JvbGxlZCA9IHRydWU7XG4gICAgdGhpcy5lbWl0TW9kZWwoZGF5anMoKSk7XG4gIH1cblxuICB0cmFja0J5KF9pbmRleDogbnVtYmVyLCBjb250ZW50OiBudW1iZXIpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cImVuYWJsZWRDb2x1bW5zXCJcbiAgW2NsYXNzXT1cImJlbS5ibG9jaygpXCJcbiAgW3N0eWxlLndpZHRoLnB4XT1cInRvdGFsV2lkdGhcIlxuPlxuICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29udGVudCcpXCI+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4nKVwiXG4gICAgICAjaG91clJlZlxuICAgICAgKm5nSWY9XCJob3VyRW5hYmxlZFwiXG4gICAgPlxuICAgICAgPHVsPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRDb250cm9sVHlwZUNvbmZpZyhUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91cilcIlxuICAgICAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIkNPTlRST0xfSVRFTV9IRUlHSFRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBtYXRjaFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyLCBtb2RlbClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXIpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0gfCBudW1iZXI6ICcyLjAtMCcgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uLXN0cnV0JylcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbicpXCJcbiAgICAgICNtaW51dGVSZWZcbiAgICAgICpuZ0lmPVwibWludXRlRW5hYmxlZFwiXG4gICAgPlxuICAgICAgPHVsPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBpdGVtIG9mIGdldENvbnRyb2xUeXBlQ29uZmlnKFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUpO1xuICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjZWxsJylcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiQ09OVFJPTF9JVEVNX0hFSUdIVFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSksXG4gICAgICAgICAgICBzZWxlY3RlZDogbWF0Y2hWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlLCBtb2RlbClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbSB8IG51bWJlcjogJzIuMC0wJyB9fVxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4tc3RydXQnKVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uJylcIlxuICAgICAgI3NlY29uZFJlZlxuICAgICAgKm5nSWY9XCJzZWNvbmRFbmFibGVkXCJcbiAgICA+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaVxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZ2V0Q29udHJvbFR5cGVDb25maWcoVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZClcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIkNPTlRST0xfSVRFTV9IRUlHSFRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IG1hdGNoVmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZCwgbW9kZWwpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0gfCBudW1iZXI6ICcyLjAtMCcgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uLXN0cnV0JylcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmb290ZXJUZW1wbGF0ZTsgZWxzZSBjdXN0b21Gb290ZXJcIj5cbiAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnZm9vdGVyJylcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYXVpLWJ1dHRvbj1cImlubGluZVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3ROb3coKVwiXG4gICAgICAgIFtzaXplXT1cIkNvbXBvbmVudFNpemUuU21hbGxcIlxuICAgICAgPlxuICAgICAgICB7eyAnbm93JyB8IGF1aUkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFtzaXplXT1cIkNvbXBvbmVudFNpemUuU21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOyBjb25maXJtLm5leHQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdjb25maXJtJyB8IGF1aUkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21Gb290ZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0aGlzIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|