valtech-components 4.0.80 → 4.0.83
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/molecules/feedback-form/feedback-form.component.mjs +88 -63
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +83 -60
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/feedback-form/feedback-form.component.d.ts +6 -3
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,29 +1,65 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, EventEmitter, Input, Output, inject, signal } from '@angular/core';
|
|
3
3
|
import { Validators } from '@angular/forms';
|
|
4
|
-
import { IonButton
|
|
5
|
-
import { addIcons } from 'ionicons';
|
|
6
|
-
import { checkmarkCircleOutline, closeCircleOutline } from 'ionicons/icons';
|
|
4
|
+
import { IonButton } from '@ionic/angular/standalone';
|
|
7
5
|
import { FeedbackService, DEFAULT_FEEDBACK_TYPE_OPTIONS } from '../../../services/feedback';
|
|
8
6
|
import { I18nService } from '../../../services/i18n';
|
|
7
|
+
import { ToastService } from '../../../services/toast.service';
|
|
8
|
+
import { ValtechErrorService } from '../../../services/errors';
|
|
9
9
|
import { ComponentStates, InputType } from '../../types';
|
|
10
10
|
import { FormComponent } from '../../organisms/form/form.component';
|
|
11
11
|
import { AttachmentUploaderComponent } from '../../organisms/attachment-uploader/attachment-uploader.component';
|
|
12
|
+
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
13
|
+
import { TitleComponent } from '../../atoms/title/title.component';
|
|
12
14
|
import * as i0 from "@angular/core";
|
|
13
15
|
import * as i1 from "@angular/common";
|
|
16
|
+
const FEEDBACK_FORM_I18N = {
|
|
17
|
+
es: {
|
|
18
|
+
formTitle: 'Enviar feedback',
|
|
19
|
+
formSubtitle: 'Cuéntanos qué piensas. Bugs, sugerencias y mejoras.',
|
|
20
|
+
feedbackType: 'Tipo',
|
|
21
|
+
title: 'Título',
|
|
22
|
+
titlePlaceholder: 'Resumen corto (5–120 caracteres)',
|
|
23
|
+
titleValidation: 'El título debe tener entre 5 y 120 caracteres',
|
|
24
|
+
description: 'Descripción',
|
|
25
|
+
descriptionPlaceholder: 'Describe el problema o sugerencia en detalle...',
|
|
26
|
+
descriptionHint: 'Capturamos automáticamente tu navegador, SO y URL actual.',
|
|
27
|
+
descriptionValidation: 'La descripción debe tener entre 10 y 2000 caracteres',
|
|
28
|
+
submit: 'Enviar',
|
|
29
|
+
feedbackSuccess: '¡Gracias por tu feedback!',
|
|
30
|
+
feedbackError: 'No se pudo enviar el feedback. Inténtalo de nuevo.',
|
|
31
|
+
},
|
|
32
|
+
en: {
|
|
33
|
+
formTitle: 'Send feedback',
|
|
34
|
+
formSubtitle: 'Tell us what you think. Bugs, suggestions and improvements.',
|
|
35
|
+
feedbackType: 'Type',
|
|
36
|
+
title: 'Title',
|
|
37
|
+
titlePlaceholder: 'Short summary (5–120 chars)',
|
|
38
|
+
titleValidation: 'Title must be between 5 and 120 characters',
|
|
39
|
+
description: 'Description',
|
|
40
|
+
descriptionPlaceholder: 'Describe the problem or suggestion in detail...',
|
|
41
|
+
descriptionHint: 'We automatically capture your browser, OS and current URL.',
|
|
42
|
+
descriptionValidation: 'Description must be between 10 and 2000 characters',
|
|
43
|
+
submit: 'Send',
|
|
44
|
+
feedbackSuccess: 'Thanks for your feedback!',
|
|
45
|
+
feedbackError: 'Could not send feedback. Please try again.',
|
|
46
|
+
},
|
|
47
|
+
};
|
|
14
48
|
export class FeedbackFormComponent {
|
|
15
49
|
constructor() {
|
|
16
50
|
this.props = {};
|
|
17
51
|
this.onSubmit = new EventEmitter();
|
|
18
52
|
this.onCancel = new EventEmitter();
|
|
53
|
+
this.onError = new EventEmitter();
|
|
19
54
|
this.i18n = inject(I18nService);
|
|
20
55
|
this.feedbackService = inject(FeedbackService);
|
|
56
|
+
this.toast = inject(ToastService);
|
|
57
|
+
this.errors = inject(ValtechErrorService);
|
|
21
58
|
this.typeOptions = DEFAULT_FEEDBACK_TYPE_OPTIONS;
|
|
22
59
|
this.isSubmitting = signal(false);
|
|
23
|
-
this.
|
|
24
|
-
this.error = signal(null);
|
|
60
|
+
this.uploadFn = (file) => this.feedbackService.uploadAttachment(file);
|
|
25
61
|
this.currentAttachments = [];
|
|
26
|
-
|
|
62
|
+
this.i18n.registerDefaults('FeedbackForm', FEEDBACK_FORM_I18N);
|
|
27
63
|
}
|
|
28
64
|
ngOnInit() {
|
|
29
65
|
if (this.props.enabledTypes?.length) {
|
|
@@ -46,7 +82,7 @@ export class FeedbackFormComponent {
|
|
|
46
82
|
fields.push({
|
|
47
83
|
token: 'feedback-type',
|
|
48
84
|
name: 'type',
|
|
49
|
-
label: this.
|
|
85
|
+
label: this.tt('feedbackType'),
|
|
50
86
|
hint: '',
|
|
51
87
|
placeholder: '',
|
|
52
88
|
type: InputType.SELECT,
|
|
@@ -61,32 +97,32 @@ export class FeedbackFormComponent {
|
|
|
61
97
|
fields.push({
|
|
62
98
|
token: 'feedback-title',
|
|
63
99
|
name: 'title',
|
|
64
|
-
label: this.props.titleLabel ?? this.
|
|
100
|
+
label: this.props.titleLabel ?? this.tt('title'),
|
|
65
101
|
hint: '',
|
|
66
|
-
placeholder: this.props.titlePlaceholder ?? this.
|
|
102
|
+
placeholder: this.props.titlePlaceholder ?? this.tt('titlePlaceholder'),
|
|
67
103
|
type: InputType.TEXT,
|
|
68
104
|
order: 2,
|
|
69
|
-
validators: [Validators.required, Validators.minLength(5), Validators.maxLength(
|
|
105
|
+
validators: [Validators.required, Validators.minLength(5), Validators.maxLength(120)],
|
|
70
106
|
errors: {
|
|
71
|
-
required: this.
|
|
72
|
-
minlength: this.
|
|
73
|
-
maxlength: this.
|
|
107
|
+
required: this.tt('titleValidation'),
|
|
108
|
+
minlength: this.tt('titleValidation'),
|
|
109
|
+
maxlength: this.tt('titleValidation'),
|
|
74
110
|
},
|
|
75
111
|
state: ComponentStates.ENABLED,
|
|
76
112
|
}, {
|
|
77
113
|
token: 'feedback-description',
|
|
78
114
|
name: 'description',
|
|
79
|
-
label: this.props.descriptionLabel ?? this.
|
|
80
|
-
hint: '',
|
|
81
|
-
placeholder: this.props.descriptionPlaceholder ?? this.
|
|
115
|
+
label: this.props.descriptionLabel ?? this.tt('description'),
|
|
116
|
+
hint: this.tt('descriptionHint'),
|
|
117
|
+
placeholder: this.props.descriptionPlaceholder ?? this.tt('descriptionPlaceholder'),
|
|
82
118
|
type: InputType.TEXTAREA,
|
|
83
119
|
order: 3,
|
|
84
120
|
range: { min: 10, max: 2000 },
|
|
85
121
|
validators: [Validators.required, Validators.minLength(10), Validators.maxLength(2000)],
|
|
86
122
|
errors: {
|
|
87
|
-
required: this.
|
|
88
|
-
minlength: this.
|
|
89
|
-
maxlength: this.
|
|
123
|
+
required: this.tt('descriptionValidation'),
|
|
124
|
+
minlength: this.tt('descriptionValidation'),
|
|
125
|
+
maxlength: this.tt('descriptionValidation'),
|
|
90
126
|
},
|
|
91
127
|
state: ComponentStates.ENABLED,
|
|
92
128
|
});
|
|
@@ -97,7 +133,7 @@ export class FeedbackFormComponent {
|
|
|
97
133
|
type: 'submit',
|
|
98
134
|
color: 'dark',
|
|
99
135
|
shape: 'round',
|
|
100
|
-
text: this.props.submitButtonText ?? this.
|
|
136
|
+
text: this.props.submitButtonText ?? this.tt('submit'),
|
|
101
137
|
state: ComponentStates.ENABLED,
|
|
102
138
|
expand: 'block',
|
|
103
139
|
},
|
|
@@ -110,8 +146,6 @@ export class FeedbackFormComponent {
|
|
|
110
146
|
if (this.currentAttachments.some(a => a.status === 'uploading'))
|
|
111
147
|
return;
|
|
112
148
|
this.isSubmitting.set(true);
|
|
113
|
-
this.error.set(null);
|
|
114
|
-
this.isSuccess.set(false);
|
|
115
149
|
this.formProps.state = ComponentStates.WORKING;
|
|
116
150
|
this.formProps.actions.state = ComponentStates.WORKING;
|
|
117
151
|
try {
|
|
@@ -120,11 +154,21 @@ export class FeedbackFormComponent {
|
|
|
120
154
|
const description = submitted.fields['description'];
|
|
121
155
|
const attachmentUrls = this.currentAttachments.filter(a => a.status === 'ready').map(a => a.url);
|
|
122
156
|
const response = await this.feedbackService.createAsync(type, title, description, attachmentUrls, this.props.contentRef);
|
|
123
|
-
this.
|
|
157
|
+
this.toast.show({
|
|
158
|
+
message: this.props.successMessage ?? this.tt('feedbackSuccess'),
|
|
159
|
+
duration: 2500,
|
|
160
|
+
color: 'dark',
|
|
161
|
+
position: 'top',
|
|
162
|
+
});
|
|
124
163
|
this.onSubmit.emit({ response, type, title, attachmentUrls });
|
|
125
164
|
}
|
|
126
165
|
catch (err) {
|
|
127
|
-
this.
|
|
166
|
+
this.errors.handle(err, {
|
|
167
|
+
context: 'feedback-form.submit',
|
|
168
|
+
fallbackKey: 'feedbackError',
|
|
169
|
+
i18nNamespace: 'FeedbackForm',
|
|
170
|
+
});
|
|
171
|
+
this.onError.emit(err);
|
|
128
172
|
}
|
|
129
173
|
finally {
|
|
130
174
|
this.isSubmitting.set(false);
|
|
@@ -138,36 +182,27 @@ export class FeedbackFormComponent {
|
|
|
138
182
|
onCancelClick() {
|
|
139
183
|
this.onCancel.emit();
|
|
140
184
|
}
|
|
185
|
+
tt(key) {
|
|
186
|
+
return this.i18n.t(key, 'FeedbackForm');
|
|
187
|
+
}
|
|
141
188
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeedbackFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
142
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FeedbackFormComponent, isStandalone: true, selector: "val-feedback-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onCancel: "onCancel" }, ngImport: i0, template: `
|
|
189
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FeedbackFormComponent, isStandalone: true, selector: "val-feedback-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onCancel: "onCancel", onError: "onError" }, ngImport: i0, template: `
|
|
143
190
|
<div class="feedback-form-wrapper" [class.compact]="props.compact" [ngClass]="props.cssClass">
|
|
144
191
|
@if (props.showTitle) {
|
|
145
192
|
<div class="form-header">
|
|
146
|
-
<
|
|
147
|
-
<
|
|
193
|
+
<val-display [props]="{ size: 'small', color: 'dark', content: props.pageTitle || tt('formTitle') }" />
|
|
194
|
+
<val-title
|
|
195
|
+
[props]="{ size: 'large', color: 'dark', bold: false, content: props.pageSubtitle || tt('formSubtitle') }"
|
|
196
|
+
/>
|
|
148
197
|
</div>
|
|
149
198
|
}
|
|
150
199
|
<val-form [props]="formProps" (onSubmit)="handleFormSubmit($event)">
|
|
151
200
|
@if (props.showAttachments !== false) {
|
|
152
201
|
<val-attachment-uploader
|
|
153
|
-
[props]="{ maxFiles: 5 }"
|
|
202
|
+
[props]="{ maxFiles: 5, uploadFn: uploadFn }"
|
|
154
203
|
(attachmentsChange)="onAttachmentsChange($event)"
|
|
155
204
|
></val-attachment-uploader>
|
|
156
205
|
}
|
|
157
|
-
|
|
158
|
-
@if (error()) {
|
|
159
|
-
<div class="feedback-alert error">
|
|
160
|
-
<ion-icon name="close-circle-outline" aria-hidden="true"></ion-icon>
|
|
161
|
-
<span>{{ error() }}</span>
|
|
162
|
-
</div>
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
@if (isSuccess()) {
|
|
166
|
-
<div class="feedback-alert success">
|
|
167
|
-
<ion-icon name="checkmark-circle-outline" aria-hidden="true"></ion-icon>
|
|
168
|
-
<span>{{ props.successMessage || i18n.t('feedbackSuccess') }}</span>
|
|
169
|
-
</div>
|
|
170
|
-
}
|
|
171
206
|
</val-form>
|
|
172
207
|
|
|
173
208
|
@if (props.cancelButtonText) {
|
|
@@ -176,39 +211,27 @@ export class FeedbackFormComponent {
|
|
|
176
211
|
</ion-button>
|
|
177
212
|
}
|
|
178
213
|
</div>
|
|
179
|
-
`, isInline: true, styles: [".feedback-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.form-header{margin-bottom:8px}
|
|
214
|
+
`, isInline: true, styles: [".feedback-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.form-header{margin-bottom:8px}val-attachment-uploader{display:block;margin-top:16px;margin-bottom:8px}.cancel-button{margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: AttachmentUploaderComponent, selector: "val-attachment-uploader", inputs: ["props"], outputs: ["attachmentsChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { 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"] }] }); }
|
|
180
215
|
}
|
|
181
216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeedbackFormComponent, decorators: [{
|
|
182
217
|
type: Component,
|
|
183
|
-
args: [{ selector: 'val-feedback-form', standalone: true, imports: [CommonModule, FormComponent, AttachmentUploaderComponent,
|
|
218
|
+
args: [{ selector: 'val-feedback-form', standalone: true, imports: [CommonModule, FormComponent, AttachmentUploaderComponent, DisplayComponent, TitleComponent, IonButton], template: `
|
|
184
219
|
<div class="feedback-form-wrapper" [class.compact]="props.compact" [ngClass]="props.cssClass">
|
|
185
220
|
@if (props.showTitle) {
|
|
186
221
|
<div class="form-header">
|
|
187
|
-
<
|
|
188
|
-
<
|
|
222
|
+
<val-display [props]="{ size: 'small', color: 'dark', content: props.pageTitle || tt('formTitle') }" />
|
|
223
|
+
<val-title
|
|
224
|
+
[props]="{ size: 'large', color: 'dark', bold: false, content: props.pageSubtitle || tt('formSubtitle') }"
|
|
225
|
+
/>
|
|
189
226
|
</div>
|
|
190
227
|
}
|
|
191
228
|
<val-form [props]="formProps" (onSubmit)="handleFormSubmit($event)">
|
|
192
229
|
@if (props.showAttachments !== false) {
|
|
193
230
|
<val-attachment-uploader
|
|
194
|
-
[props]="{ maxFiles: 5 }"
|
|
231
|
+
[props]="{ maxFiles: 5, uploadFn: uploadFn }"
|
|
195
232
|
(attachmentsChange)="onAttachmentsChange($event)"
|
|
196
233
|
></val-attachment-uploader>
|
|
197
234
|
}
|
|
198
|
-
|
|
199
|
-
@if (error()) {
|
|
200
|
-
<div class="feedback-alert error">
|
|
201
|
-
<ion-icon name="close-circle-outline" aria-hidden="true"></ion-icon>
|
|
202
|
-
<span>{{ error() }}</span>
|
|
203
|
-
</div>
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
@if (isSuccess()) {
|
|
207
|
-
<div class="feedback-alert success">
|
|
208
|
-
<ion-icon name="checkmark-circle-outline" aria-hidden="true"></ion-icon>
|
|
209
|
-
<span>{{ props.successMessage || i18n.t('feedbackSuccess') }}</span>
|
|
210
|
-
</div>
|
|
211
|
-
}
|
|
212
235
|
</val-form>
|
|
213
236
|
|
|
214
237
|
@if (props.cancelButtonText) {
|
|
@@ -217,12 +240,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
217
240
|
</ion-button>
|
|
218
241
|
}
|
|
219
242
|
</div>
|
|
220
|
-
`, styles: [".feedback-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.form-header{margin-bottom:8px}
|
|
243
|
+
`, styles: [".feedback-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.form-header{margin-bottom:8px}val-attachment-uploader{display:block;margin-top:16px;margin-bottom:8px}.cancel-button{margin-top:8px}\n"] }]
|
|
221
244
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
222
245
|
type: Input
|
|
223
246
|
}], onSubmit: [{
|
|
224
247
|
type: Output
|
|
225
248
|
}], onCancel: [{
|
|
226
249
|
type: Output
|
|
250
|
+
}], onError: [{
|
|
251
|
+
type: Output
|
|
227
252
|
}] } });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZGJhY2stZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZlZWRiYWNrLWZvcm0vZmVlZGJhY2stZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQXdELFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7OztBQXlHaEgsTUFBTSxPQUFPLHFCQUFxQjtJQWtCaEM7UUFqQlMsVUFBSyxHQUF5QixFQUFFLENBQUM7UUFFaEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ25ELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXBDLFNB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SUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7WUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUF1QjtRQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOytHQXZKVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixrS0FqR3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNULG9zQkF0Q1MsWUFBWSw2SEFBRSxhQUFhLDhIQUFFLDJCQUEyQix1SEFBRSxTQUFTLG9QQUFFLE9BQU87OzRGQWtHM0UscUJBQXFCO2tCQXJHakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSwyQkFBMkIsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQzdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNUO3dEQTZEUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZWNrbWFya0NpcmNsZU91dGxpbmUsIGNsb3NlQ2lyY2xlT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgRmVlZGJhY2tTZXJ2aWNlLCBGZWVkYmFja1R5cGUsIERFRkFVTFRfRkVFREJBQ0tfVFlQRV9PUFRJT05TIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmVlZGJhY2snO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dE9wdGlvbiwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEF0dGFjaG1lbnRVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9hdHRhY2htZW50LXVwbG9hZGVyL2F0dGFjaG1lbnQtdXBsb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEF0dGFjaG1lbnRJdGVtIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL2F0dGFjaG1lbnQtdXBsb2FkZXIvdHlwZXMnO1xuaW1wb3J0IHsgRmVlZGJhY2tGb3JtTWV0YWRhdGEsIEZlZWRiYWNrU3VibWl0RXZlbnQgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWZlZWRiYWNrLWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3JtQ29tcG9uZW50LCBBdHRhY2htZW50VXBsb2FkZXJDb21wb25lbnQsIElvbkJ1dHRvbiwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrLWZvcm0td3JhcHBlclwiIFtjbGFzcy5jb21wYWN0XT1cInByb3BzLmNvbXBhY3RcIiBbbmdDbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiPlxuICAgICAgQGlmIChwcm9wcy5zaG93VGl0bGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiZm9ybS10aXRsZVwiPnt7IHByb3BzLnBhZ2VUaXRsZSB8fCBpMThuLnQoJ2Zvcm1UaXRsZScpIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImZvcm0tc3VidGl0bGVcIj57eyBwcm9wcy5wYWdlU3VidGl0bGUgfHwgaTE4bi50KCdmb3JtU3VidGl0bGUnKSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cImZvcm1Qcm9wc1wiIChvblN1Ym1pdCk9XCJoYW5kbGVGb3JtU3VibWl0KCRldmVudClcIj5cbiAgICAgICAgQGlmIChwcm9wcy5zaG93QXR0YWNobWVudHMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgPHZhbC1hdHRhY2htZW50LXVwbG9hZGVyXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBtYXhGaWxlczogNSB9XCJcbiAgICAgICAgICAgIChhdHRhY2htZW50c0NoYW5nZSk9XCJvbkF0dGFjaG1lbnRzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID48L3ZhbC1hdHRhY2htZW50LXVwbG9hZGVyPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChlcnJvcigpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrLWFsZXJ0IGVycm9yXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLWNpcmNsZS1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGVycm9yKCkgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGlzU3VjY2VzcygpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrLWFsZXJ0IHN1Y2Nlc3NcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHByb3BzLnN1Y2Nlc3NNZXNzYWdlIHx8IGkxOG4udCgnZmVlZGJhY2tTdWNjZXNzJykgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvdmFsLWZvcm0+XG5cbiAgICAgIEBpZiAocHJvcHMuY2FuY2VsQnV0dG9uVGV4dCkge1xuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwibWVkaXVtXCIgZXhwYW5kPVwiYmxvY2tcIiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiAoY2xpY2spPVwib25DYW5jZWxDbGljaygpXCI+XG4gICAgICAgICAge3sgcHJvcHMuY2FuY2VsQnV0dG9uVGV4dCB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5mZWVkYmFjay1mb3JtLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcblxuICAgICAgICAmLmNvbXBhY3Qge1xuICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5mb3JtLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIH1cblxuICAgICAgLmZvcm0tdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IpO1xuICAgICAgfVxuXG4gICAgICAuZm9ybS1zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IpO1xuICAgICAgfVxuXG4gICAgICAuZmVlZGJhY2stYWxlcnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcblxuICAgICAgICAmLmVycm9yIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLXRpbnQpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLXNoYWRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc3VjY2VzcyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3MtdGludCk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdWNjZXNzLXNoYWRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlvbi1pY29uIHtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNhbmNlbC1idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVlZGJhY2tGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IEZlZWRiYWNrRm9ybU1ldGFkYXRhID0ge307XG5cbiAgQE91dHB1dCgpIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxGZWVkYmFja1N1Ym1pdEV2ZW50PigpO1xuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGZlZWRiYWNrU2VydmljZSA9IGluamVjdChGZWVkYmFja1NlcnZpY2UpO1xuXG4gIGZvcm1Qcm9wcyE6IEZvcm1NZXRhZGF0YTtcbiAgdHlwZU9wdGlvbnMgPSBERUZBVUxUX0ZFRURCQUNLX1RZUEVfT1BUSU9OUztcblxuICBpc1N1Ym1pdHRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBpc1N1Y2Nlc3MgPSBzaWduYWwoZmFsc2UpO1xuICBlcnJvciA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIGN1cnJlbnRBdHRhY2htZW50czogQXR0YWNobWVudEl0ZW1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSwgY2xvc2VDaXJjbGVPdXRsaW5lIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuZW5hYmxlZFR5cGVzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudHlwZU9wdGlvbnMgPSB0aGlzLnR5cGVPcHRpb25zLmZpbHRlcihvcHQgPT4gdGhpcy5wcm9wcy5lbmFibGVkVHlwZXMhLmluY2x1ZGVzKG9wdC52YWx1ZSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy50eXBlT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnR5cGVPcHRpb25zID0gdGhpcy5wcm9wcy50eXBlT3B0aW9ucztcbiAgICB9XG4gICAgdGhpcy5mb3JtUHJvcHMgPSB0aGlzLmJ1aWxkRm9ybVByb3BzKCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybVByb3BzKCk6IEZvcm1NZXRhZGF0YSB7XG4gICAgY29uc3QgZmllbGRzOiBJbnB1dE1ldGFkYXRhW10gPSBbXTtcblxuICAgIGlmICh0aGlzLnByb3BzLnNob3dUeXBlU2VsZWN0b3IgIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBvcHRpb25zOiBJbnB1dE9wdGlvbltdID0gdGhpcy50eXBlT3B0aW9ucy5tYXAoKG9wdCwgaSkgPT4gKHtcbiAgICAgICAgaWQ6IG9wdC52YWx1ZSxcbiAgICAgICAgbmFtZTogb3B0LmxhYmVsLFxuICAgICAgICBvcmRlcjogaSxcbiAgICAgICAgc2VsZWN0ZWQ6IG9wdC52YWx1ZSA9PT0gKHRoaXMucHJvcHMuZGVmYXVsdFR5cGUgPz8gJ2ZlZWRiYWNrJyksXG4gICAgICB9KSk7XG4gICAgICBmaWVsZHMucHVzaCh7XG4gICAgICAgIHRva2VuOiAnZmVlZGJhY2stdHlwZScsXG4gICAgICAgIG5hbWU6ICd0eXBlJyxcbiAgICAgICAgbGFiZWw6IHRoaXMuaTE4bi50KCdmZWVkYmFja1R5cGUnKSxcbiAgICAgICAgaGludDogJycsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlLlNFTEVDVCxcbiAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgdmFsdWU6IHRoaXMucHJvcHMuZGVmYXVsdFR5cGUgPz8gJ2ZlZWRiYWNrJyxcbiAgICAgICAgZXJyb3JzOiB7fSxcbiAgICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmllbGRzLnB1c2goXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnZmVlZGJhY2stdGl0bGUnLFxuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICBsYWJlbDogdGhpcy5wcm9wcy50aXRsZUxhYmVsID8/IHRoaXMuaTE4bi50KCd0aXRsZScpLFxuICAgICAgICBoaW50OiAnJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucHJvcHMudGl0bGVQbGFjZWhvbGRlciA/PyB0aGlzLmkxOG4udCgndGl0bGVQbGFjZWhvbGRlcicpLFxuICAgICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKV0sXG4gICAgICAgIGVycm9yczoge1xuICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLmkxOG4udCgndGl0bGVWYWxpZGF0aW9uJyksXG4gICAgICAgICAgbWlubGVuZ3RoOiB0aGlzLmkxOG4udCgndGl0bGVWYWxpZGF0aW9uJyksXG4gICAgICAgICAgbWF4bGVuZ3RoOiB0aGlzLmkxOG4udCgndGl0bGVWYWxpZGF0aW9uJyksXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnZmVlZGJhY2stZGVzY3JpcHRpb24nLFxuICAgICAgICBuYW1lOiAnZGVzY3JpcHRpb24nLFxuICAgICAgICBsYWJlbDogdGhpcy5wcm9wcy5kZXNjcmlwdGlvbkxhYmVsID8/IHRoaXMuaTE4bi50KCdkZXNjcmlwdGlvbicpLFxuICAgICAgICBoaW50OiAnJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucHJvcHMuZGVzY3JpcHRpb25QbGFjZWhvbGRlciA/PyB0aGlzLmkxOG4udCgnZGVzY3JpcHRpb25QbGFjZWhvbGRlcicpLFxuICAgICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVEFSRUEsXG4gICAgICAgIG9yZGVyOiAzLFxuICAgICAgICByYW5nZTogeyBtaW46IDEwLCBtYXg6IDIwMDAgfSxcbiAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDEwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwMCldLFxuICAgICAgICBlcnJvcnM6IHtcbiAgICAgICAgICByZXF1aXJlZDogdGhpcy5pMThuLnQoJ2Rlc2NyaXB0aW9uVmFsaWRhdGlvbicpLFxuICAgICAgICAgIG1pbmxlbmd0aDogdGhpcy5pMThuLnQoJ2Rlc2NyaXB0aW9uVmFsaWRhdGlvbicpLFxuICAgICAgICAgIG1heGxlbmd0aDogdGhpcy5pMThuLnQoJ2Rlc2NyaXB0aW9uVmFsaWRhdGlvbicpLFxuICAgICAgICB9LFxuICAgICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnJyxcbiAgICAgIHNlY3Rpb25zOiBbeyBuYW1lOiAnJywgb3JkZXI6IDAsIGZpZWxkcyB9XSxcbiAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgdHlwZTogJ3N1Ym1pdCcsXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICB0ZXh0OiB0aGlzLnByb3BzLnN1Ym1pdEJ1dHRvblRleHQgPz8gdGhpcy5pMThuLnQoJ3N1Ym1pdCcpLFxuICAgICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIH0sXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUZvcm1TdWJtaXQoc3VibWl0dGVkOiBGb3JtU3VibWl0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNTdWJtaXR0aW5nKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5jdXJyZW50QXR0YWNobWVudHMuc29tZShhID0+IGEuc3RhdHVzID09PSAndXBsb2FkaW5nJykpIHJldHVybjtcblxuICAgIHRoaXMuaXNTdWJtaXR0aW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmVycm9yLnNldChudWxsKTtcbiAgICB0aGlzLmlzU3VjY2Vzcy5zZXQoZmFsc2UpO1xuICAgIHRoaXMuZm9ybVByb3BzLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgdGhpcy5mb3JtUHJvcHMuYWN0aW9ucy5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR5cGUgPSAoc3VibWl0dGVkLmZpZWxkc1sndHlwZSddIGFzIEZlZWRiYWNrVHlwZSkgPz8gdGhpcy5wcm9wcy5kZWZhdWx0VHlwZSA/PyAnZmVlZGJhY2snO1xuICAgICAgY29uc3QgdGl0bGUgPSBzdWJtaXR0ZWQuZmllbGRzWyd0aXRsZSddIGFzIHN0cmluZztcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gc3VibWl0dGVkLmZpZWxkc1snZGVzY3JpcHRpb24nXSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCBhdHRhY2htZW50VXJscyA9IHRoaXMuY3VycmVudEF0dGFjaG1lbnRzLmZpbHRlcihhID0+IGEuc3RhdHVzID09PSAncmVhZHknKS5tYXAoYSA9PiBhLnVybCEpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZmVlZGJhY2tTZXJ2aWNlLmNyZWF0ZUFzeW5jKFxuICAgICAgICB0eXBlLFxuICAgICAgICB0aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIGF0dGFjaG1lbnRVcmxzLFxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnRSZWZcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuaXNTdWNjZXNzLnNldCh0cnVlKTtcblxuICAgICAgdGhpcy5vblN1Ym1pdC5lbWl0KHsgcmVzcG9uc2UsIHR5cGUsIHRpdGxlLCBhdHRhY2htZW50VXJscyB9KTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgdGhpcy5lcnJvci5zZXQoZXJyLmVycm9yPy5tZXNzYWdlIHx8IGVyci5tZXNzYWdlIHx8IHRoaXMuaTE4bi50KCdmZWVkYmFja0Vycm9yJykpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzU3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5mb3JtUHJvcHMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICAgIHRoaXMuZm9ybVByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICB9XG4gIH1cblxuICBvbkF0dGFjaG1lbnRzQ2hhbmdlKGl0ZW1zOiBBdHRhY2htZW50SXRlbVtdKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50QXR0YWNobWVudHMgPSBpdGVtcztcbiAgfVxuXG4gIG9uQ2FuY2VsQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZGJhY2stZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZlZWRiYWNrLWZvcm0vZmVlZGJhY2stZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQWdCLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUF3RCxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0csT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBR25FLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixZQUFZ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Z3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uQnV0dG9uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IEZlZWRiYWNrU2VydmljZSwgRmVlZGJhY2tUeXBlLCBERUZBVUxUX0ZFRURCQUNLX1RZUEVfT1BUSU9OUyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZlZWRiYWNrJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RhdGVzLCBGb3JtTWV0YWRhdGEsIEZvcm1TdWJtaXQsIElucHV0TWV0YWRhdGEsIElucHV0T3B0aW9uLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNobWVudFVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL2F0dGFjaG1lbnQtdXBsb2FkZXIvYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNobWVudEl0ZW0gfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvYXR0YWNobWVudC11cGxvYWRlci90eXBlcyc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWVkYmFja0Zvcm1NZXRhZGF0YSwgRmVlZGJhY2tTdWJtaXRFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBGRUVEQkFDS19GT1JNX0kxOE4gPSB7XG4gIGVzOiB7XG4gICAgZm9ybVRpdGxlOiAnRW52aWFyIGZlZWRiYWNrJyxcbiAgICBmb3JtU3VidGl0bGU6ICdDdcOpbnRhbm9zIHF1w6kgcGllbnNhcy4gQnVncywgc3VnZXJlbmNpYXMgeSBtZWpvcmFzLicsXG4gICAgZmVlZGJhY2tUeXBlOiAnVGlwbycsXG4gICAgdGl0bGU6ICdUw610dWxvJyxcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiAnUmVzdW1lbiBjb3J0byAoNeKAkzEyMCBjYXJhY3RlcmVzKScsXG4gICAgdGl0bGVWYWxpZGF0aW9uOiAnRWwgdMOtdHVsbyBkZWJlIHRlbmVyIGVudHJlIDUgeSAxMjAgY2FyYWN0ZXJlcycsXG4gICAgZGVzY3JpcHRpb246ICdEZXNjcmlwY2nDs24nLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6ICdEZXNjcmliZSBlbCBwcm9ibGVtYSBvIHN1Z2VyZW5jaWEgZW4gZGV0YWxsZS4uLicsXG4gICAgZGVzY3JpcHRpb25IaW50OiAnQ2FwdHVyYW1vcyBhdXRvbcOhdGljYW1lbnRlIHR1IG5hdmVnYWRvciwgU08geSBVUkwgYWN0dWFsLicsXG4gICAgZGVzY3JpcHRpb25WYWxpZGF0aW9uOiAnTGEgZGVzY3JpcGNpw7NuIGRlYmUgdGVuZXIgZW50cmUgMTAgeSAyMDAwIGNhcmFjdGVyZXMnLFxuICAgIHN1Ym1pdDogJ0VudmlhcicsXG4gICAgZmVlZGJhY2tTdWNjZXNzOiAnwqFHcmFjaWFzIHBvciB0dSBmZWVkYmFjayEnLFxuICAgIGZlZWRiYWNrRXJyb3I6ICdObyBzZSBwdWRvIGVudmlhciBlbCBmZWVkYmFjay4gSW50w6ludGFsbyBkZSBudWV2by4nLFxuICB9LFxuICBlbjoge1xuICAgIGZvcm1UaXRsZTogJ1NlbmQgZmVlZGJhY2snLFxuICAgIGZvcm1TdWJ0aXRsZTogJ1RlbGwgdXMgd2hhdCB5b3UgdGhpbmsuIEJ1Z3MsIHN1Z2dlc3Rpb25zIGFuZCBpbXByb3ZlbWVudHMuJyxcbiAgICBmZWVkYmFja1R5cGU6ICdUeXBlJyxcbiAgICB0aXRsZTogJ1RpdGxlJyxcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiAnU2hvcnQgc3VtbWFyeSAoNeKAkzEyMCBjaGFycyknLFxuICAgIHRpdGxlVmFsaWRhdGlvbjogJ1RpdGxlIG11c3QgYmUgYmV0d2VlbiA1IGFuZCAxMjAgY2hhcmFjdGVycycsXG4gICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgZGVzY3JpcHRpb25QbGFjZWhvbGRlcjogJ0Rlc2NyaWJlIHRoZSBwcm9ibGVtIG9yIHN1Z2dlc3Rpb24gaW4gZGV0YWlsLi4uJyxcbiAgICBkZXNjcmlwdGlvbkhpbnQ6ICdXZSBhdXRvbWF0aWNhbGx5IGNhcHR1cmUgeW91ciBicm93c2VyLCBPUyBhbmQgY3VycmVudCBVUkwuJyxcbiAgICBkZXNjcmlwdGlvblZhbGlkYXRpb246ICdEZXNjcmlwdGlvbiBtdXN0IGJlIGJldHdlZW4gMTAgYW5kIDIwMDAgY2hhcmFjdGVycycsXG4gICAgc3VibWl0OiAnU2VuZCcsXG4gICAgZmVlZGJhY2tTdWNjZXNzOiAnVGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrIScsXG4gICAgZmVlZGJhY2tFcnJvcjogJ0NvdWxkIG5vdCBzZW5kIGZlZWRiYWNrLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZmVlZGJhY2stZm9ybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1Db21wb25lbnQsIEF0dGFjaG1lbnRVcGxvYWRlckNvbXBvbmVudCwgRGlzcGxheUNvbXBvbmVudCwgVGl0bGVDb21wb25lbnQsIElvbkJ1dHRvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrLWZvcm0td3JhcHBlclwiIFtjbGFzcy5jb21wYWN0XT1cInByb3BzLmNvbXBhY3RcIiBbbmdDbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiPlxuICAgICAgQGlmIChwcm9wcy5zaG93VGl0bGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyXCI+XG4gICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHByb3BzLnBhZ2VUaXRsZSB8fCB0dCgnZm9ybVRpdGxlJykgfVwiIC8+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICdkYXJrJywgYm9sZDogZmFsc2UsIGNvbnRlbnQ6IHByb3BzLnBhZ2VTdWJ0aXRsZSB8fCB0dCgnZm9ybVN1YnRpdGxlJykgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cImZvcm1Qcm9wc1wiIChvblN1Ym1pdCk9XCJoYW5kbGVGb3JtU3VibWl0KCRldmVudClcIj5cbiAgICAgICAgQGlmIChwcm9wcy5zaG93QXR0YWNobWVudHMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgPHZhbC1hdHRhY2htZW50LXVwbG9hZGVyXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBtYXhGaWxlczogNSwgdXBsb2FkRm46IHVwbG9hZEZuIH1cIlxuICAgICAgICAgICAgKGF0dGFjaG1lbnRzQ2hhbmdlKT1cIm9uQXR0YWNobWVudHNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvdmFsLWF0dGFjaG1lbnQtdXBsb2FkZXI+XG4gICAgICAgIH1cbiAgICAgIDwvdmFsLWZvcm0+XG5cbiAgICAgIEBpZiAocHJvcHMuY2FuY2VsQnV0dG9uVGV4dCkge1xuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwibWVkaXVtXCIgZXhwYW5kPVwiYmxvY2tcIiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiAoY2xpY2spPVwib25DYW5jZWxDbGljaygpXCI+XG4gICAgICAgICAge3sgcHJvcHMuY2FuY2VsQnV0dG9uVGV4dCB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5mZWVkYmFjay1mb3JtLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcblxuICAgICAgICAmLmNvbXBhY3Qge1xuICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5mb3JtLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIH1cblxuICAgICAgdmFsLWF0dGFjaG1lbnQtdXBsb2FkZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgfVxuXG4gICAgICAuY2FuY2VsLWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWVkYmFja0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wczogRmVlZGJhY2tGb3JtTWV0YWRhdGEgPSB7fTtcblxuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEZlZWRiYWNrU3VibWl0RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG9uRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgcHJvdGVjdGVkIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGZlZWRiYWNrU2VydmljZSA9IGluamVjdChGZWVkYmFja1NlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuXG4gIGZvcm1Qcm9wcyE6IEZvcm1NZXRhZGF0YTtcbiAgdHlwZU9wdGlvbnMgPSBERUZBVUxUX0ZFRURCQUNLX1RZUEVfT1BUSU9OUztcblxuICBpc1N1Ym1pdHRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHVwbG9hZEZuID0gKGZpbGU6IEZpbGUpID0+IHRoaXMuZmVlZGJhY2tTZXJ2aWNlLnVwbG9hZEF0dGFjaG1lbnQoZmlsZSk7XG5cbiAgcHJpdmF0ZSBjdXJyZW50QXR0YWNobWVudHM6IEF0dGFjaG1lbnRJdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnRmVlZGJhY2tGb3JtJywgRkVFREJBQ0tfRk9STV9JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmVuYWJsZWRUeXBlcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnR5cGVPcHRpb25zID0gdGhpcy50eXBlT3B0aW9ucy5maWx0ZXIob3B0ID0+IHRoaXMucHJvcHMuZW5hYmxlZFR5cGVzIS5pbmNsdWRlcyhvcHQudmFsdWUpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMudHlwZU9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy50eXBlT3B0aW9ucyA9IHRoaXMucHJvcHMudHlwZU9wdGlvbnM7XG4gICAgfVxuICAgIHRoaXMuZm9ybVByb3BzID0gdGhpcy5idWlsZEZvcm1Qcm9wcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm1Qcm9wcygpOiBGb3JtTWV0YWRhdGEge1xuICAgIGNvbnN0IGZpZWxkczogSW5wdXRNZXRhZGF0YVtdID0gW107XG5cbiAgICBpZiAodGhpcy5wcm9wcy5zaG93VHlwZVNlbGVjdG9yICE9PSBmYWxzZSkge1xuICAgICAgY29uc3Qgb3B0aW9uczogSW5wdXRPcHRpb25bXSA9IHRoaXMudHlwZU9wdGlvbnMubWFwKChvcHQsIGkpID0+ICh7XG4gICAgICAgIGlkOiBvcHQudmFsdWUsXG4gICAgICAgIG5hbWU6IG9wdC5sYWJlbCxcbiAgICAgICAgb3JkZXI6IGksXG4gICAgICAgIHNlbGVjdGVkOiBvcHQudmFsdWUgPT09ICh0aGlzLnByb3BzLmRlZmF1bHRUeXBlID8/ICdmZWVkYmFjaycpLFxuICAgICAgfSkpO1xuICAgICAgZmllbGRzLnB1c2goe1xuICAgICAgICB0b2tlbjogJ2ZlZWRiYWNrLXR5cGUnLFxuICAgICAgICBuYW1lOiAndHlwZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnR0KCdmZWVkYmFja1R5cGUnKSxcbiAgICAgICAgaGludDogJycsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlLlNFTEVDVCxcbiAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgdmFsdWU6IHRoaXMucHJvcHMuZGVmYXVsdFR5cGUgPz8gJ2ZlZWRiYWNrJyxcbiAgICAgICAgZXJyb3JzOiB7fSxcbiAgICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmllbGRzLnB1c2goXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnZmVlZGJhY2stdGl0bGUnLFxuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICBsYWJlbDogdGhpcy5wcm9wcy50aXRsZUxhYmVsID8/IHRoaXMudHQoJ3RpdGxlJyksXG4gICAgICAgIGhpbnQ6ICcnLFxuICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5wcm9wcy50aXRsZVBsYWNlaG9sZGVyID8/IHRoaXMudHQoJ3RpdGxlUGxhY2Vob2xkZXInKSxcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFQsXG4gICAgICAgIG9yZGVyOiAyLFxuICAgICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgICBlcnJvcnM6IHtcbiAgICAgICAgICByZXF1aXJlZDogdGhpcy50dCgndGl0bGVWYWxpZGF0aW9uJyksXG4gICAgICAgICAgbWlubGVuZ3RoOiB0aGlzLnR0KCd0aXRsZVZhbGlkYXRpb24nKSxcbiAgICAgICAgICBtYXhsZW5ndGg6IHRoaXMudHQoJ3RpdGxlVmFsaWRhdGlvbicpLFxuICAgICAgICB9LFxuICAgICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2ZlZWRiYWNrLWRlc2NyaXB0aW9uJyxcbiAgICAgICAgbmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgbGFiZWw6IHRoaXMucHJvcHMuZGVzY3JpcHRpb25MYWJlbCA/PyB0aGlzLnR0KCdkZXNjcmlwdGlvbicpLFxuICAgICAgICBoaW50OiB0aGlzLnR0KCdkZXNjcmlwdGlvbkhpbnQnKSxcbiAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucHJvcHMuZGVzY3JpcHRpb25QbGFjZWhvbGRlciA/PyB0aGlzLnR0KCdkZXNjcmlwdGlvblBsYWNlaG9sZGVyJyksXG4gICAgICAgIHR5cGU6IElucHV0VHlwZS5URVhUQVJFQSxcbiAgICAgICAgb3JkZXI6IDMsXG4gICAgICAgIHJhbmdlOiB7IG1pbjogMTAsIG1heDogMjAwMCB9LFxuICAgICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyMDAwKV0sXG4gICAgICAgIGVycm9yczoge1xuICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLnR0KCdkZXNjcmlwdGlvblZhbGlkYXRpb24nKSxcbiAgICAgICAgICBtaW5sZW5ndGg6IHRoaXMudHQoJ2Rlc2NyaXB0aW9uVmFsaWRhdGlvbicpLFxuICAgICAgICAgIG1heGxlbmd0aDogdGhpcy50dCgnZGVzY3JpcHRpb25WYWxpZGF0aW9uJyksXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMCwgZmllbGRzIH1dLFxuICAgICAgYWN0aW9uczoge1xuICAgICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgIHRleHQ6IHRoaXMucHJvcHMuc3VibWl0QnV0dG9uVGV4dCA/PyB0aGlzLnR0KCdzdWJtaXQnKSxcbiAgICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICB9LFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG4gIH1cblxuICBhc3luYyBoYW5kbGVGb3JtU3VibWl0KHN1Ym1pdHRlZDogRm9ybVN1Ym1pdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzU3VibWl0dGluZygpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuY3VycmVudEF0dGFjaG1lbnRzLnNvbWUoYSA9PiBhLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpKSByZXR1cm47XG5cbiAgICB0aGlzLmlzU3VibWl0dGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5mb3JtUHJvcHMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuV09SS0lORztcbiAgICB0aGlzLmZvcm1Qcm9wcy5hY3Rpb25zLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdHlwZSA9IChzdWJtaXR0ZWQuZmllbGRzWyd0eXBlJ10gYXMgRmVlZGJhY2tUeXBlKSA/PyB0aGlzLnByb3BzLmRlZmF1bHRUeXBlID8/ICdmZWVkYmFjayc7XG4gICAgICBjb25zdCB0aXRsZSA9IHN1Ym1pdHRlZC5maWVsZHNbJ3RpdGxlJ10gYXMgc3RyaW5nO1xuICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBzdWJtaXR0ZWQuZmllbGRzWydkZXNjcmlwdGlvbiddIGFzIHN0cmluZztcbiAgICAgIGNvbnN0IGF0dGFjaG1lbnRVcmxzID0gdGhpcy5jdXJyZW50QXR0YWNobWVudHMuZmlsdGVyKGEgPT4gYS5zdGF0dXMgPT09ICdyZWFkeScpLm1hcChhID0+IGEudXJsISk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY3JlYXRlQXN5bmMoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIHRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgYXR0YWNobWVudFVybHMsXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudFJlZlxuICAgICAgKTtcblxuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy5wcm9wcy5zdWNjZXNzTWVzc2FnZSA/PyB0aGlzLnR0KCdmZWVkYmFja1N1Y2Nlc3MnKSxcbiAgICAgICAgZHVyYXRpb246IDI1MDAsXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIHBvc2l0aW9uOiAndG9wJyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm9uU3VibWl0LmVtaXQoeyByZXNwb25zZSwgdHlwZSwgdGl0bGUsIGF0dGFjaG1lbnRVcmxzIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnZmVlZGJhY2stZm9ybS5zdWJtaXQnLFxuICAgICAgICBmYWxsYmFja0tleTogJ2ZlZWRiYWNrRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiAnRmVlZGJhY2tGb3JtJyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vbkVycm9yLmVtaXQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuZm9ybVByb3BzLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQ7XG4gICAgICB0aGlzLmZvcm1Qcm9wcy5hY3Rpb25zLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQ7XG4gICAgfVxuICB9XG5cbiAgb25BdHRhY2htZW50c0NoYW5nZShpdGVtczogQXR0YWNobWVudEl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEF0dGFjaG1lbnRzID0gaXRlbXM7XG4gIH1cblxuICBvbkNhbmNlbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub25DYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdGZWVkYmFja0Zvcm0nKTtcbiAgfVxufVxuIl19
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.83';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC44Myc7XG4iXX0=
|