@ng-nest/ui 16.0.0 → 16.0.2
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/carousel/carousel.component.d.ts +2 -0
- package/core/config/config.d.ts +2 -0
- package/core/interfaces/data.type.d.ts +17 -17
- package/dropdown/dropdown-portal.component.d.ts +4 -4
- package/esm2022/carousel/carousel.component.mjs +8 -2
- package/esm2022/core/config/config.mjs +1 -1
- package/esm2022/core/functions/convert.mjs +2 -1
- package/esm2022/core/interfaces/data.type.mjs +60 -19
- package/esm2022/input/input.component.mjs +45 -8
- package/esm2022/popover/popover.directive.mjs +17 -6
- package/esm2022/popover/popover.property.mjs +6 -2
- package/esm2022/select/select.component.mjs +1 -1
- package/esm2022/slider/slider.component.mjs +27 -5
- package/esm2022/slider/slider.property.mjs +7 -2
- package/esm2022/statistic/countdown.component.mjs +8 -2
- package/esm2022/tabs/tabs.component.mjs +3 -3
- package/esm2022/tabs/tabs.property.mjs +7 -2
- package/esm2022/tooltip/tooltip.directive.mjs +16 -5
- package/esm2022/tooltip/tooltip.property.mjs +6 -2
- package/fesm2022/ng-nest-ui-carousel.mjs +7 -2
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +60 -18
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +44 -7
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +21 -6
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +32 -5
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +7 -2
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +9 -4
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +20 -5
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/input/input.component.d.ts +6 -0
- package/package.json +14 -13
- package/popover/popover.directive.d.ts +1 -0
- package/popover/popover.property.d.ts +12 -2
- package/slider/slider.component.d.ts +6 -0
- package/slider/slider.property.d.ts +12 -2
- package/statistic/countdown.component.d.ts +2 -0
- package/tabs/tabs.property.d.ts +12 -2
- package/tooltip/tooltip.directive.d.ts +1 -0
- package/tooltip/tooltip.property.d.ts +12 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Optional, TemplateRef, HostBinding } from '@angular/core';
|
|
2
2
|
import { XInputPrefix, XInputProperty } from './input.property';
|
|
3
3
|
import { XIsEmpty, XIsChange, XClearClass, XIsUndefined, XIsFunction } from '@ng-nest/ui/core';
|
|
4
|
-
import { Subject } from 'rxjs';
|
|
4
|
+
import { Subject, distinctUntilChanged, fromEvent, takeUntil } from 'rxjs';
|
|
5
5
|
import { XValueAccessor } from '@ng-nest/ui/base-form';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@ng-nest/ui/core";
|
|
@@ -16,7 +16,9 @@ class XInputComponent extends XInputProperty {
|
|
|
16
16
|
}
|
|
17
17
|
writeValue(value) {
|
|
18
18
|
this.value = value;
|
|
19
|
-
this.
|
|
19
|
+
this.isWriteValue = true;
|
|
20
|
+
this.valueChange.next(value);
|
|
21
|
+
this.isWriteValue = false;
|
|
20
22
|
this.cdr.detectChanges();
|
|
21
23
|
}
|
|
22
24
|
get getIcon() {
|
|
@@ -50,6 +52,9 @@ class XInputComponent extends XInputProperty {
|
|
|
50
52
|
this.paddingRight = 0.4;
|
|
51
53
|
this.clearShow = false;
|
|
52
54
|
this.flexClass = [];
|
|
55
|
+
this.valueChange = new Subject();
|
|
56
|
+
this.isComposition = false;
|
|
57
|
+
this.isWriteValue = false;
|
|
53
58
|
this._required = false;
|
|
54
59
|
this._unSubject = new Subject();
|
|
55
60
|
}
|
|
@@ -58,6 +63,7 @@ class XInputComponent extends XInputProperty {
|
|
|
58
63
|
this.setFlexClass();
|
|
59
64
|
this.setInheritedValue();
|
|
60
65
|
this.setClassMap();
|
|
66
|
+
this.setEvent();
|
|
61
67
|
}
|
|
62
68
|
ngOnChanges(changes) {
|
|
63
69
|
const { clearable, size, labelAlign, justify, align, direction, icon, iconSpin, clearShow } = changes;
|
|
@@ -70,6 +76,37 @@ class XInputComponent extends XInputProperty {
|
|
|
70
76
|
this._unSubject.next();
|
|
71
77
|
this._unSubject.unsubscribe();
|
|
72
78
|
}
|
|
79
|
+
setEvent() {
|
|
80
|
+
fromEvent(this.inputRef.nativeElement, 'compositionstart').subscribe(() => {
|
|
81
|
+
this.isComposition = true;
|
|
82
|
+
});
|
|
83
|
+
fromEvent(this.inputRef.nativeElement, 'compositionend').subscribe((x) => {
|
|
84
|
+
this.isComposition = false;
|
|
85
|
+
this.inputCheckValue(x);
|
|
86
|
+
});
|
|
87
|
+
fromEvent(this.inputRef.nativeElement, 'input').subscribe((x) => {
|
|
88
|
+
if (!this.isComposition) {
|
|
89
|
+
this.inputCheckValue(x);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
this.valueChange
|
|
93
|
+
.pipe(distinctUntilChanged((a, b) => a === b || (!!this.maxlength && `${b}`.length > Number(this.maxlength))), takeUntil(this._unSubject))
|
|
94
|
+
.subscribe((x) => {
|
|
95
|
+
this.change(x);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
inputCheckValue(x) {
|
|
99
|
+
const input = x.target;
|
|
100
|
+
let value = input.value;
|
|
101
|
+
if (this.type === 'number') {
|
|
102
|
+
const len = XIsEmpty(value) ? 0 : `${value}`.length;
|
|
103
|
+
if (len > Number(this.maxlength)) {
|
|
104
|
+
input.value = value.slice(0, Number(this.maxlength));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
this.xInput.emit(x);
|
|
108
|
+
this.valueChange.next(input.value);
|
|
109
|
+
}
|
|
73
110
|
change(value) {
|
|
74
111
|
if (this._required && !this.disabled) {
|
|
75
112
|
this.required = XIsEmpty(value);
|
|
@@ -80,7 +117,7 @@ class XInputComponent extends XInputProperty {
|
|
|
80
117
|
this.lengthTotal = `${this.valueLength}/${this.maxlength}`;
|
|
81
118
|
}
|
|
82
119
|
this.setPadding();
|
|
83
|
-
if (this.onChange) {
|
|
120
|
+
if (this.onChange && !this.isWriteValue) {
|
|
84
121
|
if (this.type === 'number') {
|
|
85
122
|
if (['', undefined, null].includes(value)) {
|
|
86
123
|
value = null;
|
|
@@ -99,7 +136,7 @@ class XInputComponent extends XInputProperty {
|
|
|
99
136
|
onClear() {
|
|
100
137
|
const clearValue = this.value;
|
|
101
138
|
this.value = '';
|
|
102
|
-
this.
|
|
139
|
+
this.valueChange.next(this.value);
|
|
103
140
|
this.inputRef.nativeElement.focus();
|
|
104
141
|
this.clearEmit.emit(clearValue);
|
|
105
142
|
}
|
|
@@ -166,17 +203,17 @@ class XInputComponent extends XInputProperty {
|
|
|
166
203
|
this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;
|
|
167
204
|
}
|
|
168
205
|
formControlChanges() {
|
|
169
|
-
this.
|
|
206
|
+
this.valueChange.next(this.value);
|
|
170
207
|
this.ngOnInit();
|
|
171
208
|
this.cdr.detectChanges();
|
|
172
209
|
}
|
|
173
210
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: XInputComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: i2.XInputGroupComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
174
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: XInputComponent, selector: "x-input", host: { properties: { "style.width.px": "this.getWidth" } }, providers: [XValueAccessor(XInputComponent)], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }, { propertyName: "inputValueRef", first: true, predicate: ["inputValueRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-input-icon]=\"getIcon\"\r\n [class.x-input-active]=\"active\"\r\n [class.x-input-pointer]=\"pointer\"\r\n [class.x-input-bordered]=\"bordered\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight\"\r\n [class.x-input-after]=\"after\"\r\n [class.x-input-before]=\"before\"\r\n [class.x-input-after-template]=\"afterIsTemplate\"\r\n [class.x-input-before-template]=\"beforeIsTemplate\"\r\n [class.x-input-value-template]=\"valueTpl\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-input-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-input-row\">\r\n <div class=\"x-input-row-before\" *ngIf=\"before\" [class.x-input-row-before-template]=\"beforeIsTemplate\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n <div\r\n #inputValueRef\r\n class=\"x-input-value-template-value\"\r\n [style.left.rem]=\"paddingLeft\"\r\n [style.padding-left]=\"0\"\r\n [style.padding-right]=\"0\"\r\n [style.width]=\"getTemplateWidth\"\r\n (click)=\"xClick.emit($event)\"\r\n *ngIf=\"valueTpl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"valueTpl; context: valueTplContext ? valueTplContext : { $value: value }\"></ng-container>\r\n </div>\r\n <input\r\n #inputRef\r\n [class.x-input-has-value-template]=\"valueTpl\"\r\n [ngStyle]=\"inputStyle\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (input)=\"xInput.emit($event)\"\r\n (keydown)=\"formControlValidator(); xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n (compositionstart)=\"xComposition.next(true)\"\r\n (compositionend)=\"xComposition.next(false)\"\r\n />\r\n <x-icon *ngIf=\"clearShow && !iconSpin\" class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon\r\n *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft || iconSpin)\"\r\n [type]=\"icon\"\r\n [spin]=\"iconSpin\"\r\n (click)=\"xClick.emit($event)\"\r\n ></x-icon>\r\n <span class=\"x-input-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-input-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n <div class=\"x-input-row-after\" *ngIf=\"after\" [class.x-input-row-after-template]=\"afterIsTemplate\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input{display:inline-block;width:12rem}.x-input{width:100%;margin:0;padding:0}.x-input.x-flex{display:flex}.x-input.x-justify-start{justify-content:flex-start}.x-input.x-justify-center{justify-content:center}.x-input.x-justify-end{justify-content:flex-end}.x-input.x-justify-space-between{justify-content:space-between}.x-input.x-justify-space-around{justify-content:space-around}.x-input.x-align-start{align-items:flex-start}.x-input.x-align-center{align-items:center}.x-input.x-align-end{align-items:flex-end}.x-input.x-direction-column{flex-direction:column}.x-input.x-direction-column-reverse{flex-direction:column-reverse}.x-input.x-direction-row{flex-direction:row}.x-input.x-direction-row-reverse{flex-direction:row-reverse}.x-input>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-input>label.x-text-align-start{text-align:start}.x-input>label.x-text-align-center{text-align:center}.x-input>label.x-text-align-end{text-align:end}.x-input-row{flex:1;display:flex;align-items:center}.x-input-row .x-input-row-before:not(.x-input-row-before-template),.x-input-row .x-input-row-after:not(.x-input-row-after-template){border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);border-width:0}.x-input-row .x-input-row-before-template{display:contents}.x-input-row .x-input-row-before-template input,.x-input-row .x-input-row-before-template .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-row .x-input-row-after-template{display:contents}.x-input-row .x-input-row-after-template input,.x-input-row .x-input-row-after-template .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-row .x-input-row-before-template:hover,.x-input-row .x-input-row-before-template:focus{z-index:1}.x-input-row .x-input-row-before-template input:hover,.x-input-row .x-input-row-before-template input:focus,.x-input-row .x-input-row-before-template .x-button:hover,.x-input-row .x-input-row-before-template .x-button:focus,.x-input-row .x-input-row-after-template input:hover,.x-input-row .x-input-row-after-template input:focus,.x-input-row .x-input-row-after-template .x-button:hover,.x-input-row .x-input-row-after-template .x-button:focus{z-index:1}.x-input-row>.x-input-input{position:relative;width:100%;display:inline-flex;align-items:center}.x-input-row>.x-input-input>input{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background-a200);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);border-width:0;box-shadow:var(--x-box-shadow) transparent;transition-property:background-color,border-color;transition-duration:var(--x-animation-duration-slow)}.x-input-row>.x-input-input>input::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-input-row>.x-input-input>input:-ms-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input::-webkit-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input[disabled]{color:var(--x-text-500)}.x-input-row>.x-input-input>input:focus{border-color:var(--x-primary);outline:0}.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2}.x-input-row>.x-input-input:hover>input{border-color:var(--x-primary-300)}.x-input-row>.x-input-input:focus>input{border-color:var(--x-primary);outline:0}.x-input-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-input-value-template .x-input-input>input.x-input-has-value-template{color:transparent!important}.x-input-value-template-value{position:absolute;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.x-input-value-template-value:hover+input{border-color:var(--x-primary-300)}.x-input-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-input.x-invalid>label,.x-input.x-required>label{color:var(--x-danger)}.x-input.x-invalid .x-input-input>x-icon,.x-input.x-required .x-input-input>x-icon{color:var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error,.x-input.x-required .x-input-input .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-input.x-invalid .x-input-input .x-border-error.x-top-left,.x-input.x-required .x-input-input .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-top-right,.x-input.x-required .x-input-input .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-left,.x-input.x-required .x-input-input .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-right,.x-input.x-required .x-input-input .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-disabled>.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);cursor:not-allowed}.x-input.x-disabled>.x-input-row>.x-input-input>input{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-input.x-disabled>.x-input-row>.x-input-input>.x-input-value-template-value{color:var(--x-text-400);cursor:not-allowed}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);padding:.4rem;right:0;left:inherit;opacity:0;cursor:pointer;z-index:2}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear:hover{color:var(--x-text-300)}.x-input.x-clearable>.x-input-row>.x-input-input:hover>input .x-input-clear,.x-input.x-clearable>.x-input-row>.x-input-input:hover>.x-input-value-template-value .x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>.x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>input{padding-right:calc(var(--x-font-size-medium) + .4rem * 2)!important}.x-input-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:0}.x-input.x-direction-row>label{padding:0 .5rem 0 0}.x-input.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-input.x-direction-column,.x-input.x-direction-column-reverse{align-items:inherit}.x-input-icon>.x-input-row>.x-input-input>x-icon{position:absolute;font-size:var(--x-font-size-medium);padding:.4rem}.x-input-icon>.x-input-row>.x-input-input>x-icon.x-icon-spin{padding:0;margin:.4rem}.x-input-icon-left>.x-input-row>.x-input-input>input,.x-input-icon-left>.x-input-row>.x-input-input>.x-input-value-template-value{padding-left:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-left>.x-input-row>.x-input-input>x-icon{left:0}.x-input-icon-right>.x-input-row>.x-input-input>input,.x-input-icon-right>.x-input-row>.x-input-input>.x-input-value-template-value{padding-right:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-right>.x-input-row>.x-input-input>x-icon{right:0}.x-input-icon-right>.x-input-row>.x-input-input>.x-input-max-length{right:inherit;left:0}.x-input-bordered>.x-input-row>.x-input-input>input{border-width:var(--x-border-width);background-color:var(--x-background)}.x-input-bordered .x-input-row .x-input-row-before:not(.x-input-row-before-template){border-width:var(--x-border-width);border-right-width:0}.x-input-bordered .x-input-row .x-input-row-after:not(.x-input-row-after-template){border-width:var(--x-border-width);border-left-width:0}.x-input-before>.x-input-row>.x-input-input>input{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-before-template .x-input-input>input{margin-left:calc(var(--x-border-width) * -1)}.x-input-before-template .x-input-input>input:hover,.x-input-before-template .x-input-input>input:focus{z-index:1}.x-input-after>.x-input-row>.x-input-input>input{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-after-template>.x-input-row>.x-input-input>input{margin-right:calc(var(--x-border-width) * -1)}.x-input-after-template>.x-input-row>.x-input-input>input:hover,.x-input-after-template>.x-input-row>.x-input-input>input:focus{z-index:1}.x-input-active .x-input-row>.x-input-input>input{border-color:var(--x-primary)}.x-input-pointer .x-input-row>.x-input-input>input,.x-input-pointer .x-input-row>.x-input-input>x-icon,.x-input-pointer .x-input-row>.x-input-input>.x-input-value-template-value{cursor:pointer}.x-input-big>.x-input-row>.x-input-input>input,.x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-large>.x-input-row>.x-input-input>input,.x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-medium>.x-input-row>.x-input-input>input,.x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-small>.x-input-row>.x-input-input>input,.x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-mini>.x-input-row>.x-input-input>input,.x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
211
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: XInputComponent, selector: "x-input", host: { properties: { "style.width.px": "this.getWidth" } }, providers: [XValueAccessor(XInputComponent)], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }, { propertyName: "inputValueRef", first: true, predicate: ["inputValueRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-input-icon]=\"getIcon\"\r\n [class.x-input-active]=\"active\"\r\n [class.x-input-pointer]=\"pointer\"\r\n [class.x-input-bordered]=\"bordered\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight\"\r\n [class.x-input-after]=\"after\"\r\n [class.x-input-before]=\"before\"\r\n [class.x-input-after-template]=\"afterIsTemplate\"\r\n [class.x-input-before-template]=\"beforeIsTemplate\"\r\n [class.x-input-value-template]=\"valueTpl\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-input-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-input-row\">\r\n <div class=\"x-input-row-before\" *ngIf=\"before\" [class.x-input-row-before-template]=\"beforeIsTemplate\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n <div\r\n #inputValueRef\r\n class=\"x-input-value-template-value\"\r\n [style.left.rem]=\"paddingLeft\"\r\n [style.padding-left]=\"0\"\r\n [style.padding-right]=\"0\"\r\n [style.width]=\"getTemplateWidth\"\r\n (click)=\"xClick.emit($event)\"\r\n *ngIf=\"valueTpl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"valueTpl; context: valueTplContext ? valueTplContext : { $value: value }\"></ng-container>\r\n </div>\r\n <input\r\n #inputRef\r\n [class.x-input-has-value-template]=\"valueTpl\"\r\n [ngStyle]=\"inputStyle\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange.next($event)\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (keydown)=\"formControlValidator(); xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n (compositionstart)=\"xComposition.next(true)\"\r\n (compositionend)=\"xComposition.next(false)\"\r\n />\r\n <x-icon *ngIf=\"clearShow && !iconSpin\" class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon\r\n *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft || iconSpin)\"\r\n [type]=\"icon\"\r\n [spin]=\"iconSpin\"\r\n (click)=\"xClick.emit($event)\"\r\n ></x-icon>\r\n <span class=\"x-input-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-input-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n <div class=\"x-input-row-after\" *ngIf=\"after\" [class.x-input-row-after-template]=\"afterIsTemplate\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input{display:inline-block;width:12rem}.x-input{width:100%;margin:0;padding:0}.x-input.x-flex{display:flex}.x-input.x-justify-start{justify-content:flex-start}.x-input.x-justify-center{justify-content:center}.x-input.x-justify-end{justify-content:flex-end}.x-input.x-justify-space-between{justify-content:space-between}.x-input.x-justify-space-around{justify-content:space-around}.x-input.x-align-start{align-items:flex-start}.x-input.x-align-center{align-items:center}.x-input.x-align-end{align-items:flex-end}.x-input.x-direction-column{flex-direction:column}.x-input.x-direction-column-reverse{flex-direction:column-reverse}.x-input.x-direction-row{flex-direction:row}.x-input.x-direction-row-reverse{flex-direction:row-reverse}.x-input>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-input>label.x-text-align-start{text-align:start}.x-input>label.x-text-align-center{text-align:center}.x-input>label.x-text-align-end{text-align:end}.x-input-row{flex:1;display:flex;align-items:center}.x-input-row .x-input-row-before:not(.x-input-row-before-template),.x-input-row .x-input-row-after:not(.x-input-row-after-template){border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);border-width:0}.x-input-row .x-input-row-before-template{display:contents}.x-input-row .x-input-row-before-template input,.x-input-row .x-input-row-before-template .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-row .x-input-row-after-template{display:contents}.x-input-row .x-input-row-after-template input,.x-input-row .x-input-row-after-template .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-row .x-input-row-before-template:hover,.x-input-row .x-input-row-before-template:focus{z-index:1}.x-input-row .x-input-row-before-template input:hover,.x-input-row .x-input-row-before-template input:focus,.x-input-row .x-input-row-before-template .x-button:hover,.x-input-row .x-input-row-before-template .x-button:focus,.x-input-row .x-input-row-after-template input:hover,.x-input-row .x-input-row-after-template input:focus,.x-input-row .x-input-row-after-template .x-button:hover,.x-input-row .x-input-row-after-template .x-button:focus{z-index:1}.x-input-row>.x-input-input{position:relative;width:100%;display:inline-flex;align-items:center}.x-input-row>.x-input-input>input{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background-a200);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);border-width:0;box-shadow:var(--x-box-shadow) transparent;transition-property:background-color,border-color;transition-duration:var(--x-animation-duration-slow)}.x-input-row>.x-input-input>input::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-input-row>.x-input-input>input:-ms-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input::-webkit-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input[disabled]{color:var(--x-text-500)}.x-input-row>.x-input-input>input:focus{border-color:var(--x-primary);outline:0}.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2}.x-input-row>.x-input-input:hover>input{border-color:var(--x-primary-300)}.x-input-row>.x-input-input:focus>input{border-color:var(--x-primary);outline:0}.x-input-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-input-value-template .x-input-input>input.x-input-has-value-template{color:transparent!important}.x-input-value-template-value{position:absolute;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.x-input-value-template-value:hover+input{border-color:var(--x-primary-300)}.x-input-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-input.x-invalid>label,.x-input.x-required>label{color:var(--x-danger)}.x-input.x-invalid .x-input-input>x-icon,.x-input.x-required .x-input-input>x-icon{color:var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error,.x-input.x-required .x-input-input .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-input.x-invalid .x-input-input .x-border-error.x-top-left,.x-input.x-required .x-input-input .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-top-right,.x-input.x-required .x-input-input .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-left,.x-input.x-required .x-input-input .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-right,.x-input.x-required .x-input-input .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-disabled>.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);cursor:not-allowed}.x-input.x-disabled>.x-input-row>.x-input-input>input{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-input.x-disabled>.x-input-row>.x-input-input>.x-input-value-template-value{color:var(--x-text-400);cursor:not-allowed}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);padding:.4rem;right:0;left:inherit;opacity:0;cursor:pointer;z-index:2}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear:hover{color:var(--x-text-300)}.x-input.x-clearable>.x-input-row>.x-input-input:hover>input .x-input-clear,.x-input.x-clearable>.x-input-row>.x-input-input:hover>.x-input-value-template-value .x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>.x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>input{padding-right:calc(var(--x-font-size-medium) + .4rem * 2)!important}.x-input-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:0}.x-input.x-direction-row>label{padding:0 .5rem 0 0}.x-input.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-input.x-direction-column,.x-input.x-direction-column-reverse{align-items:inherit}.x-input-icon>.x-input-row>.x-input-input>x-icon{position:absolute;font-size:var(--x-font-size-medium);padding:.4rem}.x-input-icon>.x-input-row>.x-input-input>x-icon.x-icon-spin{padding:0;margin:.4rem}.x-input-icon-left>.x-input-row>.x-input-input>input,.x-input-icon-left>.x-input-row>.x-input-input>.x-input-value-template-value{padding-left:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-left>.x-input-row>.x-input-input>x-icon{left:0}.x-input-icon-right>.x-input-row>.x-input-input>input,.x-input-icon-right>.x-input-row>.x-input-input>.x-input-value-template-value{padding-right:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-right>.x-input-row>.x-input-input>x-icon{right:0}.x-input-icon-right>.x-input-row>.x-input-input>.x-input-max-length{right:inherit;left:0}.x-input-bordered>.x-input-row>.x-input-input>input{border-width:var(--x-border-width);background-color:var(--x-background)}.x-input-bordered .x-input-row .x-input-row-before:not(.x-input-row-before-template){border-width:var(--x-border-width);border-right-width:0}.x-input-bordered .x-input-row .x-input-row-after:not(.x-input-row-after-template){border-width:var(--x-border-width);border-left-width:0}.x-input-before>.x-input-row>.x-input-input>input{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-before-template .x-input-input>input{margin-left:calc(var(--x-border-width) * -1)}.x-input-before-template .x-input-input>input:hover,.x-input-before-template .x-input-input>input:focus{z-index:1}.x-input-after>.x-input-row>.x-input-input>input{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-after-template>.x-input-row>.x-input-input>input{margin-right:calc(var(--x-border-width) * -1)}.x-input-after-template>.x-input-row>.x-input-input>input:hover,.x-input-after-template>.x-input-row>.x-input-input>input:focus{z-index:1}.x-input-active .x-input-row>.x-input-input>input{border-color:var(--x-primary)}.x-input-pointer .x-input-row>.x-input-input>input,.x-input-pointer .x-input-row>.x-input-input>x-icon,.x-input-pointer .x-input-row>.x-input-input>.x-input-value-template-value{cursor:pointer}.x-input-big>.x-input-row>.x-input-input>input,.x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-large>.x-input-row>.x-input-input>input,.x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-medium>.x-input-row>.x-input-input>input,.x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-small>.x-input-row>.x-input-input>input,.x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-mini>.x-input-row>.x-input-input>input,.x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
175
212
|
}
|
|
176
213
|
export { XInputComponent };
|
|
177
214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: XInputComponent, decorators: [{
|
|
178
215
|
type: Component,
|
|
179
|
-
args: [{ selector: `${XInputPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XInputComponent)], template: "<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-input-icon]=\"getIcon\"\r\n [class.x-input-active]=\"active\"\r\n [class.x-input-pointer]=\"pointer\"\r\n [class.x-input-bordered]=\"bordered\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight\"\r\n [class.x-input-after]=\"after\"\r\n [class.x-input-before]=\"before\"\r\n [class.x-input-after-template]=\"afterIsTemplate\"\r\n [class.x-input-before-template]=\"beforeIsTemplate\"\r\n [class.x-input-value-template]=\"valueTpl\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-input-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-input-row\">\r\n <div class=\"x-input-row-before\" *ngIf=\"before\" [class.x-input-row-before-template]=\"beforeIsTemplate\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n <div\r\n #inputValueRef\r\n class=\"x-input-value-template-value\"\r\n [style.left.rem]=\"paddingLeft\"\r\n [style.padding-left]=\"0\"\r\n [style.padding-right]=\"0\"\r\n [style.width]=\"getTemplateWidth\"\r\n (click)=\"xClick.emit($event)\"\r\n *ngIf=\"valueTpl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"valueTpl; context: valueTplContext ? valueTplContext : { $value: value }\"></ng-container>\r\n </div>\r\n <input\r\n #inputRef\r\n [class.x-input-has-value-template]=\"valueTpl\"\r\n [ngStyle]=\"inputStyle\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (input)=\"xInput.emit($event)\"\r\n (keydown)=\"formControlValidator(); xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n (compositionstart)=\"xComposition.next(true)\"\r\n (compositionend)=\"xComposition.next(false)\"\r\n />\r\n <x-icon *ngIf=\"clearShow && !iconSpin\" class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon\r\n *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft || iconSpin)\"\r\n [type]=\"icon\"\r\n [spin]=\"iconSpin\"\r\n (click)=\"xClick.emit($event)\"\r\n ></x-icon>\r\n <span class=\"x-input-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-input-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n <div class=\"x-input-row-after\" *ngIf=\"after\" [class.x-input-row-after-template]=\"afterIsTemplate\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input{display:inline-block;width:12rem}.x-input{width:100%;margin:0;padding:0}.x-input.x-flex{display:flex}.x-input.x-justify-start{justify-content:flex-start}.x-input.x-justify-center{justify-content:center}.x-input.x-justify-end{justify-content:flex-end}.x-input.x-justify-space-between{justify-content:space-between}.x-input.x-justify-space-around{justify-content:space-around}.x-input.x-align-start{align-items:flex-start}.x-input.x-align-center{align-items:center}.x-input.x-align-end{align-items:flex-end}.x-input.x-direction-column{flex-direction:column}.x-input.x-direction-column-reverse{flex-direction:column-reverse}.x-input.x-direction-row{flex-direction:row}.x-input.x-direction-row-reverse{flex-direction:row-reverse}.x-input>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-input>label.x-text-align-start{text-align:start}.x-input>label.x-text-align-center{text-align:center}.x-input>label.x-text-align-end{text-align:end}.x-input-row{flex:1;display:flex;align-items:center}.x-input-row .x-input-row-before:not(.x-input-row-before-template),.x-input-row .x-input-row-after:not(.x-input-row-after-template){border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);border-width:0}.x-input-row .x-input-row-before-template{display:contents}.x-input-row .x-input-row-before-template input,.x-input-row .x-input-row-before-template .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-row .x-input-row-after-template{display:contents}.x-input-row .x-input-row-after-template input,.x-input-row .x-input-row-after-template .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-row .x-input-row-before-template:hover,.x-input-row .x-input-row-before-template:focus{z-index:1}.x-input-row .x-input-row-before-template input:hover,.x-input-row .x-input-row-before-template input:focus,.x-input-row .x-input-row-before-template .x-button:hover,.x-input-row .x-input-row-before-template .x-button:focus,.x-input-row .x-input-row-after-template input:hover,.x-input-row .x-input-row-after-template input:focus,.x-input-row .x-input-row-after-template .x-button:hover,.x-input-row .x-input-row-after-template .x-button:focus{z-index:1}.x-input-row>.x-input-input{position:relative;width:100%;display:inline-flex;align-items:center}.x-input-row>.x-input-input>input{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background-a200);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);border-width:0;box-shadow:var(--x-box-shadow) transparent;transition-property:background-color,border-color;transition-duration:var(--x-animation-duration-slow)}.x-input-row>.x-input-input>input::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-input-row>.x-input-input>input:-ms-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input::-webkit-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input[disabled]{color:var(--x-text-500)}.x-input-row>.x-input-input>input:focus{border-color:var(--x-primary);outline:0}.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2}.x-input-row>.x-input-input:hover>input{border-color:var(--x-primary-300)}.x-input-row>.x-input-input:focus>input{border-color:var(--x-primary);outline:0}.x-input-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-input-value-template .x-input-input>input.x-input-has-value-template{color:transparent!important}.x-input-value-template-value{position:absolute;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.x-input-value-template-value:hover+input{border-color:var(--x-primary-300)}.x-input-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-input.x-invalid>label,.x-input.x-required>label{color:var(--x-danger)}.x-input.x-invalid .x-input-input>x-icon,.x-input.x-required .x-input-input>x-icon{color:var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error,.x-input.x-required .x-input-input .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-input.x-invalid .x-input-input .x-border-error.x-top-left,.x-input.x-required .x-input-input .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-top-right,.x-input.x-required .x-input-input .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-left,.x-input.x-required .x-input-input .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-right,.x-input.x-required .x-input-input .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-disabled>.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);cursor:not-allowed}.x-input.x-disabled>.x-input-row>.x-input-input>input{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-input.x-disabled>.x-input-row>.x-input-input>.x-input-value-template-value{color:var(--x-text-400);cursor:not-allowed}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);padding:.4rem;right:0;left:inherit;opacity:0;cursor:pointer;z-index:2}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear:hover{color:var(--x-text-300)}.x-input.x-clearable>.x-input-row>.x-input-input:hover>input .x-input-clear,.x-input.x-clearable>.x-input-row>.x-input-input:hover>.x-input-value-template-value .x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>.x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>input{padding-right:calc(var(--x-font-size-medium) + .4rem * 2)!important}.x-input-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:0}.x-input.x-direction-row>label{padding:0 .5rem 0 0}.x-input.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-input.x-direction-column,.x-input.x-direction-column-reverse{align-items:inherit}.x-input-icon>.x-input-row>.x-input-input>x-icon{position:absolute;font-size:var(--x-font-size-medium);padding:.4rem}.x-input-icon>.x-input-row>.x-input-input>x-icon.x-icon-spin{padding:0;margin:.4rem}.x-input-icon-left>.x-input-row>.x-input-input>input,.x-input-icon-left>.x-input-row>.x-input-input>.x-input-value-template-value{padding-left:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-left>.x-input-row>.x-input-input>x-icon{left:0}.x-input-icon-right>.x-input-row>.x-input-input>input,.x-input-icon-right>.x-input-row>.x-input-input>.x-input-value-template-value{padding-right:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-right>.x-input-row>.x-input-input>x-icon{right:0}.x-input-icon-right>.x-input-row>.x-input-input>.x-input-max-length{right:inherit;left:0}.x-input-bordered>.x-input-row>.x-input-input>input{border-width:var(--x-border-width);background-color:var(--x-background)}.x-input-bordered .x-input-row .x-input-row-before:not(.x-input-row-before-template){border-width:var(--x-border-width);border-right-width:0}.x-input-bordered .x-input-row .x-input-row-after:not(.x-input-row-after-template){border-width:var(--x-border-width);border-left-width:0}.x-input-before>.x-input-row>.x-input-input>input{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-before-template .x-input-input>input{margin-left:calc(var(--x-border-width) * -1)}.x-input-before-template .x-input-input>input:hover,.x-input-before-template .x-input-input>input:focus{z-index:1}.x-input-after>.x-input-row>.x-input-input>input{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-after-template>.x-input-row>.x-input-input>input{margin-right:calc(var(--x-border-width) * -1)}.x-input-after-template>.x-input-row>.x-input-input>input:hover,.x-input-after-template>.x-input-row>.x-input-input>input:focus{z-index:1}.x-input-active .x-input-row>.x-input-input>input{border-color:var(--x-primary)}.x-input-pointer .x-input-row>.x-input-input>input,.x-input-pointer .x-input-row>.x-input-input>x-icon,.x-input-pointer .x-input-row>.x-input-input>.x-input-value-template-value{cursor:pointer}.x-input-big>.x-input-row>.x-input-input>input,.x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-large>.x-input-row>.x-input-input>input,.x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-medium>.x-input-row>.x-input-input>input,.x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-small>.x-input-row>.x-input-input>input,.x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-mini>.x-input-row>.x-input-input>input,.x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"] }]
|
|
216
|
+
args: [{ selector: `${XInputPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XInputComponent)], template: "<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-input-icon]=\"getIcon\"\r\n [class.x-input-active]=\"active\"\r\n [class.x-input-pointer]=\"pointer\"\r\n [class.x-input-bordered]=\"bordered\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight\"\r\n [class.x-input-after]=\"after\"\r\n [class.x-input-before]=\"before\"\r\n [class.x-input-after-template]=\"afterIsTemplate\"\r\n [class.x-input-before-template]=\"beforeIsTemplate\"\r\n [class.x-input-value-template]=\"valueTpl\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-input-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-input-row\">\r\n <div class=\"x-input-row-before\" *ngIf=\"before\" [class.x-input-row-before-template]=\"beforeIsTemplate\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n <div\r\n #inputValueRef\r\n class=\"x-input-value-template-value\"\r\n [style.left.rem]=\"paddingLeft\"\r\n [style.padding-left]=\"0\"\r\n [style.padding-right]=\"0\"\r\n [style.width]=\"getTemplateWidth\"\r\n (click)=\"xClick.emit($event)\"\r\n *ngIf=\"valueTpl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"valueTpl; context: valueTplContext ? valueTplContext : { $value: value }\"></ng-container>\r\n </div>\r\n <input\r\n #inputRef\r\n [class.x-input-has-value-template]=\"valueTpl\"\r\n [ngStyle]=\"inputStyle\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange.next($event)\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (keydown)=\"formControlValidator(); xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n (compositionstart)=\"xComposition.next(true)\"\r\n (compositionend)=\"xComposition.next(false)\"\r\n />\r\n <x-icon *ngIf=\"clearShow && !iconSpin\" class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon\r\n *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft || iconSpin)\"\r\n [type]=\"icon\"\r\n [spin]=\"iconSpin\"\r\n (click)=\"xClick.emit($event)\"\r\n ></x-icon>\r\n <span class=\"x-input-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-input-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n <div class=\"x-input-row-after\" *ngIf=\"after\" [class.x-input-row-after-template]=\"afterIsTemplate\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input{display:inline-block;width:12rem}.x-input{width:100%;margin:0;padding:0}.x-input.x-flex{display:flex}.x-input.x-justify-start{justify-content:flex-start}.x-input.x-justify-center{justify-content:center}.x-input.x-justify-end{justify-content:flex-end}.x-input.x-justify-space-between{justify-content:space-between}.x-input.x-justify-space-around{justify-content:space-around}.x-input.x-align-start{align-items:flex-start}.x-input.x-align-center{align-items:center}.x-input.x-align-end{align-items:flex-end}.x-input.x-direction-column{flex-direction:column}.x-input.x-direction-column-reverse{flex-direction:column-reverse}.x-input.x-direction-row{flex-direction:row}.x-input.x-direction-row-reverse{flex-direction:row-reverse}.x-input>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-input>label.x-text-align-start{text-align:start}.x-input>label.x-text-align-center{text-align:center}.x-input>label.x-text-align-end{text-align:end}.x-input-row{flex:1;display:flex;align-items:center}.x-input-row .x-input-row-before:not(.x-input-row-before-template),.x-input-row .x-input-row-after:not(.x-input-row-after-template){border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);border-width:0}.x-input-row .x-input-row-before-template{display:contents}.x-input-row .x-input-row-before-template input,.x-input-row .x-input-row-before-template .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-row .x-input-row-after-template{display:contents}.x-input-row .x-input-row-after-template input,.x-input-row .x-input-row-after-template .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-row .x-input-row-before-template:hover,.x-input-row .x-input-row-before-template:focus{z-index:1}.x-input-row .x-input-row-before-template input:hover,.x-input-row .x-input-row-before-template input:focus,.x-input-row .x-input-row-before-template .x-button:hover,.x-input-row .x-input-row-before-template .x-button:focus,.x-input-row .x-input-row-after-template input:hover,.x-input-row .x-input-row-after-template input:focus,.x-input-row .x-input-row-after-template .x-button:hover,.x-input-row .x-input-row-after-template .x-button:focus{z-index:1}.x-input-row>.x-input-input{position:relative;width:100%;display:inline-flex;align-items:center}.x-input-row>.x-input-input>input{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background-a200);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);border-width:0;box-shadow:var(--x-box-shadow) transparent;transition-property:background-color,border-color;transition-duration:var(--x-animation-duration-slow)}.x-input-row>.x-input-input>input::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-input-row>.x-input-input>input:-ms-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input::-webkit-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input[disabled]{color:var(--x-text-500)}.x-input-row>.x-input-input>input:focus{border-color:var(--x-primary);outline:0}.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2}.x-input-row>.x-input-input:hover>input{border-color:var(--x-primary-300)}.x-input-row>.x-input-input:focus>input{border-color:var(--x-primary);outline:0}.x-input-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-input-value-template .x-input-input>input.x-input-has-value-template{color:transparent!important}.x-input-value-template-value{position:absolute;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.x-input-value-template-value:hover+input{border-color:var(--x-primary-300)}.x-input-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-input.x-invalid>label,.x-input.x-required>label{color:var(--x-danger)}.x-input.x-invalid .x-input-input>x-icon,.x-input.x-required .x-input-input>x-icon{color:var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error,.x-input.x-required .x-input-input .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-input.x-invalid .x-input-input .x-border-error.x-top-left,.x-input.x-required .x-input-input .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-top-right,.x-input.x-required .x-input-input .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-left,.x-input.x-required .x-input-input .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-right,.x-input.x-required .x-input-input .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-disabled>.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);cursor:not-allowed}.x-input.x-disabled>.x-input-row>.x-input-input>input{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-input.x-disabled>.x-input-row>.x-input-input>.x-input-value-template-value{color:var(--x-text-400);cursor:not-allowed}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);padding:.4rem;right:0;left:inherit;opacity:0;cursor:pointer;z-index:2}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear:hover{color:var(--x-text-300)}.x-input.x-clearable>.x-input-row>.x-input-input:hover>input .x-input-clear,.x-input.x-clearable>.x-input-row>.x-input-input:hover>.x-input-value-template-value .x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>.x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>input{padding-right:calc(var(--x-font-size-medium) + .4rem * 2)!important}.x-input-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:0}.x-input.x-direction-row>label{padding:0 .5rem 0 0}.x-input.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-input.x-direction-column,.x-input.x-direction-column-reverse{align-items:inherit}.x-input-icon>.x-input-row>.x-input-input>x-icon{position:absolute;font-size:var(--x-font-size-medium);padding:.4rem}.x-input-icon>.x-input-row>.x-input-input>x-icon.x-icon-spin{padding:0;margin:.4rem}.x-input-icon-left>.x-input-row>.x-input-input>input,.x-input-icon-left>.x-input-row>.x-input-input>.x-input-value-template-value{padding-left:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-left>.x-input-row>.x-input-input>x-icon{left:0}.x-input-icon-right>.x-input-row>.x-input-input>input,.x-input-icon-right>.x-input-row>.x-input-input>.x-input-value-template-value{padding-right:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-right>.x-input-row>.x-input-input>x-icon{right:0}.x-input-icon-right>.x-input-row>.x-input-input>.x-input-max-length{right:inherit;left:0}.x-input-bordered>.x-input-row>.x-input-input>input{border-width:var(--x-border-width);background-color:var(--x-background)}.x-input-bordered .x-input-row .x-input-row-before:not(.x-input-row-before-template){border-width:var(--x-border-width);border-right-width:0}.x-input-bordered .x-input-row .x-input-row-after:not(.x-input-row-after-template){border-width:var(--x-border-width);border-left-width:0}.x-input-before>.x-input-row>.x-input-input>input{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-before-template .x-input-input>input{margin-left:calc(var(--x-border-width) * -1)}.x-input-before-template .x-input-input>input:hover,.x-input-before-template .x-input-input>input:focus{z-index:1}.x-input-after>.x-input-row>.x-input-input>input{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-after-template>.x-input-row>.x-input-input>input{margin-right:calc(var(--x-border-width) * -1)}.x-input-after-template>.x-input-row>.x-input-input>input:hover,.x-input-after-template>.x-input-row>.x-input-input>input:focus{z-index:1}.x-input-active .x-input-row>.x-input-input>input{border-color:var(--x-primary)}.x-input-pointer .x-input-row>.x-input-input>input,.x-input-pointer .x-input-row>.x-input-input>x-icon,.x-input-pointer .x-input-row>.x-input-input>.x-input-value-template-value{cursor:pointer}.x-input-big>.x-input-row>.x-input-input>input,.x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-large>.x-input-row>.x-input-input>input,.x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-medium>.x-input-row>.x-input-input>input,.x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-small>.x-input-row>.x-input-input>input,.x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-mini>.x-input-row>.x-input-input>input,.x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"] }]
|
|
180
217
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: i2.XInputGroupComponent, decorators: [{
|
|
181
218
|
type: Optional
|
|
182
219
|
}] }]; }, propDecorators: { inputElement: [{
|
|
@@ -192,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
192
229
|
type: HostBinding,
|
|
193
230
|
args: ['style.width.px']
|
|
194
231
|
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBSXZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBa0IsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7OztBQUd2RCxNQVFhLGVBQWdCLFNBQVEsY0FBYztJQUtqRCxJQUFtQyxRQUFRO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRVEsVUFBVSxDQUFDLEtBQVU7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFXRCxJQUFJLE9BQU87UUFDVCxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJ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QixDQUFDO2lJQW5MVSxlQUFlO3FIQUFmLGVBQWUsK0ZBRmYsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsd1lDM0I5QyxzdkhBbUZBOztTRHREYSxlQUFlOzJGQUFmLGVBQWU7a0JBUjNCLFNBQVM7K0JBQ0UsR0FBRyxZQUFZLEVBQUUsaUJBR1osaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsaUJBQWlCLENBQUM7OzBCQXVEekMsUUFBUTs0Q0FwRGtDLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1gsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUVTLFFBQVE7c0JBQTFDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPcHRpb25hbCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBIb3N0QmluZGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRQcmVmaXgsIFhJbnB1dFByb3BlcnR5IH0gZnJvbSAnLi9pbnB1dC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNDaGFuZ2UsIFhDbGVhckNsYXNzLCBYQ29uZmlnU2VydmljZSwgWElzVW5kZWZpbmVkLCBYSXNGdW5jdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWElucHV0R3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWdyb3VwLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WElucHV0UHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWElucHV0Q29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhJbnB1dENvbXBvbmVudCBleHRlbmRzIFhJbnB1dFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRSZWYhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VmFsdWVSZWYnKSBpbnB1dFZhbHVlUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSBnZXQgZ2V0V2lkdGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53aWR0aDtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2UodmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdmFsdWVMZW5ndGg6IG51bWJlciA9IDA7XHJcbiAgbGVuZ3RoVG90YWw6IHN0cmluZyA9ICcnO1xyXG4gIHBhZGRpbmdMZWZ0OiBudW1iZXIgPSAwLjQ7XHJcbiAgcGFkZGluZ1JpZ2h0OiBudW1iZXIgPSAwLjQ7XHJcbiAgY2xlYXJTaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZmxleENsYXNzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGdldEljb24oKSB7XHJcbiAgICByZXR1cm4gIVhJc0VtcHR5KHRoaXMuaWNvbik7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SWNvbkxheW91dExlZnQoKSB7XHJcbiAgICByZXR1cm4gIVhJc0VtcHR5KHRoaXMuaWNvbikgJiYgdGhpcy5pY29uTGF5b3V0ID09PSAnbGVmdCc7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SWNvbkxheW91dFJpZ2h0KCkge1xyXG4gICAgcmV0dXJuICFYSXNFbXB0eSh0aGlzLmljb24pICYmIHRoaXMuaWNvbkxheW91dCA9PT0gJ3JpZ2h0JztcclxuICB9XHJcblxyXG4gIGdldCBiZWZvcmVJc1RlbXBsYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmVmb3JlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XHJcbiAgfVxyXG5cclxuICBnZXQgYWZ0ZXJJc1RlbXBsYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWZ0ZXIgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcclxuICB9XHJcblxyXG4gIGdldCBnZXRUZW1wbGF0ZVdpZHRoKCkge1xyXG4gICAgcmV0dXJuIGBjYWxjKDEwMCUgLSAke3RoaXMucGFkZGluZ0xlZnQgKyB0aGlzLnBhZGRpbmdSaWdodH1yZW0pYDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBpbnB1dEdyb3VwOiBYSW5wdXRHcm91cENvbXBvbmVudFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRQYWRkaW5nKCk7XHJcbiAgICB0aGlzLnNldEZsZXhDbGFzcygpO1xyXG4gICAgdGhpcy5zZXRJbmhlcml0ZWRWYWx1ZSgpO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBjbGVhcmFibGUsIHNpemUsIGxhYmVsQWxpZ24sIGp1c3RpZnksIGFsaWduLCBkaXJlY3Rpb24sIGljb24sIGljb25TcGluLCBjbGVhclNob3cgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoY2xlYXJhYmxlKSAmJiB0aGlzLnNldENsZWFyYWJsZSgpO1xyXG4gICAgWElzQ2hhbmdlKHNpemUsIGxhYmVsQWxpZ24pICYmIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIFhJc0NoYW5nZShqdXN0aWZ5LCBhbGlnbiwgZGlyZWN0aW9uKSAmJiB0aGlzLnNldEZsZXhDbGFzcygpO1xyXG4gICAgWElzQ2hhbmdlKGljb24sIGljb25TcGluLCBjbGVhclNob3cpICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLl9yZXF1aXJlZCAmJiAhdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLnJlcXVpcmVkID0gWElzRW1wdHkodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRDbGVhcmFibGUoKTtcclxuICAgIGlmICh0aGlzLm1heGxlbmd0aCkge1xyXG4gICAgICB0aGlzLnZhbHVlTGVuZ3RoID0gWElzRW1wdHkodmFsdWUpID8gMCA6IGAke3ZhbHVlfWAubGVuZ3RoO1xyXG4gICAgICB0aGlzLmxlbmd0aFRvdGFsID0gYCR7dGhpcy52YWx1ZUxlbmd0aH0vJHt0aGlzLm1heGxlbmd0aH1gO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRQYWRkaW5nKCk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xyXG4gICAgICBpZiAodGhpcy50eXBlID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIGlmIChbJycsIHVuZGVmaW5lZCwgbnVsbF0uaW5jbHVkZXModmFsdWUpKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52YWxpZGF0b3IgJiYgWElzRnVuY3Rpb24odGhpcy5pbnB1dFZhbGlkYXRvcikpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkSW5wdXRWYWxpZGF0b3IgPSAhdGhpcy5pbnB1dFZhbGlkYXRvcih2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyKCkge1xyXG4gICAgY29uc3QgY2xlYXJWYWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLmNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgdGhpcy5jbGVhckVtaXQuZW1pdChjbGVhclZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldEZsZXhDbGFzcygpIHtcclxuICAgIGlmICh0aGlzLmZsZXhDbGFzcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGNscyBvZiB0aGlzLmZsZXhDbGFzcykge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgY2xzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5mbGV4Q2xhc3MgPSB0aGlzLnNldEZsZXgodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBzZXRDbGVhcmFibGUoKSB7XHJcbiAgICBpZiAodGhpcy5jbGVhcmFibGUgJiYgIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5jbGVhclNob3cgPSAhWElzRW1wdHkodGhpcy52YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsZWFyU2hvdyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRQYWRkaW5nKCk7XHJcbiAgfVxyXG5cclxuICBzZXRJbmhlcml0ZWRWYWx1ZSgpIHtcclxuICAgIGlmICghdGhpcy5pbnB1dEdyb3VwKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc1VuZGVmaW5lZCh0aGlzLmlucHV0R3JvdXAuc2l6ZSkpIHtcclxuICAgICAgdGhpcy5zaXplID0gdGhpcy5pbnB1dEdyb3VwLnNpemU7XHJcbiAgICB9XHJcbiAgICBpZiAoIVhJc1VuZGVmaW5lZCh0aGlzLmlucHV0R3JvdXAuYm9yZGVyZWQpKSB7XHJcbiAgICAgIHRoaXMuYm9yZGVyZWQgPSB0aGlzLmlucHV0R3JvdXAuYm9yZGVyZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQYWRkaW5nKCkge1xyXG4gICAgdGhpcy5wYWRkaW5nTGVmdCA9XHJcbiAgICAgIHRoaXMubWF4bGVuZ3RoICYmIHRoaXMuaWNvbiAmJiB0aGlzLmljb25MYXlvdXQgPT09ICdyaWdodCdcclxuICAgICAgICA/ICh0aGlzLmxlbmd0aFRvdGFsLmxlbmd0aCArIDIpICogMC4zODVcclxuICAgICAgICA6IHRoaXMuaWNvbiAmJiB0aGlzLmljb25MYXlvdXQgPT09ICdsZWZ0J1xyXG4gICAgICAgID8gTnVtYmVyKHRoaXMuaW5wdXRJY29uUGFkZGluZylcclxuICAgICAgICA6IE51bWJlcih0aGlzLmlucHV0UGFkZGluZyk7XHJcbiAgICB0aGlzLnBhZGRpbmdSaWdodCA9XHJcbiAgICAgIHRoaXMubWF4bGVuZ3RoICYmIHRoaXMuaWNvbiAmJiB0aGlzLmljb25MYXlvdXQgPT09ICdsZWZ0J1xyXG4gICAgICAgID8gKHRoaXMubGVuZ3RoVG90YWwubGVuZ3RoICsgMikgKiAwLjM4NVxyXG4gICAgICAgIDogKHRoaXMuaWNvbiB8fCB0aGlzLmNsZWFyU2hvdykgJiYgdGhpcy5pY29uTGF5b3V0ID09PSAncmlnaHQnXHJcbiAgICAgICAgPyBOdW1iZXIodGhpcy5pbnB1dEljb25QYWRkaW5nKVxyXG4gICAgICAgIDogdGhpcy5tYXhsZW5ndGggJiYgIXRoaXMuaWNvblxyXG4gICAgICAgID8gKHRoaXMubGVuZ3RoVG90YWwubGVuZ3RoICsgMikgKiAwLjM4NVxyXG4gICAgICAgIDogTnVtYmVyKHRoaXMuaW5wdXRQYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIGlucHV0Rm9jdXModHlwZTogJ2ZvY3VzJyB8ICdzZWxlY3QnIHwgJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJykge1xyXG4gICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHJldHVybjtcclxuICAgIGlmICh0eXBlID09PSAnYWZ0ZXInKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSh0aGlzLnZhbHVlLmxlbmd0aCwgdGhpcy52YWx1ZS5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnYmVmb3JlJykge1xyXG4gICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgMCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzZWxlY3QnKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgwLCB0aGlzLnZhbHVlLmxlbmd0aCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMuY2xhc3NNYXAsIHRoaXMubGFiZWxNYXApO1xyXG4gICAgdGhpcy5jbGFzc01hcFtgJHtYSW5wdXRQcmVmaXh9LSR7dGhpcy5zaXplfWBdID0gdGhpcy5zaXplID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5jaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjaW5wdXRFbGVtZW50XHJcbiAgY2xhc3M9XCJ4LWlucHV0XCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkgfHwgYWxpZ24gfHwgZGlyZWN0aW9uXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLngtcmVxdWlyZWRdPVwicmVxdWlyZWRJc0VtcHR5XCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWRcIlxyXG4gIFtjbGFzcy54LWNsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxyXG4gIFtjbGFzcy54LWNsZWFyLXNob3ddPVwiY2xlYXJTaG93XCJcclxuICBbY2xhc3MueC1pbnB1dC1pY29uXT1cImdldEljb25cIlxyXG4gIFtjbGFzcy54LWlucHV0LWFjdGl2ZV09XCJhY3RpdmVcIlxyXG4gIFtjbGFzcy54LWlucHV0LXBvaW50ZXJdPVwicG9pbnRlclwiXHJcbiAgW2NsYXNzLngtaW5wdXQtYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gIFtjbGFzcy54LWlucHV0LWljb24tbGVmdF09XCJnZXRJY29uTGF5b3V0TGVmdFwiXHJcbiAgW2NsYXNzLngtaW5wdXQtaWNvbi1yaWdodF09XCJnZXRJY29uTGF5b3V0UmlnaHRcIlxyXG4gIFtjbGFzcy54LWlucHV0LWFmdGVyXT1cImFmdGVyXCJcclxuICBbY2xhc3MueC1pbnB1dC1iZWZvcmVdPVwiYmVmb3JlXCJcclxuICBbY2xhc3MueC1pbnB1dC1hZnRlci10ZW1wbGF0ZV09XCJhZnRlcklzVGVtcGxhdGVcIlxyXG4gIFtjbGFzcy54LWlucHV0LWJlZm9yZS10ZW1wbGF0ZV09XCJiZWZvcmVJc1RlbXBsYXRlXCJcclxuICBbY2xhc3MueC1pbnB1dC12YWx1ZS10ZW1wbGF0ZV09XCJ2YWx1ZVRwbFwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbY2xhc3MueC1pbnB1dC1sYWJlbC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cIngtaW5wdXQtcm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbnB1dC1yb3ctYmVmb3JlXCIgKm5nSWY9XCJiZWZvcmVcIiBbY2xhc3MueC1pbnB1dC1yb3ctYmVmb3JlLXRlbXBsYXRlXT1cImJlZm9yZUlzVGVtcGxhdGVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImJlZm9yZVwiPnt7IGJlZm9yZSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbnB1dC1pbnB1dFwiIChtb3VzZWVudGVyKT1cInhNb3VzZWVudGVyLmVtaXQoJGV2ZW50KVwiIChtb3VzZWxlYXZlKT1cInhNb3VzZWxlYXZlLmVtaXQoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgI2lucHV0VmFsdWVSZWZcclxuICAgICAgICBjbGFzcz1cIngtaW5wdXQtdmFsdWUtdGVtcGxhdGUtdmFsdWVcIlxyXG4gICAgICAgIFtzdHlsZS5sZWZ0LnJlbV09XCJwYWRkaW5nTGVmdFwiXHJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdF09XCIwXCJcclxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCIwXCJcclxuICAgICAgICBbc3R5bGUud2lkdGhdPVwiZ2V0VGVtcGxhdGVXaWR0aFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInhDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICpuZ0lmPVwidmFsdWVUcGxcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZhbHVlVHBsOyBjb250ZXh0OiB2YWx1ZVRwbENvbnRleHQgPyB2YWx1ZVRwbENvbnRleHQgOiB7ICR2YWx1ZTogdmFsdWUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgI2lucHV0UmVmXHJcbiAgICAgICAgW2NsYXNzLngtaW5wdXQtaGFzLXZhbHVlLXRlbXBsYXRlXT1cInZhbHVlVHBsXCJcclxuICAgICAgICBbbmdTdHlsZV09XCJpbnB1dFN0eWxlXCJcclxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdC5yZW1dPVwicGFkZGluZ0xlZnRcIlxyXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0LnJlbV09XCJwYWRkaW5nUmlnaHRcIlxyXG4gICAgICAgIChmb2N1cyk9XCJ4Rm9jdXMuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJ4Qmx1ci5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChpbnB1dCk9XCJ4SW5wdXQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoa2V5ZG93bik9XCJmb3JtQ29udHJvbFZhbGlkYXRvcigpOyB4S2V5ZG93bi5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChjbGljayk9XCJ4Q2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY29tcG9zaXRpb25zdGFydCk9XCJ4Q29tcG9zaXRpb24ubmV4dCh0cnVlKVwiXHJcbiAgICAgICAgKGNvbXBvc2l0aW9uZW5kKT1cInhDb21wb3NpdGlvbi5uZXh0KGZhbHNlKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDx4LWljb24gKm5nSWY9XCJjbGVhclNob3cgJiYgIWljb25TcGluXCIgY2xhc3M9XCJ4LWlucHV0LWNsZWFyXCIgdHlwZT1cImZ0by14XCIgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uXHJcbiAgICAgICAgKm5nSWY9XCJpY29uICYmICgoIWNsZWFyU2hvdyAmJiBnZXRJY29uTGF5b3V0UmlnaHQpIHx8IGdldEljb25MYXlvdXRMZWZ0IHx8IGljb25TcGluKVwiXHJcbiAgICAgICAgW3R5cGVdPVwiaWNvblwiXHJcbiAgICAgICAgW3NwaW5dPVwiaWNvblNwaW5cIlxyXG4gICAgICAgIChjbGljayk9XCJ4Q2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgPjwveC1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIngtaW5wdXQtbWF4LWxlbmd0aFwiICpuZ0lmPVwibWF4bGVuZ3RoXCI+e3sgbGVuZ3RoVG90YWwgfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwieC1pbnB1dC1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJpbnZhbGlkXCI+e3sgaW52YWxpZE1lc3NhZ2UgfX08L3NwYW4+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXF1aXJlZElzRW1wdHkgfHwgaW52YWxpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LXRvcC1sZWZ0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtdG9wLXJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtYm90dG9tLWxlZnRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC1ib3R0b20tcmlnaHRcIj48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWlucHV0LXJvdy1hZnRlclwiICpuZ0lmPVwiYWZ0ZXJcIiBbY2xhc3MueC1pbnB1dC1yb3ctYWZ0ZXItdGVtcGxhdGVdPVwiYWZ0ZXJJc1RlbXBsYXRlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJhZnRlclwiPnt7IGFmdGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBSXZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBa0IsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBR3ZELE1BUWEsZUFBZ0IsU0FBUSxjQUFjO0lBS2pELElBQW1DLFFBQVE7UUFDekMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFUSxVQUFVLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFjRCxJQUFJ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QUFmLGVBQWU7a0JBUjNCLFNBQVM7K0JBQ0UsR0FBRyxZQUFZLEVBQUUsaUJBR1osaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsaUJBQWlCLENBQUM7OzBCQTREekMsUUFBUTs0Q0F6RGtDLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1gsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUVTLFFBQVE7c0JBQTFDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPcHRpb25hbCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBIb3N0QmluZGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRQcmVmaXgsIFhJbnB1dFByb3BlcnR5IH0gZnJvbSAnLi9pbnB1dC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNDaGFuZ2UsIFhDbGVhckNsYXNzLCBYQ29uZmlnU2VydmljZSwgWElzVW5kZWZpbmVkLCBYSXNGdW5jdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBYSW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZ3JvdXAuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYSW5wdXRQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYSW5wdXRDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWElucHV0Q29tcG9uZW50IGV4dGVuZHMgWElucHV0UHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRWYWx1ZVJlZicpIGlucHV0VmFsdWVSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aC5weCcpIGdldCBnZXRXaWR0aCgpIHtcclxuICAgIHJldHVybiB0aGlzLndpZHRoO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmlzV3JpdGVWYWx1ZSA9IHRydWU7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gICAgdGhpcy5pc1dyaXRlVmFsdWUgPSBmYWxzZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHZhbHVlTGVuZ3RoOiBudW1iZXIgPSAwO1xyXG4gIGxlbmd0aFRvdGFsOiBzdHJpbmcgPSAnJztcclxuICBwYWRkaW5nTGVmdDogbnVtYmVyID0gMC40O1xyXG4gIHBhZGRpbmdSaWdodDogbnVtYmVyID0gMC40O1xyXG4gIGNsZWFyU2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZsZXhDbGFzczogc3RyaW5nW10gPSBbXTtcclxuICB2YWx1ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBpc0NvbXBvc2l0aW9uID0gZmFsc2U7XHJcbiAgaXNXcml0ZVZhbHVlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBnZXQgZ2V0SWNvbigpIHtcclxuICAgIHJldHVybiAhWElzRW1wdHkodGhpcy5pY29uKTtcclxuICB9XHJcblxyXG4gIGdldCBnZXRJY29uTGF5b3V0TGVmdCgpIHtcclxuICAgIHJldHVybiAhWElzRW1wdHkodGhpcy5pY29uKSAmJiB0aGlzLmljb25MYXlvdXQgPT09ICdsZWZ0JztcclxuICB9XHJcblxyXG4gIGdldCBnZXRJY29uTGF5b3V0UmlnaHQoKSB7XHJcbiAgICByZXR1cm4gIVhJc0VtcHR5KHRoaXMuaWNvbikgJiYgdGhpcy5pY29uTGF5b3V0ID09PSAncmlnaHQnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJlZm9yZUlzVGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iZWZvcmUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcclxuICB9XHJcblxyXG4gIGdldCBhZnRlcklzVGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZnRlciBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldFRlbXBsYXRlV2lkdGgoKSB7XHJcbiAgICByZXR1cm4gYGNhbGMoMTAwJSAtICR7dGhpcy5wYWRkaW5nTGVmdCArIHRoaXMucGFkZGluZ1JpZ2h0fXJlbSlgO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGlucHV0R3JvdXA6IFhJbnB1dEdyb3VwQ29tcG9uZW50XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFBhZGRpbmcoKTtcclxuICAgIHRoaXMuc2V0RmxleENsYXNzKCk7XHJcbiAgICB0aGlzLnNldEluaGVyaXRlZFZhbHVlKCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldEV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGNsZWFyYWJsZSwgc2l6ZSwgbGFiZWxBbGlnbiwganVzdGlmeSwgYWxpZ24sIGRpcmVjdGlvbiwgaWNvbiwgaWNvblNwaW4sIGNsZWFyU2hvdyB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShjbGVhcmFibGUpICYmIHRoaXMuc2V0Q2xlYXJhYmxlKCk7XHJcbiAgICBYSXNDaGFuZ2Uoc2l6ZSwgbGFiZWxBbGlnbikgJiYgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgWElzQ2hhbmdlKGp1c3RpZnksIGFsaWduLCBkaXJlY3Rpb24pICYmIHRoaXMuc2V0RmxleENsYXNzKCk7XHJcbiAgICBYSXNDaGFuZ2UoaWNvbiwgaWNvblNwaW4sIGNsZWFyU2hvdykgJiYgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRFdmVudCgpIHtcclxuICAgIGZyb21FdmVudCh0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQsICdjb21wb3NpdGlvbnN0YXJ0Jykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5pc0NvbXBvc2l0aW9uID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gICAgZnJvbUV2ZW50KHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudCwgJ2NvbXBvc2l0aW9uZW5kJykuc3Vic2NyaWJlKCh4OiBFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzQ29tcG9zaXRpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5pbnB1dENoZWNrVmFsdWUoeCk7XHJcbiAgICB9KTtcclxuICAgIGZyb21FdmVudDxJbnB1dEV2ZW50Pih0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnN1YnNjcmliZSgoeDogSW5wdXRFdmVudCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaXNDb21wb3NpdGlvbikge1xyXG4gICAgICAgIHRoaXMuaW5wdXRDaGVja1ZhbHVlKHgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGEgPT09IGIgfHwgKCEhdGhpcy5tYXhsZW5ndGggJiYgYCR7Yn1gLmxlbmd0aCA+IE51bWJlcih0aGlzLm1heGxlbmd0aCkpKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmNoYW5nZSh4KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbnB1dENoZWNrVmFsdWUoeDogRXZlbnQpIHtcclxuICAgIGNvbnN0IGlucHV0ID0geC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGxldCB2YWx1ZSA9IGlucHV0LnZhbHVlO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgY29uc3QgbGVuID0gWElzRW1wdHkodmFsdWUpID8gMCA6IGAke3ZhbHVlfWAubGVuZ3RoO1xyXG4gICAgICBpZiAobGVuID4gTnVtYmVyKHRoaXMubWF4bGVuZ3RoKSkge1xyXG4gICAgICAgIGlucHV0LnZhbHVlID0gdmFsdWUuc2xpY2UoMCwgTnVtYmVyKHRoaXMubWF4bGVuZ3RoKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMueElucHV0LmVtaXQoeCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQoaW5wdXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLl9yZXF1aXJlZCAmJiAhdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLnJlcXVpcmVkID0gWElzRW1wdHkodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRDbGVhcmFibGUoKTtcclxuICAgIGlmICh0aGlzLm1heGxlbmd0aCkge1xyXG4gICAgICB0aGlzLnZhbHVlTGVuZ3RoID0gWElzRW1wdHkodmFsdWUpID8gMCA6IGAke3ZhbHVlfWAubGVuZ3RoO1xyXG4gICAgICB0aGlzLmxlbmd0aFRvdGFsID0gYCR7dGhpcy52YWx1ZUxlbmd0aH0vJHt0aGlzLm1heGxlbmd0aH1gO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRQYWRkaW5nKCk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSAmJiAhdGhpcy5pc1dyaXRlVmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoWycnLCB1bmRlZmluZWQsIG51bGxdLmluY2x1ZGVzKHZhbHVlKSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmFsaWRhdG9yICYmIFhJc0Z1bmN0aW9uKHRoaXMuaW5wdXRWYWxpZGF0b3IpKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZElucHV0VmFsaWRhdG9yID0gIXRoaXMuaW5wdXRWYWxpZGF0b3IodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpIHtcclxuICAgIGNvbnN0IGNsZWFyVmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB0aGlzLmNsZWFyRW1pdC5lbWl0KGNsZWFyVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmxleENsYXNzKCkge1xyXG4gICAgaWYgKHRoaXMuZmxleENsYXNzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yIChsZXQgY2xzIG9mIHRoaXMuZmxleENsYXNzKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBjbHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmZsZXhDbGFzcyA9IHRoaXMuc2V0RmxleCh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmp1c3RpZnksIHRoaXMuYWxpZ24sIHRoaXMuZGlyZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHNldENsZWFyYWJsZSgpIHtcclxuICAgIGlmICh0aGlzLmNsZWFyYWJsZSAmJiAhdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmNsZWFyU2hvdyA9ICFYSXNFbXB0eSh0aGlzLnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xlYXJTaG93ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFBhZGRpbmcoKTtcclxuICB9XHJcblxyXG4gIHNldEluaGVyaXRlZFZhbHVlKCkge1xyXG4gICAgaWYgKCF0aGlzLmlucHV0R3JvdXApIHJldHVybjtcclxuICAgIGlmICghWElzVW5kZWZpbmVkKHRoaXMuaW5wdXRHcm91cC5zaXplKSkge1xyXG4gICAgICB0aGlzLnNpemUgPSB0aGlzLmlucHV0R3JvdXAuc2l6ZTtcclxuICAgIH1cclxuICAgIGlmICghWElzVW5kZWZpbmVkKHRoaXMuaW5wdXRHcm91cC5ib3JkZXJlZCkpIHtcclxuICAgICAgdGhpcy5ib3JkZXJlZCA9IHRoaXMuaW5wdXRHcm91cC5ib3JkZXJlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhZGRpbmcoKSB7XHJcbiAgICB0aGlzLnBhZGRpbmdMZWZ0ID1cclxuICAgICAgdGhpcy5tYXhsZW5ndGggJiYgdGhpcy5pY29uICYmIHRoaXMuaWNvbkxheW91dCA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgID8gKHRoaXMubGVuZ3RoVG90YWwubGVuZ3RoICsgMikgKiAwLjM4NVxyXG4gICAgICAgIDogdGhpcy5pY29uICYmIHRoaXMuaWNvbkxheW91dCA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyBOdW1iZXIodGhpcy5pbnB1dEljb25QYWRkaW5nKVxyXG4gICAgICAgIDogTnVtYmVyKHRoaXMuaW5wdXRQYWRkaW5nKTtcclxuICAgIHRoaXMucGFkZGluZ1JpZ2h0ID1cclxuICAgICAgdGhpcy5tYXhsZW5ndGggJiYgdGhpcy5pY29uICYmIHRoaXMuaWNvbkxheW91dCA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyAodGhpcy5sZW5ndGhUb3RhbC5sZW5ndGggKyAyKSAqIDAuMzg1XHJcbiAgICAgICAgOiAodGhpcy5pY29uIHx8IHRoaXMuY2xlYXJTaG93KSAmJiB0aGlzLmljb25MYXlvdXQgPT09ICdyaWdodCdcclxuICAgICAgICA/IE51bWJlcih0aGlzLmlucHV0SWNvblBhZGRpbmcpXHJcbiAgICAgICAgOiB0aGlzLm1heGxlbmd0aCAmJiAhdGhpcy5pY29uXHJcbiAgICAgICAgPyAodGhpcy5sZW5ndGhUb3RhbC5sZW5ndGggKyAyKSAqIDAuMzg1XHJcbiAgICAgICAgOiBOdW1iZXIodGhpcy5pbnB1dFBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRGb2N1cyh0eXBlOiAnZm9jdXMnIHwgJ3NlbGVjdCcgfCAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInKSB7XHJcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIGlmICghdGhpcy52YWx1ZSkgcmV0dXJuO1xyXG4gICAgaWYgKHR5cGUgPT09ICdhZnRlcicpIHtcclxuICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHRoaXMudmFsdWUubGVuZ3RoLCB0aGlzLnZhbHVlLmxlbmd0aCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdiZWZvcmUnKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NlbGVjdCcpIHtcclxuICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIHRoaXMudmFsdWUubGVuZ3RoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5jbGFzc01hcCwgdGhpcy5sYWJlbE1hcCk7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2Ake1hJbnB1dFByZWZpeH0tJHt0aGlzLnNpemV9YF0gPSB0aGlzLnNpemUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjaW5wdXRFbGVtZW50XHJcbiAgY2xhc3M9XCJ4LWlucHV0XCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkgfHwgYWxpZ24gfHwgZGlyZWN0aW9uXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLngtcmVxdWlyZWRdPVwicmVxdWlyZWRJc0VtcHR5XCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWRcIlxyXG4gIFtjbGFzcy54LWNsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxyXG4gIFtjbGFzcy54LWNsZWFyLXNob3ddPVwiY2xlYXJTaG93XCJcclxuICBbY2xhc3MueC1pbnB1dC1pY29uXT1cImdldEljb25cIlxyXG4gIFtjbGFzcy54LWlucHV0LWFjdGl2ZV09XCJhY3RpdmVcIlxyXG4gIFtjbGFzcy54LWlucHV0LXBvaW50ZXJdPVwicG9pbnRlclwiXHJcbiAgW2NsYXNzLngtaW5wdXQtYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gIFtjbGFzcy54LWlucHV0LWljb24tbGVmdF09XCJnZXRJY29uTGF5b3V0TGVmdFwiXHJcbiAgW2NsYXNzLngtaW5wdXQtaWNvbi1yaWdodF09XCJnZXRJY29uTGF5b3V0UmlnaHRcIlxyXG4gIFtjbGFzcy54LWlucHV0LWFmdGVyXT1cImFmdGVyXCJcclxuICBbY2xhc3MueC1pbnB1dC1iZWZvcmVdPVwiYmVmb3JlXCJcclxuICBbY2xhc3MueC1pbnB1dC1hZnRlci10ZW1wbGF0ZV09XCJhZnRlcklzVGVtcGxhdGVcIlxyXG4gIFtjbGFzcy54LWlucHV0LWJlZm9yZS10ZW1wbGF0ZV09XCJiZWZvcmVJc1RlbXBsYXRlXCJcclxuICBbY2xhc3MueC1pbnB1dC12YWx1ZS10ZW1wbGF0ZV09XCJ2YWx1ZVRwbFwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbY2xhc3MueC1pbnB1dC1sYWJlbC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cIngtaW5wdXQtcm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbnB1dC1yb3ctYmVmb3JlXCIgKm5nSWY9XCJiZWZvcmVcIiBbY2xhc3MueC1pbnB1dC1yb3ctYmVmb3JlLXRlbXBsYXRlXT1cImJlZm9yZUlzVGVtcGxhdGVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImJlZm9yZVwiPnt7IGJlZm9yZSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbnB1dC1pbnB1dFwiIChtb3VzZWVudGVyKT1cInhNb3VzZWVudGVyLmVtaXQoJGV2ZW50KVwiIChtb3VzZWxlYXZlKT1cInhNb3VzZWxlYXZlLmVtaXQoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgI2lucHV0VmFsdWVSZWZcclxuICAgICAgICBjbGFzcz1cIngtaW5wdXQtdmFsdWUtdGVtcGxhdGUtdmFsdWVcIlxyXG4gICAgICAgIFtzdHlsZS5sZWZ0LnJlbV09XCJwYWRkaW5nTGVmdFwiXHJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdF09XCIwXCJcclxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCIwXCJcclxuICAgICAgICBbc3R5bGUud2lkdGhdPVwiZ2V0VGVtcGxhdGVXaWR0aFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInhDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICpuZ0lmPVwidmFsdWVUcGxcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZhbHVlVHBsOyBjb250ZXh0OiB2YWx1ZVRwbENvbnRleHQgPyB2YWx1ZVRwbENvbnRleHQgOiB7ICR2YWx1ZTogdmFsdWUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgI2lucHV0UmVmXHJcbiAgICAgICAgW2NsYXNzLngtaW5wdXQtaGFzLXZhbHVlLXRlbXBsYXRlXT1cInZhbHVlVHBsXCJcclxuICAgICAgICBbbmdTdHlsZV09XCJpbnB1dFN0eWxlXCJcclxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5uZXh0KCRldmVudClcIlxyXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnQucmVtXT1cInBhZGRpbmdMZWZ0XCJcclxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodC5yZW1dPVwicGFkZGluZ1JpZ2h0XCJcclxuICAgICAgICAoZm9jdXMpPVwieEZvY3VzLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwieEJsdXIuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoa2V5ZG93bik9XCJmb3JtQ29udHJvbFZhbGlkYXRvcigpOyB4S2V5ZG93bi5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChjbGljayk9XCJ4Q2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY29tcG9zaXRpb25zdGFydCk9XCJ4Q29tcG9zaXRpb24ubmV4dCh0cnVlKVwiXHJcbiAgICAgICAgKGNvbXBvc2l0aW9uZW5kKT1cInhDb21wb3NpdGlvbi5uZXh0KGZhbHNlKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDx4LWljb24gKm5nSWY9XCJjbGVhclNob3cgJiYgIWljb25TcGluXCIgY2xhc3M9XCJ4LWlucHV0LWNsZWFyXCIgdHlwZT1cImZ0by14XCIgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uXHJcbiAgICAgICAgKm5nSWY9XCJpY29uICYmICgoIWNsZWFyU2hvdyAmJiBnZXRJY29uTGF5b3V0UmlnaHQpIHx8IGdldEljb25MYXlvdXRMZWZ0IHx8IGljb25TcGluKVwiXHJcbiAgICAgICAgW3R5cGVdPVwiaWNvblwiXHJcbiAgICAgICAgW3NwaW5dPVwiaWNvblNwaW5cIlxyXG4gICAgICAgIChjbGljayk9XCJ4Q2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgPjwveC1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIngtaW5wdXQtbWF4LWxlbmd0aFwiICpuZ0lmPVwibWF4bGVuZ3RoXCI+e3sgbGVuZ3RoVG90YWwgfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwieC1pbnB1dC1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJpbnZhbGlkXCI+e3sgaW52YWxpZE1lc3NhZ2UgfX08L3NwYW4+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXF1aXJlZElzRW1wdHkgfHwgaW52YWxpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LXRvcC1sZWZ0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtdG9wLXJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtYm90dG9tLWxlZnRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC1ib3R0b20tcmlnaHRcIj48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWlucHV0LXJvdy1hZnRlclwiICpuZ0lmPVwiYWZ0ZXJcIiBbY2xhc3MueC1pbnB1dC1yb3ctYWZ0ZXItdGVtcGxhdGVdPVwiYWZ0ZXJJc1RlbXBsYXRlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJhZnRlclwiPnt7IGFmdGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, HostListener } from '@angular/core';
|
|
1
|
+
import { ElementRef, Directive, HostListener, HostBinding } from '@angular/core';
|
|
2
2
|
import { XPortalConnectedPosition } from '@ng-nest/ui/portal';
|
|
3
3
|
import { XPopoverPortalComponent } from './popover-portal.component';
|
|
4
4
|
import { XPopoverPrefix, XPopoverProperty } from './popover.property';
|
|
@@ -21,6 +21,9 @@ class XPopoverDirective extends XPopoverProperty {
|
|
|
21
21
|
this.positionChange = new Subject();
|
|
22
22
|
this._unSubject = new Subject();
|
|
23
23
|
}
|
|
24
|
+
get _show() {
|
|
25
|
+
return this.visible;
|
|
26
|
+
}
|
|
24
27
|
click() {
|
|
25
28
|
if (this.condition)
|
|
26
29
|
return;
|
|
@@ -91,7 +94,7 @@ class XPopoverDirective extends XPopoverProperty {
|
|
|
91
94
|
clearTimeout(this.timeoutHide);
|
|
92
95
|
if (this.timeoutShow)
|
|
93
96
|
clearTimeout(this.timeoutShow);
|
|
94
|
-
if (this.portal
|
|
97
|
+
if (this.portal?.overlayRef?.hasAttached()) {
|
|
95
98
|
this.timeoutHide = setTimeout(() => {
|
|
96
99
|
this.visible = false;
|
|
97
100
|
this.portal.overlayRef?.dispose();
|
|
@@ -101,9 +104,14 @@ class XPopoverDirective extends XPopoverProperty {
|
|
|
101
104
|
}
|
|
102
105
|
createPortal() {
|
|
103
106
|
const config = {
|
|
107
|
+
panelClass: this.panelClass,
|
|
104
108
|
backdropClass: '',
|
|
105
109
|
positionStrategy: this.portalService.setPlacement({
|
|
106
|
-
elementRef: this.
|
|
110
|
+
elementRef: this.connectTo
|
|
111
|
+
? this.connectTo instanceof ElementRef
|
|
112
|
+
? this.connectTo
|
|
113
|
+
: new ElementRef(this.connectTo)
|
|
114
|
+
: this.elementRef,
|
|
107
115
|
placement: [this.placement, 'bottom', 'top', 'left', 'right']
|
|
108
116
|
}),
|
|
109
117
|
scrollStrategy: this.overlay.scrollStrategies.reposition()
|
|
@@ -169,13 +177,16 @@ class XPopoverDirective extends XPopoverProperty {
|
|
|
169
177
|
this.portal.overlayRef?.updatePosition();
|
|
170
178
|
}
|
|
171
179
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: XPopoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.Overlay }, { token: i3.XConfigService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
172
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: XPopoverDirective, selector: "[x-popover], x-popover", host: { listeners: { "click": "click()", "mouseenter": "mouseenter()", "mouseleave": "mouseleave()", "focus": "focus()", "blur": "blur()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
180
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: XPopoverDirective, selector: "[x-popover], x-popover", host: { listeners: { "click": "click()", "mouseenter": "mouseenter()", "mouseleave": "mouseleave()", "focus": "focus()", "blur": "blur()" }, properties: { "class.x-popover-show": "this._show" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
173
181
|
}
|
|
174
182
|
export { XPopoverDirective };
|
|
175
183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: XPopoverDirective, decorators: [{
|
|
176
184
|
type: Directive,
|
|
177
185
|
args: [{ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` }]
|
|
178
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2.Overlay }, { type: i3.XConfigService }]; }, propDecorators: {
|
|
186
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2.Overlay }, { type: i3.XConfigService }]; }, propDecorators: { _show: [{
|
|
187
|
+
type: HostBinding,
|
|
188
|
+
args: ['class.x-popover-show']
|
|
189
|
+
}], click: [{
|
|
179
190
|
type: HostListener,
|
|
180
191
|
args: ['click']
|
|
181
192
|
}], mouseenter: [{
|
|
@@ -191,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
191
202
|
type: HostListener,
|
|
192
203
|
args: ['blur']
|
|
193
204
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wb3BvdmVyL3BvcG92ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsU0FBUyxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFjLFNBQVMsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFFekUsTUFDYSxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFVckQsWUFDVSxVQUFzQixFQUN0QixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsT0FBZ0IsRUFDakIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFOQSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBWnRDLGtCQUFhLEdBQXlCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hFLG1CQUFjLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFHckMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFXekMsQ0FBQztJQUVzQixLQUFLO1FBQzFC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RDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxjQUFjLE1BQU0sY0FBYyxFQUFFLEVBQUU7Z05BcUJ4QyxLQUFLO3NCQUEzQixZQUFZO3VCQUFDLE9BQU87Z0JBVU8sVUFBVTtzQkFBckMsWUFBWTt1QkFBQyxZQUFZO2dCQUtFLFVBQVU7c0JBQXJDLFlBQVk7dUJBQUMsWUFBWTtnQkFLSCxLQUFLO3NCQUEzQixZQUFZO3VCQUFDLE9BQU87Z0JBS0MsSUFBSTtzQkFBekIsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYUG9ydGFsU2VydmljZSwgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFhQb3BvdmVyUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9wb3BvdmVyLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYUG9wb3ZlclByZWZpeCwgWFBvcG92ZXJQcm9wZXJ0eSB9IGZyb20gJy4vcG9wb3Zlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBPdmVybGF5Q29uZmlnLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSwgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYUGxhY2VtZW50LCBYSXNDaGFuZ2UsIFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6IGBbJHtYUG9wb3ZlclByZWZpeH1dLCAke1hQb3BvdmVyUHJlZml4fWAgfSlcclxuZXhwb3J0IGNsYXNzIFhQb3BvdmVyRGlyZWN0aXZlIGV4dGVuZHMgWFBvcG92ZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WFBvcG92ZXJQb3J0YWxDb21wb25lbnQ+O1xyXG4gIGJveCE6IERPTVJlY3Q7XHJcbiAgY29udGVudENoYW5nZTogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xyXG4gIHBvc2l0aW9uQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHRpbWVvdXRIaWRlOiBhbnk7XHJcbiAgdGltZW91dFNob3c6IGFueTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhbFBsYWNlbWVudCE6IFhQbGFjZW1lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBwb3J0YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgY2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5jb25kaXRpb24pIHJldHVybjtcclxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcclxuICAgICAgaWYgKHRoaXMudmlzaWJsZSkgdGhpcy5zaG93KCk7XHJcbiAgICAgIGVsc2UgdGhpcy5oaWRlKCk7XHJcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMudmlzaWJsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgbW91c2VlbnRlcigpIHtcclxuICAgIGlmICh0aGlzLmNvbmRpdGlvbikgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ2hvdmVyJykgdGhpcy5zaG93KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgbW91c2VsZWF2ZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbmRpdGlvbikgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ2hvdmVyJykgdGhpcy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpIGZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZGl0aW9uKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnZm9jdXMnKSB0aGlzLnNob3coKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBibHVyKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZGl0aW9uKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnZm9jdXMnKSB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgY29udGVudCwgdmlzaWJsZSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShjb250ZW50KSAmJiB0aGlzLmNvbnRlbnRDaGFuZ2UubmV4dCh0aGlzLmNvbnRlbnQpO1xyXG4gICAgaWYgKFhJc0NoYW5nZSh2aXNpYmxlKSAmJiAhdGhpcy5jb25kaXRpb24pIHtcclxuICAgICAgaWYgKHRoaXMudmlzaWJsZSkgdGhpcy5zaG93KCk7XHJcbiAgICAgIGVsc2UgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuY29udGVudENoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge31cclxuXHJcbiAgc2hvdygpIHtcclxuICAgIGlmICh0aGlzLnRpbWVvdXRIaWRlKSBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SGlkZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0U2hvdykgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFNob3cpO1xyXG4gICAgaWYgKCF0aGlzLnBvcnRhbCB8fCAodGhpcy5wb3J0YWwgJiYgIXRoaXMucG9ydGFsLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpKSB7XHJcbiAgICAgIHRoaXMudGltZW91dFNob3cgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlUG9ydGFsKCk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy52aXNpYmxlKTtcclxuICAgICAgfSwgdGhpcy5tb3VzZUVudGVyRGVsYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZSgpIHtcclxuICAgIGlmICh0aGlzLnRpbWVvdXRIaWRlKSBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SGlkZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0U2hvdykgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFNob3cpO1xyXG4gICAgaWYgKHRoaXMucG9ydGFsLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy50aW1lb3V0SGlkZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucG9ydGFsLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGUpO1xyXG4gICAgICB9LCB0aGlzLm1vdXNlTGVhdmVEZWxheSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVQb3J0YWwoKSB7XHJcbiAgICBjb25zdCBjb25maWc6IE92ZXJsYXlDb25maWcgPSB7XHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgICBlbGVtZW50UmVmOiB0aGlzLmVsZW1lbnRSZWYsXHJcbiAgICAgICAgcGxhY2VtZW50OiBbdGhpcy5wbGFjZW1lbnQgYXMgWFBsYWNlbWVudCwgJ2JvdHRvbScsICd0b3AnLCAnbGVmdCcsICdyaWdodCddXHJcbiAgICAgIH0pLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWFBvcG92ZXJQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzogY29uZmlnXHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHtcclxuICAgICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihjb25maWc6IE92ZXJsYXlDb25maWcpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IGNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcclxuICAgIHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhQbGFjZW1lbnQ7XHJcbiAgICAgIGlmIChwbGFjZSAhPT0gdGhpcy5yZWFsUGxhY2VtZW50KSB7XHJcbiAgICAgICAgdGhpcy5yZWFsUGxhY2VtZW50ID0gcGxhY2U7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5uZXh0KHBsYWNlKTtcclxuICAgICAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgdGhpcy5ib3ggPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMucmVhbFBsYWNlbWVudCA9IGAke3RoaXMucGxhY2VtZW50fWAgYXMgWFBsYWNlbWVudDtcclxuICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIGJveDogdGhpcy5ib3gsXHJcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxyXG4gICAgICBjb250ZW50OiB0aGlzLmNvbnRlbnQsXHJcbiAgICAgIGZvb3RlcjogdGhpcy5mb290ZXIsXHJcbiAgICAgIGNvbnRlbnRDaGFuZ2U6IHRoaXMuY29udGVudENoYW5nZSxcclxuICAgICAgcG9zaXRpb25DaGFuZ2U6IHRoaXMucG9zaXRpb25DaGFuZ2UsXHJcbiAgICAgIHRyaWdnZXI6IHRoaXMudHJpZ2dlcixcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgIHBvcnRhbEhvdmVyOiAoaG92ZXI6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAodGhpcy50aW1lb3V0SGlkZSAmJiBob3Zlcikge1xyXG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGNsb3NlUG9ydGFsOiAoKSA9PiB0aGlzLmhpZGUoKSxcclxuICAgICAgdmlld0luaXQ6ICgpID0+IHRoaXMucG9ydGFsLm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKClcclxuICAgIH0pO1xyXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbCkgdGhpcy5wb3J0YWwub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcclxuICB9XHJcbn1cclxuIl19
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wb3BvdmVyL3BvcG92ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW9CLFNBQVMsRUFBRSxZQUFZLEVBQTRCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXFDLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWMsU0FBUyxFQUFrQixNQUFNLGtCQUFrQixDQUFDOzs7OztBQUV6RSxNQUNhLGlCQUFrQixTQUFRLGdCQUFnQjtJQVVyRCxZQUNVLFVBQXNCLEVBQ3RCLGFBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxPQUFnQixFQUNqQixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQU5BLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFadEMsa0JBQWEsR0FBeUIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEUsbUJBQWMsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUdyQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVd6QyxD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QUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFO1NBQ3pELENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUM1RCxDQUFDO2lJQXhLVSxpQkFBaUI7cUhBQWpCLGlCQUFpQjs7U0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxjQUFjLE1BQU0sY0FBYyxFQUFFLEVBQUU7Z05BcUJ0QixLQUFLO3NCQUE3QyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFJWixLQUFLO3NCQUEzQixZQUFZO3VCQUFDLE9BQU87Z0JBVU8sVUFBVTtzQkFBckMsWUFBWTt1QkFBQyxZQUFZO2dCQUtFLFVBQVU7c0JBQXJDLFlBQVk7dUJBQUMsWUFBWTtnQkFLSCxLQUFLO3NCQUEzQixZQUFZO3VCQUFDLE9BQU87Z0JBS0MsSUFBSTtzQkFBekIsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UsIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYUG9wb3ZlclBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBvcG92ZXJQcmVmaXgsIFhQb3BvdmVyUHJvcGVydHkgfSBmcm9tICcuL3BvcG92ZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZywgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsIE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFBsYWNlbWVudCwgWElzQ2hhbmdlLCBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiBgWyR7WFBvcG92ZXJQcmVmaXh9XSwgJHtYUG9wb3ZlclByZWZpeH1gIH0pXHJcbmV4cG9ydCBjbGFzcyBYUG9wb3ZlckRpcmVjdGl2ZSBleHRlbmRzIFhQb3BvdmVyUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhQb3BvdmVyUG9ydGFsQ29tcG9uZW50PjtcclxuICBib3ghOiBET01SZWN0O1xyXG4gIGNvbnRlbnRDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICB0aW1lb3V0SGlkZTogYW55O1xyXG4gIHRpbWVvdXRTaG93OiBhbnk7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWxQbGFjZW1lbnQhOiBYUGxhY2VtZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcG9ydGFsU2VydmljZTogWFBvcnRhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLngtcG9wb3Zlci1zaG93JykgZ2V0IF9zaG93KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgY2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5jb25kaXRpb24pIHJldHVybjtcclxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcclxuICAgICAgaWYgKHRoaXMudmlzaWJsZSkgdGhpcy5zaG93KCk7XHJcbiAgICAgIGVsc2UgdGhpcy5oaWRlKCk7XHJcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMudmlzaWJsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgbW91c2VlbnRlcigpIHtcclxuICAgIGlmICh0aGlzLmNvbmRpdGlvbikgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ2hvdmVyJykgdGhpcy5zaG93KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgbW91c2VsZWF2ZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbmRpdGlvbikgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ2hvdmVyJykgdGhpcy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpIGZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZGl0aW9uKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnZm9jdXMnKSB0aGlzLnNob3coKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBibHVyKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZGl0aW9uKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnZm9jdXMnKSB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgY29udGVudCwgdmlzaWJsZSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShjb250ZW50KSAmJiB0aGlzLmNvbnRlbnRDaGFuZ2UubmV4dCh0aGlzLmNvbnRlbnQpO1xyXG4gICAgaWYgKFhJc0NoYW5nZSh2aXNpYmxlKSAmJiAhdGhpcy5jb25kaXRpb24pIHtcclxuICAgICAgaWYgKHRoaXMudmlzaWJsZSkgdGhpcy5zaG93KCk7XHJcbiAgICAgIGVsc2UgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuY29udGVudENoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge31cclxuXHJcbiAgc2hvdygpIHtcclxuICAgIGlmICh0aGlzLnRpbWVvdXRIaWRlKSBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SGlkZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0U2hvdykgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFNob3cpO1xyXG4gICAgaWYgKCF0aGlzLnBvcnRhbCB8fCAodGhpcy5wb3J0YWwgJiYgIXRoaXMucG9ydGFsLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpKSB7XHJcbiAgICAgIHRoaXMudGltZW91dFNob3cgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlUG9ydGFsKCk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy52aXNpYmxlKTtcclxuICAgICAgfSwgdGhpcy5tb3VzZUVudGVyRGVsYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZSgpIHtcclxuICAgIGlmICh0aGlzLnRpbWVvdXRIaWRlKSBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SGlkZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0U2hvdykgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFNob3cpO1xyXG4gICAgaWYgKHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMudGltZW91dEhpZGUgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy52aXNpYmxlKTtcclxuICAgICAgfSwgdGhpcy5tb3VzZUxlYXZlRGVsYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlUG9ydGFsKCkge1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBwYW5lbENsYXNzOiB0aGlzLnBhbmVsQ2xhc3MsXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgICBlbGVtZW50UmVmOiB0aGlzLmNvbm5lY3RUb1xyXG4gICAgICAgICAgPyB0aGlzLmNvbm5lY3RUbyBpbnN0YW5jZW9mIEVsZW1lbnRSZWZcclxuICAgICAgICAgICAgPyB0aGlzLmNvbm5lY3RUb1xyXG4gICAgICAgICAgICA6IG5ldyBFbGVtZW50UmVmKHRoaXMuY29ubmVjdFRvKVxyXG4gICAgICAgICAgOiB0aGlzLmVsZW1lbnRSZWYsXHJcbiAgICAgICAgcGxhY2VtZW50OiBbdGhpcy5wbGFjZW1lbnQgYXMgWFBsYWNlbWVudCwgJ2JvdHRvbScsICd0b3AnLCAnbGVmdCcsICdyaWdodCddXHJcbiAgICAgIH0pLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWFBvcG92ZXJQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzogY29uZmlnXHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHtcclxuICAgICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihjb25maWc6IE92ZXJsYXlDb25maWcpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IGNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcclxuICAgIHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhQbGFjZW1lbnQ7XHJcbiAgICAgIGlmIChwbGFjZSAhPT0gdGhpcy5yZWFsUGxhY2VtZW50KSB7XHJcbiAgICAgICAgdGhpcy5yZWFsUGxhY2VtZW50ID0gcGxhY2U7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5uZXh0KHBsYWNlKTtcclxuICAgICAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgdGhpcy5ib3ggPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMucmVhbFBsYWNlbWVudCA9IGAke3RoaXMucGxhY2VtZW50fWAgYXMgWFBsYWNlbWVudDtcclxuICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIGJveDogdGhpcy5ib3gsXHJcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxyXG4gICAgICBjb250ZW50OiB0aGlzLmNvbnRlbnQsXHJcbiAgICAgIGZvb3RlcjogdGhpcy5mb290ZXIsXHJcbiAgICAgIGNvbnRlbnRDaGFuZ2U6IHRoaXMuY29udGVudENoYW5nZSxcclxuICAgICAgcG9zaXRpb25DaGFuZ2U6IHRoaXMucG9zaXRpb25DaGFuZ2UsXHJcbiAgICAgIHRyaWdnZXI6IHRoaXMudHJpZ2dlcixcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgIHBvcnRhbEhvdmVyOiAoaG92ZXI6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAodGhpcy50aW1lb3V0SGlkZSAmJiBob3Zlcikge1xyXG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGNsb3NlUG9ydGFsOiAoKSA9PiB0aGlzLmhpZGUoKSxcclxuICAgICAgdmlld0luaXQ6ICgpID0+IHRoaXMucG9ydGFsLm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKClcclxuICAgIH0pO1xyXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbCkgdGhpcy5wb3J0YWwub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcclxuICB9XHJcbn1cclxuIl19
|