ngwr 0.1.0 → 0.1.1

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.
@@ -1,5 +1,8 @@
1
1
  export { BooleanInput } from './boolean-input';
2
2
  export { WrThemeColor } from './color';
3
+ export { WrInputAutocomplete } from './input-autocomplete-type';
4
+ export { WrInputModeType } from './input-mode-type';
5
+ export { WrInputType } from './input-type';
3
6
  export { OnChangeType } from './on-change-type';
4
7
  export { OnTouchedType } from './on-touched-type';
5
8
  export { SafeAny } from './safe-any';
@@ -0,0 +1 @@
1
+ export declare type WrInputAutocomplete = 'off' | 'name' | 'email' | 'username' | 'new-password' | 'current-password' | 'one-time-code' | 'organization-title' | 'organization' | 'street-address' | 'country' | 'country-name' | 'postal-code' | 'cc-name' | 'cc-given-name' | 'cc-additional-name' | 'cc-family-name' | 'cc-number' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-csc' | 'cc-type' | 'transaction-currency' | 'transaction-amount' | 'language' | 'bday' | 'bday-day' | 'bday-month' | 'bday-year' | 'sex' | 'tel' | 'tel-extension' | 'url' | 'photo';
@@ -0,0 +1 @@
1
+ export declare type WrInputModeType = 'text' | 'numeric' | 'tel' | 'email' | 'url';
@@ -0,0 +1 @@
1
+ export declare type WrInputType = 'text' | 'number' | 'password' | 'email';
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvX2NvcmUvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJy4vYm9vbGVhbi1pbnB1dCc7XG5leHBvcnQgeyBXclRoZW1lQ29sb3IgfSBmcm9tICcuL2NvbG9yJztcbmV4cG9ydCB7IE9uQ2hhbmdlVHlwZSB9IGZyb20gJy4vb24tY2hhbmdlLXR5cGUnO1xuZXhwb3J0IHsgT25Ub3VjaGVkVHlwZSB9IGZyb20gJy4vb24tdG91Y2hlZC10eXBlJztcbmV4cG9ydCB7IFNhZmVBbnkgfSBmcm9tICcuL3NhZmUtYW55JztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvX2NvcmUvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJy4vYm9vbGVhbi1pbnB1dCc7XG5leHBvcnQgeyBXclRoZW1lQ29sb3IgfSBmcm9tICcuL2NvbG9yJztcbmV4cG9ydCB7IFdySW5wdXRBdXRvY29tcGxldGUgfSBmcm9tICcuL2lucHV0LWF1dG9jb21wbGV0ZS10eXBlJztcbmV4cG9ydCB7IFdySW5wdXRNb2RlVHlwZSB9IGZyb20gJy4vaW5wdXQtbW9kZS10eXBlJztcbmV4cG9ydCB7IFdySW5wdXRUeXBlIH0gZnJvbSAnLi9pbnB1dC10eXBlJztcbmV4cG9ydCB7IE9uQ2hhbmdlVHlwZSB9IGZyb20gJy4vb24tY2hhbmdlLXR5cGUnO1xuZXhwb3J0IHsgT25Ub3VjaGVkVHlwZSB9IGZyb20gJy4vb24tdG91Y2hlZC10eXBlJztcbmV4cG9ydCB7IFNhZmVBbnkgfSBmcm9tICcuL3NhZmUtYW55JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYXV0b2NvbXBsZXRlLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvX2NvcmUvdHlwZXMvaW5wdXQtYXV0b2NvbXBsZXRlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFdySW5wdXRBdXRvY29tcGxldGUgPVxuICB8ICdvZmYnXG4gIHwgJ25hbWUnXG4gIHwgJ2VtYWlsJ1xuICB8ICd1c2VybmFtZSdcbiAgfCAnbmV3LXBhc3N3b3JkJ1xuICB8ICdjdXJyZW50LXBhc3N3b3JkJ1xuICB8ICdvbmUtdGltZS1jb2RlJ1xuICB8ICdvcmdhbml6YXRpb24tdGl0bGUnXG4gIHwgJ29yZ2FuaXphdGlvbidcbiAgfCAnc3RyZWV0LWFkZHJlc3MnXG4gIHwgJ2NvdW50cnknXG4gIHwgJ2NvdW50cnktbmFtZSdcbiAgfCAncG9zdGFsLWNvZGUnXG4gIHwgJ2NjLW5hbWUnXG4gIHwgJ2NjLWdpdmVuLW5hbWUnXG4gIHwgJ2NjLWFkZGl0aW9uYWwtbmFtZSdcbiAgfCAnY2MtZmFtaWx5LW5hbWUnXG4gIHwgJ2NjLW51bWJlcidcbiAgfCAnY2MtZXhwJ1xuICB8ICdjYy1leHAtbW9udGgnXG4gIHwgJ2NjLWV4cC15ZWFyJ1xuICB8ICdjYy1jc2MnXG4gIHwgJ2NjLXR5cGUnXG4gIHwgJ3RyYW5zYWN0aW9uLWN1cnJlbmN5J1xuICB8ICd0cmFuc2FjdGlvbi1hbW91bnQnXG4gIHwgJ2xhbmd1YWdlJ1xuICB8ICdiZGF5J1xuICB8ICdiZGF5LWRheSdcbiAgfCAnYmRheS1tb250aCdcbiAgfCAnYmRheS15ZWFyJ1xuICB8ICdzZXgnXG4gIHwgJ3RlbCdcbiAgfCAndGVsLWV4dGVuc2lvbidcbiAgfCAndXJsJ1xuICB8ICdwaG90byc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbW9kZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL19jb3JlL3R5cGVzL2lucHV0LW1vZGUtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgV3JJbnB1dE1vZGVUeXBlID0gJ3RleHQnIHwgJ251bWVyaWMnIHwgJ3RlbCcgfCAnZW1haWwnIHwgJ3VybCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9fY29yZS90eXBlcy9pbnB1dC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBXcklucHV0VHlwZSA9ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyB8ICdlbWFpbCc7XG4iXX0=
@@ -1,9 +1,10 @@
1
1
  import { __decorate } from "tslib";
