@tolle_/tolle-ui 0.0.19-beta → 0.0.22-beta
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/esm2022/lib/badge.component.mjs +4 -4
- package/esm2022/lib/button.component.mjs +18 -13
- package/esm2022/lib/card.component.mjs +3 -3
- package/esm2022/lib/data-table.component.mjs +1 -1
- package/esm2022/lib/date-picker.component.mjs +2 -2
- package/esm2022/lib/date-range-picker.component.mjs +1 -1
- package/esm2022/lib/input.component.mjs +125 -32
- package/esm2022/lib/masked-input.component.mjs +118 -30
- package/esm2022/lib/multi-select.component.mjs +1 -1
- package/esm2022/lib/otp-slot.component.mjs +35 -23
- package/esm2022/lib/select.component.mjs +38 -9
- package/esm2022/lib/textarea.component.mjs +130 -26
- package/esm2022/lib/theme.service.mjs +283 -75
- package/fesm2022/tolle-ui.mjs +751 -212
- package/fesm2022/tolle-ui.mjs.map +1 -1
- package/lib/button.component.d.ts +2 -3
- package/lib/input.component.d.ts +11 -3
- package/lib/masked-input.component.d.ts +7 -1
- package/lib/otp-slot.component.d.ts +1 -0
- package/lib/select.component.d.ts +1 -0
- package/lib/textarea.component.d.ts +8 -1
- package/lib/theme.service.d.ts +46 -3
- package/package.json +1 -1
- package/preset.js +47 -33
- package/theme.css +204 -168
|
@@ -11,30 +11,69 @@ export class TextareaComponent {
|
|
|
11
11
|
label = '';
|
|
12
12
|
placeholder = '';
|
|
13
13
|
hint = '';
|
|
14
|
+
errorMessage = '';
|
|
14
15
|
rows = 3;
|
|
15
16
|
maxLength;
|
|
16
17
|
showCharacterCount = false;
|
|
17
18
|
autoGrow = false;
|
|
18
19
|
error = false;
|
|
19
20
|
className = '';
|
|
21
|
+
// Focus behavior
|
|
22
|
+
hideHintOnFocus = true;
|
|
23
|
+
hideCharacterCountOnFocus = false;
|
|
20
24
|
// New States
|
|
21
25
|
disabled = false;
|
|
22
26
|
readonly = false;
|
|
23
27
|
value = '';
|
|
28
|
+
isFocused = false;
|
|
24
29
|
onChange = () => { };
|
|
25
30
|
onTouched = () => { };
|
|
26
31
|
ngAfterViewInit() {
|
|
27
32
|
if (this.autoGrow)
|
|
28
33
|
this.resize();
|
|
29
34
|
}
|
|
35
|
+
get computedLabelClass() {
|
|
36
|
+
return cn("text-sm font-medium text-foreground leading-none transition-opacity duration-200", this.disabled && "opacity-50");
|
|
37
|
+
}
|
|
30
38
|
get textareaClasses() {
|
|
31
|
-
return cn(
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
// Border
|
|
35
|
-
|
|
36
|
-
//
|
|
37
|
-
|
|
39
|
+
return cn(
|
|
40
|
+
// Base styles
|
|
41
|
+
'flex w-full rounded-md border bg-background px-3 py-2 text-sm', 'ring-offset-background transition-all duration-200', 'placeholder:text-muted-foreground',
|
|
42
|
+
// Border and shadow
|
|
43
|
+
'border-input shadow-sm',
|
|
44
|
+
// Minimum height
|
|
45
|
+
'min-h-[80px]',
|
|
46
|
+
// Focus state - SIMPLE LIKE ZARDUI
|
|
47
|
+
!(this.readonly || this.disabled) && [
|
|
48
|
+
'focus:outline-none',
|
|
49
|
+
'focus:ring-4',
|
|
50
|
+
'focus:ring-ring/30',
|
|
51
|
+
'focus:ring-offset-0',
|
|
52
|
+
'focus:shadow-none',
|
|
53
|
+
// Border darkens on focus automatically
|
|
54
|
+
'focus:border-primary/80'
|
|
55
|
+
],
|
|
56
|
+
// Error state
|
|
57
|
+
this.error && [
|
|
58
|
+
'border-destructive',
|
|
59
|
+
!(this.readonly || this.disabled) && [
|
|
60
|
+
'focus:border-destructive/80',
|
|
61
|
+
'focus:ring-destructive/30'
|
|
62
|
+
]
|
|
63
|
+
],
|
|
64
|
+
// Disabled state
|
|
65
|
+
this.disabled && [
|
|
66
|
+
'cursor-not-allowed opacity-50',
|
|
67
|
+
'border-opacity-50'
|
|
68
|
+
],
|
|
69
|
+
// Readonly state
|
|
70
|
+
this.readonly && [
|
|
71
|
+
'cursor-default',
|
|
72
|
+
'border-dashed',
|
|
73
|
+
!this.disabled && 'focus:ring-0 focus:border-opacity-100'
|
|
74
|
+
],
|
|
75
|
+
// Scrollbar styling
|
|
76
|
+
'scrollbar-thin scrollbar-thumb-muted scrollbar-track-transparent', this.className);
|
|
38
77
|
}
|
|
39
78
|
handleInput(event) {
|
|
40
79
|
if (this.readonly || this.disabled)
|
|
@@ -45,6 +84,13 @@ export class TextareaComponent {
|
|
|
45
84
|
if (this.autoGrow)
|
|
46
85
|
this.resize();
|
|
47
86
|
}
|
|
87
|
+
onFocus() {
|
|
88
|
+
this.isFocused = true;
|
|
89
|
+
}
|
|
90
|
+
onBlur() {
|
|
91
|
+
this.isFocused = false;
|
|
92
|
+
this.onTouched();
|
|
93
|
+
}
|
|
48
94
|
resize() {
|
|
49
95
|
const textarea = this.textareaElement.nativeElement;
|
|
50
96
|
textarea.style.height = 'auto';
|
|
@@ -55,11 +101,17 @@ export class TextareaComponent {
|
|
|
55
101
|
if (this.autoGrow)
|
|
56
102
|
setTimeout(() => this.resize());
|
|
57
103
|
}
|
|
58
|
-
registerOnChange(fn) {
|
|
59
|
-
|
|
60
|
-
|
|
104
|
+
registerOnChange(fn) {
|
|
105
|
+
this.onChange = fn;
|
|
106
|
+
}
|
|
107
|
+
registerOnTouched(fn) {
|
|
108
|
+
this.onTouched = fn;
|
|
109
|
+
}
|
|
110
|
+
setDisabledState(isDisabled) {
|
|
111
|
+
this.disabled = isDisabled;
|
|
112
|
+
}
|
|
61
113
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TextareaComponent, isStandalone: true, selector: "tolle-textarea", inputs: { id: "id", label: "label", placeholder: "placeholder", hint: "hint", rows: "rows", maxLength: "maxLength", showCharacterCount: "showCharacterCount", autoGrow: "autoGrow", error: "error", className: "className", disabled: "disabled", readonly: "readonly" }, providers: [
|
|
114
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TextareaComponent, isStandalone: true, selector: "tolle-textarea", inputs: { id: "id", label: "label", placeholder: "placeholder", hint: "hint", errorMessage: "errorMessage", rows: "rows", maxLength: "maxLength", showCharacterCount: "showCharacterCount", autoGrow: "autoGrow", error: "error", className: "className", hideHintOnFocus: "hideHintOnFocus", hideCharacterCountOnFocus: "hideCharacterCountOnFocus", disabled: "disabled", readonly: "readonly" }, providers: [
|
|
63
115
|
{
|
|
64
116
|
provide: NG_VALUE_ACCESSOR,
|
|
65
117
|
useExisting: forwardRef(() => TextareaComponent),
|
|
@@ -67,9 +119,11 @@ export class TextareaComponent {
|
|
|
67
119
|
}
|
|
68
120
|
], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textareaElement"], descendants: true }], ngImport: i0, template: `
|
|
69
121
|
<div class="flex flex-col gap-1.5 w-full">
|
|
70
|
-
<label
|
|
71
|
-
|
|
72
|
-
|
|
122
|
+
<label
|
|
123
|
+
*ngIf="label"
|
|
124
|
+
[for]="id"
|
|
125
|
+
[class]="computedLabelClass"
|
|
126
|
+
>
|
|
73
127
|
{{ label }}
|
|
74
128
|
</label>
|
|
75
129
|
|
|
@@ -83,16 +137,37 @@ export class TextareaComponent {
|
|
|
83
137
|
[rows]="rows"
|
|
84
138
|
[(ngModel)]="value"
|
|
85
139
|
(input)="handleInput($event)"
|
|
86
|
-
(blur)="
|
|
140
|
+
(blur)="onBlur()"
|
|
141
|
+
(focus)="onFocus()"
|
|
87
142
|
[class]="textareaClasses"
|
|
88
143
|
[style.resize]="(autoGrow || readonly || disabled) ? 'none' : 'vertical'"
|
|
89
144
|
[style.overflow]="autoGrow ? 'hidden' : 'auto'"
|
|
145
|
+
[attr.aria-invalid]="error"
|
|
146
|
+
[attr.aria-describedby]="error && errorMessage ? id + '-error' : null"
|
|
147
|
+
[attr.maxlength]="maxLength"
|
|
90
148
|
></textarea>
|
|
91
149
|
</div>
|
|
92
150
|
|
|
93
|
-
<div *ngIf="(showCharacterCount || hint) && !disabled" class="flex justify-between items-center px-1">
|
|
94
|
-
<p
|
|
95
|
-
|
|
151
|
+
<div *ngIf="(showCharacterCount || hint || errorMessage) && !disabled" class="flex justify-between items-center px-1">
|
|
152
|
+
<p
|
|
153
|
+
*ngIf="hint && !error"
|
|
154
|
+
class="text-xs text-muted-foreground transition-opacity duration-200"
|
|
155
|
+
[class.opacity-0]="isFocused && hideHintOnFocus"
|
|
156
|
+
>
|
|
157
|
+
{{ hint }}
|
|
158
|
+
</p>
|
|
159
|
+
<p
|
|
160
|
+
*ngIf="error && errorMessage"
|
|
161
|
+
[id]="id + '-error'"
|
|
162
|
+
class="text-xs text-destructive"
|
|
163
|
+
>
|
|
164
|
+
{{ errorMessage }}
|
|
165
|
+
</p>
|
|
166
|
+
<p
|
|
167
|
+
*ngIf="showCharacterCount"
|
|
168
|
+
class="text-[10px] uppercase tracking-wider text-muted-foreground ml-auto font-medium transition-opacity duration-200"
|
|
169
|
+
[class.opacity-0]="isFocused && hideCharacterCountOnFocus"
|
|
170
|
+
>
|
|
96
171
|
{{ value.length || 0 }}{{ maxLength ? ' / ' + maxLength : '' }}
|
|
97
172
|
</p>
|
|
98
173
|
</div>
|
|
@@ -114,9 +189,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
114
189
|
],
|
|
115
190
|
template: `
|
|
116
191
|
<div class="flex flex-col gap-1.5 w-full">
|
|
117
|
-
<label
|
|
118
|
-
|
|
119
|
-
|
|
192
|
+
<label
|
|
193
|
+
*ngIf="label"
|
|
194
|
+
[for]="id"
|
|
195
|
+
[class]="computedLabelClass"
|
|
196
|
+
>
|
|
120
197
|
{{ label }}
|
|
121
198
|
</label>
|
|
122
199
|
|
|
@@ -130,16 +207,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
130
207
|
[rows]="rows"
|
|
131
208
|
[(ngModel)]="value"
|
|
132
209
|
(input)="handleInput($event)"
|
|
133
|
-
(blur)="
|
|
210
|
+
(blur)="onBlur()"
|
|
211
|
+
(focus)="onFocus()"
|
|
134
212
|
[class]="textareaClasses"
|
|
135
213
|
[style.resize]="(autoGrow || readonly || disabled) ? 'none' : 'vertical'"
|
|
136
214
|
[style.overflow]="autoGrow ? 'hidden' : 'auto'"
|
|
215
|
+
[attr.aria-invalid]="error"
|
|
216
|
+
[attr.aria-describedby]="error && errorMessage ? id + '-error' : null"
|
|
217
|
+
[attr.maxlength]="maxLength"
|
|
137
218
|
></textarea>
|
|
138
219
|
</div>
|
|
139
220
|
|
|
140
|
-
<div *ngIf="(showCharacterCount || hint) && !disabled" class="flex justify-between items-center px-1">
|
|
141
|
-
<p
|
|
142
|
-
|
|
221
|
+
<div *ngIf="(showCharacterCount || hint || errorMessage) && !disabled" class="flex justify-between items-center px-1">
|
|
222
|
+
<p
|
|
223
|
+
*ngIf="hint && !error"
|
|
224
|
+
class="text-xs text-muted-foreground transition-opacity duration-200"
|
|
225
|
+
[class.opacity-0]="isFocused && hideHintOnFocus"
|
|
226
|
+
>
|
|
227
|
+
{{ hint }}
|
|
228
|
+
</p>
|
|
229
|
+
<p
|
|
230
|
+
*ngIf="error && errorMessage"
|
|
231
|
+
[id]="id + '-error'"
|
|
232
|
+
class="text-xs text-destructive"
|
|
233
|
+
>
|
|
234
|
+
{{ errorMessage }}
|
|
235
|
+
</p>
|
|
236
|
+
<p
|
|
237
|
+
*ngIf="showCharacterCount"
|
|
238
|
+
class="text-[10px] uppercase tracking-wider text-muted-foreground ml-auto font-medium transition-opacity duration-200"
|
|
239
|
+
[class.opacity-0]="isFocused && hideCharacterCountOnFocus"
|
|
240
|
+
>
|
|
143
241
|
{{ value.length || 0 }}{{ maxLength ? ' / ' + maxLength : '' }}
|
|
144
242
|
</p>
|
|
145
243
|
</div>
|
|
@@ -157,6 +255,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
157
255
|
type: Input
|
|
158
256
|
}], hint: [{
|
|
159
257
|
type: Input
|
|
258
|
+
}], errorMessage: [{
|
|
259
|
+
type: Input
|
|
160
260
|
}], rows: [{
|
|
161
261
|
type: Input
|
|
162
262
|
}], maxLength: [{
|
|
@@ -169,9 +269,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
169
269
|
type: Input
|
|
170
270
|
}], className: [{
|
|
171
271
|
type: Input
|
|
272
|
+
}], hideHintOnFocus: [{
|
|
273
|
+
type: Input
|
|
274
|
+
}], hideCharacterCountOnFocus: [{
|
|
275
|
+
type: Input
|
|
172
276
|
}], disabled: [{
|
|
173
277
|
type: Input
|
|
174
278
|
}], readonly: [{
|
|
175
279
|
type: Input
|
|
176
280
|
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi90ZXh0YXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQStDaEMsTUFBTSxPQUFPLGlCQUFpQjtJQUNFLGVBQWUsQ0FBbUM7SUFFdkUsRUFBRSxHQUFHLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0QsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNWLElBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxTQUFTLENBQVU7SUFDbkIsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNkLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFFeEIsYUFBYTtJQUNKLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUUxQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFF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LFNBQVM7dUJBQUMsaUJBQWlCO2dCQUVuQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS10ZXh0YXJlYScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMS41IHctZnVsbFwiPlxuICAgICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbZm9yXT1cImlkXCJcbiAgICAgICAgICAgICBbY2xhc3Mub3BhY2l0eS01MF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBsZWFkaW5nLW5vbmUgdHJhbnNpdGlvbi1vcGFjaXR5XCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgI3RleHRhcmVhRWxlbWVudFxuICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcbiAgICAgICAgICBbY2xhc3NdPVwidGV4dGFyZWFDbGFzc2VzXCJcbiAgICAgICAgICBbc3R5bGUucmVzaXplXT1cIihhdXRvR3JvdyB8fCByZWFkb25seSB8fCBkaXNhYmxlZCkgPyAnbm9uZScgOiAndmVydGljYWwnXCJcbiAgICAgICAgICBbc3R5bGUub3ZlcmZsb3ddPVwiYXV0b0dyb3cgPyAnaGlkZGVuJyA6ICdhdXRvJ1wiXG4gICAgICAgID48L3RleHRhcmVhPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIoc2hvd0NoYXJhY3RlckNvdW50IHx8IGhpbnQpICYmICFkaXNhYmxlZFwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHB4LTFcIj5cbiAgICAgICAgPHAgKm5nSWY9XCJoaW50XCIgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IGhpbnQgfX08L3A+XG4gICAgICAgIDxwICpuZ0lmPVwic2hvd0NoYXJhY3RlckNvdW50XCIgY2xhc3M9XCJ0ZXh0LVsxMHB4XSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG1sLWF1dG8gZm9udC1tZWRpdW1cIj5cbiAgICAgICAgICB7eyB2YWx1ZS5sZW5ndGggfHwgMCB9fXt7IG1heExlbmd0aCA/ICcgLyAnICsgbWF4TGVuZ3RoIDogJycgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3RleHRhcmVhRWxlbWVudCcpIHRleHRhcmVhRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG5cbiAgQElucHV0KCkgaWQgPSBgdGV4dGFyZWEtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgaGludCA9ICcnO1xuICBASW5wdXQoKSByb3dzID0gMztcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBzaG93Q2hhcmFjdGVyQ291bnQgPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b0dyb3cgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG5cbiAgLy8gTmV3IFN0YXRlc1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5hdXRvR3JvdykgdGhpcy5yZXNpemUoKTtcbiAgfVxuXG4gIGdldCB0ZXh0YXJlYUNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgJ2ZsZXggdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJnLWJhY2tncm91bmQgcHgtMyBweS0yIHRleHQtc20gcmluZy1vZmZzZXQtYmFja2dyb3VuZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDAgc2hhZG93LXNtJyxcbiAgICAgICdwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUnLFxuXG4gICAgICAvLyBGb2N1cyBTdGF0ZXMgKERpc2FibGVkIG9ubHkgd2hlbiByZWFkb25seSBvciBkaXNhYmxlZCBpcyB0cnVlKVxuICAgICAgISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpICYmICdmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTEnLFxuXG4gICAgICAvLyBCb3JkZXIgY29sb3JzXG4gICAgICB0aGlzLmVycm9yID8gJ2JvcmRlci1kZXN0cnVjdGl2ZScgOiAnYm9yZGVyLWlucHV0JyxcblxuICAgICAgLy8gRGlzYWJsZWQgdnMgUmVhZG9ubHkgc3R5bGVzXG4gICAgICB0aGlzLmRpc2FibGVkICYmICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCcsXG4gICAgICB0aGlzLnJlYWRvbmx5ICYmICdjdXJzb3ItZGVmYXVsdCBib3JkZXItZGFzaGVkIGZvY3VzLXZpc2libGU6cmluZy0wJyxcblxuICAgICAgJ3Njcm9sbGJhci10aGluIHNjcm9sbGJhci10aHVtYi1tdXRlZCBzY3JvbGxiYXItdHJhY2stdHJhbnNwYXJlbnQnLFxuICAgICAgJ21pbi1oLVs4MHB4XScsXG4gICAgICB0aGlzLmNsYXNzTmFtZVxuICAgICk7XG4gIH1cblxuICBoYW5kbGVJbnB1dChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICBpZiAodGhpcy5hdXRvR3JvdykgdGhpcy5yZXNpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplKCkge1xuICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gYCR7dGV4dGFyZWEuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5hdXRvR3Jvdykgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2l6ZSgpKTtcbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHsgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7IH1cbn1cbiJdfQ==
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi90ZXh0YXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQXNFaEMsTUFBTSxPQUFPLGlCQUFpQjtJQUNFLGVBQWUsQ0FBbUM7SUFFdkUsRUFBRSxHQUFHLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0QsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNWLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFNBQVMsQ0FBVTtJQUNuQixrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV4QixpQkFBaUI7SUFDUixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUUzQyxhQUFhO0lBQ0osUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRTFC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QUFqQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS10ZXh0YXJlYScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMS41IHctZnVsbFwiPlxuICAgICAgPGxhYmVsXG4gICAgICAgICpuZ0lmPVwibGFiZWxcIlxuICAgICAgICBbZm9yXT1cImlkXCJcbiAgICAgICAgW2NsYXNzXT1cImNvbXB1dGVkTGFiZWxDbGFzc1wiXG4gICAgICA+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgI3RleHRhcmVhRWxlbWVudFxuICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICBbY2xhc3NdPVwidGV4dGFyZWFDbGFzc2VzXCJcbiAgICAgICAgICBbc3R5bGUucmVzaXplXT1cIihhdXRvR3JvdyB8fCByZWFkb25seSB8fCBkaXNhYmxlZCkgPyAnbm9uZScgOiAndmVydGljYWwnXCJcbiAgICAgICAgICBbc3R5bGUub3ZlcmZsb3ddPVwiYXV0b0dyb3cgPyAnaGlkZGVuJyA6ICdhdXRvJ1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImVycm9yXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImVycm9yICYmIGVycm9yTWVzc2FnZSA/IGlkICsgJy1lcnJvcicgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIihzaG93Q2hhcmFjdGVyQ291bnQgfHwgaGludCB8fCBlcnJvck1lc3NhZ2UpICYmICFkaXNhYmxlZFwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHB4LTFcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cImhpbnQgJiYgIWVycm9yXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIlxuICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTBdPVwiaXNGb2N1c2VkICYmIGhpZGVIaW50T25Gb2N1c1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBoaW50IH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cImVycm9yICYmIGVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgW2lkXT1cImlkICsgJy1lcnJvcidcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWRlc3RydWN0aXZlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q2hhcmFjdGVyQ291bnRcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBtbC1hdXRvIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIlxuICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTBdPVwiaXNGb2N1c2VkICYmIGhpZGVDaGFyYWN0ZXJDb3VudE9uRm9jdXNcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdmFsdWUubGVuZ3RoIHx8IDAgfX17eyBtYXhMZW5ndGggPyAnIC8gJyArIG1heExlbmd0aCA6ICcnIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd0ZXh0YXJlYUVsZW1lbnQnKSB0ZXh0YXJlYUVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGlkID0gYHRleHRhcmVhLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGhpbnQgPSAnJztcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIHJvd3MgPSAzO1xuICBASW5wdXQoKSBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dDaGFyYWN0ZXJDb3VudCA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvR3JvdyA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvciA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcblxuICAvLyBGb2N1cyBiZWhhdmlvclxuICBASW5wdXQoKSBoaWRlSGludE9uRm9jdXMgPSB0cnVlO1xuICBASW5wdXQoKSBoaWRlQ2hhcmFjdGVyQ291bnRPbkZvY3VzID0gZmFsc2U7XG5cbiAgLy8gTmV3IFN0YXRlc1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgaXNGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuYXV0b0dyb3cpIHRoaXMucmVzaXplKCk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRMYWJlbENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIFwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgbGVhZGluZy1ub25lIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIixcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJvcGFjaXR5LTUwXCJcbiAgICApO1xuICB9XG5cbiAgZ2V0IHRleHRhcmVhQ2xhc3NlcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAvLyBCYXNlIHN0eWxlc1xuICAgICAgJ2ZsZXggdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJnLWJhY2tncm91bmQgcHgtMyBweS0yIHRleHQtc20nLFxuICAgICAgJ3Jpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwJyxcbiAgICAgICdwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuXG4gICAgICAvLyBCb3JkZXIgYW5kIHNoYWRvd1xuICAgICAgJ2JvcmRlci1pbnB1dCBzaGFkb3ctc20nLFxuXG4gICAgICAvLyBNaW5pbXVtIGhlaWdodFxuICAgICAgJ21pbi1oLVs4MHB4XScsXG5cbiAgICAgIC8vIEZvY3VzIHN0YXRlIC0gU0lNUExFIExJS0UgWkFSRFVJXG4gICAgICAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgJiYgW1xuICAgICAgICAnZm9jdXM6b3V0bGluZS1ub25lJyxcbiAgICAgICAgJ2ZvY3VzOnJpbmctNCcsXG4gICAgICAgICdmb2N1czpyaW5nLXJpbmcvMzAnLFxuICAgICAgICAnZm9jdXM6cmluZy1vZmZzZXQtMCcsXG4gICAgICAgICdmb2N1czpzaGFkb3ctbm9uZScsXG4gICAgICAgIC8vIEJvcmRlciBkYXJrZW5zIG9uIGZvY3VzIGF1dG9tYXRpY2FsbHlcbiAgICAgICAgJ2ZvY3VzOmJvcmRlci1wcmltYXJ5LzgwJ1xuICAgICAgXSxcblxuICAgICAgLy8gRXJyb3Igc3RhdGVcbiAgICAgIHRoaXMuZXJyb3IgJiYgW1xuICAgICAgICAnYm9yZGVyLWRlc3RydWN0aXZlJyxcbiAgICAgICAgISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpICYmIFtcbiAgICAgICAgICAnZm9jdXM6Ym9yZGVyLWRlc3RydWN0aXZlLzgwJyxcbiAgICAgICAgICAnZm9jdXM6cmluZy1kZXN0cnVjdGl2ZS8zMCdcbiAgICAgICAgXVxuICAgICAgXSxcblxuICAgICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgW1xuICAgICAgICAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnLFxuICAgICAgICAnYm9yZGVyLW9wYWNpdHktNTAnXG4gICAgICBdLFxuXG4gICAgICAvLyBSZWFkb25seSBzdGF0ZVxuICAgICAgdGhpcy5yZWFkb25seSAmJiBbXG4gICAgICAgICdjdXJzb3ItZGVmYXVsdCcsXG4gICAgICAgICdib3JkZXItZGFzaGVkJyxcbiAgICAgICAgIXRoaXMuZGlzYWJsZWQgJiYgJ2ZvY3VzOnJpbmctMCBmb2N1czpib3JkZXItb3BhY2l0eS0xMDAnXG4gICAgICBdLFxuXG4gICAgICAvLyBTY3JvbGxiYXIgc3R5bGluZ1xuICAgICAgJ3Njcm9sbGJhci10aGluIHNjcm9sbGJhci10aHVtYi1tdXRlZCBzY3JvbGxiYXItdHJhY2stdHJhbnNwYXJlbnQnLFxuXG4gICAgICB0aGlzLmNsYXNzTmFtZVxuICAgICk7XG4gIH1cblxuICBoYW5kbGVJbnB1dChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICBpZiAodGhpcy5hdXRvR3JvdykgdGhpcy5yZXNpemUoKTtcbiAgfVxuXG4gIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplKCkge1xuICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gYCR7dGV4dGFyZWEuc2Nyb2xsSGVpZ2h0fXB4YDtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5hdXRvR3Jvdykgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2l6ZSgpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiJdfQ==
|