valtech-components 2.0.566 → 2.0.568
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/components/atoms/avatar/avatar.component.mjs +51 -14
- package/esm2022/lib/components/atoms/fab/fab.component.mjs +63 -25
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +64 -19
- package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +45 -18
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +43 -15
- package/esm2022/lib/components/molecules/card/card.component.mjs +2 -2
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +52 -8
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +54 -37
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +1 -1
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +62 -27
- package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +8 -28
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +74 -46
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +2 -2
- package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +1 -1
- package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +95 -59
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +61 -13
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +2 -2
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +60 -43
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +56 -26
- package/esm2022/lib/components/molecules/searchbar/types.mjs +2 -0
- package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +52 -29
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +2 -2
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +67 -51
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +51 -23
- package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +59 -21
- package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +93 -59
- package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +49 -15
- package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +1 -1
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +2 -2
- package/esm2022/lib/components/organisms/form/form.component.mjs +2 -2
- package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +1 -1
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +2 -2
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +2 -2
- package/esm2022/lib/services/docs/docs-navigation.service.mjs +91 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/valtech-components.mjs +1353 -701
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/avatar/avatar.component.d.ts +26 -5
- package/lib/components/atoms/fab/fab.component.d.ts +24 -5
- package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +21 -6
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/components/molecules/accordion/accordion.component.d.ts +10 -4
- package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +10 -4
- package/lib/components/molecules/check-input/check-input.component.d.ts +25 -4
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +10 -4
- package/lib/components/molecules/date-input/date-input.component.d.ts +25 -7
- package/lib/components/molecules/docs-nav-links/docs-nav-links.component.d.ts +1 -4
- package/lib/components/molecules/glow-card/glow-card.component.d.ts +16 -5
- package/lib/components/molecules/phone-input/phone-input.component.d.ts +28 -5
- package/lib/components/molecules/pill/pill.component.d.ts +27 -3
- package/lib/components/molecules/rating/rating.component.d.ts +10 -4
- package/lib/components/molecules/searchbar/searchbar.component.d.ts +15 -11
- package/lib/components/molecules/searchbar/types.d.ts +33 -0
- package/lib/components/molecules/segment-control/segment-control.component.d.ts +17 -6
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +10 -4
- package/lib/components/molecules/stepper/stepper.component.d.ts +20 -4
- package/lib/components/molecules/tabs/tabs.component.d.ts +27 -4
- package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +27 -4
- package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +25 -4
- package/lib/components/organisms/article/article.component.d.ts +2 -2
- package/lib/services/docs/docs-navigation.service.d.ts +51 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/lib/components/styles/_docs-page.scss +310 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
3
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { IonTextarea, IonNote } from '@ionic/angular/standalone';
|
|
5
|
+
import { PresetService } from '../../../services/presets';
|
|
5
6
|
import { ComponentStates } from '../../types';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/forms";
|
|
@@ -40,6 +41,15 @@ import * as i1 from "@angular/forms";
|
|
|
40
41
|
*/
|
|
41
42
|
export class TextareaInputComponent {
|
|
42
43
|
constructor() {
|
|
44
|
+
this.presets = inject(PresetService);
|
|
45
|
+
/**
|
|
46
|
+
* Textarea configuration object. Values here override preset values.
|
|
47
|
+
*/
|
|
48
|
+
this.props = {};
|
|
49
|
+
/**
|
|
50
|
+
* Resolved props after merging preset + explicit props.
|
|
51
|
+
*/
|
|
52
|
+
this.resolvedProps = {};
|
|
43
53
|
this.states = ComponentStates;
|
|
44
54
|
// Counter formatter for Ionic's built-in counter
|
|
45
55
|
this.counterFormatter = (inputLength, maxLength) => {
|
|
@@ -47,82 +57,104 @@ export class TextareaInputComponent {
|
|
|
47
57
|
};
|
|
48
58
|
}
|
|
49
59
|
ngOnInit() {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
this.resolveProps();
|
|
61
|
+
this.applyDefaultValue();
|
|
62
|
+
}
|
|
63
|
+
ngOnChanges(changes) {
|
|
64
|
+
if (changes['preset'] || changes['props']) {
|
|
65
|
+
this.resolveProps();
|
|
66
|
+
this.applyDefaultValue();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Merge preset configuration with explicit props.
|
|
71
|
+
* Explicit props take precedence over preset values.
|
|
72
|
+
*/
|
|
73
|
+
resolveProps() {
|
|
74
|
+
const presetProps = this.preset
|
|
75
|
+
? this.presets.get('textareaInput', this.preset)
|
|
76
|
+
: {};
|
|
77
|
+
this.resolvedProps = {
|
|
78
|
+
...presetProps,
|
|
79
|
+
...this.props,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
applyDefaultValue() {
|
|
83
|
+
if (this.resolvedProps?.withDefault || this.resolvedProps?.value) {
|
|
84
|
+
const defaultValue = typeof this.resolvedProps.withDefault === 'string' ? this.resolvedProps.withDefault : this.resolvedProps.value || '';
|
|
85
|
+
if (this.resolvedProps.control && !this.resolvedProps.control.value) {
|
|
86
|
+
this.resolvedProps.control.setValue(defaultValue);
|
|
55
87
|
}
|
|
56
88
|
}
|
|
57
89
|
}
|
|
58
90
|
getLabel() {
|
|
59
|
-
return this.
|
|
91
|
+
return this.resolvedProps.label || '';
|
|
60
92
|
}
|
|
61
93
|
getPlaceholder() {
|
|
62
|
-
return this.
|
|
94
|
+
return this.resolvedProps.placeholder || '';
|
|
63
95
|
}
|
|
64
96
|
getHint() {
|
|
65
|
-
return this.
|
|
97
|
+
return this.resolvedProps.hint || '';
|
|
66
98
|
}
|
|
67
99
|
get hasError() {
|
|
68
|
-
return !!(this.
|
|
100
|
+
return !!(this.resolvedProps.control?.touched && this.resolvedProps.control?.invalid);
|
|
69
101
|
}
|
|
70
102
|
getErrorMessage() {
|
|
71
|
-
if (!this.
|
|
103
|
+
if (!this.resolvedProps.control?.errors || !this.resolvedProps.errors) {
|
|
72
104
|
return '';
|
|
73
105
|
}
|
|
74
|
-
const errorKeys = Object.keys(this.
|
|
106
|
+
const errorKeys = Object.keys(this.resolvedProps.control.errors);
|
|
75
107
|
for (const key of errorKeys) {
|
|
76
|
-
if (this.
|
|
77
|
-
return this.
|
|
108
|
+
if (this.resolvedProps.errors[key]) {
|
|
109
|
+
return this.resolvedProps.errors[key];
|
|
78
110
|
}
|
|
79
111
|
}
|
|
80
112
|
return '';
|
|
81
113
|
}
|
|
82
114
|
getRemainingChars() {
|
|
83
|
-
const currentLength = this.
|
|
84
|
-
return (this.
|
|
115
|
+
const currentLength = this.resolvedProps.control?.value?.length || 0;
|
|
116
|
+
return (this.resolvedProps.maxLength || 0) - currentLength;
|
|
85
117
|
}
|
|
86
118
|
getRemainingLabel() {
|
|
87
119
|
const remaining = this.getRemainingChars();
|
|
88
120
|
return remaining === 1 ? 'character remaining' : 'characters remaining';
|
|
89
121
|
}
|
|
90
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextareaInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TextareaInputComponent, isStandalone: true, selector: "val-textarea-input", inputs: { props: "props" }, ngImport: i0, template: `
|
|
92
|
-
<div class="textarea-container" [class]="
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TextareaInputComponent, isStandalone: true, selector: "val-textarea-input", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
124
|
+
<div class="textarea-container" [class]="resolvedProps.cssClass" [class.has-error]="hasError">
|
|
93
125
|
<ion-textarea
|
|
94
|
-
[formControl]="
|
|
126
|
+
[formControl]="resolvedProps.control"
|
|
95
127
|
[placeholder]="getPlaceholder()"
|
|
96
128
|
[label]="getLabel()"
|
|
97
|
-
[labelPlacement]="
|
|
98
|
-
[fill]="
|
|
99
|
-
[color]="hasError ? 'danger' :
|
|
100
|
-
[rows]="
|
|
101
|
-
[autoGrow]="
|
|
102
|
-
[maxlength]="
|
|
103
|
-
[minlength]="
|
|
104
|
-
[disabled]="
|
|
105
|
-
[readonly]="
|
|
106
|
-
[spellcheck]="
|
|
107
|
-
[autocapitalize]="
|
|
108
|
-
[inputmode]="
|
|
109
|
-
[wrap]="
|
|
110
|
-
[counter]="
|
|
129
|
+
[labelPlacement]="resolvedProps.labelPlacement || 'stacked'"
|
|
130
|
+
[fill]="resolvedProps.fill || 'outline'"
|
|
131
|
+
[color]="hasError ? 'danger' : resolvedProps.color"
|
|
132
|
+
[rows]="resolvedProps.rows || 4"
|
|
133
|
+
[autoGrow]="resolvedProps.autoGrow ?? false"
|
|
134
|
+
[maxlength]="resolvedProps.maxLength"
|
|
135
|
+
[minlength]="resolvedProps.minLength"
|
|
136
|
+
[disabled]="resolvedProps.state === states.DISABLED"
|
|
137
|
+
[readonly]="resolvedProps.state === states.WORKING"
|
|
138
|
+
[spellcheck]="resolvedProps.spellcheck ?? true"
|
|
139
|
+
[autocapitalize]="resolvedProps.autocapitalize || 'sentences'"
|
|
140
|
+
[inputmode]="resolvedProps.inputMode || 'text'"
|
|
141
|
+
[wrap]="resolvedProps.wrap || 'soft'"
|
|
142
|
+
[counter]="resolvedProps.showCounter && !!resolvedProps.maxLength"
|
|
111
143
|
[counterFormatter]="counterFormatter"
|
|
112
|
-
[class.no-resize]="
|
|
144
|
+
[class.no-resize]="resolvedProps.disableResize"
|
|
113
145
|
></ion-textarea>
|
|
114
146
|
|
|
115
|
-
@if (
|
|
147
|
+
@if (resolvedProps.showCounter && resolvedProps.maxLength && resolvedProps.counterFormat === 'remaining') {
|
|
116
148
|
<div class="char-counter remaining">
|
|
117
149
|
{{ getRemainingChars() }} {{ getRemainingLabel() }}
|
|
118
150
|
</div>
|
|
119
151
|
}
|
|
120
152
|
|
|
121
|
-
@if (
|
|
153
|
+
@if (resolvedProps.hint && !hasError) {
|
|
122
154
|
<ion-note class="hint">{{ getHint() }}</ion-note>
|
|
123
155
|
}
|
|
124
156
|
|
|
125
|
-
@if (hasError &&
|
|
157
|
+
@if (hasError && resolvedProps.showErrors) {
|
|
126
158
|
<ion-note class="error-message" color="danger">
|
|
127
159
|
{{ getErrorMessage() }}
|
|
128
160
|
</ion-note>
|
|
@@ -133,47 +165,49 @@ export class TextareaInputComponent {
|
|
|
133
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextareaInputComponent, decorators: [{
|
|
134
166
|
type: Component,
|
|
135
167
|
args: [{ selector: 'val-textarea-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonTextarea, IonNote], template: `
|
|
136
|
-
<div class="textarea-container" [class]="
|
|
168
|
+
<div class="textarea-container" [class]="resolvedProps.cssClass" [class.has-error]="hasError">
|
|
137
169
|
<ion-textarea
|
|
138
|
-
[formControl]="
|
|
170
|
+
[formControl]="resolvedProps.control"
|
|
139
171
|
[placeholder]="getPlaceholder()"
|
|
140
172
|
[label]="getLabel()"
|
|
141
|
-
[labelPlacement]="
|
|
142
|
-
[fill]="
|
|
143
|
-
[color]="hasError ? 'danger' :
|
|
144
|
-
[rows]="
|
|
145
|
-
[autoGrow]="
|
|
146
|
-
[maxlength]="
|
|
147
|
-
[minlength]="
|
|
148
|
-
[disabled]="
|
|
149
|
-
[readonly]="
|
|
150
|
-
[spellcheck]="
|
|
151
|
-
[autocapitalize]="
|
|
152
|
-
[inputmode]="
|
|
153
|
-
[wrap]="
|
|
154
|
-
[counter]="
|
|
173
|
+
[labelPlacement]="resolvedProps.labelPlacement || 'stacked'"
|
|
174
|
+
[fill]="resolvedProps.fill || 'outline'"
|
|
175
|
+
[color]="hasError ? 'danger' : resolvedProps.color"
|
|
176
|
+
[rows]="resolvedProps.rows || 4"
|
|
177
|
+
[autoGrow]="resolvedProps.autoGrow ?? false"
|
|
178
|
+
[maxlength]="resolvedProps.maxLength"
|
|
179
|
+
[minlength]="resolvedProps.minLength"
|
|
180
|
+
[disabled]="resolvedProps.state === states.DISABLED"
|
|
181
|
+
[readonly]="resolvedProps.state === states.WORKING"
|
|
182
|
+
[spellcheck]="resolvedProps.spellcheck ?? true"
|
|
183
|
+
[autocapitalize]="resolvedProps.autocapitalize || 'sentences'"
|
|
184
|
+
[inputmode]="resolvedProps.inputMode || 'text'"
|
|
185
|
+
[wrap]="resolvedProps.wrap || 'soft'"
|
|
186
|
+
[counter]="resolvedProps.showCounter && !!resolvedProps.maxLength"
|
|
155
187
|
[counterFormatter]="counterFormatter"
|
|
156
|
-
[class.no-resize]="
|
|
188
|
+
[class.no-resize]="resolvedProps.disableResize"
|
|
157
189
|
></ion-textarea>
|
|
158
190
|
|
|
159
|
-
@if (
|
|
191
|
+
@if (resolvedProps.showCounter && resolvedProps.maxLength && resolvedProps.counterFormat === 'remaining') {
|
|
160
192
|
<div class="char-counter remaining">
|
|
161
193
|
{{ getRemainingChars() }} {{ getRemainingLabel() }}
|
|
162
194
|
</div>
|
|
163
195
|
}
|
|
164
196
|
|
|
165
|
-
@if (
|
|
197
|
+
@if (resolvedProps.hint && !hasError) {
|
|
166
198
|
<ion-note class="hint">{{ getHint() }}</ion-note>
|
|
167
199
|
}
|
|
168
200
|
|
|
169
|
-
@if (hasError &&
|
|
201
|
+
@if (hasError && resolvedProps.showErrors) {
|
|
170
202
|
<ion-note class="error-message" color="danger">
|
|
171
203
|
{{ getErrorMessage() }}
|
|
172
204
|
</ion-note>
|
|
173
205
|
}
|
|
174
206
|
</div>
|
|
175
207
|
`, styles: [":host{display:block;width:100%}.textarea-container{position:relative}.textarea-container ion-textarea{--background: var(--ion-background-color, #fff);--padding-start: 12px;--padding-end: 12px;--padding-top: 12px;--padding-bottom: 12px}.textarea-container ion-textarea.no-resize textarea{resize:none!important}.textarea-container.has-error ion-textarea{--border-color: var(--ion-color-danger);--highlight-color: var(--ion-color-danger)}.char-counter{font-size:12px;color:var(--ion-color-medium);text-align:right;margin-top:4px;padding-right:4px}.char-counter.remaining{color:var(--ion-color-medium-shade)}.hint{display:block;font-size:12px;color:var(--ion-color-medium);margin-top:4px;padding-left:4px}.error-message{display:block;font-size:12px;margin-top:4px;padding-left:4px}ion-textarea::part(counter){font-size:12px;color:var(--ion-color-medium)}\n"] }]
|
|
176
|
-
}], propDecorators: {
|
|
208
|
+
}], propDecorators: { preset: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], props: [{
|
|
177
211
|
type: Input
|
|
178
212
|
}] } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBa0Q5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBaEZuQztRQW1GRSxXQUFNLEdBQUcsZUFBZSxDQUFDO1FBc0R6QixpREFBaUQ7UUFDakQscUJBQWdCLEdBQUcsQ0FBQyxXQUFtQixFQUFFLFNBQWlCLEVBQVUsRUFBRTtZQUNwRSxPQUFPLEdBQUcsV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztLQUNIO0lBeERDLFFBQVE7UUFDTixvQ0FBb0M7UUFDcEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2pELE1BQU0sWUFBWSxHQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMvRixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsS0FBSyxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUM3RCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDO0lBQ3JELENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztJQUMxRSxDQUFDOytHQXZEVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwwR0E1RXZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NULDY1QkF6Q1MsWUFBWSw4QkFBRSxtQkFBbUIsZ29CQUFFLFdBQVcsaWFBQUUsT0FBTzs7NEZBNkV0RCxzQkFBc0I7a0JBaEZsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxZQUN4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVDs4QkFxQ1EsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvblRleHRhcmVhLCBJb25Ob3RlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBUZXh0YXJlYUlucHV0TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRleHRhcmVhLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uVGV4dGFyZWEsIElvbk5vdGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0YXJlYS1jb250YWluZXJcIiBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIiBbY2xhc3MuaGFzLWVycm9yXT1cImhhc0Vycm9yXCI+XG4gICAgICA8aW9uLXRleHRhcmVhXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJwcm9wcy5jb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbbGFiZWxdPVwiZ2V0TGFiZWwoKVwiXG4gICAgICAgIFtsYWJlbFBsYWNlbWVudF09XCJwcm9wcy5sYWJlbFBsYWNlbWVudCB8fCAnc3RhY2tlZCdcIlxuICAgICAgICBbZmlsbF09XCJwcm9wcy5maWxsIHx8ICdvdXRsaW5lJ1wiXG4gICAgICAgIFtjb2xvcl09XCJoYXNFcnJvciA/ICdkYW5nZXInIDogcHJvcHMuY29sb3JcIlxuICAgICAgICBbcm93c109XCJwcm9wcy5yb3dzIHx8IDRcIlxuICAgICAgICBbYXV0b0dyb3ddPVwicHJvcHMuYXV0b0dyb3cgPz8gZmFsc2VcIlxuICAgICAgICBbbWF4bGVuZ3RoXT1cInByb3BzLm1heExlbmd0aFwiXG4gICAgICAgIFttaW5sZW5ndGhdPVwicHJvcHMubWluTGVuZ3RoXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInByb3BzLnN0YXRlID09PSBzdGF0ZXMuRElTQUJMRURcIlxuICAgICAgICBbcmVhZG9ubHldPVwicHJvcHMuc3RhdGUgPT09IHN0YXRlcy5XT1JLSU5HXCJcbiAgICAgICAgW3NwZWxsY2hlY2tdPVwicHJvcHMuc3BlbGxjaGVjayA/PyB0cnVlXCJcbiAgICAgICAgW2F1dG9jYXBpdGFsaXplXT1cInByb3BzLmF1dG9jYXBpdGFsaXplIHx8ICdzZW50ZW5jZXMnXCJcbiAgICAgICAgW2lucHV0bW9kZV09XCJwcm9wcy5pbnB1dE1vZGUgfHwgJ3RleHQnXCJcbiAgICAgICAgW3dyYXBdPVwicHJvcHMud3JhcCB8fCAnc29mdCdcIlxuICAgICAgICBbY291bnRlcl09XCJwcm9wcy5zaG93Q291bnRlciAmJiAhIXByb3BzLm1heExlbmd0aFwiXG4gICAgICAgIFtjb3VudGVyRm9ybWF0dGVyXT1cImNvdW50ZXJGb3JtYXR0ZXJcIlxuICAgICAgICBbY2xhc3Mubm8tcmVzaXplXT1cInByb3BzLmRpc2FibGVSZXNpemVcIlxuICAgICAgPjwvaW9uLXRleHRhcmVhPlxuXG4gICAgICBAaWYgKHByb3BzLnNob3dDb3VudGVyICYmIHByb3BzLm1heExlbmd0aCAmJiBwcm9wcy5jb3VudGVyRm9ybWF0ID09PSAncmVtYWluaW5nJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhci1jb3VudGVyIHJlbWFpbmluZ1wiPlxuICAgICAgICAgIHt7IGdldFJlbWFpbmluZ0NoYXJzKCkgfX0ge3sgZ2V0UmVtYWluaW5nTGFiZWwoKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5oaW50ICYmICFoYXNFcnJvcikge1xuICAgICAgICA8aW9uLW5vdGUgY2xhc3M9XCJoaW50XCI+e3sgZ2V0SGludCgpIH19PC9pb24tbm90ZT5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNFcnJvciAmJiBwcm9wcy5zaG93RXJyb3JzKSB7XG4gICAgICAgIDxpb24tbm90ZSBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiBjb2xvcj1cImRhbmdlclwiPlxuICAgICAgICAgIHt7IGdldEVycm9yTWVzc2FnZSgpIH19XG4gICAgICAgIDwvaW9uLW5vdGU+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtdGV4dGFyZWEtaW5wdXRcbiAqXG4gKiBBIHRleHRhcmVhIGlucHV0IGZpZWxkIHdpdGggY2hhcmFjdGVyIGNvdW50ZXIsIGF1dG8tZ3JvdywgYW5kIHZhbGlkYXRpb24gc3VwcG9ydC5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogYGBgaHRtbFxuICogPHZhbC10ZXh0YXJlYS1pbnB1dFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGNvbnRyb2w6IG1lc3NhZ2VDb250cm9sLFxuICogICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgeW91ciBtZXNzYWdlJyxcbiAqICAgICByb3dzOiA0XG4gKiAgIH1cIlxuICogPjwvdmFsLXRleHRhcmVhLWlucHV0PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgV2l0aCBjb3VudGVyIGFuZCB2YWxpZGF0aW9uXG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHRhcmVhLWlucHV0XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgY29udHJvbDogYmlvQ29udHJvbCxcbiAqICAgICBsYWJlbDogJ0JpbycsXG4gKiAgICAgcGxhY2Vob2xkZXI6ICdUZWxsIHVzIGFib3V0IHlvdXJzZWxmJyxcbiAqICAgICBtYXhMZW5ndGg6IDUwMCxcbiAqICAgICBzaG93Q291bnRlcjogdHJ1ZSxcbiAqICAgICBjb3VudGVyRm9ybWF0OiAncmVtYWluaW5nJyxcbiAqICAgICBhdXRvR3JvdzogdHJ1ZSxcbiAqICAgICBzaG93RXJyb3JzOiB0cnVlLFxuICogICAgIGVycm9yczogeyBtYXhsZW5ndGg6ICdCaW8gaXMgdG9vIGxvbmcnIH1cbiAqICAgfVwiXG4gKiA+PC92YWwtdGV4dGFyZWEtaW5wdXQ+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFRleHRhcmVhSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wczogVGV4dGFyZWFJbnB1dE1ldGFkYXRhO1xuXG4gIHN0YXRlcyA9IENvbXBvbmVudFN0YXRlcztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBBcHBseSBkZWZhdWx0IHZhbHVlIGlmIGNvbmZpZ3VyZWRcbiAgICBpZiAodGhpcy5wcm9wcz8ud2l0aERlZmF1bHQgfHwgdGhpcy5wcm9wcz8udmFsdWUpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9XG4gICAgICAgIHR5cGVvZiB0aGlzLnByb3BzLndpdGhEZWZhdWx0ID09PSAnc3RyaW5nJyA/IHRoaXMucHJvcHMud2l0aERlZmF1bHQgOiB0aGlzLnByb3BzLnZhbHVlIHx8ICcnO1xuICAgICAgaWYgKHRoaXMucHJvcHMuY29udHJvbCAmJiAhdGhpcy5wcm9wcy5jb250cm9sLnZhbHVlKSB7XG4gICAgICAgIHRoaXMucHJvcHMuY29udHJvbC5zZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubGFiZWwgfHwgJyc7XG4gIH1cblxuICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnBsYWNlaG9sZGVyIHx8ICcnO1xuICB9XG5cbiAgZ2V0SGludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmhpbnQgfHwgJyc7XG4gIH1cblxuICBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvcHMuY29udHJvbD8udG91Y2hlZCAmJiB0aGlzLnByb3BzLmNvbnRyb2w/LmludmFsaWQpO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmNvbnRyb2w/LmVycm9ycyB8fCAhdGhpcy5wcm9wcy5lcnJvcnMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcktleXMgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BzLmNvbnRyb2wuZXJyb3JzKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBlcnJvcktleXMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmVycm9yc1trZXldKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmVycm9yc1trZXldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldFJlbWFpbmluZ0NoYXJzKCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudExlbmd0aCA9IHRoaXMucHJvcHMuY29udHJvbD8udmFsdWU/Lmxlbmd0aCB8fCAwO1xuICAgIHJldHVybiAodGhpcy5wcm9wcy5tYXhMZW5ndGggfHwgMCkgLSBjdXJyZW50TGVuZ3RoO1xuICB9XG5cbiAgZ2V0UmVtYWluaW5nTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCByZW1haW5pbmcgPSB0aGlzLmdldFJlbWFpbmluZ0NoYXJzKCk7XG4gICAgcmV0dXJuIHJlbWFpbmluZyA9PT0gMSA/ICdjaGFyYWN0ZXIgcmVtYWluaW5nJyA6ICdjaGFyYWN0ZXJzIHJlbWFpbmluZyc7XG4gIH1cblxuICAvLyBDb3VudGVyIGZvcm1hdHRlciBmb3IgSW9uaWMncyBidWlsdC1pbiBjb3VudGVyXG4gIGNvdW50ZXJGb3JtYXR0ZXIgPSAoaW5wdXRMZW5ndGg6IG51bWJlciwgbWF4TGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBgJHtpbnB1dExlbmd0aH0vJHttYXhMZW5ndGh9YDtcbiAgfTtcbn1cbiJdfQ==
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBa0Q5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBaEZuQztRQWlGVSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBV3hDOztXQUVHO1FBQ00sVUFBSyxHQUFtQyxFQUFFLENBQUM7UUFFcEQ7O1dBRUc7UUFDSCxrQkFBYSxHQUEwQixFQUEyQixDQUFDO1FBRW5FLFdBQU0sR0FBRyxlQUFlLENBQUM7UUFnRnpCLGlEQUFpRDtRQUNqRCxxQkFBZ0IsR0FBRyxDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBVSxFQUFFO1lBQ3BFLE9BQU8sR0FBRyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDO0tBQ0g7SUFsRkMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FB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Q0FBQztJQUM3RCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0MsT0FBTyxTQUFTLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUM7SUFDMUUsQ0FBQzsrR0FwR1Usc0JBQXNCO21HQUF0QixzQkFBc0IsaUpBNUV2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVCw2NUJBekNTLFlBQVksOEJBQUUsbUJBQW1CLGdvQkFBRSxXQUFXLGlhQUFFLE9BQU87OzRGQTZFdEQsc0JBQXNCO2tCQWhGbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsWUFDeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q1Q7OEJBOENRLE1BQU07c0JBQWQsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvblRleHRhcmVhLCBJb25Ob3RlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBUZXh0YXJlYUlucHV0TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRleHRhcmVhLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uVGV4dGFyZWEsIElvbk5vdGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0YXJlYS1jb250YWluZXJcIiBbY2xhc3NdPVwicmVzb2x2ZWRQcm9wcy5jc3NDbGFzc1wiIFtjbGFzcy5oYXMtZXJyb3JdPVwiaGFzRXJyb3JcIj5cbiAgICAgIDxpb24tdGV4dGFyZWFcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlc29sdmVkUHJvcHMuY29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcbiAgICAgICAgW2xhYmVsXT1cImdldExhYmVsKClcIlxuICAgICAgICBbbGFiZWxQbGFjZW1lbnRdPVwicmVzb2x2ZWRQcm9wcy5sYWJlbFBsYWNlbWVudCB8fCAnc3RhY2tlZCdcIlxuICAgICAgICBbZmlsbF09XCJyZXNvbHZlZFByb3BzLmZpbGwgfHwgJ291dGxpbmUnXCJcbiAgICAgICAgW2NvbG9yXT1cImhhc0Vycm9yID8gJ2RhbmdlcicgOiByZXNvbHZlZFByb3BzLmNvbG9yXCJcbiAgICAgICAgW3Jvd3NdPVwicmVzb2x2ZWRQcm9wcy5yb3dzIHx8IDRcIlxuICAgICAgICBbYXV0b0dyb3ddPVwicmVzb2x2ZWRQcm9wcy5hdXRvR3JvdyA/PyBmYWxzZVwiXG4gICAgICAgIFttYXhsZW5ndGhdPVwicmVzb2x2ZWRQcm9wcy5tYXhMZW5ndGhcIlxuICAgICAgICBbbWlubGVuZ3RoXT1cInJlc29sdmVkUHJvcHMubWluTGVuZ3RoXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlc29sdmVkUHJvcHMuc3RhdGUgPT09IHN0YXRlcy5ESVNBQkxFRFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZXNvbHZlZFByb3BzLnN0YXRlID09PSBzdGF0ZXMuV09SS0lOR1wiXG4gICAgICAgIFtzcGVsbGNoZWNrXT1cInJlc29sdmVkUHJvcHMuc3BlbGxjaGVjayA/PyB0cnVlXCJcbiAgICAgICAgW2F1dG9jYXBpdGFsaXplXT1cInJlc29sdmVkUHJvcHMuYXV0b2NhcGl0YWxpemUgfHwgJ3NlbnRlbmNlcydcIlxuICAgICAgICBbaW5wdXRtb2RlXT1cInJlc29sdmVkUHJvcHMuaW5wdXRNb2RlIHx8ICd0ZXh0J1wiXG4gICAgICAgIFt3cmFwXT1cInJlc29sdmVkUHJvcHMud3JhcCB8fCAnc29mdCdcIlxuICAgICAgICBbY291bnRlcl09XCJyZXNvbHZlZFByb3BzLnNob3dDb3VudGVyICYmICEhcmVzb2x2ZWRQcm9wcy5tYXhMZW5ndGhcIlxuICAgICAgICBbY291bnRlckZvcm1hdHRlcl09XCJjb3VudGVyRm9ybWF0dGVyXCJcbiAgICAgICAgW2NsYXNzLm5vLXJlc2l6ZV09XCJyZXNvbHZlZFByb3BzLmRpc2FibGVSZXNpemVcIlxuICAgICAgPjwvaW9uLXRleHRhcmVhPlxuXG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuc2hvd0NvdW50ZXIgJiYgcmVzb2x2ZWRQcm9wcy5tYXhMZW5ndGggJiYgcmVzb2x2ZWRQcm9wcy5jb3VudGVyRm9ybWF0ID09PSAncmVtYWluaW5nJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhci1jb3VudGVyIHJlbWFpbmluZ1wiPlxuICAgICAgICAgIHt7IGdldFJlbWFpbmluZ0NoYXJzKCkgfX0ge3sgZ2V0UmVtYWluaW5nTGFiZWwoKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmhpbnQgJiYgIWhhc0Vycm9yKSB7XG4gICAgICAgIDxpb24tbm90ZSBjbGFzcz1cImhpbnRcIj57eyBnZXRIaW50KCkgfX08L2lvbi1ub3RlPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGhhc0Vycm9yICYmIHJlc29sdmVkUHJvcHMuc2hvd0Vycm9ycykge1xuICAgICAgICA8aW9uLW5vdGUgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgY29sb3I9XCJkYW5nZXJcIj5cbiAgICAgICAgICB7eyBnZXRFcnJvck1lc3NhZ2UoKSB9fVxuICAgICAgICA8L2lvbi1ub3RlPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXRleHRhcmVhLWlucHV0XG4gKlxuICogQSB0ZXh0YXJlYSBpbnB1dCBmaWVsZCB3aXRoIGNoYXJhY3RlciBjb3VudGVyLCBhdXRvLWdyb3csIGFuZCB2YWxpZGF0aW9uIHN1cHBvcnQuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dGFyZWEtaW5wdXRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb250cm9sOiBtZXNzYWdlQ29udHJvbCxcbiAqICAgICBwbGFjZWhvbGRlcjogJ0VudGVyIHlvdXIgbWVzc2FnZScsXG4gKiAgICAgcm93czogNFxuICogICB9XCJcbiAqID48L3ZhbC10ZXh0YXJlYS1pbnB1dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggY291bnRlciBhbmQgdmFsaWRhdGlvblxuICogYGBgaHRtbFxuICogPHZhbC10ZXh0YXJlYS1pbnB1dFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGNvbnRyb2w6IGJpb0NvbnRyb2wsXG4gKiAgICAgbGFiZWw6ICdCaW8nLFxuICogICAgIHBsYWNlaG9sZGVyOiAnVGVsbCB1cyBhYm91dCB5b3Vyc2VsZicsXG4gKiAgICAgbWF4TGVuZ3RoOiA1MDAsXG4gKiAgICAgc2hvd0NvdW50ZXI6IHRydWUsXG4gKiAgICAgY291bnRlckZvcm1hdDogJ3JlbWFpbmluZycsXG4gKiAgICAgYXV0b0dyb3c6IHRydWUsXG4gKiAgICAgc2hvd0Vycm9yczogdHJ1ZSxcbiAqICAgICBlcnJvcnM6IHsgbWF4bGVuZ3RoOiAnQmlvIGlzIHRvbyBsb25nJyB9XG4gKiAgIH1cIlxuICogPjwvdmFsLXRleHRhcmVhLWlucHV0PlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXh0YXJlYUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFByZXNldCBuYW1lIHRvIGFwcGx5LiBQcmVzZXRzIGRlZmluZSByZXVzYWJsZSB0ZXh0YXJlYSBjb25maWd1cmF0aW9uc1xuICAgKiB0aGF0IGNhbiBiZSByZWdpc3RlcmVkIGF0IGFwcCBsZXZlbCB2aWEgcHJvdmlkZVZhbHRlY2hQcmVzZXRzKCkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtdGV4dGFyZWEtaW5wdXQgcHJlc2V0PVwiZm9ybS1maWVsZFwiIFtwcm9wc109XCJ7IGNvbnRyb2w6IGN0cmwgfVwiPjwvdmFsLXRleHRhcmVhLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUZXh0YXJlYSBjb25maWd1cmF0aW9uIG9iamVjdC4gVmFsdWVzIGhlcmUgb3ZlcnJpZGUgcHJlc2V0IHZhbHVlcy5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPFRleHRhcmVhSW5wdXRNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IFRleHRhcmVhSW5wdXRNZXRhZGF0YSA9IHt9IGFzIFRleHRhcmVhSW5wdXRNZXRhZGF0YTtcblxuICBzdGF0ZXMgPSBDb21wb25lbnRTdGF0ZXM7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbHVlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0XG4gICAgICA/ICh0aGlzLnByZXNldHMuZ2V0KCd0ZXh0YXJlYUlucHV0JywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8VGV4dGFyZWFJbnB1dE1ldGFkYXRhPilcbiAgICAgIDoge307XG5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICAuLi5wcmVzZXRQcm9wcyxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgfSBhcyBUZXh0YXJlYUlucHV0TWV0YWRhdGE7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RGVmYXVsdFZhbHVlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc29sdmVkUHJvcHM/LndpdGhEZWZhdWx0IHx8IHRoaXMucmVzb2x2ZWRQcm9wcz8udmFsdWUpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9XG4gICAgICAgIHR5cGVvZiB0aGlzLnJlc29sdmVkUHJvcHMud2l0aERlZmF1bHQgPT09ICdzdHJpbmcnID8gdGhpcy5yZXNvbHZlZFByb3BzLndpdGhEZWZhdWx0IDogdGhpcy5yZXNvbHZlZFByb3BzLnZhbHVlIHx8ICcnO1xuICAgICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy5jb250cm9sICYmICF0aGlzLnJlc29sdmVkUHJvcHMuY29udHJvbC52YWx1ZSkge1xuICAgICAgICB0aGlzLnJlc29sdmVkUHJvcHMuY29udHJvbC5zZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5sYWJlbCB8fCAnJztcbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5wbGFjZWhvbGRlciB8fCAnJztcbiAgfVxuXG4gIGdldEhpbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzLmhpbnQgfHwgJyc7XG4gIH1cblxuICBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucmVzb2x2ZWRQcm9wcy5jb250cm9sPy50b3VjaGVkICYmIHRoaXMucmVzb2x2ZWRQcm9wcy5jb250cm9sPy5pbnZhbGlkKTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRyb2w/LmVycm9ycyB8fCAhdGhpcy5yZXNvbHZlZFByb3BzLmVycm9ycykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucmVzb2x2ZWRQcm9wcy5jb250cm9sLmVycm9ycyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgZXJyb3JLZXlzKSB7XG4gICAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmVycm9yc1trZXldKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMuZXJyb3JzW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0UmVtYWluaW5nQ2hhcnMoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50TGVuZ3RoID0gdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRyb2w/LnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICByZXR1cm4gKHRoaXMucmVzb2x2ZWRQcm9wcy5tYXhMZW5ndGggfHwgMCkgLSBjdXJyZW50TGVuZ3RoO1xuICB9XG5cbiAgZ2V0UmVtYWluaW5nTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCByZW1haW5pbmcgPSB0aGlzLmdldFJlbWFpbmluZ0NoYXJzKCk7XG4gICAgcmV0dXJuIHJlbWFpbmluZyA9PT0gMSA/ICdjaGFyYWN0ZXIgcmVtYWluaW5nJyA6ICdjaGFyYWN0ZXJzIHJlbWFpbmluZyc7XG4gIH1cblxuICAvLyBDb3VudGVyIGZvcm1hdHRlciBmb3IgSW9uaWMncyBidWlsdC1pbiBjb3VudGVyXG4gIGNvdW50ZXJGb3JtYXR0ZXIgPSAoaW5wdXRMZW5ndGg6IG51bWJlciwgbWF4TGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBgJHtpbnB1dExlbmd0aH0vJHttYXhMZW5ndGh9YDtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, inject, Input } from '@angular/core';
|
|
2
2
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { IonToggle } from '@ionic/angular/standalone';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { PresetService } from '../../../services/presets';
|
|
5
6
|
import { ComponentStates } from '../../types';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/forms";
|
|
@@ -22,19 +23,50 @@ import * as i1 from "@angular/forms";
|
|
|
22
23
|
*/
|
|
23
24
|
export class ToggleInputComponent {
|
|
24
25
|
constructor() {
|
|
26
|
+
this.presets = inject(PresetService);
|
|
27
|
+
/**
|
|
28
|
+
* Input configuration object. Values here override preset values.
|
|
29
|
+
* @type {ToggleInputMetadata}
|
|
30
|
+
*/
|
|
31
|
+
this.props = {};
|
|
32
|
+
/**
|
|
33
|
+
* Resolved props after merging preset + explicit props.
|
|
34
|
+
*/
|
|
35
|
+
this.resolvedProps = {};
|
|
25
36
|
this.states = ComponentStates;
|
|
26
37
|
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.resolveProps();
|
|
40
|
+
}
|
|
41
|
+
ngOnChanges(changes) {
|
|
42
|
+
if (changes['preset'] || changes['props']) {
|
|
43
|
+
this.resolveProps();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Merge preset configuration with explicit props.
|
|
48
|
+
* Explicit props take precedence over preset values.
|
|
49
|
+
*/
|
|
50
|
+
resolveProps() {
|
|
51
|
+
const presetProps = this.preset
|
|
52
|
+
? this.presets.get('toggleInput', this.preset)
|
|
53
|
+
: {};
|
|
54
|
+
this.resolvedProps = {
|
|
55
|
+
...presetProps,
|
|
56
|
+
...this.props,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
27
59
|
getDisplayLabel() {
|
|
28
|
-
return this.
|
|
60
|
+
return this.resolvedProps.label || this.resolvedProps.contentFallback || '';
|
|
29
61
|
}
|
|
30
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToggleInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToggleInputComponent, isStandalone: true, selector: "val-toggle-input", inputs: { props: "props" }, ngImport: i0, template: `
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToggleInputComponent, isStandalone: true, selector: "val-toggle-input", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
32
64
|
<ion-toggle
|
|
33
|
-
[formControl]="
|
|
34
|
-
[color]="
|
|
35
|
-
[disabled]="
|
|
36
|
-
[labelPlacement]="
|
|
37
|
-
[justify]="
|
|
65
|
+
[formControl]="resolvedProps.control"
|
|
66
|
+
[color]="resolvedProps.color || 'primary'"
|
|
67
|
+
[disabled]="resolvedProps.state === states.DISABLED || resolvedProps.disabled"
|
|
68
|
+
[labelPlacement]="resolvedProps.labelPosition || 'end'"
|
|
69
|
+
[justify]="resolvedProps.justify || 'start'"
|
|
38
70
|
>
|
|
39
71
|
{{ getDisplayLabel() }}
|
|
40
72
|
</ion-toggle>
|
|
@@ -44,16 +76,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
44
76
|
type: Component,
|
|
45
77
|
args: [{ selector: 'val-toggle-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonToggle], template: `
|
|
46
78
|
<ion-toggle
|
|
47
|
-
[formControl]="
|
|
48
|
-
[color]="
|
|
49
|
-
[disabled]="
|
|
50
|
-
[labelPlacement]="
|
|
51
|
-
[justify]="
|
|
79
|
+
[formControl]="resolvedProps.control"
|
|
80
|
+
[color]="resolvedProps.color || 'primary'"
|
|
81
|
+
[disabled]="resolvedProps.state === states.DISABLED || resolvedProps.disabled"
|
|
82
|
+
[labelPlacement]="resolvedProps.labelPosition || 'end'"
|
|
83
|
+
[justify]="resolvedProps.justify || 'start'"
|
|
52
84
|
>
|
|
53
85
|
{{ getDisplayLabel() }}
|
|
54
86
|
</ion-toggle>
|
|
55
87
|
`, styles: [":host{display:block}ion-toggle{--handle-spacing: 3px}\n"] }]
|
|
56
|
-
}], propDecorators: {
|
|
88
|
+
}], propDecorators: { preset: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], props: [{
|
|
57
91
|
type: Input
|
|
58
92
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdG9nZ2xlLWlucHV0L3RvZ2dsZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFtQjlDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQWhDakM7UUFpQ1UsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQVd4Qzs7O1dBR0c7UUFDTSxVQUFLLEdBQWlDLEVBQUUsQ0FBQztRQUVsRDs7V0FFRztRQUNILGtCQUFhLEdBQXdCLEVBQXlCLENBQUM7UUFFL0QsV0FBTSxHQUFHLGVBQWUsQ0FBQztLQThCMUI7SUE1QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDN0IsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFrQztZQUNoRixDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ1MsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO0lBQzlFLENBQUM7K0dBcERVLG9CQUFvQjttR0FBcEIsb0JBQW9CLCtJQTVCckI7Ozs7Ozs7Ozs7R0FVVCxnSUFYUyxZQUFZLDhCQUFFLG1CQUFtQiwwVEFBRSxTQUFTOzs0RkE2QjNDLG9CQUFvQjtrQkFoQ2hDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLENBQUMsWUFDN0M7Ozs7Ozs7Ozs7R0FVVDs4QkE0QlEsTUFBTTtzQkFBZCxLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25Ub2dnbGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBUb2dnbGVJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10b2dnbGUtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBJb25Ub2dnbGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tdG9nZ2xlXG4gICAgICBbZm9ybUNvbnRyb2xdPVwicmVzb2x2ZWRQcm9wcy5jb250cm9sXCJcbiAgICAgIFtjb2xvcl09XCJyZXNvbHZlZFByb3BzLmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICBbZGlzYWJsZWRdPVwicmVzb2x2ZWRQcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLkRJU0FCTEVEIHx8IHJlc29sdmVkUHJvcHMuZGlzYWJsZWRcIlxuICAgICAgW2xhYmVsUGxhY2VtZW50XT1cInJlc29sdmVkUHJvcHMubGFiZWxQb3NpdGlvbiB8fCAnZW5kJ1wiXG4gICAgICBbanVzdGlmeV09XCJyZXNvbHZlZFByb3BzLmp1c3RpZnkgfHwgJ3N0YXJ0J1wiXG4gICAgPlxuICAgICAge3sgZ2V0RGlzcGxheUxhYmVsKCkgfX1cbiAgICA8L2lvbi10b2dnbGU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3RvZ2dsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXRvZ2dsZS1pbnB1dFxuICpcbiAqIEEgdG9nZ2xlL3N3aXRjaCBpbnB1dCBmb3IgYm9vbGVhbiB2YWx1ZXMsIGludGVncmF0ZWQgd2l0aCBBbmd1bGFyIGZvcm1zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXRvZ2dsZS1pbnB1dCBbcHJvcHNdPVwie1xuICogICBjb250cm9sOiBteUJvb2xlYW5Db250cm9sLFxuICogICBsYWJlbDogJ0FjdGl2YXIgbm90aWZpY2FjaW9uZXMnLFxuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBsYWJlbFBvc2l0aW9uOiAnZW5kJ1xuICogfVwiPjwvdmFsLXRvZ2dsZS1pbnB1dD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IFRvZ2dsZUlucHV0TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgdG9nZ2xlIGlucHV0XG4gKi9cbmV4cG9ydCBjbGFzcyBUb2dnbGVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgdG9nZ2xlIGlucHV0IGNvbmZpZ3VyYXRpb25zXG4gICAqIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgYXQgYXBwIGxldmVsIHZpYSBwcm92aWRlVmFsdGVjaFByZXNldHMoKS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPHZhbC10b2dnbGUtaW5wdXQgcHJlc2V0PVwiZm9ybS1maWVsZFwiIFtwcm9wc109XCJ7IGNvbnRyb2w6IGN0cmwgfVwiPjwvdmFsLXRvZ2dsZS1pbnB1dD5cbiAgICovXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogSW5wdXQgY29uZmlndXJhdGlvbiBvYmplY3QuIFZhbHVlcyBoZXJlIG92ZXJyaWRlIHByZXNldCB2YWx1ZXMuXG4gICAqIEB0eXBlIHtUb2dnbGVJbnB1dE1ldGFkYXRhfVxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8VG9nZ2xlSW5wdXRNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IFRvZ2dsZUlucHV0TWV0YWRhdGEgPSB7fSBhcyBUb2dnbGVJbnB1dE1ldGFkYXRhO1xuXG4gIHN0YXRlcyA9IENvbXBvbmVudFN0YXRlcztcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSBwcmVzZXQgY29uZmlndXJhdGlvbiB3aXRoIGV4cGxpY2l0IHByb3BzLlxuICAgKiBFeHBsaWNpdCBwcm9wcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciBwcmVzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlUHJvcHMoKTogdm9pZCB7XG4gICAgY29uc3QgcHJlc2V0UHJvcHMgPSB0aGlzLnByZXNldFxuICAgICAgPyAodGhpcy5wcmVzZXRzLmdldCgndG9nZ2xlSW5wdXQnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxUb2dnbGVJbnB1dE1ldGFkYXRhPilcbiAgICAgIDoge307XG5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICAuLi5wcmVzZXRQcm9wcyxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgfSBhcyBUb2dnbGVJbnB1dE1ldGFkYXRhO1xuICB9XG5cbiAgZ2V0RGlzcGxheUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5sYWJlbCB8fCB0aGlzLnJlc29sdmVkUHJvcHMuY29udGVudEZhbGxiYWNrIHx8ICcnO1xuICB9XG59XG4iXX0=
|
|
@@ -242,7 +242,7 @@ export class WinnerDisplayComponent {
|
|
|
242
242
|
</div>
|
|
243
243
|
}
|
|
244
244
|
</div>
|
|
245
|
-
`, isInline: true, styles: [":host{display:block}.winner-display-container{--winner-color: var(--ion-color-warning);--animation-duration: .8s;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 24px;border-radius:16px;overflow:hidden}.bg-solid{background:var(--ion-color-light);border:2px solid var(--winner-color)}.bg-gradient{background:linear-gradient(135deg,var(--ion-color-light) 0%,rgba(var(--ion-color-warning-rgb),.1) 100%);border:2px solid var(--winner-color)}.bg-transparent{background:transparent}.trophy-container{margin-bottom:16px}.trophy-icon{font-size:56px;color:var(--winner-color);filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.winner-label{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--winner-color);margin-bottom:8px}.winner-info{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.winner-avatar{margin-bottom:8px}.winner-name{font-size:28px;font-weight:700;color:var(--ion-color-dark);margin:0;line-height:1.2}.winner-location{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--ion-color-medium-shade)}.winner-location ion-icon{font-size:16px}.ticket-info{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(var(--ion-color-dark-rgb),.05);border-radius:24px;margin-top:8px}.ticket-info ion-icon{font-size:20px;color:var(--winner-color)}.ticket-label{font-size:14px;color:var(--ion-color-medium-shade)}.ticket-number{font-size:18px;font-weight:700;color:var(--ion-color-dark);font-variant-numeric:tabular-nums}.prize-info{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;background:var(--ion-color-light-shade);border-radius:12px;width:100%;max-width:400px}.prize-image{width:120px;height:120px;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 4px 12px #0000001a}.prize-image img{width:100%;height:100%;object-fit:cover}.prize-details{display:flex;flex-direction:column;align-items:center;gap:4px}.prize-header{display:flex;align-items:center;gap:4px;color:var(--ion-color-medium-shade);font-size:12px}.prize-header ion-icon{font-size:16px;color:var(--winner-color)}.prize-label{text-transform:uppercase;letter-spacing:1px}.prize-name{font-size:20px;font-weight:600;color:var(--ion-color-dark);margin:0}.prize-description{font-size:14px;color:var(--ion-color-medium-shade);margin:4px 0 0}.prize-value{font-size:24px;font-weight:700;color:var(--winner-color);margin-top:8px}.confetti-container{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .3s}.confetti-container.active{opacity:1}.confetti-piece{position:absolute;width:10px;height:10px;top:-20px;left:var(--x, 50%);background:var(--winner-color);opacity:0;animation:confetti-fall 3s ease-out var(--delay, 0s) forwards}.confetti-piece:nth-child(2n){background:var(--ion-color-primary);width:8px;height:12px}.confetti-piece:nth-child(3n){background:var(--ion-color-danger);border-radius:50%}.confetti-piece:nth-child(5n){background:var(--ion-color-success);width:6px;height:14px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(400px) rotate(var(--rotation, 720deg))}}.animation-fade:not(.revealed) .winner-info,.animation-fade:not(.revealed) .prize-info{opacity:0}.animation-fade.animating .winner-info,.animation-fade.animating .prize-info{animation:fade-in var(--animation-duration) ease-out forwards}.animation-zoom:not(.revealed) .winner-info,.animation-zoom:not(.revealed) .prize-info{opacity:0;transform:scale(.5)}.animation-zoom.animating .winner-info,.animation-zoom.animating .prize-info{animation:zoom-in var(--animation-duration) cubic-bezier(.34,1.56,.64,1) forwards}.animation-slide:not(.revealed) .winner-info,.animation-slide:not(.revealed) .prize-info{opacity:0;transform:translateY(40px)}.animation-slide.animating .winner-info,.animation-slide.animating .prize-info{animation:slide-up var(--animation-duration) ease-out forwards}.animation-slide.animating .prize-info{animation-delay:.2s}.animation-spotlight:not(.revealed) .winner-info,.animation-spotlight:not(.revealed) .prize-info{opacity:0}.animation-spotlight:not(.revealed):before{content:\"\";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.8) 0%,transparent 70%);border-radius:50%;transform:translate(-50%,-50%)}.animation-spotlight.animating:before{animation:spotlight var(--animation-duration) ease-out forwards}.animation-spotlight.animating .winner-info,.animation-spotlight.animating .prize-info{animation:fade-in calc(var(--animation-duration) * .5) ease-out calc(var(--animation-duration) * .5) forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes zoom-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes spotlight{0%{width:0;height:0}to{width:200%;height:200%}}.size-small{padding:20px 16px}.size-small .trophy-icon{font-size:40px}.size-small .winner-label{font-size:12px}.size-small .winner-name{font-size:20px}.size-small .ticket-number,.size-small .prize-name{font-size:16px}.size-small .prize-value{font-size:18px}.size-large{padding:48px 32px}.size-large .trophy-icon{font-size:80px}.size-large .winner-label{font-size:18px;letter-spacing:3px}.size-large .winner-name{font-size:40px}.size-large .ticket-number{font-size:24px}.size-large .prize-image{width:160px;height:160px}.size-large .prize-name{font-size:28px}.size-large .prize-value{font-size:32px}.mode-compact{padding:16px}.mode-compact .trophy-container,.mode-compact .prize-info{display:none}.mode-compact .winner-label{font-size:11px;margin-bottom:4px}.mode-compact .winner-name{font-size:18px}.mode-celebration .trophy-icon{animation:trophy-bounce 1s ease-in-out infinite}.mode-celebration.revealed .winner-name{animation:glow 2s ease-in-out infinite}@keyframes trophy-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes glow{0%,to{text-shadow:0 0 10px rgba(var(--ion-color-warning-rgb),.3)}50%{text-shadow:0 0 20px rgba(var(--ion-color-warning-rgb),.6)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
245
|
+
`, isInline: true, styles: [":host{display:block}.winner-display-container{--winner-color: var(--ion-color-warning);--animation-duration: .8s;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 24px;border-radius:16px;overflow:hidden}.bg-solid{background:var(--ion-color-light);border:2px solid var(--winner-color)}.bg-gradient{background:linear-gradient(135deg,var(--ion-color-light) 0%,rgba(var(--ion-color-warning-rgb),.1) 100%);border:2px solid var(--winner-color)}.bg-transparent{background:transparent}.trophy-container{margin-bottom:16px}.trophy-icon{font-size:56px;color:var(--winner-color);filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.winner-label{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--winner-color);margin-bottom:8px}.winner-info{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.winner-avatar{margin-bottom:8px}.winner-name{font-size:28px;font-weight:700;color:var(--ion-color-dark);margin:0;line-height:1.2}.winner-location{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--ion-color-medium-shade)}.winner-location ion-icon{font-size:16px}.ticket-info{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(var(--ion-color-dark-rgb),.05);border-radius:24px;margin-top:8px}.ticket-info ion-icon{font-size:20px;color:var(--winner-color)}.ticket-label{font-size:14px;color:var(--ion-color-medium-shade)}.ticket-number{font-size:18px;font-weight:700;color:var(--ion-color-dark);font-variant-numeric:tabular-nums}.prize-info{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;background:var(--ion-color-light-shade);border-radius:12px;width:100%;max-width:400px}.prize-image{width:120px;height:120px;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 4px 12px #0000001a}.prize-image img{width:100%;height:100%;object-fit:cover}.prize-details{display:flex;flex-direction:column;align-items:center;gap:4px}.prize-header{display:flex;align-items:center;gap:4px;color:var(--ion-color-medium-shade);font-size:12px}.prize-header ion-icon{font-size:16px;color:var(--winner-color)}.prize-label{text-transform:uppercase;letter-spacing:1px}.prize-name{font-size:20px;font-weight:600;color:var(--ion-color-dark);margin:0}.prize-description{font-size:14px;color:var(--ion-color-medium-shade);margin:4px 0 0}.prize-value{font-size:24px;font-weight:700;color:var(--winner-color);margin-top:8px}.confetti-container{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .3s}.confetti-container.active{opacity:1}.confetti-piece{position:absolute;width:10px;height:10px;top:-20px;left:var(--x, 50%);background:var(--winner-color);opacity:0;animation:confetti-fall 3s ease-out var(--delay, 0s) forwards}.confetti-piece:nth-child(2n){background:var(--ion-color-primary);width:8px;height:12px}.confetti-piece:nth-child(3n){background:var(--ion-color-danger);border-radius:50%}.confetti-piece:nth-child(5n){background:var(--ion-color-success);width:6px;height:14px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(400px) rotate(var(--rotation, 720deg))}}.animation-fade:not(.revealed) .winner-info,.animation-fade:not(.revealed) .prize-info{opacity:0}.animation-fade.animating .winner-info,.animation-fade.animating .prize-info{animation:fade-in var(--animation-duration) ease-out forwards}.animation-zoom:not(.revealed) .winner-info,.animation-zoom:not(.revealed) .prize-info{opacity:0;transform:scale(.5)}.animation-zoom.animating .winner-info,.animation-zoom.animating .prize-info{animation:zoom-in var(--animation-duration) cubic-bezier(.34,1.56,.64,1) forwards}.animation-slide:not(.revealed) .winner-info,.animation-slide:not(.revealed) .prize-info{opacity:0;transform:translateY(40px)}.animation-slide.animating .winner-info,.animation-slide.animating .prize-info{animation:slide-up var(--animation-duration) ease-out forwards}.animation-slide.animating .prize-info{animation-delay:.2s}.animation-spotlight:not(.revealed) .winner-info,.animation-spotlight:not(.revealed) .prize-info{opacity:0}.animation-spotlight:not(.revealed):before{content:\"\";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.8) 0%,transparent 70%);border-radius:50%;transform:translate(-50%,-50%)}.animation-spotlight.animating:before{animation:spotlight var(--animation-duration) ease-out forwards}.animation-spotlight.animating .winner-info,.animation-spotlight.animating .prize-info{animation:fade-in calc(var(--animation-duration) * .5) ease-out calc(var(--animation-duration) * .5) forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes zoom-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes spotlight{0%{width:0;height:0}to{width:200%;height:200%}}.size-small{padding:20px 16px}.size-small .trophy-icon{font-size:40px}.size-small .winner-label{font-size:12px}.size-small .winner-name{font-size:20px}.size-small .ticket-number,.size-small .prize-name{font-size:16px}.size-small .prize-value{font-size:18px}.size-large{padding:48px 32px}.size-large .trophy-icon{font-size:80px}.size-large .winner-label{font-size:18px;letter-spacing:3px}.size-large .winner-name{font-size:40px}.size-large .ticket-number{font-size:24px}.size-large .prize-image{width:160px;height:160px}.size-large .prize-name{font-size:28px}.size-large .prize-value{font-size:32px}.mode-compact{padding:16px}.mode-compact .trophy-container,.mode-compact .prize-info{display:none}.mode-compact .winner-label{font-size:11px;margin-bottom:4px}.mode-compact .winner-name{font-size:18px}.mode-celebration .trophy-icon{animation:trophy-bounce 1s ease-in-out infinite}.mode-celebration.revealed .winner-name{animation:glow 2s ease-in-out infinite}@keyframes trophy-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes glow{0%,to{text-shadow:0 0 10px rgba(var(--ion-color-warning-rgb),.3)}50%{text-shadow:0 0 20px rgba(var(--ion-color-warning-rgb),.6)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
246
246
|
}
|
|
247
247
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WinnerDisplayComponent, decorators: [{
|
|
248
248
|
type: Component,
|
|
@@ -340,7 +340,7 @@ export class CommentSectionComponent {
|
|
|
340
340
|
</div>
|
|
341
341
|
}
|
|
342
342
|
</div>
|
|
343
|
-
`, isInline: true, styles: [":host{display:block}.comment-section.loading{pointer-events:none}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--ion-color-light-shade)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:24px;color:var(--ion-color-primary)}.title{margin:0;font-size:18px;font-weight:600;color:var(--ion-text-color)}.count-badge{font-size:12px;font-weight:600;--padding-start: 8px;--padding-end: 8px}.header-actions{display:flex;align-items:center;gap:8px}.sort-select-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--background: transparent;--min-height: 36px}.sort-select-item ion-select{--padding-start: 8px;--padding-end: 8px;min-width:140px;font-size:14px}.sort-icon{font-size:18px;color:var(--ion-color-medium);margin-right:4px}.new-comment-section{margin-bottom:24px;padding:16px;background-color:var(--ion-color-light);border-radius:12px}.input-wrapper{display:flex;gap:12px}.input-avatar{flex-shrink:0}.input-avatar val-avatar{--size: 40px}.input-container{flex:1;min-width:0}.comment-textarea{--background: var(--ion-background-color);--padding-start: 12px;--padding-end: 12px;--padding-top: 10px;--padding-bottom: 10px;border-radius:8px;font-size:14px;min-height:60px;border:1px solid var(--ion-color-light-shade);transition:border-color .2s}.comment-textarea:focus-within{border-color:var(--ion-color-primary)}.input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.char-counter{font-size:12px;color:var(--ion-color-medium)}.char-counter.warning{color:var(--ion-color-warning);font-weight:500}.loading-state{display:flex;flex-direction:column;gap:20px}.skeleton-comment{display:flex;gap:12px;padding:12px 0}.skeleton-comment .skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.comments-list.with-dividers val-comment{padding:16px 0}.comments-list.with-dividers val-comment:first-child{padding-top:0}.comment-divider{height:1px;background-color:var(--ion-color-light-shade);margin:0}.load-more-section{display:flex;justify-content:center;padding:20px 0}.load-more-section ion-button{min-width:200px}.load-more-section ion-spinner{width:28px;height:28px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:64px;color:var(--ion-color-medium);opacity:.5;margin-bottom:16px}.empty-title{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--ion-text-color)}.empty-message{margin:0;font-size:14px;color:var(--ion-color-medium);max-width:300px}@media (max-width: 576px){.section-header{flex-direction:column;align-items:flex-start}.header-actions,.sort-select-item{width:100%}.sort-select-item ion-select{width:100%}.input-wrapper{flex-direction:column}.input-avatar{display:none}.input-actions{flex-direction:column;align-items:stretch}.input-actions ion-button{width:100%}}@media (prefers-color-scheme: dark){.new-comment-section{background-color:var(--ion-color-step-100, #1a1a1a)}.comment-textarea{--background: var(--ion-color-step-50, #121212);border-color:var(--ion-color-step-200, #2a2a2a)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: SkeletonComponent, selector: "val-skeleton", inputs: ["props"] }] }); }
|
|
343
|
+
`, isInline: true, styles: [":host{display:block}.comment-section.loading{pointer-events:none}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--ion-color-light-shade)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:24px;color:var(--ion-color-primary)}.title{margin:0;font-size:18px;font-weight:600;color:var(--ion-text-color)}.count-badge{font-size:12px;font-weight:600;--padding-start: 8px;--padding-end: 8px}.header-actions{display:flex;align-items:center;gap:8px}.sort-select-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--background: transparent;--min-height: 36px}.sort-select-item ion-select{--padding-start: 8px;--padding-end: 8px;min-width:140px;font-size:14px}.sort-icon{font-size:18px;color:var(--ion-color-medium);margin-right:4px}.new-comment-section{margin-bottom:24px;padding:16px;background-color:var(--ion-color-light);border-radius:12px}.input-wrapper{display:flex;gap:12px}.input-avatar{flex-shrink:0}.input-avatar val-avatar{--size: 40px}.input-container{flex:1;min-width:0}.comment-textarea{--background: var(--ion-background-color);--padding-start: 12px;--padding-end: 12px;--padding-top: 10px;--padding-bottom: 10px;border-radius:8px;font-size:14px;min-height:60px;border:1px solid var(--ion-color-light-shade);transition:border-color .2s}.comment-textarea:focus-within{border-color:var(--ion-color-primary)}.input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.char-counter{font-size:12px;color:var(--ion-color-medium)}.char-counter.warning{color:var(--ion-color-warning);font-weight:500}.loading-state{display:flex;flex-direction:column;gap:20px}.skeleton-comment{display:flex;gap:12px;padding:12px 0}.skeleton-comment .skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.comments-list.with-dividers val-comment{padding:16px 0}.comments-list.with-dividers val-comment:first-child{padding-top:0}.comment-divider{height:1px;background-color:var(--ion-color-light-shade);margin:0}.load-more-section{display:flex;justify-content:center;padding:20px 0}.load-more-section ion-button{min-width:200px}.load-more-section ion-spinner{width:28px;height:28px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:64px;color:var(--ion-color-medium);opacity:.5;margin-bottom:16px}.empty-title{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--ion-text-color)}.empty-message{margin:0;font-size:14px;color:var(--ion-color-medium);max-width:300px}@media (max-width: 576px){.section-header{flex-direction:column;align-items:flex-start}.header-actions,.sort-select-item{width:100%}.sort-select-item ion-select{width:100%}.input-wrapper{flex-direction:column}.input-avatar{display:none}.input-actions{flex-direction:column;align-items:stretch}.input-actions ion-button{width:100%}}@media (prefers-color-scheme: dark){.new-comment-section{background-color:var(--ion-color-step-100, #1a1a1a)}.comment-textarea{--background: var(--ion-color-step-50, #121212);border-color:var(--ion-color-step-200, #2a2a2a)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: SkeletonComponent, selector: "val-skeleton", inputs: ["props"] }] }); }
|
|
344
344
|
}
|
|
345
345
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentSectionComponent, decorators: [{
|
|
346
346
|
type: Component,
|
|
@@ -534,4 +534,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
534
534
|
}], replyStart: [{
|
|
535
535
|
type: Output
|
|
536
536
|
}] } });
|
|
537
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvY29tbWVudC1zZWN0aW9uL2NvbW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQWdCNUUsUUFBUSxDQUFDO0lBQ1Asa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLG1CQUFtQjtDQUNwQixDQUFD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UyxvUEFDVCxRQUFRLGlGQUNSLFdBQVcsaWFBQ1gsT0FBTywwTkFDUCxTQUFTLGtWQUNULGVBQWUsNkZBQ2YsVUFBVSx5R0FDVixpQkFBaUIsK0dBQ2pCLHdCQUF3QixtSEFDeEIsZ0JBQWdCLHlMQUNoQixlQUFlLGdHQUNmLGlCQUFpQjs7NEZBc01SLHVCQUF1QjtrQkF4Tm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFFBQVE7d0JBQ1IsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsaUJBQWlCO3FCQUNsQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzSlQ7OEJBaURRLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFHRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFHRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHtcbiAgSW9uSWNvbixcbiAgSW9uQnV0dG9uLFxuICBJb25CYWRnZSxcbiAgSW9uVGV4dGFyZWEsXG4gIElvbkl0ZW0sXG4gIElvblNlbGVjdCxcbiAgSW9uU2VsZWN0T3B0aW9uLFxuICBJb25TcGlubmVyLFxuICBJb25JbmZpbml0ZVNjcm9sbCxcbiAgSW9uSW5maW5pdGVTY3JvbGxDb250ZW50LFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hhdGJ1YmJsZXNPdXRsaW5lLFxuICBmaWx0ZXJPdXRsaW5lLFxuICBzZW5kT3V0bGluZSxcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgc3dhcFZlcnRpY2FsT3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbW1lbnQvY29tbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9za2VsZXRvbi9za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ29tbWVudFNlY3Rpb25NZXRhZGF0YSxcbiAgQ29tbWVudFNvcnRPcHRpb24sXG4gIENvbW1lbnRTb3J0Q2hhbmdlRXZlbnQsXG4gIENvbW1lbnRTdWJtaXRFdmVudCxcbiAgQ29tbWVudFNlY3Rpb25Mb2FkTW9yZUV2ZW50LFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIENvbW1lbnRBdXRob3JDbGlja0V2ZW50LFxuICBDb21tZW50UmVhY3Rpb25DbGlja0V2ZW50LFxuICBDb21tZW50QWN0aW9uQ2xpY2tFdmVudCxcbiAgQ29tbWVudE1lbnVJdGVtQ2xpY2tFdmVudCxcbiAgQ29tbWVudExvYWRNb3JlRXZlbnQsXG59IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50L3R5cGVzJztcblxuYWRkSWNvbnMoe1xuICBjaGF0YnViYmxlc091dGxpbmUsXG4gIGZpbHRlck91dGxpbmUsXG4gIHNlbmRPdXRsaW5lLFxuICBjaGF0YnViYmxlRWxsaXBzZXNPdXRsaW5lLFxuICBzd2FwVmVydGljYWxPdXRsaW5lLFxufSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jb21tZW50LXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIElvbkljb24sXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkJhZGdlLFxuICAgIElvblRleHRhcmVhLFxuICAgIElvbkl0ZW0sXG4gICAgSW9uU2VsZWN0LFxuICAgIElvblNlbGVjdE9wdGlvbixcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkluZmluaXRlU2Nyb2xsLFxuICAgIElvbkluZmluaXRlU2Nyb2xsQ29udGVudCxcbiAgICBDb21tZW50Q29tcG9uZW50LFxuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBTa2VsZXRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1zZWN0aW9uXCIgW2NsYXNzLmxvYWRpbmddPVwicHJvcHMubG9hZGluZ1wiPlxuICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hhdGJ1YmJsZXMtb3V0bGluZVwiIGNsYXNzPVwidGl0bGUtaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPGgzIGNsYXNzPVwidGl0bGVcIj57eyBkaXNwbGF5VGl0bGUgfX08L2gzPlxuICAgICAgICAgIEBpZiAocHJvcHMuc2hvd0NvdW50ICE9PSBmYWxzZSAmJiBwcm9wcy5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICA8aW9uLWJhZGdlIGNvbG9yPVwibWVkaXVtXCIgY2xhc3M9XCJjb3VudC1iYWRnZVwiPlxuICAgICAgICAgICAgICB7eyBmb3JtYXRDb3VudChwcm9wcy5jb3VudCkgfX1cbiAgICAgICAgICAgIDwvaW9uLWJhZGdlPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChwcm9wcy5zb3J0T3B0aW9ucyAmJiBwcm9wcy5zb3J0T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgY2xhc3M9XCJzb3J0LXNlbGVjdC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic3dhcC12ZXJ0aWNhbC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgY2xhc3M9XCJzb3J0LWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8aW9uLXNlbGVjdFxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJwcm9wcy5zZWxlY3RlZFNvcnRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9wcy5zb3J0TGFiZWwgfHwgZ2V0U29ydEJ5TGFiZWwoKVwiXG4gICAgICAgICAgICAgICAgaW50ZXJmYWNlPVwicG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJvblNvcnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgcHJvcHMuc29ydE9wdGlvbnM7IHRyYWNrIG9wdGlvbi50b2tlbikge1xuICAgICAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIFt2YWx1ZV09XCJvcHRpb24udG9rZW5cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0U29ydE9wdGlvbkxhYmVsKG9wdGlvbikgfX1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2lvbi1zZWxlY3Q+XG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBOZXcgQ29tbWVudCBJbnB1dCAtLT5cbiAgICAgIEBpZiAocHJvcHMuc2hvd0lucHV0ICE9PSBmYWxzZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LWNvbW1lbnQtc2VjdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgICAgICBAaWYgKHByb3BzLmlucHV0Q29uZmlnPy5jdXJyZW50VXNlcj8uYXZhdGFyKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1hdmF0YXJcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWF2YXRhciBbcHJvcHNdPVwicHJvcHMuaW5wdXRDb25maWcuY3VycmVudFVzZXIuYXZhdGFyXCI+PC92YWwtYXZhdGFyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8aW9uLXRleHRhcmVhXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdDb21tZW50VGV4dFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldElucHV0UGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJwcm9wcy5pbnB1dENvbmZpZz8ubWF4TGVuZ3RoIHx8IDIwMDBcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5pbnB1dENvbmZpZz8uZGlzYWJsZWQgfHwgcHJvcHMubG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9Hcm93XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIHJvd3M9XCIyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbW1lbnQtdGV4dGFyZWFcIlxuICAgICAgICAgICAgICA+PC9pb24tdGV4dGFyZWE+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHByb3BzLmlucHV0Q29uZmlnPy5zaG93Q291bnRlciAmJiBwcm9wcy5pbnB1dENvbmZpZz8ubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoYXItY291bnRlclwiIFtjbGFzcy53YXJuaW5nXT1cImlzTmVhckxpbWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbmV3Q29tbWVudFRleHQubGVuZ3RoIH19IC8ge3sgcHJvcHMuaW5wdXRDb25maWcubWF4TGVuZ3RoIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy5pbnB1dENvbmZpZz8uc3VibWl0Q29sb3IgfHwgcHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuU3VibWl0KClcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdENvbW1lbnQoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzZW5kLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0U3VibWl0TGFiZWwoKSB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocHJvcHMubG9hZGluZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1zdGF0ZVwiPlxuICAgICAgICAgIEBmb3IgKGkgb2YgZ2V0U2tlbGV0b25BcnJheSgpOyB0cmFjayBpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tY29tbWVudFwiPlxuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uIFtwcm9wc109XCJ7IHR5cGU6ICdhdmF0YXInLCB3aWR0aDogJzM2cHgnLCBoZWlnaHQ6ICczNnB4JyB9XCI+PC92YWwtc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB0eXBlOiAndGV4dCcsIHdpZHRoOiAnMTIwcHgnLCBoZWlnaHQ6ICcxNHB4JyB9XCI+PC92YWwtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB0eXBlOiAncGFyYWdyYXBoJywgbGluZXM6IDIgfVwiPjwvdmFsLXNrZWxldG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIGlmIChwcm9wcy5jb21tZW50cyAmJiBwcm9wcy5jb21tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50cy1saXN0XCIgW2NsYXNzLndpdGgtZGl2aWRlcnNdPVwicHJvcHMuc2hvd0RpdmlkZXJzXCI+XG4gICAgICAgICAgQGZvciAoY29tbWVudCBvZiBwcm9wcy5jb21tZW50czsgdHJhY2sgY29tbWVudC50b2tlbikge1xuICAgICAgICAgICAgPHZhbC1jb21tZW50XG4gICAgICAgICAgICAgIFtwcm9wc109XCJjb21tZW50XCJcbiAgICAgICAgICAgICAgKGF1dGhvckNsaWNrKT1cImF1dGhvckNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChyZWFjdGlvbkNsaWNrKT1cInJlYWN0aW9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGlvbkNsaWNrKT1cIm9uQ29tbWVudEFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG1lbnVJdGVtQ2xpY2spPVwibWVudUl0ZW1DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAobG9hZE1vcmVDbGljayk9XCJjb21tZW50TG9hZE1vcmUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGNvbGxhcHNlVG9nZ2xlKT1cImNvbGxhcHNlVG9nZ2xlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC92YWwtY29tbWVudD5cblxuICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93RGl2aWRlcnMgJiYgISRsYXN0KSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHByb3BzLmhhc01vcmUgJiYgcHJvcHMucGFnaW5hdGlvbk1vZGUgIT09ICdpbmZpbml0ZScpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkLW1vcmUtc2VjdGlvblwiPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLmxvYWRpbmdNb3JlKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIFtjb2xvcl09XCJwcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInByb3BzLmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Mb2FkTW9yZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBkaXNwbGF5TG9hZE1vcmVMYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHByb3BzLnBhZ2luYXRpb25Nb2RlID09PSAnaW5maW5pdGUnKSB7XG4gICAgICAgICAgPGlvbi1pbmZpbml0ZS1zY3JvbGxcbiAgICAgICAgICAgIFt0aHJlc2hvbGRdPVwicHJvcHMuaW5maW5pdGVTY3JvbGxUaHJlc2hvbGQgfHwgJzEwMHB4J1wiXG4gICAgICAgICAgICBbcG9zaXRpb25dPVwicHJvcHMuaW5maW5pdGVTY3JvbGxQb3NpdGlvbiB8fCAnYm90dG9tJ1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXByb3BzLmhhc01vcmVcIlxuICAgICAgICAgICAgKGlvbkluZmluaXRlKT1cIm9uSW5maW5pdGVTY3JvbGwoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pbmZpbml0ZS1zY3JvbGwtY29udGVudFxuICAgICAgICAgICAgICBbbG9hZGluZ1NwaW5uZXJdPVwiJ2NyZXNjZW50J1wiXG4gICAgICAgICAgICAgIFtsb2FkaW5nVGV4dF09XCJkaXNwbGF5TG9hZE1vcmVMYWJlbFwiXG4gICAgICAgICAgICA+PC9pb24taW5maW5pdGUtc2Nyb2xsLWNvbnRlbnQ+XG4gICAgICAgICAgPC9pb24taW5maW5pdGUtc2Nyb2xsPlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgPGlvbi1pY29uXG4gICAgICAgICAgICBbbmFtZV09XCJwcm9wcy5lbXB0eVN0YXRlPy5pY29uIHx8ICdjaGF0YnViYmxlLWVsbGlwc2VzLW91dGxpbmUnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZW1wdHktaWNvblwiXG4gICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgPGg0IGNsYXNzPVwiZW1wdHktdGl0bGVcIj57eyBnZXRFbXB0eVRpdGxlKCkgfX08L2g0PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZW1wdHktbWVzc2FnZVwiPnt7IGdldEVtcHR5TWVzc2FnZSgpIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY29tbWVudC1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY29tbWVudC1zZWN0aW9uXG4gKlxuICogQW4gb3JnYW5pc20gY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgYSBjb21wbGV0ZSBjb21tZW50IHNlY3Rpb24gd2l0aDpcbiAqIC0gSGVhZGVyIHdpdGggdGl0bGUgYW5kIGNvdW50XG4gKiAtIFNvcnQvZmlsdGVyIG9wdGlvbnNcbiAqIC0gTmV3IGNvbW1lbnQgaW5wdXRcbiAqIC0gQ29tbWVudHMgbGlzdCB3aXRoIHZhbC1jb21tZW50XG4gKiAtIExvYWQgbW9yZSBwYWdpbmF0aW9uXG4gKiAtIEVtcHR5IHN0YXRlXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIDx2YWwtY29tbWVudC1zZWN0aW9uIFtwcm9wc109XCJ7XG4gKiAgIHRpdGxlOiAnQ29tbWVudHMnLFxuICogICBjb3VudDogNDIsXG4gKiAgIGNvbW1lbnRzOiBjb21tZW50c0FycmF5LFxuICogICBzaG93SW5wdXQ6IHRydWVcbiAqIH1cIj48L3ZhbC1jb21tZW50LXNlY3Rpb24+XG4gKlxuICogQGV4YW1wbGUgV2l0aCBzb3J0aW5nXG4gKiA8dmFsLWNvbW1lbnQtc2VjdGlvbiBbcHJvcHNdPVwie1xuICogICB0aXRsZTogJ1Jldmlld3MnLFxuICogICBjb3VudDogMTI4LFxuICogICBjb21tZW50czogcmV2aWV3cyxcbiAqICAgc29ydE9wdGlvbnM6IFtcbiAqICAgICB7IHRva2VuOiAnbmV3ZXN0JywgbGFiZWw6ICdOZXdlc3QgZmlyc3QnIH0sXG4gKiAgICAgeyB0b2tlbjogJ29sZGVzdCcsIGxhYmVsOiAnT2xkZXN0IGZpcnN0JyB9LFxuICogICAgIHsgdG9rZW46ICdwb3B1bGFyJywgbGFiZWw6ICdNb3N0IHBvcHVsYXInIH1cbiAqICAgXSxcbiAqICAgc2VsZWN0ZWRTb3J0OiAnbmV3ZXN0J1xuICogfVwiIChzb3J0Q2hhbmdlKT1cIm9uU29ydCgkZXZlbnQpXCI+PC92YWwtY29tbWVudC1zZWN0aW9uPlxuICpcbiAqIEBpbnB1dCBwcm9wczogQ29tbWVudFNlY3Rpb25NZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzZWN0aW9uXG4gKiBAb3V0cHV0IHNvcnRDaGFuZ2UgLSBTb3J0IG9wdGlvbiBjaGFuZ2VkXG4gKiBAb3V0cHV0IGNvbW1lbnRTdWJtaXQgLSBOZXcgY29tbWVudCBzdWJtaXR0ZWRcbiAqIEBvdXRwdXQgbG9hZE1vcmUgLSBMb2FkIG1vcmUgY2xpY2tlZFxuICogQG91dHB1dCBhdXRob3JDbGljayAtIENvbW1lbnQgYXV0aG9yIGNsaWNrZWQgKGJ1YmJsZWQgZnJvbSB2YWwtY29tbWVudClcbiAqIEBvdXRwdXQgcmVhY3Rpb25DbGljayAtIFJlYWN0aW9uIGNsaWNrZWQgKGJ1YmJsZWQpXG4gKiBAb3V0cHV0IGFjdGlvbkNsaWNrIC0gQWN0aW9uIGNsaWNrZWQgKGJ1YmJsZWQpXG4gKiBAb3V0cHV0IG1lbnVJdGVtQ2xpY2sgLSBNZW51IGl0ZW0gY2xpY2tlZCAoYnViYmxlZClcbiAqIEBvdXRwdXQgY29tbWVudExvYWRNb3JlIC0gTG9hZCBtb3JlIHJlcGxpZXMgY2xpY2tlZCAoYnViYmxlZClcbiAqIEBvdXRwdXQgY29sbGFwc2VUb2dnbGUgLSBDb21tZW50IGNvbGxhcHNlIHRvZ2dsZWQgKGJ1YmJsZWQpXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tZW50U2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgQElucHV0KCkgcHJvcHM6IENvbW1lbnRTZWN0aW9uTWV0YWRhdGE7XG5cbiAgLy8gU2VjdGlvbiBldmVudHNcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRTb3J0Q2hhbmdlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBjb21tZW50U3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50U3VibWl0RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBsb2FkTW9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudFNlY3Rpb25Mb2FkTW9yZUV2ZW50PigpO1xuXG4gIC8vIEJ1YmJsZWQgZXZlbnRzIGZyb20gdmFsLWNvbW1lbnRcbiAgQE91dHB1dCgpIGF1dGhvckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50QXV0aG9yQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIHJlYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRSZWFjdGlvbkNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudEFjdGlvbkNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBtZW51SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TWVudUl0ZW1DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgY29tbWVudExvYWRNb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TG9hZE1vcmVFdmVudD4oKTtcbiAgQE91dHB1dCgpIGNvbGxhcHNlVG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRva2VuOiBzdHJpbmc7IGNvbGxhcHNlZDogYm9vbGVhbiB9PigpO1xuXG4gIC8vIFJlcGx5IHN0YXRlXG4gIEBPdXRwdXQoKSByZXBseVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGNvbW1lbnRUb2tlbjogc3RyaW5nIH0+KCk7XG5cbiAgbmV3Q29tbWVudFRleHQgPSAnJztcbiAgcmVwbHlpbmdUbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgZGlzcGxheVRpdGxlID0gJyc7XG4gIGRpc3BsYXlMb2FkTW9yZUxhYmVsID0gJyc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5VGV4dHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGlzcGxheVRleHRzKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheVRpdGxlID0gdGhpcy5wcm9wcy50aXRsZSB8fCB0aGlzLmkxOG4udCgnY29tbWVudHMnKTtcbiAgICB0aGlzLmRpc3BsYXlMb2FkTW9yZUxhYmVsID0gdGhpcy5wcm9wcy5sb2FkTW9yZUxhYmVsIHx8IHRoaXMuaTE4bi50KCdsb2FkTW9yZUNvbW1lbnRzJyk7XG4gIH1cblxuICBnZXRTb3J0QnlMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnc29ydEJ5Jyk7XG4gIH1cblxuICBmb3JtYXRDb3VudChjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoY291bnQgPj0gMTAwMDAwMCkge1xuICAgICAgcmV0dXJuIChjb3VudCAvIDEwMDAwMDApLnRvRml4ZWQoMSkucmVwbGFjZSgvXFwuMCQvLCAnJykgKyAnTSc7XG4gICAgfVxuICAgIGlmIChjb3VudCA+PSAxMDAwKSB7XG4gICAgICByZXR1cm4gKGNvdW50IC8gMTAwMCkudG9GaXhlZCgxKS5yZXBsYWNlKC9cXC4wJC8sICcnKSArICdLJztcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50LnRvU3RyaW5nKCk7XG4gIH1cblxuICBnZXRTb3J0T3B0aW9uTGFiZWwob3B0aW9uOiBDb21tZW50U29ydE9wdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbi5sYWJlbDtcbiAgfVxuXG4gIGdldElucHV0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5pbnB1dENvbmZpZz8ucGxhY2Vob2xkZXIgfHwgdGhpcy5pMThuLnQoJ3dyaXRlQ29tbWVudCcpO1xuICB9XG5cbiAgZ2V0U3VibWl0TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5pbnB1dENvbmZpZz8uc3VibWl0TGFiZWwgfHwgdGhpcy5pMThuLnQoJ3B1Ymxpc2gnKTtcbiAgfVxuXG4gIGdldEVtcHR5VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5lbXB0eVN0YXRlPy50aXRsZSB8fCB0aGlzLmkxOG4udCgnbm9Db21tZW50c1lldCcpO1xuICB9XG5cbiAgZ2V0RW1wdHlNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZW1wdHlTdGF0ZT8ubWVzc2FnZSB8fCB0aGlzLmkxOG4udCgnYmVGaXJzdFRvQ29tbWVudCcpO1xuICB9XG5cbiAgZ2V0U2tlbGV0b25BcnJheSgpOiBudW1iZXJbXSB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnByb3BzLnNrZWxldG9uQ291bnQgfHwgMztcbiAgICByZXR1cm4gQXJyYXkoY291bnQpLmZpbGwoMCkubWFwKChfLCBpKSA9PiBpKTtcbiAgfVxuXG4gIGNhblN1Ym1pdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBtaW5MZW5ndGggPSB0aGlzLnByb3BzLmlucHV0Q29uZmlnPy5taW5MZW5ndGggfHwgMTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5uZXdDb21tZW50VGV4dC50cmltKCkubGVuZ3RoID49IG1pbkxlbmd0aCAmJlxuICAgICAgIXRoaXMucHJvcHMubG9hZGluZyAmJlxuICAgICAgIXRoaXMucHJvcHMuaW5wdXRDb25maWc/LmRpc2FibGVkXG4gICAgKTtcbiAgfVxuXG4gIGlzTmVhckxpbWl0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMucHJvcHMuaW5wdXRDb25maWc/Lm1heExlbmd0aCB8fCAyMDAwO1xuICAgIHJldHVybiB0aGlzLm5ld0NvbW1lbnRUZXh0Lmxlbmd0aCA+IG1heExlbmd0aCAqIDAuOTtcbiAgfVxuXG4gIG9uU29ydENoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFRva2VuID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMucHJvcHMuc29ydE9wdGlvbnM/LmZpbmQoKG8pID0+IG8udG9rZW4gPT09IHNlbGVjdGVkVG9rZW4pO1xuXG4gICAgaWYgKG9wdGlvbikge1xuICAgICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoe1xuICAgICAgICBvcHRpb24sXG4gICAgICAgIHByZXZpb3VzU29ydDogdGhpcy5wcm9wcy5zZWxlY3RlZFNvcnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvblN1Ym1pdENvbW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblN1Ym1pdCgpKSByZXR1cm47XG5cbiAgICB0aGlzLmNvbW1lbnRTdWJtaXQuZW1pdCh7XG4gICAgICBjb250ZW50OiB0aGlzLm5ld0NvbW1lbnRUZXh0LnRyaW0oKSxcbiAgICAgIHBhcmVudFRva2VuOiB0aGlzLnJlcGx5aW5nVG8gfHwgdW5kZWZpbmVkLFxuICAgICAgc2VjdGlvblRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uZXdDb21tZW50VGV4dCA9ICcnO1xuICAgIHRoaXMucmVwbHlpbmdUbyA9IG51bGw7XG4gIH1cblxuICBvbkNvbW1lbnRBY3Rpb24oZXZlbnQ6IENvbW1lbnRBY3Rpb25DbGlja0V2ZW50KTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgaXQncyBhIHJlcGx5IGFjdGlvblxuICAgIGlmIChldmVudC5hY3Rpb24udG9rZW4gPT09ICdyZXBseScpIHtcbiAgICAgIHRoaXMucmVwbHlpbmdUbyA9IGV2ZW50LmNvbW1lbnRUb2tlbjtcbiAgICAgIHRoaXMucmVwbHlTdGFydC5lbWl0KHsgY29tbWVudFRva2VuOiBldmVudC5jb21tZW50VG9rZW4gfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uTG9hZE1vcmUoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkTW9yZS5lbWl0KHtcbiAgICAgIHNlY3Rpb25Ub2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGN1cnJlbnRDb3VudDogdGhpcy5wcm9wcy5jb21tZW50cz8ubGVuZ3RoIHx8IDAsXG4gICAgfSk7XG4gIH1cblxuICBvbkluZmluaXRlU2Nyb2xsKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmUuZW1pdCh7XG4gICAgICBzZWN0aW9uVG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgICBjdXJyZW50Q291bnQ6IHRoaXMucHJvcHMuY29tbWVudHM/Lmxlbmd0aCB8fCAwLFxuICAgIH0pO1xuXG4gICAgLy8gVGhlIHBhcmVudCBjb21wb25lbnQgc2hvdWxkIGNhbGwgY29tcGxldGVJbmZpbml0ZVNjcm9sbCgpIHdoZW4gZG9uZSBsb2FkaW5nXG4gICAgLy8gU3RvcmUgcmVmZXJlbmNlIHRvIGNvbXBsZXRlIHRoZSBpbmZpbml0ZSBzY3JvbGxcbiAgICB0aGlzLmluZmluaXRlU2Nyb2xsRXZlbnQgPSBldmVudDtcbiAgfVxuXG4gIC8vIENhbGwgdGhpcyBtZXRob2QgZnJvbSBwYXJlbnQgYWZ0ZXIgbG9hZGluZyBtb3JlIGNvbW1lbnRzXG4gIGNvbXBsZXRlSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudCkge1xuICAgICAgKHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudC50YXJnZXQgYXMgSFRNTElvbkluZmluaXRlU2Nyb2xsRWxlbWVudCkuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmZpbml0ZVNjcm9sbEV2ZW50OiBDdXN0b21FdmVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8vIE1ldGhvZCB0byBwcm9ncmFtbWF0aWNhbGx5IHN0YXJ0IGEgcmVwbHlcbiAgc3RhcnRSZXBseShjb21tZW50VG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVwbHlpbmdUbyA9IGNvbW1lbnRUb2tlbjtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byBjYW5jZWwgcmVwbHlcbiAgY2FuY2VsUmVwbHkoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBseWluZ1RvID0gbnVsbDtcbiAgfVxufVxuIl19
|
|
537
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvY29tbWVudC1zZWN0aW9uL2NvbW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQWdCNUUsUUFBUSxDQUFDO0lBQ1Asa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLG1CQUFtQjtDQUNwQixDQUFD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UyxvUEFDVCxRQUFRLGlGQUNSLFdBQVcsaWFBQ1gsT0FBTywwTkFDUCxTQUFTLGtWQUNULGVBQWUsNkZBQ2YsVUFBVSx5R0FDVixpQkFBaUIsK0dBQ2pCLHdCQUF3QixtSEFDeEIsZ0JBQWdCLHlMQUNoQixlQUFlLDBHQUNmLGlCQUFpQjs7NEZBc01SLHVCQUF1QjtrQkF4Tm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFFBQVE7d0JBQ1IsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsaUJBQWlCO3FCQUNsQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzSlQ7OEJBaURRLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFHRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFHRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHtcbiAgSW9uSWNvbixcbiAgSW9uQnV0dG9uLFxuICBJb25CYWRnZSxcbiAgSW9uVGV4dGFyZWEsXG4gIElvbkl0ZW0sXG4gIElvblNlbGVjdCxcbiAgSW9uU2VsZWN0T3B0aW9uLFxuICBJb25TcGlubmVyLFxuICBJb25JbmZpbml0ZVNjcm9sbCxcbiAgSW9uSW5maW5pdGVTY3JvbGxDb250ZW50LFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hhdGJ1YmJsZXNPdXRsaW5lLFxuICBmaWx0ZXJPdXRsaW5lLFxuICBzZW5kT3V0bGluZSxcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgc3dhcFZlcnRpY2FsT3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbW1lbnQvY29tbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9za2VsZXRvbi9za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ29tbWVudFNlY3Rpb25NZXRhZGF0YSxcbiAgQ29tbWVudFNvcnRPcHRpb24sXG4gIENvbW1lbnRTb3J0Q2hhbmdlRXZlbnQsXG4gIENvbW1lbnRTdWJtaXRFdmVudCxcbiAgQ29tbWVudFNlY3Rpb25Mb2FkTW9yZUV2ZW50LFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIENvbW1lbnRBdXRob3JDbGlja0V2ZW50LFxuICBDb21tZW50UmVhY3Rpb25DbGlja0V2ZW50LFxuICBDb21tZW50QWN0aW9uQ2xpY2tFdmVudCxcbiAgQ29tbWVudE1lbnVJdGVtQ2xpY2tFdmVudCxcbiAgQ29tbWVudExvYWRNb3JlRXZlbnQsXG59IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50L3R5cGVzJztcblxuYWRkSWNvbnMoe1xuICBjaGF0YnViYmxlc091dGxpbmUsXG4gIGZpbHRlck91dGxpbmUsXG4gIHNlbmRPdXRsaW5lLFxuICBjaGF0YnViYmxlRWxsaXBzZXNPdXRsaW5lLFxuICBzd2FwVmVydGljYWxPdXRsaW5lLFxufSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jb21tZW50LXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIElvbkljb24sXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkJhZGdlLFxuICAgIElvblRleHRhcmVhLFxuICAgIElvbkl0ZW0sXG4gICAgSW9uU2VsZWN0LFxuICAgIElvblNlbGVjdE9wdGlvbixcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkluZmluaXRlU2Nyb2xsLFxuICAgIElvbkluZmluaXRlU2Nyb2xsQ29udGVudCxcbiAgICBDb21tZW50Q29tcG9uZW50LFxuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBTa2VsZXRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1zZWN0aW9uXCIgW2NsYXNzLmxvYWRpbmddPVwicHJvcHMubG9hZGluZ1wiPlxuICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hhdGJ1YmJsZXMtb3V0bGluZVwiIGNsYXNzPVwidGl0bGUtaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPGgzIGNsYXNzPVwidGl0bGVcIj57eyBkaXNwbGF5VGl0bGUgfX08L2gzPlxuICAgICAgICAgIEBpZiAocHJvcHMuc2hvd0NvdW50ICE9PSBmYWxzZSAmJiBwcm9wcy5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICA8aW9uLWJhZGdlIGNvbG9yPVwibWVkaXVtXCIgY2xhc3M9XCJjb3VudC1iYWRnZVwiPlxuICAgICAgICAgICAgICB7eyBmb3JtYXRDb3VudChwcm9wcy5jb3VudCkgfX1cbiAgICAgICAgICAgIDwvaW9uLWJhZGdlPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChwcm9wcy5zb3J0T3B0aW9ucyAmJiBwcm9wcy5zb3J0T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgY2xhc3M9XCJzb3J0LXNlbGVjdC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic3dhcC12ZXJ0aWNhbC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgY2xhc3M9XCJzb3J0LWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8aW9uLXNlbGVjdFxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJwcm9wcy5zZWxlY3RlZFNvcnRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9wcy5zb3J0TGFiZWwgfHwgZ2V0U29ydEJ5TGFiZWwoKVwiXG4gICAgICAgICAgICAgICAgaW50ZXJmYWNlPVwicG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJvblNvcnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgcHJvcHMuc29ydE9wdGlvbnM7IHRyYWNrIG9wdGlvbi50b2tlbikge1xuICAgICAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIFt2YWx1ZV09XCJvcHRpb24udG9rZW5cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0U29ydE9wdGlvbkxhYmVsKG9wdGlvbikgfX1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2lvbi1zZWxlY3Q+XG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBOZXcgQ29tbWVudCBJbnB1dCAtLT5cbiAgICAgIEBpZiAocHJvcHMuc2hvd0lucHV0ICE9PSBmYWxzZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LWNvbW1lbnQtc2VjdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgICAgICBAaWYgKHByb3BzLmlucHV0Q29uZmlnPy5jdXJyZW50VXNlcj8uYXZhdGFyKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1hdmF0YXJcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWF2YXRhciBbcHJvcHNdPVwicHJvcHMuaW5wdXRDb25maWcuY3VycmVudFVzZXIuYXZhdGFyXCI+PC92YWwtYXZhdGFyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8aW9uLXRleHRhcmVhXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdDb21tZW50VGV4dFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldElucHV0UGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJwcm9wcy5pbnB1dENvbmZpZz8ubWF4TGVuZ3RoIHx8IDIwMDBcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5pbnB1dENvbmZpZz8uZGlzYWJsZWQgfHwgcHJvcHMubG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9Hcm93XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIHJvd3M9XCIyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbW1lbnQtdGV4dGFyZWFcIlxuICAgICAgICAgICAgICA+PC9pb24tdGV4dGFyZWE+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHByb3BzLmlucHV0Q29uZmlnPy5zaG93Q291bnRlciAmJiBwcm9wcy5pbnB1dENvbmZpZz8ubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoYXItY291bnRlclwiIFtjbGFzcy53YXJuaW5nXT1cImlzTmVhckxpbWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbmV3Q29tbWVudFRleHQubGVuZ3RoIH19IC8ge3sgcHJvcHMuaW5wdXRDb25maWcubWF4TGVuZ3RoIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy5pbnB1dENvbmZpZz8uc3VibWl0Q29sb3IgfHwgcHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuU3VibWl0KClcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdENvbW1lbnQoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzZW5kLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0U3VibWl0TGFiZWwoKSB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocHJvcHMubG9hZGluZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1zdGF0ZVwiPlxuICAgICAgICAgIEBmb3IgKGkgb2YgZ2V0U2tlbGV0b25BcnJheSgpOyB0cmFjayBpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tY29tbWVudFwiPlxuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uIFtwcm9wc109XCJ7IHR5cGU6ICdhdmF0YXInLCB3aWR0aDogJzM2cHgnLCBoZWlnaHQ6ICczNnB4JyB9XCI+PC92YWwtc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB0eXBlOiAndGV4dCcsIHdpZHRoOiAnMTIwcHgnLCBoZWlnaHQ6ICcxNHB4JyB9XCI+PC92YWwtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB0eXBlOiAncGFyYWdyYXBoJywgbGluZXM6IDIgfVwiPjwvdmFsLXNrZWxldG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIGlmIChwcm9wcy5jb21tZW50cyAmJiBwcm9wcy5jb21tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50cy1saXN0XCIgW2NsYXNzLndpdGgtZGl2aWRlcnNdPVwicHJvcHMuc2hvd0RpdmlkZXJzXCI+XG4gICAgICAgICAgQGZvciAoY29tbWVudCBvZiBwcm9wcy5jb21tZW50czsgdHJhY2sgY29tbWVudC50b2tlbikge1xuICAgICAgICAgICAgPHZhbC1jb21tZW50XG4gICAgICAgICAgICAgIFtwcm9wc109XCJjb21tZW50XCJcbiAgICAgICAgICAgICAgKGF1dGhvckNsaWNrKT1cImF1dGhvckNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChyZWFjdGlvbkNsaWNrKT1cInJlYWN0aW9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGlvbkNsaWNrKT1cIm9uQ29tbWVudEFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG1lbnVJdGVtQ2xpY2spPVwibWVudUl0ZW1DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAobG9hZE1vcmVDbGljayk9XCJjb21tZW50TG9hZE1vcmUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGNvbGxhcHNlVG9nZ2xlKT1cImNvbGxhcHNlVG9nZ2xlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC92YWwtY29tbWVudD5cblxuICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93RGl2aWRlcnMgJiYgISRsYXN0KSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHByb3BzLmhhc01vcmUgJiYgcHJvcHMucGFnaW5hdGlvbk1vZGUgIT09ICdpbmZpbml0ZScpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkLW1vcmUtc2VjdGlvblwiPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLmxvYWRpbmdNb3JlKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIFtjb2xvcl09XCJwcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInByb3BzLmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Mb2FkTW9yZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBkaXNwbGF5TG9hZE1vcmVMYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHByb3BzLnBhZ2luYXRpb25Nb2RlID09PSAnaW5maW5pdGUnKSB7XG4gICAgICAgICAgPGlvbi1pbmZpbml0ZS1zY3JvbGxcbiAgICAgICAgICAgIFt0aHJlc2hvbGRdPVwicHJvcHMuaW5maW5pdGVTY3JvbGxUaHJlc2hvbGQgfHwgJzEwMHB4J1wiXG4gICAgICAgICAgICBbcG9zaXRpb25dPVwicHJvcHMuaW5maW5pdGVTY3JvbGxQb3NpdGlvbiB8fCAnYm90dG9tJ1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXByb3BzLmhhc01vcmVcIlxuICAgICAgICAgICAgKGlvbkluZmluaXRlKT1cIm9uSW5maW5pdGVTY3JvbGwoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pbmZpbml0ZS1zY3JvbGwtY29udGVudFxuICAgICAgICAgICAgICBbbG9hZGluZ1NwaW5uZXJdPVwiJ2NyZXNjZW50J1wiXG4gICAgICAgICAgICAgIFtsb2FkaW5nVGV4dF09XCJkaXNwbGF5TG9hZE1vcmVMYWJlbFwiXG4gICAgICAgICAgICA+PC9pb24taW5maW5pdGUtc2Nyb2xsLWNvbnRlbnQ+XG4gICAgICAgICAgPC9pb24taW5maW5pdGUtc2Nyb2xsPlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgPGlvbi1pY29uXG4gICAgICAgICAgICBbbmFtZV09XCJwcm9wcy5lbXB0eVN0YXRlPy5pY29uIHx8ICdjaGF0YnViYmxlLWVsbGlwc2VzLW91dGxpbmUnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZW1wdHktaWNvblwiXG4gICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgPGg0IGNsYXNzPVwiZW1wdHktdGl0bGVcIj57eyBnZXRFbXB0eVRpdGxlKCkgfX08L2g0PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZW1wdHktbWVzc2FnZVwiPnt7IGdldEVtcHR5TWVzc2FnZSgpIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY29tbWVudC1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY29tbWVudC1zZWN0aW9uXG4gKlxuICogQW4gb3JnYW5pc20gY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgYSBjb21wbGV0ZSBjb21tZW50IHNlY3Rpb24gd2l0aDpcbiAqIC0gSGVhZGVyIHdpdGggdGl0bGUgYW5kIGNvdW50XG4gKiAtIFNvcnQvZmlsdGVyIG9wdGlvbnNcbiAqIC0gTmV3IGNvbW1lbnQgaW5wdXRcbiAqIC0gQ29tbWVudHMgbGlzdCB3aXRoIHZhbC1jb21tZW50XG4gKiAtIExvYWQgbW9yZSBwYWdpbmF0aW9uXG4gKiAtIEVtcHR5IHN0YXRlXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIDx2YWwtY29tbWVudC1zZWN0aW9uIFtwcm9wc109XCJ7XG4gKiAgIHRpdGxlOiAnQ29tbWVudHMnLFxuICogICBjb3VudDogNDIsXG4gKiAgIGNvbW1lbnRzOiBjb21tZW50c0FycmF5LFxuICogICBzaG93SW5wdXQ6IHRydWVcbiAqIH1cIj48L3ZhbC1jb21tZW50LXNlY3Rpb24+XG4gKlxuICogQGV4YW1wbGUgV2l0aCBzb3J0aW5nXG4gKiA8dmFsLWNvbW1lbnQtc2VjdGlvbiBbcHJvcHNdPVwie1xuICogICB0aXRsZTogJ1Jldmlld3MnLFxuICogICBjb3VudDogMTI4LFxuICogICBjb21tZW50czogcmV2aWV3cyxcbiAqICAgc29ydE9wdGlvbnM6IFtcbiAqICAgICB7IHRva2VuOiAnbmV3ZXN0JywgbGFiZWw6ICdOZXdlc3QgZmlyc3QnIH0sXG4gKiAgICAgeyB0b2tlbjogJ29sZGVzdCcsIGxhYmVsOiAnT2xkZXN0IGZpcnN0JyB9LFxuICogICAgIHsgdG9rZW46ICdwb3B1bGFyJywgbGFiZWw6ICdNb3N0IHBvcHVsYXInIH1cbiAqICAgXSxcbiAqICAgc2VsZWN0ZWRTb3J0OiAnbmV3ZXN0J1xuICogfVwiIChzb3J0Q2hhbmdlKT1cIm9uU29ydCgkZXZlbnQpXCI+PC92YWwtY29tbWVudC1zZWN0aW9uPlxuICpcbiAqIEBpbnB1dCBwcm9wczogQ29tbWVudFNlY3Rpb25NZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzZWN0aW9uXG4gKiBAb3V0cHV0IHNvcnRDaGFuZ2UgLSBTb3J0IG9wdGlvbiBjaGFuZ2VkXG4gKiBAb3V0cHV0IGNvbW1lbnRTdWJtaXQgLSBOZXcgY29tbWVudCBzdWJtaXR0ZWRcbiAqIEBvdXRwdXQgbG9hZE1vcmUgLSBMb2FkIG1vcmUgY2xpY2tlZFxuICogQG91dHB1dCBhdXRob3JDbGljayAtIENvbW1lbnQgYXV0aG9yIGNsaWNrZWQgKGJ1YmJsZWQgZnJvbSB2YWwtY29tbWVudClcbiAqIEBvdXRwdXQgcmVhY3Rpb25DbGljayAtIFJlYWN0aW9uIGNsaWNrZWQgKGJ1YmJsZWQpXG4gKiBAb3V0cHV0IGFjdGlvbkNsaWNrIC0gQWN0aW9uIGNsaWNrZWQgKGJ1YmJsZWQpXG4gKiBAb3V0cHV0IG1lbnVJdGVtQ2xpY2sgLSBNZW51IGl0ZW0gY2xpY2tlZCAoYnViYmxlZClcbiAqIEBvdXRwdXQgY29tbWVudExvYWRNb3JlIC0gTG9hZCBtb3JlIHJlcGxpZXMgY2xpY2tlZCAoYnViYmxlZClcbiAqIEBvdXRwdXQgY29sbGFwc2VUb2dnbGUgLSBDb21tZW50IGNvbGxhcHNlIHRvZ2dsZWQgKGJ1YmJsZWQpXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tZW50U2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgQElucHV0KCkgcHJvcHM6IENvbW1lbnRTZWN0aW9uTWV0YWRhdGE7XG5cbiAgLy8gU2VjdGlvbiBldmVudHNcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRTb3J0Q2hhbmdlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBjb21tZW50U3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50U3VibWl0RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBsb2FkTW9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudFNlY3Rpb25Mb2FkTW9yZUV2ZW50PigpO1xuXG4gIC8vIEJ1YmJsZWQgZXZlbnRzIGZyb20gdmFsLWNvbW1lbnRcbiAgQE91dHB1dCgpIGF1dGhvckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50QXV0aG9yQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIHJlYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRSZWFjdGlvbkNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudEFjdGlvbkNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBtZW51SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TWVudUl0ZW1DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgY29tbWVudExvYWRNb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TG9hZE1vcmVFdmVudD4oKTtcbiAgQE91dHB1dCgpIGNvbGxhcHNlVG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRva2VuOiBzdHJpbmc7IGNvbGxhcHNlZDogYm9vbGVhbiB9PigpO1xuXG4gIC8vIFJlcGx5IHN0YXRlXG4gIEBPdXRwdXQoKSByZXBseVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGNvbW1lbnRUb2tlbjogc3RyaW5nIH0+KCk7XG5cbiAgbmV3Q29tbWVudFRleHQgPSAnJztcbiAgcmVwbHlpbmdUbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgZGlzcGxheVRpdGxlID0gJyc7XG4gIGRpc3BsYXlMb2FkTW9yZUxhYmVsID0gJyc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5VGV4dHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGlzcGxheVRleHRzKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheVRpdGxlID0gdGhpcy5wcm9wcy50aXRsZSB8fCB0aGlzLmkxOG4udCgnY29tbWVudHMnKTtcbiAgICB0aGlzLmRpc3BsYXlMb2FkTW9yZUxhYmVsID0gdGhpcy5wcm9wcy5sb2FkTW9yZUxhYmVsIHx8IHRoaXMuaTE4bi50KCdsb2FkTW9yZUNvbW1lbnRzJyk7XG4gIH1cblxuICBnZXRTb3J0QnlMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnc29ydEJ5Jyk7XG4gIH1cblxuICBmb3JtYXRDb3VudChjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoY291bnQgPj0gMTAwMDAwMCkge1xuICAgICAgcmV0dXJuIChjb3VudCAvIDEwMDAwMDApLnRvRml4ZWQoMSkucmVwbGFjZSgvXFwuMCQvLCAnJykgKyAnTSc7XG4gICAgfVxuICAgIGlmIChjb3VudCA+PSAxMDAwKSB7XG4gICAgICByZXR1cm4gKGNvdW50IC8gMTAwMCkudG9GaXhlZCgxKS5yZXBsYWNlKC9cXC4wJC8sICcnKSArICdLJztcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50LnRvU3RyaW5nKCk7XG4gIH1cblxuICBnZXRTb3J0T3B0aW9uTGFiZWwob3B0aW9uOiBDb21tZW50U29ydE9wdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbi5sYWJlbDtcbiAgfVxuXG4gIGdldElucHV0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5pbnB1dENvbmZpZz8ucGxhY2Vob2xkZXIgfHwgdGhpcy5pMThuLnQoJ3dyaXRlQ29tbWVudCcpO1xuICB9XG5cbiAgZ2V0U3VibWl0TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5pbnB1dENvbmZpZz8uc3VibWl0TGFiZWwgfHwgdGhpcy5pMThuLnQoJ3B1Ymxpc2gnKTtcbiAgfVxuXG4gIGdldEVtcHR5VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5lbXB0eVN0YXRlPy50aXRsZSB8fCB0aGlzLmkxOG4udCgnbm9Db21tZW50c1lldCcpO1xuICB9XG5cbiAgZ2V0RW1wdHlNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZW1wdHlTdGF0ZT8ubWVzc2FnZSB8fCB0aGlzLmkxOG4udCgnYmVGaXJzdFRvQ29tbWVudCcpO1xuICB9XG5cbiAgZ2V0U2tlbGV0b25BcnJheSgpOiBudW1iZXJbXSB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnByb3BzLnNrZWxldG9uQ291bnQgfHwgMztcbiAgICByZXR1cm4gQXJyYXkoY291bnQpLmZpbGwoMCkubWFwKChfLCBpKSA9PiBpKTtcbiAgfVxuXG4gIGNhblN1Ym1pdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBtaW5MZW5ndGggPSB0aGlzLnByb3BzLmlucHV0Q29uZmlnPy5taW5MZW5ndGggfHwgMTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5uZXdDb21tZW50VGV4dC50cmltKCkubGVuZ3RoID49IG1pbkxlbmd0aCAmJlxuICAgICAgIXRoaXMucHJvcHMubG9hZGluZyAmJlxuICAgICAgIXRoaXMucHJvcHMuaW5wdXRDb25maWc/LmRpc2FibGVkXG4gICAgKTtcbiAgfVxuXG4gIGlzTmVhckxpbWl0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMucHJvcHMuaW5wdXRDb25maWc/Lm1heExlbmd0aCB8fCAyMDAwO1xuICAgIHJldHVybiB0aGlzLm5ld0NvbW1lbnRUZXh0Lmxlbmd0aCA+IG1heExlbmd0aCAqIDAuOTtcbiAgfVxuXG4gIG9uU29ydENoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFRva2VuID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMucHJvcHMuc29ydE9wdGlvbnM/LmZpbmQoKG8pID0+IG8udG9rZW4gPT09IHNlbGVjdGVkVG9rZW4pO1xuXG4gICAgaWYgKG9wdGlvbikge1xuICAgICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoe1xuICAgICAgICBvcHRpb24sXG4gICAgICAgIHByZXZpb3VzU29ydDogdGhpcy5wcm9wcy5zZWxlY3RlZFNvcnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvblN1Ym1pdENvbW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblN1Ym1pdCgpKSByZXR1cm47XG5cbiAgICB0aGlzLmNvbW1lbnRTdWJtaXQuZW1pdCh7XG4gICAgICBjb250ZW50OiB0aGlzLm5ld0NvbW1lbnRUZXh0LnRyaW0oKSxcbiAgICAgIHBhcmVudFRva2VuOiB0aGlzLnJlcGx5aW5nVG8gfHwgdW5kZWZpbmVkLFxuICAgICAgc2VjdGlvblRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uZXdDb21tZW50VGV4dCA9ICcnO1xuICAgIHRoaXMucmVwbHlpbmdUbyA9IG51bGw7XG4gIH1cblxuICBvbkNvbW1lbnRBY3Rpb24oZXZlbnQ6IENvbW1lbnRBY3Rpb25DbGlja0V2ZW50KTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgaXQncyBhIHJlcGx5IGFjdGlvblxuICAgIGlmIChldmVudC5hY3Rpb24udG9rZW4gPT09ICdyZXBseScpIHtcbiAgICAgIHRoaXMucmVwbHlpbmdUbyA9IGV2ZW50LmNvbW1lbnRUb2tlbjtcbiAgICAgIHRoaXMucmVwbHlTdGFydC5lbWl0KHsgY29tbWVudFRva2VuOiBldmVudC5jb21tZW50VG9rZW4gfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uTG9hZE1vcmUoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkTW9yZS5lbWl0KHtcbiAgICAgIHNlY3Rpb25Ub2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGN1cnJlbnRDb3VudDogdGhpcy5wcm9wcy5jb21tZW50cz8ubGVuZ3RoIHx8IDAsXG4gICAgfSk7XG4gIH1cblxuICBvbkluZmluaXRlU2Nyb2xsKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmUuZW1pdCh7XG4gICAgICBzZWN0aW9uVG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgICBjdXJyZW50Q291bnQ6IHRoaXMucHJvcHMuY29tbWVudHM/Lmxlbmd0aCB8fCAwLFxuICAgIH0pO1xuXG4gICAgLy8gVGhlIHBhcmVudCBjb21wb25lbnQgc2hvdWxkIGNhbGwgY29tcGxldGVJbmZpbml0ZVNjcm9sbCgpIHdoZW4gZG9uZSBsb2FkaW5nXG4gICAgLy8gU3RvcmUgcmVmZXJlbmNlIHRvIGNvbXBsZXRlIHRoZSBpbmZpbml0ZSBzY3JvbGxcbiAgICB0aGlzLmluZmluaXRlU2Nyb2xsRXZlbnQgPSBldmVudDtcbiAgfVxuXG4gIC8vIENhbGwgdGhpcyBtZXRob2QgZnJvbSBwYXJlbnQgYWZ0ZXIgbG9hZGluZyBtb3JlIGNvbW1lbnRzXG4gIGNvbXBsZXRlSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudCkge1xuICAgICAgKHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudC50YXJnZXQgYXMgSFRNTElvbkluZmluaXRlU2Nyb2xsRWxlbWVudCkuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmZpbml0ZVNjcm9sbEV2ZW50OiBDdXN0b21FdmVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8vIE1ldGhvZCB0byBwcm9ncmFtbWF0aWNhbGx5IHN0YXJ0IGEgcmVwbHlcbiAgc3RhcnRSZXBseShjb21tZW50VG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVwbHlpbmdUbyA9IGNvbW1lbnRUb2tlbjtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byBjYW5jZWwgcmVwbHlcbiAgY2FuY2VsUmVwbHkoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBseWluZ1RvID0gbnVsbDtcbiAgfVxufVxuIl19
|