2
+ import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
2
3
  import { ChangeDetectionStrategy, Component, forwardRef, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { BaseComponent, InputBoolean } from '../_core';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { fromEvent } from 'rxjs';
6
6
  import { takeUntil } from 'rxjs/operators';
7
+ import { BaseComponent, InputBoolean } from '../_core';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/cdk/a11y";
9
10
  import * as i2 from "@angular/common";
@@ -16,20 +17,85 @@ export class WrInputComponent extends BaseComponent {
16
17
  this.elRef = elRef;
17
18
  this.focusMonitor = focusMonitor;
18
19
  this.ngZone = ngZone;
19
- this.value = null;
20
- this.type = 'text';
21
- this.autocomplete = 'on';
22
- this.inputmode = 'text';
23
- this.disabled = false;
24
- this.readonly = false;
25
- this.autofocus = false;
26
- this.passwordIcons = false;
27
- this.placeholder = undefined;
20
+ this.placeholder = '';
28
21
  this.prefix = null;
29
22
  this.suffix = null;
23
+ this.passwordIcons = false;
30
24
  this.eyeOn = true;
31
- this.onChange = () => { };
32
- this.onTouch = () => { };
25
+ this._value = '';
26
+ this._disabled = false;
27
+ this._readonly = false;
28
+ this._required = false;
29
+ this._autofocus = false;
30
+ this._focused = false;
31
+ this._autocomplete = 'off';
32
+ this._type = 'text';
33
+ this._mode = 'text';
34
+ this.onChangeCallback = () => { };
35
+ this.onTouchedCallback = () => { };
36
+ }
37
+ get type() {
38
+ return this._type;
39
+ }
40
+ set type(type) {
41
+ this._type = type;
42
+ }
43
+ get inputmode() {
44
+ return this._mode;
45
+ }
46
+ set inputmode(mode) {
47
+ this._mode = mode;
48
+ }
49
+ get disabled() {
50
+ return this._disabled;
51
+ }
52
+ set disabled(disabled) {
53
+ this._disabled = coerceBooleanProperty(disabled);
54
+ }
55
+ get readonly() {
56
+ return this._readonly;
57
+ }
58
+ set readonly(readonly) {
59
+ this._readonly = coerceBooleanProperty(readonly);
60
+ }
61
+ get required() {
62
+ return this._required;
63
+ }
64
+ set required(required) {
65
+ this._required = coerceBooleanProperty(required);
66
+ }
67
+ get autofocus() {
68
+ return this._autofocus;
69
+ }
70
+ set autofocus(autofocus) {
71
+ this._autofocus = coerceBooleanProperty(autofocus);
72
+ }
73
+ get autocomplete() {
74
+ return this._autocomplete;
75
+ }
76
+ set autocomplete(autofocus) {
77
+ this._autocomplete = autofocus;
78
+ }
79
+ get value() {
80
+ return this.type === 'number' ? this.valueAsNumber : this._value;
81
+ }
82
+ set value(val) {
83
+ if (val !== this._value) {
84
+ this._value = val;
85
+ this.onChangeCallback(this.value);
86
+ }
87
+ }
88
+ get valueAsString() {
89
+ if (this._value == null || typeof this._value === 'undefined')
90
+ return '';
91
+ return String(this._value);
92
+ }
93
+ get valueAsNumber() {
94
+ return coerceNumberProperty(this._value);
95
+ }
96
+ get isBadInput() {
97
+ const validity = this.inputElement?.nativeElement?.validity;
98
+ return validity && validity.badInput;
33
99
  }
34
100
  get elClasses() {
35
101
  return {
@@ -46,7 +112,7 @@ export class WrInputComponent extends BaseComponent {
46
112
  .pipe(takeUntil(this.ngUnsubscribe))
47
113
  .subscribe(event => {
48
114
  event.preventDefault();
49
- this.focus();
115
+ this.onFocus();
50
116
  if (this.disabled) {
51
117
  event.stopImmediatePropagation();
52
118
  return;
@@ -59,62 +125,68 @@ export class WrInputComponent extends BaseComponent {
59
125
  }
60
126
  ngAfterViewInit() {
61
127
  if (this.autofocus) {
62
- this.focus();
128
+ this.onFocus();
129
+ this.cdr.markForCheck();
63
130
  }
64
131
  }
65
132
  ngOnDestroy() {
66
133
  super.ngOnDestroy();
67
134
  this.focusMonitor.stopMonitoring(this.elRef);
68
135
  }
69
- writeValue(value) {
70
- this.value = value;
71
- this.cdr.markForCheck();
136
+ onFocus(event) {
137
+ if (event) {
138
+ event.stopPropagation();
139
+ }
140
+ this._focused = true;
141
+ this.focusMonitor.focusVia(this.inputElement, 'keyboard');
72
142
  }
73
- registerOnChange(fn) {
74
- this.onChange = fn;
143
+ onBlur(event) {
144
+ if (event) {
145
+ event.stopPropagation();
146
+ }
147
+ this._focused = false;
148
+ // this.inputElement.nativeElement.blur();
149
+ this.onTouchedCallback();
75
150
  }
76
- registerOnTouched(fn) {
77
- this.onTouch = fn;
151
+ validate(control) {
152
+ return {
153
+ ...(this.isBadInput ? { badInput: true } : null)
154
+ };
78
155
  }
79
- setDisabledState(isDisabled) {
80
- this.disabled = isDisabled;
156
+ writeValue(value) {
157
+ if (value !== this._value) {
158
+ this._value = value;
159
+ }
81
160
  this.cdr.markForCheck();
82
161
  }
83
- focus() {
84
- this.focusMonitor.focusVia(this.inputElement, 'keyboard');
162
+ registerOnChange(fn) {
163
+ this.onChangeCallback = fn;
85
164
  }
86
- blur() {
87
- this.inputElement.nativeElement.blur();
165
+ registerOnTouched(fn) {
166
+ this.onTouchedCallback = fn;
88
167
  }
89
- onPasswordVisibilityChange(event) {
90
- event.stopPropagation();
168
+ onPasswordVisibilityChange() {
91
169
  this.type === 'password' ? (this.type = 'text') : (this.type = 'password');
92
170
  this.eyeOn = !this.eyeOn;
171
+ this.onFocus();
93
172
  }
94
- onModelChange(value) {
95
- if (!this.disabled) {
96
- this.value = value;
97
- this.onChange(this.value);
98
- }
173
+ setDisabledState(isDisabled) {
174
+ this.disabled = coerceBooleanProperty(isDisabled);
99
175
  }
100
176
  }
101
177
  WrInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: WrInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
102
- WrInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: WrInputComponent, selector: "wr-input", inputs: { value: "value", type: "type", autocomplete: "autocomplete", inputmode: "inputmode", disabled: "disabled", readonly: "readonly", autofocus: "autofocus", passwordIcons: "passwordIcons", placeholder: "placeholder", prefix: "prefix", suffix: "suffix" }, host: { properties: { "class": "this.elClasses" } }, providers: [
178
+ WrInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: WrInputComponent, selector: "wr-input", inputs: { placeholder: "placeholder", prefix: "prefix", suffix: "suffix", passwordIcons: "passwordIcons", type: "type", inputmode: "inputmode", disabled: "disabled", readonly: "readonly", required: "required", autofocus: "autofocus", autocomplete: "autocomplete", value: "value" }, host: { properties: { "class": "this.elClasses" } }, providers: [
103
179
  {
104
180
  provide: NG_VALUE_ACCESSOR,
105
181
  useExisting: forwardRef(() => WrInputComponent),
106
182
  multi: true
183
+ },
184
+ {
185
+ provide: NG_VALIDATORS,
186
+ useExisting: forwardRef(() => WrInputComponent),
187
+ multi: true
107
188
  }
108
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], exportAs: ["wrInput"], usesInheritance: true, ngImport: i0, template: "<div class=\"wr-input-prefix\" *ngIf=\"prefix\">\n <span class=\"wr-input-prefix__text\">{{ prefix }}</span>\n</div>\n<div class=\"wr-input-el\">\n <div\n *ngIf=\"passwordIcons\"\n class=\"wr-input-el-icon\"\n (click)=\"onPasswordVisibilityChange($event)\"\n >\n <wr-icon class=\"wr-input-el-icon__icon\" [name]=\"eyeOn ? 'eye' : 'eye-off'\"></wr-icon>\n </div>\n <input\n #inputElement\n class=\"wr-input-el__native\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [attr.readonly]=\"readonly ? 'readonly' : null\"\n [attr.autofocus]=\"autofocus ? 'autofocus' : null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange(value)\"\n />\n</div>\n<div class=\"wr-input-suffix\" *ngIf=\"suffix\">\n <span class=\"wr-input-suffix__text\">{{ suffix }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.WrIconComponent, selector: "wr-icon[name]", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
109
- __decorate([
110
- InputBoolean()
111
- ], WrInputComponent.prototype, "disabled", void 0);
112
- __decorate([
113
- InputBoolean()
114
- ], WrInputComponent.prototype, "readonly", void 0);
115
- __decorate([
116
- InputBoolean()
117
- ], WrInputComponent.prototype, "autofocus", void 0);
189
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], exportAs: ["wrInput"], usesInheritance: true, ngImport: i0, template: "<div class=\"wr-input-prefix\" *ngIf=\"prefix\">\n <span class=\"wr-input-prefix__text\">{{ prefix }}</span>\n</div>\n<div class=\"wr-input-el\">\n <div *ngIf=\"passwordIcons\" class=\"wr-input-el-icon\" (click)=\"onPasswordVisibilityChange()\">\n <wr-icon class=\"wr-input-el-icon__icon\" [name]=\"eyeOn ? 'eye' : 'eye-off'\"></wr-icon>\n </div>\n <input\n #inputElement\n class=\"wr-input-el__native\"\n [ngModel]=\"valueAsString\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (ngModelChange)=\"value = $event\"\n />\n</div>\n<div class=\"wr-input-suffix\" *ngIf=\"suffix\">\n <span class=\"wr-input-suffix__text\">{{ suffix }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.WrIconComponent, selector: "wr-icon[name]", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
118
190
  __decorate([
119
191
  InputBoolean()
120
192
  ], WrInputComponent.prototype, "passwordIcons", void 0);
@@ -125,13 +197,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
125
197
  provide: NG_VALUE_ACCESSOR,
126
198
  useExisting: forwardRef(() => WrInputComponent),
127
199
  multi: true
200
+ },
201
+ {
202
+ provide: NG_VALIDATORS,
203
+ useExisting: forwardRef(() => WrInputComponent),
204
+ multi: true
128
205
  }
129
- ], template: "<div class=\"wr-input-prefix\" *ngIf=\"prefix\">\n <span class=\"wr-input-prefix__text\">{{ prefix }}</span>\n</div>\n<div class=\"wr-input-el\">\n <div\n *ngIf=\"passwordIcons\"\n class=\"wr-input-el-icon\"\n (click)=\"onPasswordVisibilityChange($event)\"\n >\n <wr-icon class=\"wr-input-el-icon__icon\" [name]=\"eyeOn ? 'eye' : 'eye-off'\"></wr-icon>\n </div>\n <input\n #inputElement\n class=\"wr-input-el__native\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [attr.readonly]=\"readonly ? 'readonly' : null\"\n [attr.autofocus]=\"autofocus ? 'autofocus' : null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange(value)\"\n />\n</div>\n<div class=\"wr-input-suffix\" *ngIf=\"suffix\">\n <span class=\"wr-input-suffix__text\">{{ suffix }}</span>\n</div>\n" }]
130
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: i0.NgZone }]; }, propDecorators: { value: [{
206
+ ], template: "<div class=\"wr-input-prefix\" *ngIf=\"prefix\">\n <span class=\"wr-input-prefix__text\">{{ prefix }}</span>\n</div>\n<div class=\"wr-input-el\">\n <div *ngIf=\"passwordIcons\" class=\"wr-input-el-icon\" (click)=\"onPasswordVisibilityChange()\">\n <wr-icon class=\"wr-input-el-icon__icon\" [name]=\"eyeOn ? 'eye' : 'eye-off'\"></wr-icon>\n </div>\n <input\n #inputElement\n class=\"wr-input-el__native\"\n [ngModel]=\"valueAsString\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (ngModelChange)=\"value = $event\"\n />\n</div>\n<div class=\"wr-input-suffix\" *ngIf=\"suffix\">\n <span class=\"wr-input-suffix__text\">{{ suffix }}</span>\n</div>\n" }]
207
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: i0.NgZone }]; }, propDecorators: { placeholder: [{
131
208
  type: Input
132
- }], type: [{
209
+ }], prefix: [{
133
210
  type: Input
134
- }], autocomplete: [{
211
+ }], suffix: [{
212
+ type: Input
213
+ }], passwordIcons: [{
214
+ type: Input
215
+ }], type: [{
135
216
  type: Input
136
217
  }], inputmode: [{
137
218
  type: Input
@@ -139,15 +220,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
139
220
  type: Input
140
221
  }], readonly: [{
141
222
  type: Input
142
- }], autofocus: [{
143
- type: Input
144
- }], passwordIcons: [{
223
+ }], required: [{
145
224
  type: Input
146
- }], placeholder: [{
225
+ }], autofocus: [{
147
226
  type: Input
148
- }], prefix: [{
227
+ }], autocomplete: [{
149
228
  type: Input
150
- }], suffix: [{
229
+ }], value: [{
151
230
  type: Input
152
231
  }], inputElement: [{
153
232
  type: ViewChild,
@@ -156,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
156
235
  type: HostBinding,
157
236
  args: ['class']
158
237
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2xpYi9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQ3RCLFNBQVMsRUFDakIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWdCLFlBQVksRUFBd0MsTUFBTSxVQUFVLENBQUM7QUFDM0csT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFnQjNDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxhQUFhO0lBK0JqRCxZQUNtQixHQUFzQixFQUN0QixLQUFtQyxFQUNuQyxZQUEwQixFQUMxQixNQUFjO1FBRS9CLEtBQUssRUFBRSxDQUFDO1FBTFMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBOEI7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWxDeEIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDNUIsU0FBSSxHQUE2QyxNQUFNLENBQUM7UUFDeEQsaUJBQVksR0FBaUIsSUFBSSxDQUFDO1FBQ2xDLGNBQVMsR0FBaUQsTUFBTSxDQUFDO1FBQ2pELGFBQVEsR0FBaUIsS0FBSyxDQUFDO1FBQy9CLGFBQVEsR0FBaUIsS0FBSyxDQUFDO1FBQy9CLGNBQVMsR0FBaUIsS0FBSyxDQUFDO1FBQ2hDLGtCQUFhLEdBQWlCLEtBQUssQ0FBQztRQUNwRCxnQkFBVyxHQUF1QixTQUFTLENBQUM7UUFDNUMsV0FBTSxHQUFrQixJQUFJLENBQUM7UUFDN0IsV0FBTSxHQUFrQixJQUFJLENBQUM7UUFldEMsVUFBSyxHQUFHLElBQUksQ0FBQztRQUViLGFBQVEsR0FBaUIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2xDLFlBQU8sR0FBa0IsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBU2xDLENBQUM7SUF2QkQsSUFDSSxTQUFTO1FBQ1gsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLHNCQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25DLHNCQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25DLG9CQUFvQixFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ3hDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3BDLENBQUM7SUFDSixDQUFDO0lBZ0JELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxTQUFTLENBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO2lCQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDbkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO29CQUNqQyxPQUFPO2lCQUNSO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO2lCQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDbkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFnQjtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBaUI7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELDBCQUEwQixDQUFDLEtBQVk7UUFDckMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQW9CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7NkdBMUdVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLDRWQVJoQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1lBQy9DLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixvTUMxQkgsODlCQTZCQTs7SURJWSxZQUFZLEVBQUU7a0RBQWdDOztJQUM5QyxZQUFZLEVBQUU7a0RBQWdDOztJQUM5QyxZQUFZLEVBQUU7bURBQWlDOztJQUMvQyxZQUFZLEVBQUU7dURBQXFDOzJGQVJsRCxnQkFBZ0I7a0JBZDVCLFNBQVM7K0JBQ0UsVUFBVSxZQUNWLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUxBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ21CLFFBQVE7c0JBQWhDLEtBQUs7Z0JBQ21CLFFBQVE7c0JBQWhDLEtBQUs7Z0JBQ21CLFNBQVM7c0JBQWpDLEtBQUs7Z0JBQ21CLGFBQWE7c0JBQXJDLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUV1QyxZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR3ZDLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJvb2xlYW5JbnB1dCwgSW5wdXRCb29sZWFuLCBPbkNoYW5nZVR5cGUsIE9uVG91Y2hlZFR5cGUsIFNhZmVBbnkgfSBmcm9tICcuLi9fY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3ItaW5wdXQnLFxuICBleHBvcnRBczogJ3dySW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXcklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFdySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdwYXNzd29yZCcgfCAnZW1haWwnID0gJ3RleHQnO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU6ICdvbicgfCAnb2ZmJyA9ICdvbic7XG4gIEBJbnB1dCgpIGlucHV0bW9kZTogJ3RleHQnIHwgJ251bWVyaWMnIHwgJ3RlbCcgfCAnZW1haWwnIHwgJ3VybCcgPSAndGV4dCc7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBkaXNhYmxlZDogQm9vbGVhbklucHV0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSByZWFkb25seTogQm9vbGVhbklucHV0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhdXRvZm9jdXM6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcGFzc3dvcmRJY29uczogQm9vbGVhbklucHV0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHByZWZpeDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGVsQ2xhc3NlcygpOiBTYWZlQW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ3dyLWlucHV0JzogdHJ1ZSxcbiAgICAgICd3ci1pbnB1dC0taGFzLXByZWZpeCc6IHRoaXMucHJlZml4LFxuICAgICAgJ3dyLWlucHV0LS1oYXMtc3VmZml4JzogdGhpcy5zdWZmaXgsXG4gICAgICAnd3ItaW5wdXQtLXBhc3N3b3JkJzogdGhpcy5wYXNzd29yZEljb25zLFxuICAgICAgJ3dyLWlucHV0LS1kaXNhYmxlZCc6IHRoaXMuZGlzYWJsZWRcbiAgICB9O1xuICB9XG5cbiAgZXllT24gPSB0cnVlO1xuXG4gIG9uQ2hhbmdlOiBPbkNoYW5nZVR5cGUgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaDogT25Ub3VjaGVkVHlwZSA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgZnJvbUV2ZW50KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IE9uQ2hhbmdlVHlwZSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBPblRvdWNoZWRUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuaW5wdXRFbGVtZW50LCAna2V5Ym9hcmQnKTtcbiAgfVxuXG4gIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gIH1cblxuICBvblBhc3N3b3JkVmlzaWJpbGl0eUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcgPyAodGhpcy50eXBlID0gJ3RleHQnKSA6ICh0aGlzLnR5cGUgPSAncGFzc3dvcmQnKTtcbiAgICB0aGlzLmV5ZU9uID0gIXRoaXMuZXllT247XG4gIH1cblxuICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndyLWlucHV0LXByZWZpeFwiICpuZ0lmPVwicHJlZml4XCI+XG4gIDxzcGFuIGNsYXNzPVwid3ItaW5wdXQtcHJlZml4X190ZXh0XCI+e3sgcHJlZml4IH19PC9zcGFuPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwid3ItaW5wdXQtZWxcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwicGFzc3dvcmRJY29uc1wiXG4gICAgY2xhc3M9XCJ3ci1pbnB1dC1lbC1pY29uXCJcbiAgICAoY2xpY2spPVwib25QYXNzd29yZFZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8d3ItaWNvbiBjbGFzcz1cIndyLWlucHV0LWVsLWljb25fX2ljb25cIiBbbmFtZV09XCJleWVPbiA/ICdleWUnIDogJ2V5ZS1vZmYnXCI+PC93ci1pY29uPlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgI2lucHV0RWxlbWVudFxuICAgIGNsYXNzPVwid3ItaW5wdXQtZWxfX25hdGl2ZVwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6ICcnXCJcbiAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcbiAgICBbYXR0ci5hdXRvZm9jdXNdPVwiYXV0b2ZvY3VzID8gJ2F1dG9mb2N1cycgOiBudWxsXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICBbYXR0ci5pbnB1dG1vZGVdPVwiaW5wdXRtb2RlXCJcbiAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSh2YWx1ZSlcIlxuICAvPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwid3ItaW5wdXQtc3VmZml4XCIgKm5nSWY9XCJzdWZmaXhcIj5cbiAgPHNwYW4gY2xhc3M9XCJ3ci1pbnB1dC1zdWZmaXhfX3RleHRcIj57eyBzdWZmaXggfX08L3NwYW4+XG48L2Rpdj5cbiJdfQ==
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2xpYi9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEYsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBSUwsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFDTCxhQUFhLEVBRWIsWUFBWSxFQU9iLE1BQU0sVUFBVSxDQUFDOzs7Ozs7QUFxQmxCLE1BQU0sT0FBTyxnQkFDWCxTQUFRLGFBQWE7SUF5R3JCLFlBQ21CLEdBQXNCLEVBQ3RCLEtBQW1DLEVBQ25DLFlBQTBCLEVBQzFCLE1BQWM7UUFFL0IsS0FBSyxFQUFFLENBQUM7UUFMUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUE4QjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBMUd4QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUNiLGtCQUFhLEdBQWlCLEtBQUssQ0FBQztRQXNGN0QsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNMLFdBQU0sR0FBb0Is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RSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDOzRCQUMvQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpTEFNUSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ21CLGFBQWE7c0JBQXJDLEtBQUs7Z0JBR0YsSUFBSTtzQkFEUCxLQUFLO2dCQVFGLFNBQVM7c0JBRFosS0FBSztnQkFRRixRQUFRO3NCQURYLEtBQUs7Z0JBUUYsUUFBUTtzQkFEWCxLQUFLO2dCQVFGLFFBQVE7c0JBRFgsS0FBSztnQkFRRixTQUFTO3NCQURaLEtBQUs7Z0JBUUYsWUFBWTtzQkFEZixLQUFLO2dCQVFGLEtBQUs7c0JBRFIsS0FBSztnQkF1QnVDLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFdkMsU0FBUztzQkFEWixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBCYXNlQ29tcG9uZW50LFxuICBCb29sZWFuSW5wdXQsXG4gIElucHV0Qm9vbGVhbixcbiAgT25DaGFuZ2VUeXBlLFxuICBPblRvdWNoZWRUeXBlLFxuICBTYWZlQW55LFxuICBXcklucHV0QXV0b2NvbXBsZXRlLFxuICBXcklucHV0TW9kZVR5cGUsXG4gIFdySW5wdXRUeXBlXG59IGZyb20gJy4uL19jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3ItaW5wdXQnLFxuICBleHBvcnRBczogJ3dySW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXcklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV3JJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBXcklucHV0Q29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSwgVmFsaWRhdG9yXG57XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc3VmZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHBhc3N3b3JkSWNvbnM6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB0eXBlKCk6IFdySW5wdXRUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuICBzZXQgdHlwZSh0eXBlOiBXcklucHV0VHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBpbnB1dG1vZGUoKTogV3JJbnB1dE1vZGVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZTtcbiAgfVxuICBzZXQgaW5wdXRtb2RlKG1vZGU6IFdySW5wdXRNb2RlVHlwZSkge1xuICAgIHRoaXMuX21vZGUgPSBtb2RlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXNhYmxlZCk7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcbiAgfVxuICBzZXQgcmVhZG9ubHkocmVhZG9ubHk6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlYWRvbmx5KTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZChyZXF1aXJlZDogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxdWlyZWQpO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBhdXRvZm9jdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9mb2N1cztcbiAgfVxuICBzZXQgYXV0b2ZvY3VzKGF1dG9mb2N1czogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fYXV0b2ZvY3VzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGF1dG9mb2N1cyk7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGF1dG9jb21wbGV0ZSgpOiBXcklucHV0QXV0b2NvbXBsZXRlIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlO1xuICB9XG4gIHNldCBhdXRvY29tcGxldGUoYXV0b2ZvY3VzOiBXcklucHV0QXV0b2NvbXBsZXRlKSB7XG4gICAgdGhpcy5fYXV0b2NvbXBsZXRlID0gYXV0b2ZvY3VzO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdudW1iZXInID8gdGhpcy52YWx1ZUFzTnVtYmVyIDogdGhpcy5fdmFsdWU7XG4gIH1cbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgaWYgKHZhbCAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuICBnZXQgdmFsdWVBc1N0cmluZygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl92YWx1ZSA9PSBudWxsIHx8IHR5cGVvZiB0aGlzLl92YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnJztcbiAgICByZXR1cm4gU3RyaW5nKHRoaXMuX3ZhbHVlKTtcbiAgfVxuICBnZXQgdmFsdWVBc051bWJlcigpOiBudW1iZXIge1xuICAgIHJldHVybiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh0aGlzLl92YWx1ZSk7XG4gIH1cblxuICBnZXQgaXNCYWRJbnB1dCgpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWxpZGl0eSA9IHRoaXMuaW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50Py52YWxpZGl0eTtcbiAgICByZXR1cm4gdmFsaWRpdHkgJiYgdmFsaWRpdHkuYmFkSW5wdXQ7XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGVsQ2xhc3NlcygpOiBTYWZlQW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ3dyLWlucHV0JzogdHJ1ZSxcbiAgICAgICd3ci1pbnB1dC0taGFzLXByZWZpeCc6IHRoaXMucHJlZml4LFxuICAgICAgJ3dyLWlucHV0LS1oYXMtc3VmZml4JzogdGhpcy5zdWZmaXgsXG4gICAgICAnd3ItaW5wdXQtLXBhc3N3b3JkJzogdGhpcy5wYXNzd29yZEljb25zLFxuICAgICAgJ3dyLWlucHV0LS1kaXNhYmxlZCc6IHRoaXMuZGlzYWJsZWRcbiAgICB9O1xuICB9XG5cbiAgZXllT24gPSB0cnVlO1xuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2F1dG9mb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9mb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2F1dG9jb21wbGV0ZTogV3JJbnB1dEF1dG9jb21wbGV0ZSA9ICdvZmYnO1xuICBwcml2YXRlIF90eXBlOiBXcklucHV0VHlwZSA9ICd0ZXh0JztcbiAgcHJpdmF0ZSBfbW9kZTogV3JJbnB1dE1vZGVUeXBlID0gJ3RleHQnO1xuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IE9uQ2hhbmdlVHlwZSA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiBPblRvdWNoZWRUeXBlID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLm9uRm9jdXMoKTtcbiAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGZyb21FdmVudCh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b2ZvY3VzKSB7XG4gICAgICB0aGlzLm9uRm9jdXMoKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbFJlZik7XG4gIH1cblxuICBvbkZvY3VzKGV2ZW50PzogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuaW5wdXRFbGVtZW50LCAna2V5Ym9hcmQnKTtcbiAgfVxuXG4gIG9uQmx1cihldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlO1xuICAgIC8vIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uKHRoaXMuaXNCYWRJbnB1dCA/IHsgYmFkSW5wdXQ6IHRydWUgfSA6IG51bGwpXG4gICAgfTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogT25DaGFuZ2VUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogT25Ub3VjaGVkVHlwZSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIG9uUGFzc3dvcmRWaXNpYmlsaXR5Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudHlwZSA9PT0gJ3Bhc3N3b3JkJyA/ICh0aGlzLnR5cGUgPSAndGV4dCcpIDogKHRoaXMudHlwZSA9ICdwYXNzd29yZCcpO1xuICAgIHRoaXMuZXllT24gPSAhdGhpcy5leWVPbjtcbiAgICB0aGlzLm9uRm9jdXMoKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoaXNEaXNhYmxlZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3ci1pbnB1dC1wcmVmaXhcIiAqbmdJZj1cInByZWZpeFwiPlxuICA8c3BhbiBjbGFzcz1cIndyLWlucHV0LXByZWZpeF9fdGV4dFwiPnt7IHByZWZpeCB9fTwvc3Bhbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIndyLWlucHV0LWVsXCI+XG4gIDxkaXYgKm5nSWY9XCJwYXNzd29yZEljb25zXCIgY2xhc3M9XCJ3ci1pbnB1dC1lbC1pY29uXCIgKGNsaWNrKT1cIm9uUGFzc3dvcmRWaXNpYmlsaXR5Q2hhbmdlKClcIj5cbiAgICA8d3ItaWNvbiBjbGFzcz1cIndyLWlucHV0LWVsLWljb25fX2ljb25cIiBbbmFtZV09XCJleWVPbiA/ICdleWUnIDogJ2V5ZS1vZmYnXCI+PC93ci1pY29uPlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgI2lucHV0RWxlbWVudFxuICAgIGNsYXNzPVwid3ItaW5wdXQtZWxfX25hdGl2ZVwiXG4gICAgW25nTW9kZWxdPVwidmFsdWVBc1N0cmluZ1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgW2F0dHIuaW5wdXRtb2RlXT1cImlucHV0bW9kZVwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlID0gJGV2ZW50XCJcbiAgLz5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIndyLWlucHV0LXN1ZmZpeFwiICpuZ0lmPVwic3VmZml4XCI+XG4gIDxzcGFuIGNsYXNzPVwid3ItaW5wdXQtc3VmZml4X190ZXh0XCI+e3sgc3VmZml4IH19PC9zcGFuPlxuPC9kaXY+XG4iXX0=