@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
|
@@ -21,10 +21,12 @@ export class MaskedInputComponent {
|
|
|
21
21
|
error = false;
|
|
22
22
|
size = 'default';
|
|
23
23
|
returnRaw = false;
|
|
24
|
+
hideHintOnFocus = true;
|
|
24
25
|
inputEl;
|
|
25
26
|
hasPrefix = false;
|
|
26
27
|
hasSuffix = false;
|
|
27
28
|
displayValue = '';
|
|
29
|
+
isFocused = false;
|
|
28
30
|
tokens = {
|
|
29
31
|
'0': /\d/, '9': /\d/, 'a': /[a-z]/i, 'A': /[a-z]/i, '*': /[a-z0-9]/i
|
|
30
32
|
};
|
|
@@ -43,19 +45,71 @@ export class MaskedInputComponent {
|
|
|
43
45
|
this.cdr.detectChanges();
|
|
44
46
|
}
|
|
45
47
|
}
|
|
48
|
+
get computedLabelClass() {
|
|
49
|
+
return cn("text-sm font-medium text-foreground leading-none transition-opacity duration-200", this.disabled && "opacity-50");
|
|
50
|
+
}
|
|
46
51
|
get computedContainerClass() {
|
|
47
|
-
return cn(
|
|
52
|
+
return cn(
|
|
53
|
+
// Base styles
|
|
54
|
+
"group relative flex items-center w-full rounded-md border transition-all duration-200", "bg-background",
|
|
55
|
+
// Border and shadow
|
|
56
|
+
"border-input shadow-sm",
|
|
48
57
|
// Sizing
|
|
49
|
-
this.size === 'xs' && "h-8 px-2 gap-1.5", this.size === 'sm' && "h-9 px-3 gap-2", this.size === 'default' && "h-10 px-3 gap-2", this.size === 'lg' && "h-11 px-4 gap-3",
|
|
50
|
-
//
|
|
51
|
-
!(this.readonly || this.disabled) &&
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
this.size === 'xs' && "h-8 px-2 gap-1.5 text-xs", this.size === 'sm' && "h-9 px-3 gap-2 text-sm", this.size === 'default' && "h-10 px-3 gap-2 text-sm", this.size === 'lg' && "h-11 px-4 gap-3 text-base",
|
|
59
|
+
// Focus state - SIMPLE LIKE ZARDUI
|
|
60
|
+
!(this.readonly || this.disabled) && [
|
|
61
|
+
"focus-within:border-primary/80",
|
|
62
|
+
"focus-within:ring-4",
|
|
63
|
+
"focus-within:ring-ring/30",
|
|
64
|
+
"focus-within:ring-offset-0",
|
|
65
|
+
"focus-within:shadow-none",
|
|
66
|
+
],
|
|
67
|
+
// Error state
|
|
68
|
+
this.error && [
|
|
69
|
+
"border-destructive",
|
|
70
|
+
!(this.readonly || this.disabled) && [
|
|
71
|
+
"focus-within:border-destructive/80",
|
|
72
|
+
"focus-within:ring-destructive/30"
|
|
73
|
+
]
|
|
74
|
+
],
|
|
75
|
+
// Disabled state
|
|
76
|
+
this.disabled && [
|
|
77
|
+
"cursor-not-allowed opacity-50",
|
|
78
|
+
"border-opacity-50"
|
|
79
|
+
],
|
|
80
|
+
// Readonly state
|
|
81
|
+
this.readonly && [
|
|
82
|
+
"cursor-default",
|
|
83
|
+
"border-dashed",
|
|
84
|
+
!this.disabled && "focus-within:ring-0 focus-within:border-opacity-100"
|
|
85
|
+
], this.containerClass);
|
|
56
86
|
}
|
|
57
87
|
get computedInputClass() {
|
|
58
|
-
return cn(
|
|
88
|
+
return cn(
|
|
89
|
+
// Base styles
|
|
90
|
+
"flex-1 bg-transparent border-none p-0", "placeholder:text-muted-foreground",
|
|
91
|
+
// Remove all default focus styles
|
|
92
|
+
"focus:outline-none focus:ring-0 focus:shadow-none",
|
|
93
|
+
// Text sizing
|
|
94
|
+
this.size === 'xs' && "text-xs", this.size === 'sm' && "text-sm", this.size === 'default' && "text-sm", this.size === 'lg' && "text-base",
|
|
95
|
+
// Cursor states
|
|
96
|
+
this.disabled && "cursor-not-allowed", this.readonly && "cursor-default",
|
|
97
|
+
// Text color
|
|
98
|
+
"text-foreground",
|
|
99
|
+
// Selection color
|
|
100
|
+
"selection:bg-primary/20 selection:text-foreground", this.class);
|
|
101
|
+
}
|
|
102
|
+
focusInput() {
|
|
103
|
+
if (!this.disabled && this.inputEl) {
|
|
104
|
+
this.inputEl.nativeElement.focus();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
onFocus() {
|
|
108
|
+
this.isFocused = true;
|
|
109
|
+
}
|
|
110
|
+
onBlur() {
|
|
111
|
+
this.isFocused = false;
|
|
112
|
+
this.onTouched();
|
|
59
113
|
}
|
|
60
114
|
// --- Masking Logic ---
|
|
61
115
|
onInput(event) {
|
|
@@ -94,20 +148,26 @@ export class MaskedInputComponent {
|
|
|
94
148
|
}
|
|
95
149
|
return formatted;
|
|
96
150
|
}
|
|
97
|
-
unmask(val) {
|
|
151
|
+
unmask(val) {
|
|
152
|
+
return val.replace(/[^a-zA-Z0-9]/g, '');
|
|
153
|
+
}
|
|
98
154
|
writeValue(value) {
|
|
99
155
|
this.displayValue = value ? this.applyMask(this.unmask(value.toString())) : '';
|
|
100
156
|
this.cdr.markForCheck();
|
|
101
157
|
}
|
|
102
|
-
registerOnChange(fn) {
|
|
103
|
-
|
|
158
|
+
registerOnChange(fn) {
|
|
159
|
+
this.onChange = fn;
|
|
160
|
+
}
|
|
161
|
+
registerOnTouched(fn) {
|
|
162
|
+
this.onTouched = fn;
|
|
163
|
+
}
|
|
104
164
|
setDisabledState(isDisabled) {
|
|
105
165
|
this.disabled = isDisabled;
|
|
106
166
|
this.cdr.markForCheck();
|
|
107
167
|
}
|
|
108
168
|
cn = cn;
|
|
109
169
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaskedInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaskedInputComponent, isStandalone: true, selector: "tolle-masked-input", inputs: { id: "id", label: "label", hint: "hint", errorMessage: "errorMessage", mask: "mask", placeholder: "placeholder", type: "type", disabled: "disabled", readonly: "readonly", class: "class", containerClass: "containerClass", error: "error", size: "size", returnRaw: "returnRaw" }, providers: [
|
|
170
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaskedInputComponent, isStandalone: true, selector: "tolle-masked-input", inputs: { id: "id", label: "label", hint: "hint", errorMessage: "errorMessage", mask: "mask", placeholder: "placeholder", type: "type", disabled: "disabled", readonly: "readonly", class: "class", containerClass: "containerClass", error: "error", size: "size", returnRaw: "returnRaw", hideHintOnFocus: "hideHintOnFocus" }, providers: [
|
|
111
171
|
{
|
|
112
172
|
provide: NG_VALUE_ACCESSOR,
|
|
113
173
|
useExisting: forwardRef(() => MaskedInputComponent),
|
|
@@ -118,15 +178,17 @@ export class MaskedInputComponent {
|
|
|
118
178
|
<label
|
|
119
179
|
*ngIf="label"
|
|
120
180
|
[for]="id"
|
|
121
|
-
[class
|
|
122
|
-
class="text-sm font-medium text-foreground leading-none transition-opacity"
|
|
181
|
+
[class]="computedLabelClass"
|
|
123
182
|
>
|
|
124
183
|
{{ label }}
|
|
125
184
|
</label>
|
|
126
185
|
|
|
127
|
-
<div
|
|
186
|
+
<div
|
|
187
|
+
[class]="computedContainerClass"
|
|
188
|
+
(click)="focusInput()"
|
|
189
|
+
>
|
|
128
190
|
<!-- Prefix Icon -->
|
|
129
|
-
<div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
|
|
191
|
+
<div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors duration-200">
|
|
130
192
|
<ng-content select="[prefix]"></ng-content>
|
|
131
193
|
</div>
|
|
132
194
|
|
|
@@ -139,21 +201,32 @@ export class MaskedInputComponent {
|
|
|
139
201
|
[readOnly]="readonly"
|
|
140
202
|
[value]="displayValue"
|
|
141
203
|
(input)="onInput($event)"
|
|
142
|
-
(blur)="
|
|
204
|
+
(blur)="onBlur()"
|
|
205
|
+
(focus)="onFocus()"
|
|
143
206
|
[class]="computedInputClass"
|
|
207
|
+
[attr.aria-invalid]="error"
|
|
208
|
+
[attr.aria-describedby]="error && errorMessage ? id + '-error' : null"
|
|
144
209
|
/>
|
|
145
210
|
|
|
146
211
|
<!-- Suffix Icon -->
|
|
147
|
-
<div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
|
|
212
|
+
<div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors duration-200">
|
|
148
213
|
<ng-content select="[suffix]"></ng-content>
|
|
149
214
|
</div>
|
|
150
215
|
</div>
|
|
151
216
|
|
|
152
217
|
<ng-container *ngIf="!disabled">
|
|
153
|
-
<p
|
|
218
|
+
<p
|
|
219
|
+
*ngIf="hint && !error"
|
|
220
|
+
class="text-xs text-muted-foreground px-1 transition-opacity duration-200"
|
|
221
|
+
[class.opacity-0]="isFocused && hideHintOnFocus"
|
|
222
|
+
>
|
|
154
223
|
{{ hint }}
|
|
155
224
|
</p>
|
|
156
|
-
<p
|
|
225
|
+
<p
|
|
226
|
+
*ngIf="error && errorMessage"
|
|
227
|
+
[id]="id + '-error'"
|
|
228
|
+
class="text-xs text-destructive px-1"
|
|
229
|
+
>
|
|
157
230
|
{{ errorMessage }}
|
|
158
231
|
</p>
|
|
159
232
|
</ng-container>
|
|
@@ -178,15 +251,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
178
251
|
<label
|
|
179
252
|
*ngIf="label"
|
|
180
253
|
[for]="id"
|
|
181
|
-
[class
|
|
182
|
-
class="text-sm font-medium text-foreground leading-none transition-opacity"
|
|
254
|
+
[class]="computedLabelClass"
|
|
183
255
|
>
|
|
184
256
|
{{ label }}
|
|
185
257
|
</label>
|
|
186
258
|
|
|
187
|
-
<div
|
|
259
|
+
<div
|
|
260
|
+
[class]="computedContainerClass"
|
|
261
|
+
(click)="focusInput()"
|
|
262
|
+
>
|
|
188
263
|
<!-- Prefix Icon -->
|
|
189
|
-
<div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
|
|
264
|
+
<div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors duration-200">
|
|
190
265
|
<ng-content select="[prefix]"></ng-content>
|
|
191
266
|
</div>
|
|
192
267
|
|
|
@@ -199,21 +274,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
199
274
|
[readOnly]="readonly"
|
|
200
275
|
[value]="displayValue"
|
|
201
276
|
(input)="onInput($event)"
|
|
202
|
-
(blur)="
|
|
277
|
+
(blur)="onBlur()"
|
|
278
|
+
(focus)="onFocus()"
|
|
203
279
|
[class]="computedInputClass"
|
|
280
|
+
[attr.aria-invalid]="error"
|
|
281
|
+
[attr.aria-describedby]="error && errorMessage ? id + '-error' : null"
|
|
204
282
|
/>
|
|
205
283
|
|
|
206
284
|
<!-- Suffix Icon -->
|
|
207
|
-
<div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
|
|
285
|
+
<div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors duration-200">
|
|
208
286
|
<ng-content select="[suffix]"></ng-content>
|
|
209
287
|
</div>
|
|
210
288
|
</div>
|
|
211
289
|
|
|
212
290
|
<ng-container *ngIf="!disabled">
|
|
213
|
-
<p
|
|
291
|
+
<p
|
|
292
|
+
*ngIf="hint && !error"
|
|
293
|
+
class="text-xs text-muted-foreground px-1 transition-opacity duration-200"
|
|
294
|
+
[class.opacity-0]="isFocused && hideHintOnFocus"
|
|
295
|
+
>
|
|
214
296
|
{{ hint }}
|
|
215
297
|
</p>
|
|
216
|
-
<p
|
|
298
|
+
<p
|
|
299
|
+
*ngIf="error && errorMessage"
|
|
300
|
+
[id]="id + '-error'"
|
|
301
|
+
class="text-xs text-destructive px-1"
|
|
302
|
+
>
|
|
217
303
|
{{ errorMessage }}
|
|
218
304
|
</p>
|
|
219
305
|
</ng-container>
|
|
@@ -248,8 +334,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
248
334
|
type: Input
|
|
249
335
|
}], returnRaw: [{
|
|
250
336
|
type: Input
|
|
337
|
+
}], hideHintOnFocus: [{
|
|
338
|
+
type: Input
|
|
251
339
|
}], inputEl: [{
|
|
252
340
|
type: ViewChild,
|
|
253
341
|
args: ['inputEl', { static: true }]
|
|
254
342
|
}] } });
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2VkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvbWFza2VkLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWMsU0FBUyxFQUVwRCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUE0RGhDLE1BQU0sT0FBTyxvQkFBb0I7SUE2Qlg7SUFBd0I7SUE1Qm5DLEVBQUUsR0FBVyxnQkFBZ0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkUsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ2xCLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksR0FBRyxNQUFNLENBQUM7SUFDZCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLGNBQWMsR0FBVyxFQUFFLENBQUM7SUFDNUIsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUN2QixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUNqRCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWEsT0FBTyxDQUFnQztJQUUvRSxTQUFTLEdBQUcsS0FBSyxD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LFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ3BDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q1Q7aUJBQ0Y7K0dBRVUsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFa0MsT0FBTztzQkFBOUMsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiwgRWxlbWVudFJlZiwgVmlld0NoaWxkLFxuICBBZnRlckNvbnRlbnRDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtbWFza2VkLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1hc2tlZElucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xLjUgdy1mdWxsXCI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgKm5nSWY9XCJsYWJlbFwiXG4gICAgICAgIFtmb3JdPVwiaWRcIlxuICAgICAgICBbY2xhc3Mub3BhY2l0eS01MF09XCJkaXNhYmxlZFwiXG4gICAgICAgIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgbGVhZGluZy1ub25lIHRyYW5zaXRpb24tb3BhY2l0eVwiXG4gICAgICA+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8ZGl2IFtjbGFzc109XCJjb21wdXRlZENvbnRhaW5lckNsYXNzXCI+XG4gICAgICAgIDwhLS0gUHJlZml4IEljb24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQgZ3JvdXAtZm9jdXMtd2l0aGluOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjaW5wdXRFbFxuICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiXG4gICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgICAgIFtjbGFzc109XCJjb21wdXRlZElucHV0Q2xhc3NcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS0gU3VmZml4IEljb24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQgZ3JvdXAtZm9jdXMtd2l0aGluOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRpc2FibGVkXCI+XG4gICAgICAgIDxwICpuZ0lmPVwiaGludCAmJiAhZXJyb3JcIiBjbGFzcz1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHB4LTFcIj5cbiAgICAgICAgICB7eyBoaW50IH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgKm5nSWY9XCJlcnJvciAmJiBlcnJvck1lc3NhZ2VcIiBjbGFzcz1cInRleHQteHMgdGV4dC1kZXN0cnVjdGl2ZSBweC0xXCI+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIE1hc2tlZElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudENoZWNrZWQge1xuICBASW5wdXQoKSBpZDogc3RyaW5nID0gYG1hc2tlZC1pbnB1dC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtYXNrOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgdHlwZSA9ICd0ZXh0JztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xhc3MgPSAnJztcbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplOiAneHMnIHwgJ3NtJyB8ICdkZWZhdWx0JyB8ICdsZycgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHJldHVyblJhdyA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBoYXNQcmVmaXggPSBmYWxzZTtcbiAgaGFzU3VmZml4ID0gZmFsc2U7XG4gIGRpc3BsYXlWYWx1ZSA9ICcnO1xuXG4gIHByaXZhdGUgdG9rZW5zOiB7IFtrZXk6IHN0cmluZ106IFJlZ0V4cCB9ID0ge1xuICAgICcwJzogL1xcZC8sICc5JzogL1xcZC8sICdhJzogL1thLXpdL2ksICdBJzogL1thLXpdL2ksICcqJzogL1thLXowLTldL2lcbiAgfTtcblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3ByZWZpeF0nKTtcbiAgICBjb25zdCBzdWZmaXggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3N1ZmZpeF0nKTtcblxuICAgIGlmICh0aGlzLmhhc1ByZWZpeCAhPT0gISFwcmVmaXggfHwgdGhpcy5oYXNTdWZmaXggIT09ICEhc3VmZml4KSB7XG4gICAgICB0aGlzLmhhc1ByZWZpeCA9ICEhcHJlZml4O1xuICAgICAgdGhpcy5oYXNTdWZmaXggPSAhIXN1ZmZpeDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDb250YWluZXJDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICBcImdyb3VwIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciB0cmFuc2l0aW9uLWFsbCBzaGFkb3ctc21cIixcbiAgICAgIFwiYmctYmFja2dyb3VuZCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kXCIsXG5cbiAgICAgIC8vIFNpemluZ1xuICAgICAgdGhpcy5zaXplID09PSAneHMnICYmIFwiaC04IHB4LTIgZ2FwLTEuNVwiLFxuICAgICAgdGhpcy5zaXplID09PSAnc20nICYmIFwiaC05IHB4LTMgZ2FwLTJcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmIFwiaC0xMCBweC0zIGdhcC0yXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdsZycgJiYgXCJoLTExIHB4LTQgZ2FwLTNcIixcblxuICAgICAgLy8gSW50ZXJhY3Rpb24gU3RhdGVzIChJbmhlcml0ZWQgZnJvbSBJbnB1dCBmb2N1cyBzdHlsZSlcbiAgICAgICEodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSAmJiBcImZvY3VzLXdpdGhpbjpyaW5nLTIgZm9jdXMtd2l0aGluOnJpbmctcmluZyBmb2N1cy13aXRoaW46cmluZy1vZmZzZXQtMVwiLFxuXG4gICAgICAvLyBDb2xvcnMgJiBCb3JkZXJzXG4gICAgICB0aGlzLmVycm9yID8gXCJib3JkZXItZGVzdHJ1Y3RpdmUgZm9jdXMtd2l0aGluOnJpbmctZGVzdHJ1Y3RpdmVcIiA6IFwiYm9yZGVyLWlucHV0XCIsXG5cbiAgICAgIC8vIERpc2FibGVkIHZzIFJlYWRvbmx5IHN0eWxpbmdcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MFwiLFxuICAgICAgdGhpcy5yZWFkb25seSAmJiBcImN1cnNvci1kZWZhdWx0IGJvcmRlci1kYXNoZWQgZm9jdXMtd2l0aGluOnJpbmctMFwiLFxuXG4gICAgICB0aGlzLmNvbnRhaW5lckNsYXNzXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZElucHV0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgXCJmbGV4LTEgYmctdHJhbnNwYXJlbnQgYm9yZGVyLW5vbmUgcC0wIHRleHQtc20gcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTBcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3hzJyAmJiBcInRleHQteHNcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2xnJyAmJiBcInRleHQtYmFzZVwiLFxuICAgICAgdGhpcy5kaXNhYmxlZCAmJiBcImN1cnNvci1ub3QtYWxsb3dlZFwiLFxuICAgICAgdGhpcy5yZWFkb25seSAmJiBcImN1cnNvci1kZWZhdWx0XCIsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxuXG4gIC8vIC0tLSBNYXNraW5nIExvZ2ljIC0tLVxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IHJhdyA9IHRoaXMudW5tYXNrKGlucHV0LnZhbHVlKTtcbiAgICBjb25zdCBtYXNrZWQgPSB0aGlzLmFwcGx5TWFzayhyYXcpO1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gbWFza2VkO1xuICAgIGlucHV0LnZhbHVlID0gbWFza2VkO1xuICAgIHRoaXMucmV0dXJuUmF3ID8gdGhpcy5vbkNoYW5nZShyYXcpIDogdGhpcy5vbkNoYW5nZShtYXNrZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU1hc2socmF3VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHJhd0luZGV4ID0gMDsgbGV0IGZvcm1hdHRlZCA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5tYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmF3SW5kZXggPj0gcmF3VmFsdWUubGVuZ3RoKSBicmVhaztcbiAgICAgIGNvbnN0IG1hc2tDaGFyID0gdGhpcy5tYXNrW2ldO1xuICAgICAgY29uc3QgcmF3Q2hhciA9IHJhd1ZhbHVlW3Jhd0luZGV4XTtcbiAgICAgIGlmICh0aGlzLnRva2Vuc1ttYXNrQ2hhcl0pIHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zW21hc2tDaGFyXS50ZXN0KHJhd0NoYXIpKSB7IGZvcm1hdHRlZCArPSByYXdDaGFyOyByYXdJbmRleCsrOyB9XG4gICAgICAgIGVsc2UgeyByYXdJbmRleCsrOyBpLS07IH1cbiAgICAgIH0gZWxzZSB7IGZvcm1hdHRlZCArPSBtYXNrQ2hhcjsgaWYgKHJhd0NoYXIgPT09IG1hc2tDaGFyKSByYXdJbmRleCsrOyB9XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHVubWFzayh2YWw6IHN0cmluZyk6IHN0cmluZyB7IHJldHVybiB2YWwucmVwbGFjZSgvW15hLXpBLVowLTldL2csICcnKTsgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWUgPyB0aGlzLmFwcGx5TWFzayh0aGlzLnVubWFzayh2YWx1ZS50b1N0cmluZygpKSkgOiAnJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICBwcm90ZWN0ZWQgY24gPSBjbjtcbn1cbiJdfQ==
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2VkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvbWFza2VkLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWMsU0FBUyxFQUVwRCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUF5RWhDLE1BQU0sT0FBTyxvQkFBb0I7SUErQlg7SUFBd0I7SUE5Qm5DLEVBQUUsR0FBVyxnQkFBZ0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkUsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ2xCLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksR0FBRyxNQUFNLENBQUM7SUFDZCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLGNBQWMsR0FBVyxFQUFFLENBQUM7SUFDNUIsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUN2QixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUNqRCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLGVBQWUsR0FBWSxJQUFJLENBQUM7SUFFRCxPQUFPLENBQWdDO0lBRS9FLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFbkIsTUFBTSxHQUE4QjtRQUMxQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxXQUFXO0tBQ3JFLENBQUM7SUFFRixRQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ3pCLFNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFMUIsWUFBb0IsRUFBYyxFQUFVLEdBQXNCO1FBQTlDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUFHLENBQUM7SUFFdEUscUJBQXFCO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxFQUFFLENBQ1Asa0ZBQWtGLEVBQ2xGLElBQUksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sRUFBRTtRQUNQLGNBQWM7UUFDZCx1RkFBdUYsRUFDdkYsZUFBZTtRQUVmLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFFeEIsU0FBUztRQUNULElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLDBCQUEwQixFQUNoRCxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSx3QkFBd0IsRUFDOUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUkseUJBQXlCLEVBQ3BELElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLDJCQUEyQjtRQUVqRCxtQ0FBbUM7UUFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ25DLGdDQUFnQztZQUNoQyxxQkFBcUI7WUFDckIsMkJBQTJCO1lBQzNCLDRCQUE0QjtZQUM1QiwwQkFBMEI7U0FDM0I7UUFFRCxjQUFjO1FBQ2QsSUFBSSxDQUFDLEtBQUssSUFBSTtZQUNaLG9CQUFvQjtZQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7Z0JBQ25DLG9DQUFvQztnQkFDcEMsa0NBQWtDO2FBQ25DO1NBQ0Y7UUFFRCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLFFBQVEsSUFBSTtZQUNmLCtCQUErQjtZQUMvQixtQkFBbUI7U0FDcEI7UUFFRCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLFFBQVEsSUFBSTtZQUNmLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLHFEQUFxRDtTQUN4RSxFQUVELElBQUksQ0FBQyxjQUFjLENBQ3BCLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxFQUFFO1FBQ1AsY0FBYztRQUNkLHVDQUF1QyxFQUN2QyxtQ0FBbUM7UUFFbkMsa0NBQWtDO1FBQ2xDLG1EQUFtRDtRQUVuRCxjQUFjO1FBQ2QsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksU0FBUyxFQUMvQixJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxTQUFTLEVBQy9CLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLFNBQVMsRUFDcEMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksV0FBVztRQUVqQyxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsSUFBSSxvQkFBb0IsRUFDckMsSUFBSSxDQUFDLFFBQVEsSUFBSSxnQkFBZ0I7UUFFakMsYUFBYTtRQUNiLGlCQUFpQjtRQUVqQixrQkFBa0I7UUFDbEIsbURBQW1ELEVBRW5ELElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsT0FBTyxDQUFDLEtBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxRQUFnQjtRQUNoQyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFDLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNO2dCQUFFLE1BQU07WUFDdkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDeEMsU0FBUyxJQUFJLE9BQU8sQ0FBQztvQkFDckIsUUFBUSxFQUFFLENBQUM7Z0JBQ2IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFFBQVEsRUFBRSxDQUFDO29CQUNYLENBQUMsRUFBRSxDQUFDO2dCQUNOLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sU0FBUyxJQUFJLFFBQVEsQ0FBQztnQkFDdEIsSUFBSSxPQUFPLEtBQUssUUFBUTtvQkFBRSxRQUFRLEVBQUUsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBVztRQUN4QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxFQUFFLEdBQUcsRUFBRSxDQUFDO3dHQXpNUCxvQkFBb0I7NEZBQXBCLG9CQUFvQixtWUFuRXBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDRJQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMERULDJEQWxFUyxZQUFZLGtJQUFFLFdBQVc7OzRGQW9FeEIsb0JBQW9CO2tCQXZFaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRFQ7aUJBQ0Y7K0dBRVUsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVrQyxPQUFPO3NCQUE5QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsXG4gIEFmdGVyQ29udGVudENoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1tYXNrZWQtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTWFza2VkSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEuNSB3LWZ1bGxcIj5cbiAgICAgIDxsYWJlbFxuICAgICAgICAqbmdJZj1cImxhYmVsXCJcbiAgICAgICAgW2Zvcl09XCJpZFwiXG4gICAgICAgIFtjbGFzc109XCJjb21wdXRlZExhYmVsQ2xhc3NcIlxuICAgICAgPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgPC9sYWJlbD5cblxuICAgICAgPGRpdlxuICAgICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDb250YWluZXJDbGFzc1wiXG4gICAgICAgIChjbGljayk9XCJmb2N1c0lucHV0KClcIlxuICAgICAgPlxuICAgICAgICA8IS0tIFByZWZpeCBJY29uIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGdyb3VwLWZvY3VzLXdpdGhpbjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3ByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICNpbnB1dEVsXG4gICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheVZhbHVlXCJcbiAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgW2NsYXNzXT1cImNvbXB1dGVkSW5wdXRDbGFzc1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImVycm9yXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImVycm9yICYmIGVycm9yTWVzc2FnZSA/IGlkICsgJy1lcnJvcicgOiBudWxsXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8IS0tIFN1ZmZpeCBJY29uIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGdyb3VwLWZvY3VzLXdpdGhpbjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGlzYWJsZWRcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cImhpbnQgJiYgIWVycm9yXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHB4LTEgdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTIwMFwiXG4gICAgICAgICAgW2NsYXNzLm9wYWNpdHktMF09XCJpc0ZvY3VzZWQgJiYgaGlkZUhpbnRPbkZvY3VzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGhpbnQgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8cFxuICAgICAgICAgICpuZ0lmPVwiZXJyb3IgJiYgZXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICBbaWRdPVwiaWQgKyAnLWVycm9yJ1wiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZGVzdHJ1Y3RpdmUgcHgtMVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgTWFza2VkSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSBgbWFza2VkLWlucHV0LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaGludDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG1hc2s6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSB0eXBlID0gJ3RleHQnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBASW5wdXQoKSBjb250YWluZXJDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNpemU6ICd4cycgfCAnc20nIHwgJ2RlZmF1bHQnIHwgJ2xnJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgcmV0dXJuUmF3ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGVIaW50T25Gb2N1czogYm9vbGVhbiA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWwhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIGhhc1ByZWZpeCA9IGZhbHNlO1xuICBoYXNTdWZmaXggPSBmYWxzZTtcbiAgZGlzcGxheVZhbHVlID0gJyc7XG4gIGlzRm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgdG9rZW5zOiB7IFtrZXk6IHN0cmluZ106IFJlZ0V4cCB9ID0ge1xuICAgICcwJzogL1xcZC8sICc5JzogL1xcZC8sICdhJzogL1thLXpdL2ksICdBJzogL1thLXpdL2ksICcqJzogL1thLXowLTldL2lcbiAgfTtcblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3ByZWZpeF0nKTtcbiAgICBjb25zdCBzdWZmaXggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3N1ZmZpeF0nKTtcblxuICAgIGlmICh0aGlzLmhhc1ByZWZpeCAhPT0gISFwcmVmaXggfHwgdGhpcy5oYXNTdWZmaXggIT09ICEhc3VmZml4KSB7XG4gICAgICB0aGlzLmhhc1ByZWZpeCA9ICEhcHJlZml4O1xuICAgICAgdGhpcy5oYXNTdWZmaXggPSAhIXN1ZmZpeDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29tcHV0ZWRMYWJlbENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIFwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgbGVhZGluZy1ub25lIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIixcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJvcGFjaXR5LTUwXCJcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ29udGFpbmVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgLy8gQmFzZSBzdHlsZXNcbiAgICAgIFwiZ3JvdXAgcmVsYXRpdmUgZmxleCBpdGVtcy1jZW50ZXIgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMFwiLFxuICAgICAgXCJiZy1iYWNrZ3JvdW5kXCIsXG5cbiAgICAgIC8vIEJvcmRlciBhbmQgc2hhZG93XG4gICAgICBcImJvcmRlci1pbnB1dCBzaGFkb3ctc21cIixcblxuICAgICAgLy8gU2l6aW5nXG4gICAgICB0aGlzLnNpemUgPT09ICd4cycgJiYgXCJoLTggcHgtMiBnYXAtMS41IHRleHQteHNcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3NtJyAmJiBcImgtOSBweC0zIGdhcC0yIHRleHQtc21cIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmIFwiaC0xMCBweC0zIGdhcC0yIHRleHQtc21cIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2xnJyAmJiBcImgtMTEgcHgtNCBnYXAtMyB0ZXh0LWJhc2VcIixcblxuICAgICAgLy8gRm9jdXMgc3RhdGUgLSBTSU1QTEUgTElLRSBaQVJEVUlcbiAgICAgICEodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSAmJiBbXG4gICAgICAgIFwiZm9jdXMtd2l0aGluOmJvcmRlci1wcmltYXJ5LzgwXCIsXG4gICAgICAgIFwiZm9jdXMtd2l0aGluOnJpbmctNFwiLFxuICAgICAgICBcImZvY3VzLXdpdGhpbjpyaW5nLXJpbmcvMzBcIixcbiAgICAgICAgXCJmb2N1cy13aXRoaW46cmluZy1vZmZzZXQtMFwiLFxuICAgICAgICBcImZvY3VzLXdpdGhpbjpzaGFkb3ctbm9uZVwiLFxuICAgICAgXSxcblxuICAgICAgLy8gRXJyb3Igc3RhdGVcbiAgICAgIHRoaXMuZXJyb3IgJiYgW1xuICAgICAgICBcImJvcmRlci1kZXN0cnVjdGl2ZVwiLFxuICAgICAgICAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgJiYgW1xuICAgICAgICAgIFwiZm9jdXMtd2l0aGluOmJvcmRlci1kZXN0cnVjdGl2ZS84MFwiLFxuICAgICAgICAgIFwiZm9jdXMtd2l0aGluOnJpbmctZGVzdHJ1Y3RpdmUvMzBcIlxuICAgICAgICBdXG4gICAgICBdLFxuXG4gICAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICAgdGhpcy5kaXNhYmxlZCAmJiBbXG4gICAgICAgIFwiY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTBcIixcbiAgICAgICAgXCJib3JkZXItb3BhY2l0eS01MFwiXG4gICAgICBdLFxuXG4gICAgICAvLyBSZWFkb25seSBzdGF0ZVxuICAgICAgdGhpcy5yZWFkb25seSAmJiBbXG4gICAgICAgIFwiY3Vyc29yLWRlZmF1bHRcIixcbiAgICAgICAgXCJib3JkZXItZGFzaGVkXCIsXG4gICAgICAgICF0aGlzLmRpc2FibGVkICYmIFwiZm9jdXMtd2l0aGluOnJpbmctMCBmb2N1cy13aXRoaW46Ym9yZGVyLW9wYWNpdHktMTAwXCJcbiAgICAgIF0sXG5cbiAgICAgIHRoaXMuY29udGFpbmVyQ2xhc3NcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkSW5wdXRDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAvLyBCYXNlIHN0eWxlc1xuICAgICAgXCJmbGV4LTEgYmctdHJhbnNwYXJlbnQgYm9yZGVyLW5vbmUgcC0wXCIsXG4gICAgICBcInBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiLFxuXG4gICAgICAvLyBSZW1vdmUgYWxsIGRlZmF1bHQgZm9jdXMgc3R5bGVzXG4gICAgICBcImZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZm9jdXM6c2hhZG93LW5vbmVcIixcblxuICAgICAgLy8gVGV4dCBzaXppbmdcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3hzJyAmJiBcInRleHQteHNcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3NtJyAmJiBcInRleHQtc21cIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmIFwidGV4dC1zbVwiLFxuICAgICAgdGhpcy5zaXplID09PSAnbGcnICYmIFwidGV4dC1iYXNlXCIsXG5cbiAgICAgIC8vIEN1cnNvciBzdGF0ZXNcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJjdXJzb3Itbm90LWFsbG93ZWRcIixcbiAgICAgIHRoaXMucmVhZG9ubHkgJiYgXCJjdXJzb3ItZGVmYXVsdFwiLFxuXG4gICAgICAvLyBUZXh0IGNvbG9yXG4gICAgICBcInRleHQtZm9yZWdyb3VuZFwiLFxuXG4gICAgICAvLyBTZWxlY3Rpb24gY29sb3JcbiAgICAgIFwic2VsZWN0aW9uOmJnLXByaW1hcnkvMjAgc2VsZWN0aW9uOnRleHQtZm9yZWdyb3VuZFwiLFxuXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxuXG4gIGZvY3VzSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuaW5wdXRFbCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICAvLyAtLS0gTWFza2luZyBMb2dpYyAtLS1cbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCByYXcgPSB0aGlzLnVubWFzayhpbnB1dC52YWx1ZSk7XG4gICAgY29uc3QgbWFza2VkID0gdGhpcy5hcHBseU1hc2socmF3KTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IG1hc2tlZDtcbiAgICBpbnB1dC52YWx1ZSA9IG1hc2tlZDtcbiAgICB0aGlzLnJldHVyblJhdyA/IHRoaXMub25DaGFuZ2UocmF3KSA6IHRoaXMub25DaGFuZ2UobWFza2VkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlNYXNrKHJhd1ZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCByYXdJbmRleCA9IDA7XG4gICAgbGV0IGZvcm1hdHRlZCA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5tYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmF3SW5kZXggPj0gcmF3VmFsdWUubGVuZ3RoKSBicmVhaztcbiAgICAgIGNvbnN0IG1hc2tDaGFyID0gdGhpcy5tYXNrW2ldO1xuICAgICAgY29uc3QgcmF3Q2hhciA9IHJhd1ZhbHVlW3Jhd0luZGV4XTtcbiAgICAgIGlmICh0aGlzLnRva2Vuc1ttYXNrQ2hhcl0pIHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zW21hc2tDaGFyXS50ZXN0KHJhd0NoYXIpKSB7XG4gICAgICAgICAgZm9ybWF0dGVkICs9IHJhd0NoYXI7XG4gICAgICAgICAgcmF3SW5kZXgrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByYXdJbmRleCsrO1xuICAgICAgICAgIGktLTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybWF0dGVkICs9IG1hc2tDaGFyO1xuICAgICAgICBpZiAocmF3Q2hhciA9PT0gbWFza0NoYXIpIHJhd0luZGV4Kys7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHVubWFzayh2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbC5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgJycpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB2YWx1ZSA/IHRoaXMuYXBwbHlNYXNrKHRoaXMudW5tYXNrKHZhbHVlLnRvU3RyaW5nKCkpKSA6ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuIl19
|
|
@@ -157,7 +157,7 @@ export class MultiSelectComponent {
|
|
|
157
157
|
</div>
|
|
158
158
|
</div>
|
|
159
159
|
</div>
|
|
160
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { 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: BadgeComponent, selector: "tolle-badge", inputs: ["variant", "size", "removable", "class"], outputs: ["onRemove"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error"] }] });
|
|
160
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { 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: BadgeComponent, selector: "tolle-badge", inputs: ["variant", "size", "removable", "class"], outputs: ["onRemove"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error", "hideHintOnFocus"] }] });
|
|
161
161
|
}
|
|
162
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
163
163
|
type: Component,
|
|
@@ -5,23 +5,42 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
export class OtpSlotComponent {
|
|
6
6
|
char = '';
|
|
7
7
|
isActive = false;
|
|
8
|
-
isFirst = false;
|
|
9
|
-
isLast = false;
|
|
8
|
+
isFirst = false;
|
|
9
|
+
isLast = false;
|
|
10
10
|
class = '';
|
|
11
11
|
cn = cn;
|
|
12
|
+
get computedClass() {
|
|
13
|
+
return cn(
|
|
14
|
+
// Base styles (matching input container)
|
|
15
|
+
'relative flex h-10 w-10 items-center justify-center', 'transition-all duration-200', 'text-center font-medium select-none',
|
|
16
|
+
// Border styling - exactly like input
|
|
17
|
+
'border border-input shadow-sm bg-background',
|
|
18
|
+
// FOCUS STYLING - EXACTLY LIKE INPUT COMPONENT
|
|
19
|
+
this.isActive && [
|
|
20
|
+
// Darker border on focus
|
|
21
|
+
'border-primary/80',
|
|
22
|
+
// Remove shadow on focus
|
|
23
|
+
'shadow-none',
|
|
24
|
+
// Focus ring with same styling as input
|
|
25
|
+
'ring-4',
|
|
26
|
+
'ring-ring/30',
|
|
27
|
+
'ring-offset-0',
|
|
28
|
+
// Ensure it's above other slots
|
|
29
|
+
'z-10'
|
|
30
|
+
],
|
|
31
|
+
// Filled state
|
|
32
|
+
this.char && !this.isActive && 'border-primary/60',
|
|
33
|
+
// Border radius
|
|
34
|
+
this.isFirst && 'rounded-l-md', this.isLast && 'rounded-r-md',
|
|
35
|
+
// Remove left border for all but first slot
|
|
36
|
+
!this.isFirst && '-ml-px', this.class);
|
|
37
|
+
}
|
|
12
38
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OtpSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
39
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OtpSlotComponent, isStandalone: true, selector: "tolle-otp-slot", inputs: { char: "char", isActive: "isActive", isFirst: "isFirst", isLast: "isLast", class: "class" }, ngImport: i0, template: `
|
|
14
|
-
<div [class]="
|
|
15
|
-
|
|
16
|
-
'bg-background',
|
|
17
|
-
isFirst ? 'rounded-l-md border-l' : '',
|
|
18
|
-
isLast ? 'rounded-r-md' : '',
|
|
19
|
-
isActive ? 'z-10 ring-2 ring-ring ring-offset-background' : '',
|
|
20
|
-
class
|
|
21
|
-
)">
|
|
22
|
-
{{ char || '' }}
|
|
40
|
+
<div [class]="computedClass">
|
|
41
|
+
<span class="text-lg font-medium">{{ char || '' }}</span>
|
|
23
42
|
<div *ngIf="isActive && !char" class="pointer-events-none absolute inset-0 flex items-center justify-center">
|
|
24
|
-
<div class="h-
|
|
43
|
+
<div class="h-6 w-0.5 animate-caret-blink bg-foreground"></div>
|
|
25
44
|
</div>
|
|
26
45
|
</div>
|
|
27
46
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
@@ -33,17 +52,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
33
52
|
standalone: true,
|
|
34
53
|
imports: [NgIf],
|
|
35
54
|
template: `
|
|
36
|
-
<div [class]="
|
|
37
|
-
|
|
38
|
-
'bg-background',
|
|
39
|
-
isFirst ? 'rounded-l-md border-l' : '',
|
|
40
|
-
isLast ? 'rounded-r-md' : '',
|
|
41
|
-
isActive ? 'z-10 ring-2 ring-ring ring-offset-background' : '',
|
|
42
|
-
class
|
|
43
|
-
)">
|
|
44
|
-
{{ char || '' }}
|
|
55
|
+
<div [class]="computedClass">
|
|
56
|
+
<span class="text-lg font-medium">{{ char || '' }}</span>
|
|
45
57
|
<div *ngIf="isActive && !char" class="pointer-events-none absolute inset-0 flex items-center justify-center">
|
|
46
|
-
<div class="h-
|
|
58
|
+
<div class="h-6 w-0.5 animate-caret-blink bg-foreground"></div>
|
|
47
59
|
</div>
|
|
48
60
|
</div>
|
|
49
61
|
`
|
|
@@ -59,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
59
71
|
}], class: [{
|
|
60
72
|
type: Input
|
|
61
73
|
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLXNsb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9vdHAtc2xvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBZXZDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsSUFBSSxHQUF1QixFQUFFLENBQUM7SUFDOUIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLE1BQU0sR0FBWSxLQUFLLENBQUM7SUFDeEIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNsQixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRWxCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRTtRQUNQLHlDQUF5QztRQUN6QyxxREFBcUQsRUFDckQsNkJBQTZCLEVBQzdCLHFDQUFxQztRQUVyQyxzQ0FBc0M7UUFDdEMsNkNBQTZDO1FBRTdDLCtDQUErQztRQUMvQyxJQUFJLENBQUMsUUFBUSxJQUFJO1lBQ2YseUJBQXlCO1lBQ3pCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsYUFBYTtZQUNiLHdDQUF3QztZQUN4QyxRQUFRO1lBQ1IsY0FBYztZQUNkLGVBQWU7WUFDZixnQ0FBZ0M7WUFDaEMsTUFBTTtTQUNQO1FBRUQsZUFBZTtRQUNmLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLG1CQUFtQjtRQUVsRCxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQzlCLElBQUksQ0FBQyxNQUFNLElBQUksY0FBYztRQUU3Qiw0Q0FBNEM7UUFDNUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsRUFFekIsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO0lBQ0osQ0FBQzt3R0E1Q1UsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsZ0xBVGpCOzs7Ozs7O0dBT1QsNERBUlMsSUFBSTs7NEZBVUgsZ0JBQWdCO2tCQWI1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0JBQ2YsUUFBUSxFQUFFOzs7Ozs7O0dBT1Q7aUJBQ0Y7OEJBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gXCIuL3V0aWxzL2NuXCI7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtb3RwLXNsb3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtXCI+e3sgY2hhciB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpc0FjdGl2ZSAmJiAhY2hhclwiIGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLTYgdy0wLjUgYW5pbWF0ZS1jYXJldC1ibGluayBiZy1mb3JlZ3JvdW5kXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBPdHBTbG90Q29tcG9uZW50IHtcbiAgQElucHV0KCkgY2hhcjogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XG4gIEBJbnB1dCgpIGlzQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzRmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNMYXN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgcHJvdGVjdGVkIGNuID0gY247XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgLy8gQmFzZSBzdHlsZXMgKG1hdGNoaW5nIGlucHV0IGNvbnRhaW5lcilcbiAgICAgICdyZWxhdGl2ZSBmbGV4IGgtMTAgdy0xMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXInLFxuICAgICAgJ3RyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMCcsXG4gICAgICAndGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gc2VsZWN0LW5vbmUnLFxuXG4gICAgICAvLyBCb3JkZXIgc3R5bGluZyAtIGV4YWN0bHkgbGlrZSBpbnB1dFxuICAgICAgJ2JvcmRlciBib3JkZXItaW5wdXQgc2hhZG93LXNtIGJnLWJhY2tncm91bmQnLFxuXG4gICAgICAvLyBGT0NVUyBTVFlMSU5HIC0gRVhBQ1RMWSBMSUtFIElOUFVUIENPTVBPTkVOVFxuICAgICAgdGhpcy5pc0FjdGl2ZSAmJiBbXG4gICAgICAgIC8vIERhcmtlciBib3JkZXIgb24gZm9jdXNcbiAgICAgICAgJ2JvcmRlci1wcmltYXJ5LzgwJyxcbiAgICAgICAgLy8gUmVtb3ZlIHNoYWRvdyBvbiBmb2N1c1xuICAgICAgICAnc2hhZG93LW5vbmUnLFxuICAgICAgICAvLyBGb2N1cyByaW5nIHdpdGggc2FtZSBzdHlsaW5nIGFzIGlucHV0XG4gICAgICAgICdyaW5nLTQnLFxuICAgICAgICAncmluZy1yaW5nLzMwJyxcbiAgICAgICAgJ3Jpbmctb2Zmc2V0LTAnLFxuICAgICAgICAvLyBFbnN1cmUgaXQncyBhYm92ZSBvdGhlciBzbG90c1xuICAgICAgICAnei0xMCdcbiAgICAgIF0sXG5cbiAgICAgIC8vIEZpbGxlZCBzdGF0ZVxuICAgICAgdGhpcy5jaGFyICYmICF0aGlzLmlzQWN0aXZlICYmICdib3JkZXItcHJpbWFyeS82MCcsXG5cbiAgICAgIC8vIEJvcmRlciByYWRpdXNcbiAgICAgIHRoaXMuaXNGaXJzdCAmJiAncm91bmRlZC1sLW1kJyxcbiAgICAgIHRoaXMuaXNMYXN0ICYmICdyb3VuZGVkLXItbWQnLFxuXG4gICAgICAvLyBSZW1vdmUgbGVmdCBib3JkZXIgZm9yIGFsbCBidXQgZmlyc3Qgc2xvdFxuICAgICAgIXRoaXMuaXNGaXJzdCAmJiAnLW1sLXB4JyxcblxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -21,6 +21,7 @@ export class SelectComponent {
|
|
|
21
21
|
readonly = false;
|
|
22
22
|
trigger;
|
|
23
23
|
popover;
|
|
24
|
+
container;
|
|
24
25
|
items;
|
|
25
26
|
sub = new Subscription();
|
|
26
27
|
searchQuery = '';
|
|
@@ -44,15 +45,38 @@ export class SelectComponent {
|
|
|
44
45
|
this.close();
|
|
45
46
|
}));
|
|
46
47
|
}
|
|
47
|
-
//
|
|
48
|
+
// SIMPLIFIED: Zardui-inspired trigger styling
|
|
48
49
|
get computedTriggerClass() {
|
|
49
|
-
return cn(
|
|
50
|
+
return cn(
|
|
51
|
+
// Base styles
|
|
52
|
+
'flex w-full items-center justify-between rounded-md border transition-all duration-200', 'bg-background text-foreground',
|
|
53
|
+
// Border and shadow
|
|
54
|
+
'border-input shadow-sm',
|
|
50
55
|
// Sizing
|
|
51
56
|
this.size === 'xs' && 'h-8 px-2 text-xs', this.size === 'sm' && 'h-9 px-3 text-sm', this.size === 'default' && 'h-10 px-3 text-sm', this.size === 'lg' && 'h-11 px-4 text-base',
|
|
52
|
-
//
|
|
53
|
-
!(this.readonly || this.disabled) &&
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
// Focus state - SIMPLE LIKE ZARDUI
|
|
58
|
+
!(this.readonly || this.disabled) && [
|
|
59
|
+
'focus:outline-none',
|
|
60
|
+
'focus:ring-4',
|
|
61
|
+
'focus:ring-ring/30',
|
|
62
|
+
'focus:ring-offset-0',
|
|
63
|
+
'focus:shadow-none',
|
|
64
|
+
// Border darkens on focus automatically
|
|
65
|
+
'focus:border-primary/80'
|
|
66
|
+
],
|
|
67
|
+
// Hover state
|
|
68
|
+
!(this.readonly || this.disabled) && 'hover:border-accent',
|
|
69
|
+
// Disabled state
|
|
70
|
+
this.disabled && [
|
|
71
|
+
'cursor-not-allowed opacity-50',
|
|
72
|
+
'border-opacity-50'
|
|
73
|
+
],
|
|
74
|
+
// Readonly state
|
|
75
|
+
this.readonly && [
|
|
76
|
+
'cursor-default',
|
|
77
|
+
'border-dashed',
|
|
78
|
+
!this.disabled && 'focus:ring-0 focus:border-opacity-100'
|
|
79
|
+
], this.class);
|
|
56
80
|
}
|
|
57
81
|
// UPDATED: Dynamic icon sizing relative to the trigger size
|
|
58
82
|
get iconClass() {
|
|
@@ -78,6 +102,8 @@ export class SelectComponent {
|
|
|
78
102
|
}
|
|
79
103
|
open() {
|
|
80
104
|
this.isOpen = true;
|
|
105
|
+
// Trigger focus on the button for focus styling
|
|
106
|
+
this.trigger.nativeElement.focus();
|
|
81
107
|
// Tick to ensure DOM is rendered before positioning
|
|
82
108
|
setTimeout(() => this.updatePosition());
|
|
83
109
|
}
|
|
@@ -146,7 +172,7 @@ export class SelectComponent {
|
|
|
146
172
|
useExisting: forwardRef(() => SelectComponent),
|
|
147
173
|
multi: true
|
|
148
174
|
}
|
|
149
|
-
], queries: [{ propertyName: "items", predicate: SelectItemComponent, descendants: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: `
|
|
175
|
+
], queries: [{ propertyName: "items", predicate: SelectItemComponent, descendants: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: `
|
|
150
176
|
<div [class]="cn('w-full', 'size-' + size)" #container>
|
|
151
177
|
<button
|
|
152
178
|
type="button"
|
|
@@ -186,7 +212,7 @@ export class SelectComponent {
|
|
|
186
212
|
</div>
|
|
187
213
|
</div>
|
|
188
214
|
</div>
|
|
189
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { 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: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error"] }] });
|
|
215
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { 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: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error", "hideHintOnFocus"] }] });
|
|
190
216
|
}
|
|
191
217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectComponent, decorators: [{
|
|
192
218
|
type: Component,
|
|
@@ -262,6 +288,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
262
288
|
}], popover: [{
|
|
263
289
|
type: ViewChild,
|
|
264
290
|
args: ['popover']
|
|
291
|
+
}], container: [{
|
|
292
|
+
type: ViewChild,
|
|
293
|
+
args: ['container']
|
|
265
294
|
}], items: [{
|
|
266
295
|
type: ContentChildren,
|
|
267
296
|
args: [SelectItemComponent, { descendants: true }]
|
|
@@ -269,4 +298,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
269
298
|
type: HostListener,
|
|
270
299
|
args: ['document:mousedown', ['$event']]
|
|
271
300
|
}] } });
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBRVYsU0FBUyxFQUVULFlBQVksRUFDWixlQUFlLEVBR2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBd0RuRCxNQUFNLE9BQU8sZUFBZTtJQXlCTjtJQXhCWCxXQUFXLEdBQUcsa0JBQWtCLENBQUM7SUFDakMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUNqRCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRUosT0FBTyxDQUFjO0lBQ3JCLE9BQU8sQ0FBYztJQUNrQixLQUFLLENBQWtDO0lBRTVGLEdBQUcsR0FBRyxJQUFJLFlBQVks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cG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIGZvcndhcmRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgT25EZXN0cm95LFxuICBIb3N0TGlzdGVuZXIsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgUXVlcnlMaXN0LFxuICBBZnRlckNvbnRlbnRJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21wdXRlUG9zaXRpb24sIGZsaXAsIHNoaWZ0LCBvZmZzZXQsIGF1dG9VcGRhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5pbXBvcnQgeyBTZWxlY3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWxlY3RTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3Quc2VydmljZSc7XG5pbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2VsZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIElucHV0Q29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2VsZWN0U2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjbigndy1mdWxsJywgJ3NpemUtJyArIHNpemUpXCIgI2NvbnRhaW5lcj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICN0cmlnZ2VyXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzc109XCJjb21wdXRlZFRyaWdnZXJDbGFzc1wiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIiBbY2xhc3MudGV4dC1tdXRlZC1mb3JlZ3JvdW5kXT1cIiFzZWxlY3RlZExhYmVsXCI+XG4gICAgICAgICAge3sgc2VsZWN0ZWRMYWJlbCB8fCBwbGFjZWhvbGRlciB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxpIFtjbGFzc109XCJpY29uQ2xhc3NcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdlxuICAgICAgICAjcG9wb3ZlclxuICAgICAgICAqbmdJZj1cImlzT3BlblwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInttaW5XaWR0aDogY29udGFpbmVyLmNsaWVudFdpZHRoKydweCd9XCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBiZy1wb3BvdmVyIHotNTAgbWluLXctZnVsbCBtYXgtaC1bMzAwcHhdIG92ZXJmbG93LWF1dG8gZmxleCBmbGV4LWNvbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1tZFwiXG4gICAgICAgIHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuOyB0b3A6IDA7IGxlZnQ6IDA7XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hhYmxlXCIgY2xhc3M9XCJwLTIgYm9yZGVyLWIgYm9yZGVyLWJvcmRlciBiZy1wb3BvdmVyIGgtYXV0b1wiPlxuICAgICAgICAgIDx0b2xsZS1pbnB1dFxuICAgICAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoUXVlcnlcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cInctZnVsbFwiPlxuICAgICAgICAgICAgPGkgcHJlZml4IGNsYXNzPVwicmktc2VhcmNoLWxpbmVcIj48L2k+XG4gICAgICAgICAgPC90b2xsZS1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMSBvdmVyZmxvdy15LWF1dG8gc2Nyb2xsYmFyLWhpZGRlbiBncm93IGgtZnVsbCB3LWZ1bGxcIj5cbiAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm5vUmVzdWx0c1wiIGNsYXNzPVwicHktNiB0ZXh0LWNlbnRlciB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgTm8gcmVzdWx0cyBmb3VuZC5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCBhbiBvcHRpb24nO1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWFyY2hhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNpemU6ICd4cycgfCAnc20nIHwgJ2RlZmF1bHQnIHwgJ2xnJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyJykgdHJpZ2dlciE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyITogRWxlbWVudFJlZjtcbiAgQENvbnRlbnRDaGlsZHJlbihTZWxlY3RJdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGl0ZW1zITogUXVlcnlMaXN0PFNlbGVjdEl0ZW1Db21wb25lbnQ+O1xuXG4gIHByaXZhdGUgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBzZWFyY2hRdWVyeSA9ICcnO1xuICBub1Jlc3VsdHMgPSBmYWxzZTtcbiAgaXNPcGVuID0gZmFsc2U7XG4gIHZhbHVlOiBhbnkgPSBudWxsO1xuICBzZWxlY3RlZExhYmVsID0gJyc7XG4gIGNsZWFudXBBdXRvVXBkYXRlPzogKCkgPT4gdm9pZDtcblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgcHJvdGVjdGVkIGNuID0gY247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWxlY3RTZXJ2aWNlOiBTZWxlY3RTZXJ2aWNlKSB7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RTZXJ2aWNlLnNlbGVjdGVkVmFsdWUkLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbVNlbGVjdGlvbigpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RTZXJ2aWNlLnNlbGVjdGVkTGFiZWwkLnN1YnNjcmliZShsYWJlbCA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMYWJlbCA9IGxhYmVsO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBVUERBVEVEOiBDZW50cmFsaXplZCBzaXppbmcgbG9naWMgZm9yIHRoZSB0cmlnZ2VyXG4gIGdldCBjb21wdXRlZFRyaWdnZXJDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAnZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiByb3VuZGVkLW1kIGJvcmRlciB0cmFuc2l0aW9uLWFsbCBzaGFkb3ctc20nLFxuICAgICAgJ2JnLWJhY2tncm91bmQgcmluZy1vZmZzZXQtYmFja2dyb3VuZCBwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuXG4gICAgICAvLyBTaXppbmdcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3hzJyAmJiAnaC04IHB4LTIgdGV4dC14cycsXG4gICAgICB0aGlzLnNpemUgPT09ICdzbScgJiYgJ2gtOSBweC0zIHRleHQtc20nLFxuICAgICAgdGhpcy5zaXplID09PSAnZGVmYXVsdCcgJiYgJ2gtMTAgcHgtMyB0ZXh0LXNtJyxcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2xnJyAmJiAnaC0xMSBweC00IHRleHQtYmFzZScsXG5cbiAgICAgIC8vIEludGVyYWN0aW9uIFN0YXRlcyAoRm9jdXMgcmluZyBkaXNhYmxlZCBmb3IgUmVhZG9ubHkvRGlzYWJsZWQpXG4gICAgICAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgJiYgJ2ZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1yaW5nIGZvY3VzOnJpbmctb2Zmc2V0LTEnLFxuXG4gICAgICAvLyBDb2xvcnMgJiBCb3JkZXJzIChNYXRjaGluZyB5b3VyIEhleC1iYXNlZCB0aGVtZSBsb2dpYylcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgJ2N1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwIGJnLW11dGVkLzMwIGJvcmRlci1pbnB1dCcsXG4gICAgICB0aGlzLnJlYWRvbmx5ICYmICdjdXJzb3ItZGVmYXVsdCBiZy1tdXRlZC8xMCBib3JkZXItZGFzaGVkIGJvcmRlci1pbnB1dCBmb2N1czpyaW5nLTAnLFxuICAgICAgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkgJiYgJ2JvcmRlci1pbnB1dCBob3Zlcjpib3JkZXItYWNjZW50IGN1cnNvci1wb2ludGVyJyxcblxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cblxuICAvLyBVUERBVEVEOiBEeW5hbWljIGljb24gc2l6aW5nIHJlbGF0aXZlIHRvIHRoZSB0cmlnZ2VyIHNpemVcbiAgZ2V0IGljb25DbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAncmktYXJyb3ctZG93bi1zLWxpbmUgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG1sLTIgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMjAwJyxcbiAgICAgIHRoaXMuaXNPcGVuID8gJ3JvdGF0ZS0xODAnIDogJycsXG4gICAgICAodGhpcy5zaXplID09PSAneHMnIHx8IHRoaXMuc2l6ZSA9PT0gJ3NtJykgPyAndGV4dC1bMTRweF0nIDogJ3RleHQtWzE4cHhdJyxcbiAgICAgIC8vIEhpZGUgb3IgZmFkZSBpY29uIHdoZW4gaW50ZXJhY3Rpb24gaXMgYmxvY2tlZFxuICAgICAgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgJiYgJ29wYWNpdHktMzAnXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUl0ZW1TZWxlY3Rpb24oKTtcbiAgICB0aGlzLml0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlSXRlbVNlbGVjdGlvbigpKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSXRlbVNlbGVjdGlvbigpIHtcbiAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLnNlbGVjdGVkID0gaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIC8vIFRpY2sgdG8gZW5zdXJlIERPTSBpcyByZW5kZXJlZCBiZWZvcmUgcG9zaXRpb25pbmdcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlUG9zaXRpb24oKSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcbiAgICB0aGlzLm9uU2VhcmNoQ2hhbmdlKCcnKTtcbiAgICBpZiAodGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSkgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMudHJpZ2dlciB8fCAhdGhpcy5wb3BvdmVyKSByZXR1cm47XG5cbiAgICB0aGlzLmNsZWFudXBBdXRvVXBkYXRlID0gYXV0b1VwZGF0ZShcbiAgICAgIHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5wb3BvdmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbXB1dGVQb3NpdGlvbih0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudCwgdGhpcy5wb3BvdmVyLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20tc3RhcnQnLFxuICAgICAgICAgIG1pZGRsZXdhcmU6IFtvZmZzZXQoNCksIGZsaXAoKSwgc2hpZnQoeyBwYWRkaW5nOiA4IH0pXSxcbiAgICAgICAgfSkudGhlbigoeyB4LCB5IH0pID0+IHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMucG9wb3Zlci5uYXRpdmVFbGVtZW50LnN0eWxlLCB7XG4gICAgICAgICAgICBsZWZ0OiBgJHt4fXB4YCxcbiAgICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZScsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBvblNlYXJjaENoYW5nZShxdWVyeTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsdGVyID0gKHF1ZXJ5IHx8ICcnKS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICBsZXQgdmlzaWJsZUNvdW50ID0gMDtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPSBpdGVtLmdldExhYmVsKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IHRleHQuaW5jbHVkZXMoZmlsdGVyKTtcbiAgICAgIGl0ZW0uaGlkZGVuID0gIWlzVmlzaWJsZTtcbiAgICAgIGlmIChpc1Zpc2libGUpIHZpc2libGVDb3VudCsrO1xuICAgIH0pO1xuXG4gICAgdGhpcy5ub1Jlc3VsdHMgPSB2aXNpYmxlQ291bnQgPT09IDAgJiYgZmlsdGVyICE9PSAnJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmlzT3BlbiAmJiAhdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiAhdGhpcy5wb3BvdmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUl0ZW1TZWxlY3Rpb24oKTtcbiAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLml0ZW1zLmZpbmQoaSA9PiBpLnZhbHVlID09PSB2YWx1ZSk7XG4gICAgICBpZiAoZm91bmQpIHRoaXMuc2VsZWN0ZWRMYWJlbCA9IGZvdW5kLmdldExhYmVsKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7IHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkOyB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSkgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSgpO1xuICB9XG59XG4iXX0=
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBRVYsU0FBUyxFQUVULFlBQVksRUFDWixlQUFlLEVBR2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBd0RuRCxNQUFNLE9BQU8sZUFBZTtJQTBCTjtJQXpCWCxXQUFXLEdBQUcsa0JBQWtCLENBQUM7SUFDakMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUNqRCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRUosT0FBTyxDQUFjO0lBQ3JCLE9BQU8sQ0FBYztJQUNuQixTQUFTLENBQWM7SUFDYyxLQUFLLENBQWtDO0lBRTVGLEdBQUcs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QUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFZ0IsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNFLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ3VDLEtBQUs7c0JBQWpFLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQStKM0QsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBPbkRlc3Ryb3ksXG4gIEhvc3RMaXN0ZW5lcixcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyQ29udGVudEluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgc2hpZnQsIG9mZnNldCwgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7IFNlbGVjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlbGVjdFNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgSW5wdXRDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTZWxlY3RTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNuKCd3LWZ1bGwnLCAnc2l6ZS0nICsgc2l6ZSlcIiAjY29udGFpbmVyPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgI3RyaWdnZXJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2NsYXNzXT1cImNvbXB1dGVkVHJpZ2dlckNsYXNzXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiIFtjbGFzcy50ZXh0LW11dGVkLWZvcmVncm91bmRdPVwiIXNlbGVjdGVkTGFiZWxcIj5cbiAgICAgICAgICB7eyBzZWxlY3RlZExhYmVsIHx8IHBsYWNlaG9sZGVyIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzc1wiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2XG4gICAgICAgICNwb3BvdmVyXG4gICAgICAgICpuZ0lmPVwiaXNPcGVuXCJcbiAgICAgICAgW25nU3R5bGVdPVwie21pbldpZHRoOiBjb250YWluZXIuY2xpZW50V2lkdGgrJ3B4J31cIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIGJnLXBvcG92ZXIgei01MCBtaW4tdy1mdWxsIG1heC1oLVszMDBweF0gb3ZlcmZsb3ctYXV0byBmbGV4IGZsZXgtY29sIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgdGV4dC1wb3BvdmVyLWZvcmVncm91bmQgc2hhZG93LW1kXCJcbiAgICAgICAgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47IHRvcDogMDsgbGVmdDogMDtcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaGFibGVcIiBjbGFzcz1cInAtMiBib3JkZXItYiBib3JkZXItYm9yZGVyIGJnLXBvcG92ZXIgaC1hdXRvXCI+XG4gICAgICAgICAgPHRvbGxlLWlucHV0XG4gICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hRdWVyeVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgICA8aSBwcmVmaXggY2xhc3M9XCJyaS1zZWFyY2gtbGluZVwiPjwvaT5cbiAgICAgICAgICA8L3RvbGxlLWlucHV0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0xIG92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItaGlkZGVuIGdyb3cgaC1mdWxsIHctZnVsbFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9SZXN1bHRzXCIgY2xhc3M9XCJweS02IHRleHQtY2VudGVyIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICBObyByZXN1bHRzIGZvdW5kLlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnU2VsZWN0IGFuIG9wdGlvbic7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlYXJjaGFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInKSB0cmlnZ2VyITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlcicpIHBvcG92ZXIhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkcmVuKFNlbGVjdEl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgaXRlbXMhOiBRdWVyeUxpc3Q8U2VsZWN0SXRlbUNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHNlYXJjaFF1ZXJ5ID0gJyc7XG4gIG5vUmVzdWx0cyA9IGZhbHNlO1xuICBpc09wZW4gPSBmYWxzZTtcbiAgdmFsdWU6IGFueSA9IG51bGw7XG4gIHNlbGVjdGVkTGFiZWwgPSAnJztcbiAgY2xlYW51cEF1dG9VcGRhdGU/OiAoKSA9PiB2b2lkO1xuXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICBwcm90ZWN0ZWQgY24gPSBjbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlbGVjdFNlcnZpY2U6IFNlbGVjdFNlcnZpY2UpIHtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnNlbGVjdFNlcnZpY2Uuc2VsZWN0ZWRWYWx1ZSQuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtU2VsZWN0aW9uKCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnNlbGVjdFNlcnZpY2Uuc2VsZWN0ZWRMYWJlbCQuc3Vic2NyaWJlKGxhYmVsID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZExhYmVsID0gbGFiZWw7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNJTVBMSUZJRUQ6IFphcmR1aS1pbnNwaXJlZCB0cmlnZ2VyIHN0eWxpbmdcbiAgZ2V0IGNvbXB1dGVkVHJpZ2dlckNsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIC8vIEJhc2Ugc3R5bGVzXG4gICAgICAnZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiByb3VuZGVkLW1kIGJvcmRlciB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDAnLFxuICAgICAgJ2JnLWJhY2tncm91bmQgdGV4dC1mb3JlZ3JvdW5kJyxcblxuICAgICAgLy8gQm9yZGVyIGFuZCBzaGFkb3dcbiAgICAgICdib3JkZXItaW5wdXQgc2hhZG93LXNtJyxcblxuICAgICAgLy8gU2l6aW5nXG4gICAgICB0aGlzLnNpemUgPT09ICd4cycgJiYgJ2gtOCBweC0yIHRleHQteHMnLFxuICAgICAgdGhpcy5zaXplID09PSAnc20nICYmICdoLTkgcHgtMyB0ZXh0LXNtJyxcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmICdoLTEwIHB4LTMgdGV4dC1zbScsXG4gICAgICB0aGlzLnNpemUgPT09ICdsZycgJiYgJ2gtMTEgcHgtNCB0ZXh0LWJhc2UnLFxuXG4gICAgICAvLyBGb2N1cyBzdGF0ZSAtIFNJTVBMRSBMSUtFIFpBUkRVSVxuICAgICAgISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpICYmIFtcbiAgICAgICAgJ2ZvY3VzOm91dGxpbmUtbm9uZScsXG4gICAgICAgICdmb2N1czpyaW5nLTQnLFxuICAgICAgICAnZm9jdXM6cmluZy1yaW5nLzMwJyxcbiAgICAgICAgJ2ZvY3VzOnJpbmctb2Zmc2V0LTAnLFxuICAgICAgICAnZm9jdXM6c2hhZG93LW5vbmUnLFxuICAgICAgICAvLyBCb3JkZXIgZGFya2VucyBvbiBmb2N1cyBhdXRvbWF0aWNhbGx5XG4gICAgICAgICdmb2N1czpib3JkZXItcHJpbWFyeS84MCdcbiAgICAgIF0sXG5cbiAgICAgIC8vIEhvdmVyIHN0YXRlXG4gICAgICAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgJiYgJ2hvdmVyOmJvcmRlci1hY2NlbnQnLFxuXG4gICAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICAgdGhpcy5kaXNhYmxlZCAmJiBbXG4gICAgICAgICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCcsXG4gICAgICAgICdib3JkZXItb3BhY2l0eS01MCdcbiAgICAgIF0sXG5cbiAgICAgIC8vIFJlYWRvbmx5IHN0YXRlXG4gICAgICB0aGlzLnJlYWRvbmx5ICYmIFtcbiAgICAgICAgJ2N1cnNvci1kZWZhdWx0JyxcbiAgICAgICAgJ2JvcmRlci1kYXNoZWQnLFxuICAgICAgICAhdGhpcy5kaXNhYmxlZCAmJiAnZm9jdXM6cmluZy0wIGZvY3VzOmJvcmRlci1vcGFjaXR5LTEwMCdcbiAgICAgIF0sXG5cbiAgICAgIHRoaXMuY2xhc3NcbiAgICApO1xuICB9XG5cbiAgLy8gVVBEQVRFRDogRHluYW1pYyBpY29uIHNpemluZyByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlciBzaXplXG4gIGdldCBpY29uQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgJ3JpLWFycm93LWRvd24tcy1saW5lIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBtbC0yIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTIwMCcsXG4gICAgICB0aGlzLmlzT3BlbiA/ICdyb3RhdGUtMTgwJyA6ICcnLFxuICAgICAgKHRoaXMuc2l6ZSA9PT0gJ3hzJyB8fCB0aGlzLnNpemUgPT09ICdzbScpID8gJ3RleHQtWzE0cHhdJyA6ICd0ZXh0LVsxOHB4XScsXG4gICAgICAvLyBIaWRlIG9yIGZhZGUgaWNvbiB3aGVuIGludGVyYWN0aW9uIGlzIGJsb2NrZWRcbiAgICAgICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpICYmICdvcGFjaXR5LTMwJ1xuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVJdGVtU2VsZWN0aW9uKCk7XG4gICAgdGhpcy5pdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZUl0ZW1TZWxlY3Rpb24oKSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUl0ZW1TZWxlY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xuICAgIHRoaXMuaXNPcGVuID8gdGhpcy5jbG9zZSgpIDogdGhpcy5vcGVuKCk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAvLyBUcmlnZ2VyIGZvY3VzIG9uIHRoZSBidXR0b24gZm9yIGZvY3VzIHN0eWxpbmdcbiAgICB0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIC8vIFRpY2sgdG8gZW5zdXJlIERPTSBpcyByZW5kZXJlZCBiZWZvcmUgcG9zaXRpb25pbmdcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlUG9zaXRpb24oKSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcbiAgICB0aGlzLm9uU2VhcmNoQ2hhbmdlKCcnKTtcbiAgICBpZiAodGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSkgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMudHJpZ2dlciB8fCAhdGhpcy5wb3BvdmVyKSByZXR1cm47XG5cbiAgICB0aGlzLmNsZWFudXBBdXRvVXBkYXRlID0gYXV0b1VwZGF0ZShcbiAgICAgIHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5wb3BvdmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbXB1dGVQb3NpdGlvbih0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudCwgdGhpcy5wb3BvdmVyLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20tc3RhcnQnLFxuICAgICAgICAgIG1pZGRsZXdhcmU6IFtvZmZzZXQoNCksIGZsaXAoKSwgc2hpZnQoeyBwYWRkaW5nOiA4IH0pXSxcbiAgICAgICAgfSkudGhlbigoeyB4LCB5IH0pID0+IHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMucG9wb3Zlci5uYXRpdmVFbGVtZW50LnN0eWxlLCB7XG4gICAgICAgICAgICBsZWZ0OiBgJHt4fXB4YCxcbiAgICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZScsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBvblNlYXJjaENoYW5nZShxdWVyeTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsdGVyID0gKHF1ZXJ5IHx8ICcnKS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICBsZXQgdmlzaWJsZUNvdW50ID0gMDtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPSBpdGVtLmdldExhYmVsKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IHRleHQuaW5jbHVkZXMoZmlsdGVyKTtcbiAgICAgIGl0ZW0uaGlkZGVuID0gIWlzVmlzaWJsZTtcbiAgICAgIGlmIChpc1Zpc2libGUpIHZpc2libGVDb3VudCsrO1xuICAgIH0pO1xuXG4gICAgdGhpcy5ub1Jlc3VsdHMgPSB2aXNpYmxlQ291bnQgPT09IDAgJiYgZmlsdGVyICE9PSAnJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmlzT3BlbiAmJiAhdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiAhdGhpcy5wb3BvdmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUl0ZW1TZWxlY3Rpb24oKTtcbiAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLml0ZW1zLmZpbmQoaSA9PiBpLnZhbHVlID09PSB2YWx1ZSk7XG4gICAgICBpZiAoZm91bmQpIHRoaXMuc2VsZWN0ZWRMYWJlbCA9IGZvdW5kLmdldExhYmVsKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7IHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkOyB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSkgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSgpO1xuICB9XG59XG4iXX0=
|