valtech-components 4.0.980 → 4.0.981
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 +3 -3
- package/esm2022/lib/components/atoms/box/box.component.mjs +3 -3
- package/esm2022/lib/components/atoms/button/button.component.mjs +3 -3
- package/esm2022/lib/components/atoms/display/display.component.mjs +3 -3
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +3 -3
- package/esm2022/lib/components/atoms/emoji-rating/emoji-rating.component.mjs +89 -0
- package/esm2022/lib/components/atoms/emoji-rating/types.mjs +11 -0
- package/esm2022/lib/components/atoms/href/href.component.mjs +3 -3
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +3 -3
- package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
- package/esm2022/lib/components/atoms/title/title.component.mjs +3 -3
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/components/molecules/card/card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -3
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -3
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +3 -3
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +3 -3
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
- package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +3 -3
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +3 -3
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +3 -3
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +3 -3
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +3 -3
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +3 -3
- package/esm2022/lib/components/organisms/article/article.component.mjs +3 -3
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +3 -3
- package/esm2022/lib/components/organisms/code-validator/code-validator.component.mjs +55 -53
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +3 -3
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
- package/esm2022/lib/components/organisms/header/header.component.mjs +3 -3
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +3 -3
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +3 -3
- package/esm2022/lib/components/organisms/survey-builder/survey-builder.component.mjs +330 -0
- package/esm2022/lib/components/organisms/survey-builder/survey-builder.i18n.mjs +39 -0
- package/esm2022/lib/components/organisms/survey-builder/types.mjs +2 -0
- package/esm2022/lib/components/organisms/survey-response/survey-response.component.mjs +325 -0
- package/esm2022/lib/components/organisms/survey-response/survey-response.i18n.mjs +39 -0
- package/esm2022/lib/components/organisms/survey-response/types.mjs +2 -0
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -3
- package/esm2022/lib/components/templates/simple/simple.component.mjs +3 -3
- package/esm2022/lib/services/qr-generator/types.mjs +12 -1
- package/esm2022/lib/services/requests/request.service.mjs +19 -2
- package/esm2022/lib/services/requests/types.mjs +8 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +7 -1
- package/fesm2022/valtech-components.mjs +1220 -386
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/emoji-rating/emoji-rating.component.d.ts +25 -0
- package/lib/components/atoms/emoji-rating/types.d.ts +22 -0
- package/lib/components/organisms/code-validator/code-validator.component.d.ts +8 -1
- package/lib/components/organisms/survey-builder/survey-builder.component.d.ts +43 -0
- package/lib/components/organisms/survey-builder/survey-builder.i18n.d.ts +2 -0
- package/lib/components/organisms/survey-builder/types.d.ts +28 -0
- package/lib/components/organisms/survey-response/survey-response.component.d.ts +68 -0
- package/lib/components/organisms/survey-response/survey-response.i18n.d.ts +2 -0
- package/lib/components/organisms/survey-response/types.d.ts +7 -0
- package/lib/services/qr-generator/types.d.ts +11 -0
- package/lib/services/requests/request.service.d.ts +7 -0
- package/lib/services/requests/types.d.ts +34 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
- package/src/lib/components/styles/variables.scss +15 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, computed, inject, signal } from '@angular/core';
|
|
3
|
+
import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
|
+
import { firstValueFrom } from 'rxjs';
|
|
5
|
+
import { I18nService } from '../../../services/i18n';
|
|
6
|
+
import { AuthService } from '../../../services/auth/auth.service';
|
|
7
|
+
import { RequestService } from '../../../services/requests/request.service';
|
|
8
|
+
import { FIELD_TYPE_EMOJI_RATING } from '../../../services/requests/types';
|
|
9
|
+
import { ValtechErrorService } from '../../../services/errors/valtech-error.service';
|
|
10
|
+
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
11
|
+
import { TitleComponent } from '../../atoms/title/title.component';
|
|
12
|
+
import { TextInputComponent } from '../../molecules/text-input/text-input.component';
|
|
13
|
+
import { TextareaInputComponent } from '../../molecules/textarea-input/textarea-input.component';
|
|
14
|
+
import { EmojiRatingComponent } from '../../atoms/emoji-rating/emoji-rating.component';
|
|
15
|
+
import { ButtonComponent } from '../../atoms/button/button.component';
|
|
16
|
+
import { EmptyStateComponent } from '../../molecules/empty-state/empty-state.component';
|
|
17
|
+
import { SURVEY_RESPONSE_I18N } from './survey-response.i18n';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
const NAMESPACE = 'SurveyResponse';
|
|
20
|
+
/**
|
|
21
|
+
* val-survey-response
|
|
22
|
+
*
|
|
23
|
+
* Toma una encuesta (`RequestTypeConfig` con `Type: "survey:<slug>"`, ADR-092)
|
|
24
|
+
* y la presenta como formulario de respuesta — el organism que un visitante
|
|
25
|
+
* ve al abrir el link de una encuesta. Self-contained, igual que
|
|
26
|
+
* `val-content-reaction`/`val-access-request-view`: lee el tipo, arma el
|
|
27
|
+
* formulario, envía la respuesta, sin que el consumer tenga que orquestar
|
|
28
|
+
* nada de eso.
|
|
29
|
+
*
|
|
30
|
+
* Solo lee tipos `visibility: 'PUBLIC'` (vía `getPublicRequestType`, sin
|
|
31
|
+
* auth) — es el caso de uso que describe el ADR (link enviado a compradores,
|
|
32
|
+
* que pueden no tener cuenta). Encuestas AUTHENTICATED/ORG/INTERNAL están
|
|
33
|
+
* fuera de alcance de este componente por ahora.
|
|
34
|
+
*
|
|
35
|
+
* Cada pregunta se renderiza según su `FieldSchemaDef.type`: `EMOJI_RATING`
|
|
36
|
+
* usa `val-emoji-rating` (NUNCA pasa por `val-form`, no lo sabe rutear);
|
|
37
|
+
* cualquier otro tipo (v1: solo `TEXTAREA`) usa `val-textarea-input`. No hay
|
|
38
|
+
* `val-form` de por medio — un FormGroup armado a mano, porque mezclar tipos
|
|
39
|
+
* custom con el form genérico es más complicado que construir el propio.
|
|
40
|
+
*/
|
|
41
|
+
export class SurveyResponseComponent {
|
|
42
|
+
constructor() {
|
|
43
|
+
this.submitted = new EventEmitter();
|
|
44
|
+
this.i18n = inject(I18nService);
|
|
45
|
+
this.auth = inject(AuthService);
|
|
46
|
+
this.requests = inject(RequestService);
|
|
47
|
+
this.errors = inject(ValtechErrorService);
|
|
48
|
+
this.emojiType = FIELD_TYPE_EMOJI_RATING;
|
|
49
|
+
this.loading = signal(true);
|
|
50
|
+
this.loadError = signal(false);
|
|
51
|
+
this.sent = signal(false);
|
|
52
|
+
this.sending = signal(false);
|
|
53
|
+
this.typeConfig = signal(null);
|
|
54
|
+
this.nameControl = new FormControl('', { nonNullable: true });
|
|
55
|
+
this.emailControl = new FormControl('', { nonNullable: true });
|
|
56
|
+
this.form = new FormGroup({});
|
|
57
|
+
/** Preguntas ordenadas — el template las recorre en este orden. */
|
|
58
|
+
this.questions = computed(() => {
|
|
59
|
+
const cfg = this.typeConfig();
|
|
60
|
+
return cfg ? [...cfg.fieldSchema].sort((a, b) => a.order - b.order) : [];
|
|
61
|
+
});
|
|
62
|
+
/** Puede responder sin sesión si el tipo lo permite; si no, hace falta login. */
|
|
63
|
+
this.canRespond = computed(() => {
|
|
64
|
+
if (this.auth.isAuthenticated())
|
|
65
|
+
return true;
|
|
66
|
+
return !!this.typeConfig()?.allowAnonymous;
|
|
67
|
+
});
|
|
68
|
+
this.submitState = computed(() => (this.sending() ? 'WORKING' : 'ENABLED'));
|
|
69
|
+
this.sentState = computed(() => {
|
|
70
|
+
this.i18n.lang();
|
|
71
|
+
return { variant: 'empty', title: this.t('sentTitle'), description: this.t('sentBody') };
|
|
72
|
+
});
|
|
73
|
+
this.loadErrorState = computed(() => {
|
|
74
|
+
this.i18n.lang();
|
|
75
|
+
return { variant: 'error', title: this.t('loadErrorTitle'), description: this.t('loadErrorBody') };
|
|
76
|
+
});
|
|
77
|
+
this.loginRequiredState = computed(() => {
|
|
78
|
+
this.i18n.lang();
|
|
79
|
+
return { variant: 'error', title: this.t('loginRequiredTitle'), description: this.t('loginRequiredBody') };
|
|
80
|
+
});
|
|
81
|
+
if (!this.i18n.hasNamespace(NAMESPACE)) {
|
|
82
|
+
this.i18n.registerDefaults(NAMESPACE, SURVEY_RESPONSE_I18N);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async ngOnInit() {
|
|
86
|
+
try {
|
|
87
|
+
const cfg = await firstValueFrom(this.requests.getPublicRequestType(this.props.typeId));
|
|
88
|
+
this.typeConfig.set(cfg);
|
|
89
|
+
this.buildForm(cfg);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
this.loadError.set(true);
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
this.loading.set(false);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
buildForm(cfg) {
|
|
99
|
+
const group = {};
|
|
100
|
+
for (const q of [...cfg.fieldSchema].sort((a, b) => a.order - b.order)) {
|
|
101
|
+
group[q.name] = new FormControl({ value: '', disabled: false }, q.required ? [Validators.required] : []);
|
|
102
|
+
}
|
|
103
|
+
this.form = new FormGroup(group);
|
|
104
|
+
if (this.needsIdentity()) {
|
|
105
|
+
// setValidators por sí solo no recalcula el status del control — sin el
|
|
106
|
+
// updateValueAndValidity() de al lado, name/email quedaban VALID hasta
|
|
107
|
+
// el próximo cambio de valor, y submit() dejaba pasar un envío anónimo
|
|
108
|
+
// sin identidad.
|
|
109
|
+
this.nameControl.setValidators([Validators.required]);
|
|
110
|
+
this.nameControl.updateValueAndValidity();
|
|
111
|
+
this.emailControl.setValidators([Validators.required, Validators.email]);
|
|
112
|
+
this.emailControl.updateValueAndValidity();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
questionControl(name) {
|
|
116
|
+
return this.form.get(name);
|
|
117
|
+
}
|
|
118
|
+
questionLabel(q) {
|
|
119
|
+
// Texto del CLIENTE (regla #4): quien creó la encuesta escribió el
|
|
120
|
+
// enunciado tal cual, no se traduce.
|
|
121
|
+
return q.label || q.name;
|
|
122
|
+
}
|
|
123
|
+
/** Pide nombre+correo solo cuando responde sin sesión — el backend exige
|
|
124
|
+
* identidad mínima incluso en el camino anónimo (`CreateAnonymousRequest`). */
|
|
125
|
+
needsIdentity() {
|
|
126
|
+
return !this.auth.isAuthenticated();
|
|
127
|
+
}
|
|
128
|
+
async submit() {
|
|
129
|
+
if (this.sending() || this.form.invalid)
|
|
130
|
+
return;
|
|
131
|
+
if (this.needsIdentity() && (this.nameControl.invalid || this.emailControl.invalid)) {
|
|
132
|
+
this.nameControl.markAsTouched();
|
|
133
|
+
this.emailControl.markAsTouched();
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const cfg = this.typeConfig();
|
|
137
|
+
if (!cfg)
|
|
138
|
+
return;
|
|
139
|
+
this.sending.set(true);
|
|
140
|
+
const fields = this.form.getRawValue();
|
|
141
|
+
const payload = {
|
|
142
|
+
type: cfg.typeId,
|
|
143
|
+
title: cfg.label,
|
|
144
|
+
fields,
|
|
145
|
+
...(this.needsIdentity()
|
|
146
|
+
? { submitter: { name: this.nameControl.value.trim(), email: this.emailControl.value.trim() } }
|
|
147
|
+
: {}),
|
|
148
|
+
};
|
|
149
|
+
const call$ = this.auth.isAuthenticated()
|
|
150
|
+
? this.requests.createRequest(payload)
|
|
151
|
+
: this.requests.createAnonymousRequest(payload);
|
|
152
|
+
try {
|
|
153
|
+
const res = await firstValueFrom(call$);
|
|
154
|
+
this.sending.set(false);
|
|
155
|
+
this.sent.set(true);
|
|
156
|
+
this.submitted.emit({ requestId: res.requestId });
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
this.sending.set(false);
|
|
160
|
+
this.errors.handle(err, {
|
|
161
|
+
context: 'surveyResponse.submit',
|
|
162
|
+
fallbackKey: 'sendError',
|
|
163
|
+
i18nNamespace: NAMESPACE,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
t(key) {
|
|
168
|
+
return this.i18n.t(key, NAMESPACE);
|
|
169
|
+
}
|
|
170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SurveyResponseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
171
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SurveyResponseComponent, isStandalone: true, selector: "val-survey-response", inputs: { props: "props" }, outputs: { submitted: "submitted" }, ngImport: i0, template: `
|
|
172
|
+
@if (loading()) {
|
|
173
|
+
<div class="survey-response__loading" aria-hidden="true"></div>
|
|
174
|
+
} @else if (loadError()) {
|
|
175
|
+
<val-empty-state [props]="loadErrorState()" />
|
|
176
|
+
} @else if (sent()) {
|
|
177
|
+
<val-empty-state [props]="sentState()" />
|
|
178
|
+
} @else {
|
|
179
|
+
@if (typeConfig(); as cfg) {
|
|
180
|
+
@if (!canRespond()) {
|
|
181
|
+
<val-empty-state [props]="loginRequiredState()" />
|
|
182
|
+
} @else {
|
|
183
|
+
<div class="survey-response">
|
|
184
|
+
<val-display [props]="{ content: cfg.label, size: 'small', color: 'dark' }" />
|
|
185
|
+
@if (cfg.subtitle) {
|
|
186
|
+
<val-title [props]="{ content: cfg.subtitle, size: 'large', color: '', bold: false }" />
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@if (needsIdentity()) {
|
|
190
|
+
<val-text-input
|
|
191
|
+
[props]="{ control: nameControl, label: t('nameLabel'), placeholder: t('namePlaceholder') }"
|
|
192
|
+
/>
|
|
193
|
+
<val-text-input
|
|
194
|
+
[props]="{
|
|
195
|
+
control: emailControl,
|
|
196
|
+
inputType: 'email',
|
|
197
|
+
label: t('emailLabel'),
|
|
198
|
+
placeholder: t('emailPlaceholder'),
|
|
199
|
+
}"
|
|
200
|
+
/>
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@for (q of questions(); track q.name) {
|
|
204
|
+
<div class="survey-response__question">
|
|
205
|
+
@if (q.type === emojiType) {
|
|
206
|
+
<val-emoji-rating [props]="{ control: questionControl(q.name), label: questionLabel(q) }" />
|
|
207
|
+
} @else {
|
|
208
|
+
<val-textarea-input
|
|
209
|
+
[props]="{
|
|
210
|
+
control: questionControl(q.name),
|
|
211
|
+
label: questionLabel(q),
|
|
212
|
+
hint: q.hint,
|
|
213
|
+
placeholder: q.placeholder,
|
|
214
|
+
}"
|
|
215
|
+
/>
|
|
216
|
+
}
|
|
217
|
+
</div>
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
<val-button
|
|
221
|
+
[props]="{
|
|
222
|
+
token: 'survey-response-submit',
|
|
223
|
+
text: t('submit'),
|
|
224
|
+
color: 'dark',
|
|
225
|
+
fill: 'solid',
|
|
226
|
+
shape: 'round',
|
|
227
|
+
size: 'default',
|
|
228
|
+
expand: 'block',
|
|
229
|
+
type: 'button',
|
|
230
|
+
state: submitState(),
|
|
231
|
+
}"
|
|
232
|
+
(onClick)="submit()"
|
|
233
|
+
/>
|
|
234
|
+
</div>
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
`, isInline: true, styles: [":host{display:block}.survey-response{display:flex;flex-direction:column;gap:16px}.survey-response__question{display:block}.survey-response__loading{min-height:120px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: TextareaInputComponent, selector: "val-textarea-input", inputs: ["preset", "props"] }, { kind: "component", type: EmojiRatingComponent, selector: "val-emoji-rating", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }] }); }
|
|
239
|
+
}
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SurveyResponseComponent, decorators: [{
|
|
241
|
+
type: Component,
|
|
242
|
+
args: [{ selector: 'val-survey-response', standalone: true, imports: [
|
|
243
|
+
CommonModule,
|
|
244
|
+
ReactiveFormsModule,
|
|
245
|
+
DisplayComponent,
|
|
246
|
+
TitleComponent,
|
|
247
|
+
TextInputComponent,
|
|
248
|
+
TextareaInputComponent,
|
|
249
|
+
EmojiRatingComponent,
|
|
250
|
+
ButtonComponent,
|
|
251
|
+
EmptyStateComponent,
|
|
252
|
+
], template: `
|
|
253
|
+
@if (loading()) {
|
|
254
|
+
<div class="survey-response__loading" aria-hidden="true"></div>
|
|
255
|
+
} @else if (loadError()) {
|
|
256
|
+
<val-empty-state [props]="loadErrorState()" />
|
|
257
|
+
} @else if (sent()) {
|
|
258
|
+
<val-empty-state [props]="sentState()" />
|
|
259
|
+
} @else {
|
|
260
|
+
@if (typeConfig(); as cfg) {
|
|
261
|
+
@if (!canRespond()) {
|
|
262
|
+
<val-empty-state [props]="loginRequiredState()" />
|
|
263
|
+
} @else {
|
|
264
|
+
<div class="survey-response">
|
|
265
|
+
<val-display [props]="{ content: cfg.label, size: 'small', color: 'dark' }" />
|
|
266
|
+
@if (cfg.subtitle) {
|
|
267
|
+
<val-title [props]="{ content: cfg.subtitle, size: 'large', color: '', bold: false }" />
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
@if (needsIdentity()) {
|
|
271
|
+
<val-text-input
|
|
272
|
+
[props]="{ control: nameControl, label: t('nameLabel'), placeholder: t('namePlaceholder') }"
|
|
273
|
+
/>
|
|
274
|
+
<val-text-input
|
|
275
|
+
[props]="{
|
|
276
|
+
control: emailControl,
|
|
277
|
+
inputType: 'email',
|
|
278
|
+
label: t('emailLabel'),
|
|
279
|
+
placeholder: t('emailPlaceholder'),
|
|
280
|
+
}"
|
|
281
|
+
/>
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
@for (q of questions(); track q.name) {
|
|
285
|
+
<div class="survey-response__question">
|
|
286
|
+
@if (q.type === emojiType) {
|
|
287
|
+
<val-emoji-rating [props]="{ control: questionControl(q.name), label: questionLabel(q) }" />
|
|
288
|
+
} @else {
|
|
289
|
+
<val-textarea-input
|
|
290
|
+
[props]="{
|
|
291
|
+
control: questionControl(q.name),
|
|
292
|
+
label: questionLabel(q),
|
|
293
|
+
hint: q.hint,
|
|
294
|
+
placeholder: q.placeholder,
|
|
295
|
+
}"
|
|
296
|
+
/>
|
|
297
|
+
}
|
|
298
|
+
</div>
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
<val-button
|
|
302
|
+
[props]="{
|
|
303
|
+
token: 'survey-response-submit',
|
|
304
|
+
text: t('submit'),
|
|
305
|
+
color: 'dark',
|
|
306
|
+
fill: 'solid',
|
|
307
|
+
shape: 'round',
|
|
308
|
+
size: 'default',
|
|
309
|
+
expand: 'block',
|
|
310
|
+
type: 'button',
|
|
311
|
+
state: submitState(),
|
|
312
|
+
}"
|
|
313
|
+
(onClick)="submit()"
|
|
314
|
+
/>
|
|
315
|
+
</div>
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
`, styles: [":host{display:block}.survey-response{display:flex;flex-direction:column;gap:16px}.survey-response__question{display:block}.survey-response__loading{min-height:120px}\n"] }]
|
|
320
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}], submitted: [{
|
|
323
|
+
type: Output
|
|
324
|
+
}] } });
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LXJlc3BvbnNlL3N1cnZleS1yZXNwb25zZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLE1BQU0sa0NBQWtDLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFD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bUdBQXZCLHVCQUF1QixnSkF2RnhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUVULGdQQTdFQyxZQUFZLDhCQUNaLG1CQUFtQiwrQkFDbkIsZ0JBQWdCLDJFQUNoQixjQUFjLHlFQUNkLGtCQUFrQix3RkFDbEIsc0JBQXNCLDRGQUN0QixvQkFBb0IsZ0ZBQ3BCLGVBQWUsMEdBQ2YsbUJBQW1COzs0RkF5RlYsdUJBQXVCO2tCQXJHbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3BCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRVQ7d0RBcUJRLEtBQUs7c0JBQWIsS0FBSztnQkFDYSxTQUFTO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVxdWVzdHMvcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HLCBSZXF1ZXN0VHlwZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dGFyZWEtaW5wdXQvdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtb2ppUmF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZW1vamktcmF0aW5nL2Vtb2ppLXJhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcbmltcG9ydCB7IFN1cnZleVJlc3BvbnNlTWV0YWRhdGEsIFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNVUlZFWV9SRVNQT05TRV9JMThOIH0gZnJvbSAnLi9zdXJ2ZXktcmVzcG9uc2UuaTE4bic7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdTdXJ2ZXlSZXNwb25zZSc7XG5cbi8qKlxuICogdmFsLXN1cnZleS1yZXNwb25zZVxuICpcbiAqIFRvbWEgdW5hIGVuY3Vlc3RhIChgUmVxdWVzdFR5cGVDb25maWdgIGNvbiBgVHlwZTogXCJzdXJ2ZXk6PHNsdWc+XCJgLCBBRFItMDkyKVxuICogeSBsYSBwcmVzZW50YSBjb21vIGZvcm11bGFyaW8gZGUgcmVzcHVlc3RhIOKAlCBlbCBvcmdhbmlzbSBxdWUgdW4gdmlzaXRhbnRlXG4gKiB2ZSBhbCBhYnJpciBlbCBsaW5rIGRlIHVuYSBlbmN1ZXN0YS4gU2VsZi1jb250YWluZWQsIGlndWFsIHF1ZVxuICogYHZhbC1jb250ZW50LXJlYWN0aW9uYC9gdmFsLWFjY2Vzcy1yZXF1ZXN0LXZpZXdgOiBsZWUgZWwgdGlwbywgYXJtYSBlbFxuICogZm9ybXVsYXJpbywgZW52w61hIGxhIHJlc3B1ZXN0YSwgc2luIHF1ZSBlbCBjb25zdW1lciB0ZW5nYSBxdWUgb3JxdWVzdGFyXG4gKiBuYWRhIGRlIGVzby5cbiAqXG4gKiBTb2xvIGxlZSB0aXBvcyBgdmlzaWJpbGl0eTogJ1BVQkxJQydgICh2w61hIGBnZXRQdWJsaWNSZXF1ZXN0VHlwZWAsIHNpblxuICogYXV0aCkg4oCUIGVzIGVsIGNhc28gZGUgdXNvIHF1ZSBkZXNjcmliZSBlbCBBRFIgKGxpbmsgZW52aWFkbyBhIGNvbXByYWRvcmVzLFxuICogcXVlIHB1ZWRlbiBubyB0ZW5lciBjdWVudGEpLiBFbmN1ZXN0YXMgQVVUSEVOVElDQVRFRC9PUkcvSU5URVJOQUwgZXN0w6FuXG4gKiBmdWVyYSBkZSBhbGNhbmNlIGRlIGVzdGUgY29tcG9uZW50ZSBwb3IgYWhvcmEuXG4gKlxuICogQ2FkYSBwcmVndW50YSBzZSByZW5kZXJpemEgc2Vnw7puIHN1IGBGaWVsZFNjaGVtYURlZi50eXBlYDogYEVNT0pJX1JBVElOR2BcbiAqIHVzYSBgdmFsLWVtb2ppLXJhdGluZ2AgKE5VTkNBIHBhc2EgcG9yIGB2YWwtZm9ybWAsIG5vIGxvIHNhYmUgcnV0ZWFyKTtcbiAqIGN1YWxxdWllciBvdHJvIHRpcG8gKHYxOiBzb2xvIGBURVhUQVJFQWApIHVzYSBgdmFsLXRleHRhcmVhLWlucHV0YC4gTm8gaGF5XG4gKiBgdmFsLWZvcm1gIGRlIHBvciBtZWRpbyDigJQgdW4gRm9ybUdyb3VwIGFybWFkbyBhIG1hbm8sIHBvcnF1ZSBtZXpjbGFyIHRpcG9zXG4gKiBjdXN0b20gY29uIGVsIGZvcm0gZ2Vuw6lyaWNvIGVzIG3DoXMgY29tcGxpY2FkbyBxdWUgY29uc3RydWlyIGVsIHByb3Bpby5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN1cnZleS1yZXNwb25zZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUlucHV0Q29tcG9uZW50LFxuICAgIEVtb2ppUmF0aW5nQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19sb2FkaW5nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XG4gICAgfSBAZWxzZSBpZiAobG9hZEVycm9yKCkpIHtcbiAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImxvYWRFcnJvclN0YXRlKClcIiAvPlxuICAgIH0gQGVsc2UgaWYgKHNlbnQoKSkge1xuICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwic2VudFN0YXRlKClcIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICh0eXBlQ29uZmlnKCk7IGFzIGNmZykge1xuICAgICAgICBAaWYgKCFjYW5SZXNwb25kKCkpIHtcbiAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJsb2dpblJlcXVpcmVkU3RhdGUoKVwiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VcIj5cbiAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiBjZmcubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICAgICAgICBAaWYgKGNmZy5zdWJ0aXRsZSkge1xuICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGNmZy5zdWJ0aXRsZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChuZWVkc0lkZW50aXR5KCkpIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cInsgY29udHJvbDogbmFtZUNvbnRyb2wsIGxhYmVsOiB0KCduYW1lTGFiZWwnKSwgcGxhY2Vob2xkZXI6IHQoJ25hbWVQbGFjZWhvbGRlcicpIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogZW1haWxDb250cm9sLFxuICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlOiAnZW1haWwnLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IHQoJ2VtYWlsTGFiZWwnKSxcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0KCdlbWFpbFBsYWNlaG9sZGVyJyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBmb3IgKHEgb2YgcXVlc3Rpb25zKCk7IHRyYWNrIHEubmFtZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19xdWVzdGlvblwiPlxuICAgICAgICAgICAgICAgIEBpZiAocS50eXBlID09PSBlbW9qaVR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIDx2YWwtZW1vamktcmF0aW5nIFtwcm9wc109XCJ7IGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLCBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSB9XCIgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dGFyZWEtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSxcbiAgICAgICAgICAgICAgICAgICAgICBoaW50OiBxLmhpbnQsXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHEucGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHRva2VuOiAnc3VydmV5LXJlc3BvbnNlLXN1Ym1pdCcsXG4gICAgICAgICAgICAgICAgdGV4dDogdCgnc3VibWl0JyksXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgc3RhdGU6IHN1Ym1pdFN0YXRlKCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3F1ZXN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19sb2FkaW5nIHtcbiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3VydmV5UmVzcG9uc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wcyE6IFN1cnZleVJlc3BvbnNlTWV0YWRhdGE7XG4gIEBPdXRwdXQoKSByZWFkb25seSBzdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0cyA9IGluamVjdChSZXF1ZXN0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVtb2ppVHlwZSA9IEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HO1xuXG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHJlYWRvbmx5IGxvYWRFcnJvciA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbnQgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZW5kaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgdHlwZUNvbmZpZyA9IHNpZ25hbDxSZXF1ZXN0VHlwZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IG5hbWVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBlbWFpbENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHByaXZhdGUgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShOQU1FU1BBQ0UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhOQU1FU1BBQ0UsIFNVUlZFWV9SRVNQT05TRV9JMThOKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2ZnID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yZXF1ZXN0cy5nZXRQdWJsaWNSZXF1ZXN0VHlwZSh0aGlzLnByb3BzLnR5cGVJZCkpO1xuICAgICAgdGhpcy50eXBlQ29uZmlnLnNldChjZmcpO1xuICAgICAgdGhpcy5idWlsZEZvcm0oY2ZnKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMubG9hZEVycm9yLnNldCh0cnVlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm0oY2ZnOiBSZXF1ZXN0VHlwZUNvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwOiBSZWNvcmQ8c3RyaW5nLCBGb3JtQ29udHJvbD4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHEgb2YgWy4uLmNmZy5maWVsZFNjaGVtYV0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpKSB7XG4gICAgICBncm91cFtxLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2UgfSwgcS5yZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICB9XG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cChncm91cCk7XG5cbiAgICBpZiAodGhpcy5uZWVkc0lkZW50aXR5KCkpIHtcbiAgICAgIC8vIHNldFZhbGlkYXRvcnMgcG9yIHPDrSBzb2xvIG5vIHJlY2FsY3VsYSBlbCBzdGF0dXMgZGVsIGNvbnRyb2wg4oCUIHNpbiBlbFxuICAgICAgLy8gdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpIGRlIGFsIGxhZG8sIG5hbWUvZW1haWwgcXVlZGFiYW4gVkFMSUQgaGFzdGFcbiAgICAgIC8vIGVsIHByw7N4aW1vIGNhbWJpbyBkZSB2YWxvciwgeSBzdWJtaXQoKSBkZWphYmEgcGFzYXIgdW4gZW52w61vIGFuw7NuaW1vXG4gICAgICAvLyBzaW4gaWRlbnRpZGFkLlxuICAgICAgdGhpcy5uYW1lQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLm5hbWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUHJlZ3VudGFzIG9yZGVuYWRhcyDigJQgZWwgdGVtcGxhdGUgbGFzIHJlY29ycmUgZW4gZXN0ZSBvcmRlbi4gKi9cbiAgcmVhZG9ubHkgcXVlc3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIHJldHVybiBjZmcgPyBbLi4uY2ZnLmZpZWxkU2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikgOiBbXTtcbiAgfSk7XG5cbiAgcXVlc3Rpb25Db250cm9sKG5hbWU6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChuYW1lKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIHF1ZXN0aW9uTGFiZWwocTogeyBsYWJlbD86IHN0cmluZzsgbGFiZWxLZXk/OiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICAvLyBUZXh0byBkZWwgQ0xJRU5URSAocmVnbGEgIzQpOiBxdWllbiBjcmXDsyBsYSBlbmN1ZXN0YSBlc2NyaWJpw7MgZWxcbiAgICAvLyBlbnVuY2lhZG8gdGFsIGN1YWwsIG5vIHNlIHRyYWR1Y2UuXG4gICAgcmV0dXJuIHEubGFiZWwgfHwgcS5uYW1lO1xuICB9XG5cbiAgLyoqIFB1ZWRlIHJlc3BvbmRlciBzaW4gc2VzacOzbiBzaSBlbCB0aXBvIGxvIHBlcm1pdGU7IHNpIG5vLCBoYWNlIGZhbHRhIGxvZ2luLiAqL1xuICByZWFkb25seSBjYW5SZXNwb25kID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiAhIXRoaXMudHlwZUNvbmZpZygpPy5hbGxvd0Fub255bW91cztcbiAgfSk7XG5cbiAgLyoqIFBpZGUgbm9tYnJlK2NvcnJlbyBzb2xvIGN1YW5kbyByZXNwb25kZSBzaW4gc2VzacOzbiDigJQgZWwgYmFja2VuZCBleGlnZVxuICAgKiBpZGVudGlkYWQgbcOtbmltYSBpbmNsdXNvIGVuIGVsIGNhbWlubyBhbsOzbmltbyAoYENyZWF0ZUFub255bW91c1JlcXVlc3RgKS4gKi9cbiAgbmVlZHNJZGVudGl0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHN1Ym1pdFN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc2VuZGluZygpID8gJ1dPUktJTkcnIDogJ0VOQUJMRUQnKSk7XG5cbiAgYXN5bmMgc3VibWl0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnNlbmRpbmcoKSB8fCB0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLm5lZWRzSWRlbnRpdHkoKSAmJiAodGhpcy5uYW1lQ29udHJvbC5pbnZhbGlkIHx8IHRoaXMuZW1haWxDb250cm9sLmludmFsaWQpKSB7XG4gICAgICB0aGlzLm5hbWVDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjZmcgPSB0aGlzLnR5cGVDb25maWcoKTtcbiAgICBpZiAoIWNmZykgcmV0dXJuO1xuXG4gICAgdGhpcy5zZW5kaW5nLnNldCh0cnVlKTtcbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0eXBlOiBjZmcudHlwZUlkLFxuICAgICAgdGl0bGU6IGNmZy5sYWJlbCxcbiAgICAgIGZpZWxkcyxcbiAgICAgIC4uLih0aGlzLm5lZWRzSWRlbnRpdHkoKVxuICAgICAgICA/IHsgc3VibWl0dGVyOiB7IG5hbWU6IHRoaXMubmFtZUNvbnRyb2wudmFsdWUudHJpbSgpLCBlbWFpbDogdGhpcy5lbWFpbENvbnRyb2wudmFsdWUudHJpbSgpIH0gfVxuICAgICAgICA6IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2FsbCQgPSB0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKClcbiAgICAgID8gdGhpcy5yZXF1ZXN0cy5jcmVhdGVSZXF1ZXN0KHBheWxvYWQpXG4gICAgICA6IHRoaXMucmVxdWVzdHMuY3JlYXRlQW5vbnltb3VzUmVxdWVzdChwYXlsb2FkKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShjYWxsJCk7XG4gICAgICB0aGlzLnNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuc2VudC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHsgcmVxdWVzdElkOiByZXMucmVxdWVzdElkIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5zZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzdXJ2ZXlSZXNwb25zZS5zdWJtaXQnLFxuICAgICAgICBmYWxsYmFja0tleTogJ3NlbmRFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IE5BTUVTUEFDRSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IHNlbnRTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHsgdmFyaWFudDogJ2VtcHR5JywgdGl0bGU6IHRoaXMudCgnc2VudFRpdGxlJyksIGRlc2NyaXB0aW9uOiB0aGlzLnQoJ3NlbnRCb2R5JykgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbG9hZEVycm9yU3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7IHZhcmlhbnQ6ICdlcnJvcicsIHRpdGxlOiB0aGlzLnQoJ2xvYWRFcnJvclRpdGxlJyksIGRlc2NyaXB0aW9uOiB0aGlzLnQoJ2xvYWRFcnJvckJvZHknKSB9O1xuICB9KTtcblxuICByZWFkb25seSBsb2dpblJlcXVpcmVkU3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7IHZhcmlhbnQ6ICdlcnJvcicsIHRpdGxlOiB0aGlzLnQoJ2xvZ2luUmVxdWlyZWRUaXRsZScpLCBkZXNjcmlwdGlvbjogdGhpcy50KCdsb2dpblJlcXVpcmVkQm9keScpIH07XG4gIH0pO1xuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIE5BTUVTUEFDRSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export const SURVEY_RESPONSE_I18N = {
|
|
2
|
+
es: {
|
|
3
|
+
nameLabel: 'Tu nombre',
|
|
4
|
+
namePlaceholder: 'Cómo te llamamos',
|
|
5
|
+
emailLabel: 'Correo',
|
|
6
|
+
emailPlaceholder: 'tu@email.com',
|
|
7
|
+
noName: 'Necesitamos un nombre',
|
|
8
|
+
noEmail: 'Necesitamos un correo',
|
|
9
|
+
invalidEmail: 'Revisa el correo, parece incompleto',
|
|
10
|
+
required: 'Esta pregunta es obligatoria',
|
|
11
|
+
submit: 'Enviar',
|
|
12
|
+
sentTitle: 'Gracias por responder',
|
|
13
|
+
sentBody: 'Tu respuesta quedó registrada.',
|
|
14
|
+
loadErrorTitle: 'No pudimos cargar la encuesta',
|
|
15
|
+
loadErrorBody: 'Puede que el link esté vencido o ya no esté disponible.',
|
|
16
|
+
loginRequiredTitle: 'Necesitas iniciar sesión',
|
|
17
|
+
loginRequiredBody: 'Esta encuesta no acepta respuestas anónimas.',
|
|
18
|
+
sendError: 'No pudimos enviar tu respuesta. Inténtalo de nuevo en un rato.',
|
|
19
|
+
},
|
|
20
|
+
en: {
|
|
21
|
+
nameLabel: 'Your name',
|
|
22
|
+
namePlaceholder: 'What should we call you',
|
|
23
|
+
emailLabel: 'Email',
|
|
24
|
+
emailPlaceholder: 'you@email.com',
|
|
25
|
+
noName: 'We need a name',
|
|
26
|
+
noEmail: 'We need an email',
|
|
27
|
+
invalidEmail: 'Check the email, it looks incomplete',
|
|
28
|
+
required: 'This question is required',
|
|
29
|
+
submit: 'Submit',
|
|
30
|
+
sentTitle: 'Thanks for answering',
|
|
31
|
+
sentBody: 'Your response was recorded.',
|
|
32
|
+
loadErrorTitle: "We couldn't load the survey",
|
|
33
|
+
loadErrorBody: 'The link may be expired or no longer available.',
|
|
34
|
+
loginRequiredTitle: 'You need to sign in',
|
|
35
|
+
loginRequiredBody: "This survey doesn't accept anonymous responses.",
|
|
36
|
+
sendError: "We couldn't send your response. Please try again in a while.",
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1yZXNwb25zZS9zdXJ2ZXktcmVzcG9uc2UuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBcUI7SUFDcEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFdBQVc7UUFDdEIsZUFBZSxFQUFFLGtCQUFrQjtRQUNuQyxVQUFVLEVBQUUsUUFBUTtRQUNwQixnQkFBZ0IsRUFBRSxjQUFjO1FBQ2hDLE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxZQUFZLEVBQUUscUNBQXFDO1FBQ25ELFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsU0FBUyxFQUFFLHVCQUF1QjtRQUNsQyxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLGNBQWMsRUFBRSwrQkFBK0I7UUFDL0MsYUFBYSxFQUFFLHlEQUF5RDtRQUN4RSxrQkFBa0IsRUFBRSwwQkFBMEI7UUFDOUMsaUJBQWlCLEVBQUUsOENBQThDO1FBQ2pFLFNBQVMsRUFBRSxnRUFBZ0U7S0FDNUU7SUFDRCxFQUFFLEVBQUU7UUFDRixTQUFTLEVBQUUsV0FBVztRQUN0QixlQUFlLEVBQUUseUJBQXlCO1FBQzFDLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLGVBQWU7UUFDakMsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFlBQVksRUFBRSxzQ0FBc0M7UUFDcEQsUUFBUSxFQUFFLDJCQUEyQjtRQUNyQyxNQUFNLEVBQUUsUUFBUTtRQUNoQixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFFBQVEsRUFBRSw2QkFBNkI7UUFDdkMsY0FBYyxFQUFFLDZCQUE2QjtRQUM3QyxhQUFhLEVBQUUsaURBQWlEO1FBQ2hFLGtCQUFrQixFQUFFLHFCQUFxQjtRQUN6QyxpQkFBaUIsRUFBRSxpREFBaUQ7UUFDcEUsU0FBUyxFQUFFLDhEQUE4RDtLQUMxRTtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5cbmV4cG9ydCBjb25zdCBTVVJWRVlfUkVTUE9OU0VfSTE4TjogTGFuZ3VhZ2VzQ29udGVudCA9IHtcbiAgZXM6IHtcbiAgICBuYW1lTGFiZWw6ICdUdSBub21icmUnLFxuICAgIG5hbWVQbGFjZWhvbGRlcjogJ0PDs21vIHRlIGxsYW1hbW9zJyxcbiAgICBlbWFpbExhYmVsOiAnQ29ycmVvJyxcbiAgICBlbWFpbFBsYWNlaG9sZGVyOiAndHVAZW1haWwuY29tJyxcbiAgICBub05hbWU6ICdOZWNlc2l0YW1vcyB1biBub21icmUnLFxuICAgIG5vRW1haWw6ICdOZWNlc2l0YW1vcyB1biBjb3JyZW8nLFxuICAgIGludmFsaWRFbWFpbDogJ1JldmlzYSBlbCBjb3JyZW8sIHBhcmVjZSBpbmNvbXBsZXRvJyxcbiAgICByZXF1aXJlZDogJ0VzdGEgcHJlZ3VudGEgZXMgb2JsaWdhdG9yaWEnLFxuICAgIHN1Ym1pdDogJ0VudmlhcicsXG4gICAgc2VudFRpdGxlOiAnR3JhY2lhcyBwb3IgcmVzcG9uZGVyJyxcbiAgICBzZW50Qm9keTogJ1R1IHJlc3B1ZXN0YSBxdWVkw7MgcmVnaXN0cmFkYS4nLFxuICAgIGxvYWRFcnJvclRpdGxlOiAnTm8gcHVkaW1vcyBjYXJnYXIgbGEgZW5jdWVzdGEnLFxuICAgIGxvYWRFcnJvckJvZHk6ICdQdWVkZSBxdWUgZWwgbGluayBlc3TDqSB2ZW5jaWRvIG8geWEgbm8gZXN0w6kgZGlzcG9uaWJsZS4nLFxuICAgIGxvZ2luUmVxdWlyZWRUaXRsZTogJ05lY2VzaXRhcyBpbmljaWFyIHNlc2nDs24nLFxuICAgIGxvZ2luUmVxdWlyZWRCb2R5OiAnRXN0YSBlbmN1ZXN0YSBubyBhY2VwdGEgcmVzcHVlc3RhcyBhbsOzbmltYXMuJyxcbiAgICBzZW5kRXJyb3I6ICdObyBwdWRpbW9zIGVudmlhciB0dSByZXNwdWVzdGEuIEludMOpbnRhbG8gZGUgbnVldm8gZW4gdW4gcmF0by4nLFxuICB9LFxuICBlbjoge1xuICAgIG5hbWVMYWJlbDogJ1lvdXIgbmFtZScsXG4gICAgbmFtZVBsYWNlaG9sZGVyOiAnV2hhdCBzaG91bGQgd2UgY2FsbCB5b3UnLFxuICAgIGVtYWlsTGFiZWw6ICdFbWFpbCcsXG4gICAgZW1haWxQbGFjZWhvbGRlcjogJ3lvdUBlbWFpbC5jb20nLFxuICAgIG5vTmFtZTogJ1dlIG5lZWQgYSBuYW1lJyxcbiAgICBub0VtYWlsOiAnV2UgbmVlZCBhbiBlbWFpbCcsXG4gICAgaW52YWxpZEVtYWlsOiAnQ2hlY2sgdGhlIGVtYWlsLCBpdCBsb29rcyBpbmNvbXBsZXRlJyxcbiAgICByZXF1aXJlZDogJ1RoaXMgcXVlc3Rpb24gaXMgcmVxdWlyZWQnLFxuICAgIHN1Ym1pdDogJ1N1Ym1pdCcsXG4gICAgc2VudFRpdGxlOiAnVGhhbmtzIGZvciBhbnN3ZXJpbmcnLFxuICAgIHNlbnRCb2R5OiAnWW91ciByZXNwb25zZSB3YXMgcmVjb3JkZWQuJyxcbiAgICBsb2FkRXJyb3JUaXRsZTogXCJXZSBjb3VsZG4ndCBsb2FkIHRoZSBzdXJ2ZXlcIixcbiAgICBsb2FkRXJyb3JCb2R5OiAnVGhlIGxpbmsgbWF5IGJlIGV4cGlyZWQgb3Igbm8gbG9uZ2VyIGF2YWlsYWJsZS4nLFxuICAgIGxvZ2luUmVxdWlyZWRUaXRsZTogJ1lvdSBuZWVkIHRvIHNpZ24gaW4nLFxuICAgIGxvZ2luUmVxdWlyZWRCb2R5OiBcIlRoaXMgc3VydmV5IGRvZXNuJ3QgYWNjZXB0IGFub255bW91cyByZXNwb25zZXMuXCIsXG4gICAgc2VuZEVycm9yOiBcIldlIGNvdWxkbid0IHNlbmQgeW91ciByZXNwb25zZS4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIHdoaWxlLlwiLFxuICB9LFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1yZXNwb25zZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhIHtcbiAgLyoqIEVsIGBUeXBlSURgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyAoY29udmVuY2nDs246IGBcInN1cnZleTo8c2x1Zz5cImApLiAqL1xuICB0eXBlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlSZXNwb25zZVN1Ym1pdEV2ZW50IHtcbiAgcmVxdWVzdElkOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -243,7 +243,7 @@ export class ToolbarComponent {
|
|
|
243
243
|
<!-- experimental -->
|
|
244
244
|
<ng-content select="[toolbar-bottom]"></ng-content>
|
|
245
245
|
</ion-toolbar>
|
|
246
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.right-buttons{align-items:center;gap:4px}.background{background:var(--ion-background-color)}:host ion-title{--color: var(--ion-text-color)}:host ion-button{--color: var(--ion-text-color)}:host ion-icon{color:var(--ion-text-color)}:host val-user-avatar+val-user-avatar{margin-left:6px}:host val-font-size-selector,:host val-language-selector{display:inline-flex;align-items:center}:host ion-menu-button{min-width:44px;width:44px;height:44px;margin-left:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { 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: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: FontSizeSelectorComponent, selector: "val-font-size-selector", inputs: ["props"] }, { kind: "component", type: ThemeSelectorComponent, selector: "val-theme-selector", inputs: ["props"] }] }); }
|
|
246
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.right-buttons{align-items:center;gap:4px}.background{background:var(--ion-background-color)}:host ion-title{--color: var(--ion-text-color)}:host ion-button{--color: var(--ion-text-color)}:host ion-icon{color:var(--ion-text-color)}:host val-user-avatar+val-user-avatar{margin-left:6px}:host val-font-size-selector,:host val-language-selector{display:inline-flex;align-items:center}:host ion-menu-button{min-width:44px;width:44px;height:44px;margin-left:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { 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: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: FontSizeSelectorComponent, selector: "val-font-size-selector", inputs: ["props"] }, { kind: "component", type: ThemeSelectorComponent, selector: "val-theme-selector", inputs: ["props"] }] }); }
|
|
247
247
|
}
|
|
248
248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolbarComponent, decorators: [{
|
|
249
249
|
type: Component,
|
|
@@ -375,10 +375,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
375
375
|
<!-- experimental -->
|
|
376
376
|
<ng-content select="[toolbar-bottom]"></ng-content>
|
|
377
377
|
</ion-toolbar>
|
|
378
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.right-buttons{align-items:center;gap:4px}.background{background:var(--ion-background-color)}:host ion-title{--color: var(--ion-text-color)}:host ion-button{--color: var(--ion-text-color)}:host ion-icon{color:var(--ion-text-color)}:host val-user-avatar+val-user-avatar{margin-left:6px}:host val-font-size-selector,:host val-language-selector{display:inline-flex;align-items:center}:host ion-menu-button{min-width:44px;width:44px;height:44px;margin-left:4px}\n"] }]
|
|
378
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.right-buttons{align-items:center;gap:4px}.background{background:var(--ion-background-color)}:host ion-title{--color: var(--ion-text-color)}:host ion-button{--color: var(--ion-text-color)}:host ion-icon{color:var(--ion-text-color)}:host val-user-avatar+val-user-avatar{margin-left:6px}:host val-font-size-selector,:host val-language-selector{display:inline-flex;align-items:center}:host ion-menu-button{min-width:44px;width:44px;height:44px;margin-left:4px}\n"] }]
|
|
379
379
|
}], ctorParameters: () => [{ type: i1.IconService }], propDecorators: { props: [{
|
|
380
380
|
type: Input
|
|
381
381
|
}], onClick: [{
|
|
382
382
|
type: Output
|
|
383
383
|
}] } });
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE9BQU8sRUFDUCxhQUFhLEVBQ2IsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFHL0Q7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpSFQ7Z0ZBUUQsS0FBSztzQkFESixLQUFLO2dCQWNOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uQnV0dG9ucyxcbiAgSW9uSWNvbixcbiAgSW9uTWVudUJ1dHRvbixcbiAgSW9uVGV4dCxcbiAgSW9uVGl0bGUsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uQmFja091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlckF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb250U2l6ZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2ZvbnQtc2l6ZS1zZWxlY3Rvci9mb250LXNpemUtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZW1lU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGhlbWUtc2VsZWN0b3IvdGhlbWUtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb24sIFRvb2xiYXJBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGJhck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVG9vbGJhckNvbXBvbmVudFxuICpcbiAqIENvbXBvbmVudGUgZGUgYmFycmEgZGUgaGVycmFtaWVudGFzIHJldXRpbGl6YWJsZSBwYXJhIGVuY2FiZXphZG9zIHkgcGllcyBkZSBww6FnaW5hLlxuICogUGVybWl0ZSBhY2Npb25lcywgYm90w7NuIGRlIHJldHJvY2VzbywgbWVuw7ogeSBwZXJzb25hbGl6YWNpw7NuIGRlIGNvbG9yZXMgeSB0w610dWxvLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXRvb2xiYXIgW3Byb3BzXT1cInsgdGl0bGU6ICdNaSBBcHAnLCB3aXRoQmFjazogdHJ1ZSwgYWN0aW9uczogWy4uLl0gfVwiIChvbkNsaWNrKT1cImhhbmRsZVRvb2xiYXJBY3Rpb24oJGV2ZW50KVwiPjwvdmFsLXRvb2xiYXI+XG4gKlxuICogQGlucHV0IHByb3BzIHtUb29sYmFyTWV0YWRhdGF9IC0gTWV0YWRhdG9zIGRlIGxhIGJhcnJhIGRlIGhlcnJhbWllbnRhcy5cbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRlIGVsIHRva2VuIGRlIGxhIGFjY2nDs24gY2xpY2FkYS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRvb2xiYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgICBJb25UZXh0LFxuICAgIElvblRpdGxlLFxuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBVc2VyQXZhdGFyQ29tcG9uZW50LFxuICAgIElvbk1lbnVCdXR0b24sXG4gICAgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCxcbiAgICBGb250U2l6ZVNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFRoZW1lU2VsZWN0b3JDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10b29sYmFyIFtjb2xvcl09XCJwcm9wcy5jb2xvclwiIFtjbGFzcy5iYWNrZ3JvdW5kXT1cInByb3BzLmNvbG9yID09PSAnYmFja2dyb3VuZCdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy53aXRoQmFja1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgY2xhc3M9XCJsZWZ0LWJ1dHRvbnNcIiBzbG90PVwic3RhcnRcIiAqbmdJZj1cInByb3BzLndpdGhCYWNrXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICAgICAgW2NvbG9yXT1cInByb3BzLnRleHRDb2xvclwiXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA4cHg7XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvcHMuYmFja1RleHQgfHwgJ1ZvbHZlcidcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1iYWNrLW91dGxpbmVcIlxuICAgICAgICAgICAgICBbc2xvdF09XCJwcm9wcy5iYWNrVGV4dCA/ICdzdGFydCcgOiAnaWNvbi1vbmx5J1wiXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxpb24tdGV4dCAqbmdJZj1cInByb3BzLmJhY2tUZXh0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3sgcHJvcHMuYmFja1RleHQgfX08L2lvbi10ZXh0PlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BzLndpdGhBY3Rpb25zXCI+XG4gICAgICAgIDxpb24tYnV0dG9uc1xuICAgICAgICAgIGNsYXNzPVwicmlnaHQtYnV0dG9uc1wiXG4gICAgICAgICAgc2xvdD1cImVuZFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIHNvbWVJblJpZ2h0KCkgfHwgcHJvcHMud2l0aE1lbnUgfHwgcHJvcHMubGFuZ3VhZ2VTZWxlY3RvciB8fCBwcm9wcy5mb250U2l6ZVNlbGVjdG9yIHx8IHByb3BzLnRoZW1lU2VsZWN0b3JcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJpZ2h0QWN0aW9ucygpOyB0cmFja0J5OiB0cmFja0J5VG9rZW5cIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjdGlvbi50b2tlblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgIHNsb3Q9XCJpY29uLW9ubHlcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInByb3BzLnRleHRDb2xvclwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8dmFsLXVzZXItYXZhdGFyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgdXNlcjogYWN0aW9uLnVzZXIsXG4gICAgICAgICAgICAgICAgYXZhdGFyVXJsOiBhY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgc2l6ZTogYWN0aW9uLmF2YXRhclNpemUgPz8gJ3NtYWxsJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC11c2VyLWF2YXRhcj5cbiAgICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSU1BR0VcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwiYWN0aW9uLmltYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1pbWFnZT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy50ZXh0Q29sb3JcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgICA+e3sgYWN0aW9uLmRlc2NyaXB0aW9uIH19PC9pb24tYnV0dG9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgQGlmIChwcm9wcy50aGVtZVNlbGVjdG9yKSB7XG4gICAgICAgICAgICA8dmFsLXRoZW1lLXNlbGVjdG9yIFtwcm9wc109XCJ0aGVtZVNlbGVjdG9yUHJvcHNcIj48L3ZhbC10aGVtZS1zZWxlY3Rvcj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChwcm9wcy5mb250U2l6ZVNlbGVjdG9yKSB7XG4gICAgICAgICAgICA8dmFsLWZvbnQtc2l6ZS1zZWxlY3RvciBbcHJvcHNdPVwiZm9udFNpemVTZWxlY3RvclByb3BzXCI+PC92YWwtZm9udC1zaXplLXNlbGVjdG9yPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHByb3BzLmxhbmd1YWdlU2VsZWN0b3IpIHtcbiAgICAgICAgICAgIDx2YWwtbGFuZ3VhZ2Utc2VsZWN0b3IgW3Byb3BzXT1cImxhbmd1YWdlU2VsZWN0b3JQcm9wc1wiPjwvdmFsLWxhbmd1YWdlLXNlbGVjdG9yPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHByb3BzLndpdGhNZW51KSB7XG4gICAgICAgICAgICA8aW9uLW1lbnUtYnV0dG9uIFttZW51XT1cInByb3BzLm1lbnVJZCB8fCAnbWFpbi1tZW51J1wiIGNvbG9yPVwiZGFya1wiPjwvaW9uLW1lbnUtYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiICpuZ0lmPVwic29tZUluTGVmdCgpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDRweDtcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgbGVmdEFjdGlvbnMoKTsgdHJhY2tCeTogdHJhY2tCeVRva2VuXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3Rpb24udG9rZW5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICBzbG90PVwiaWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy50ZXh0Q29sb3JcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC11c2VyLWF2YXRhclxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5BVkFUQVJcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHVzZXI6IGFjdGlvbi51c2VyLFxuICAgICAgICAgICAgICAgIGF2YXRhclVybDogYWN0aW9uLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIHNpemU6IGFjdGlvbi5hdmF0YXJTaXplID8/ICdzbWFsbCcsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtdXNlci1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIiAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIj57e1xuICAgICAgICAgICAgICBhY3Rpb24uZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH19PC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8aW9uLXRpdGxlICpuZ0lmPVwicHJvcHMudGl0bGVcIiBbY29sb3JdPVwicHJvcHMudGV4dENvbG9yXCI+e3sgcHJvcHMudGl0bGUgfX08L2lvbi10aXRsZT5cbiAgICAgIDwhLS0gZXhwZXJpbWVudGFsIC0tPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXItYm90dG9tXVwiPjwvbmctY29udGVudD5cbiAgICA8L2lvbi10b29sYmFyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogTWV0YWRhdG9zIGRlIGxhIGJhcnJhIGRlIGhlcnJhbWllbnRhcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBUb29sYmFyTWV0YWRhdGE7XG5cbiAgcHJpdmF0ZSBfbHNwSW5wdXQ6IHsgbHM6IGFueTsgY29sb3I6IGFueSB9ID0geyBsczogbnVsbCwgY29sb3I6IG51bGwgfTtcbiAgcHJpdmF0ZSBfbHNwQ2FjaGU6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgX2Zzc0lucHV0OiB7IGZzczogYW55OyBjb2xvcjogYW55IH0gPSB7IGZzczogbnVsbCwgY29sb3I6IG51bGwgfTtcbiAgcHJpdmF0ZSBfZnNzQ2FjaGU6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgX3RzSW5wdXQ6IHsgdHM6IGFueTsgY29sb3I6IGFueSB9ID0geyB0czogbnVsbCwgY29sb3I6IG51bGwgfTtcbiAgcHJpdmF0ZSBfdHNDYWNoZTogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogRXZlbnRvIGVtaXRpZG8gYWwgaGFjZXIgY2xpY2sgZW4gdW5hIGFjY2nDs24gbyBib3TDs24gZGUgbGEgYmFycmEuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGFjdGlvblR5cGVzID0gVG9vbGJhckFjdGlvblR5cGU7XG5cbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gIGNvbnN0cnVjdG9yKGljb246IEljb25TZXJ2aWNlKSB7XG4gICAgYWRkSWNvbnMoeyBjaGV2cm9uQmFja091dGxpbmUgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgLyoqXG4gICAqIEVtaXRlIGVsIHRva2VuIGRlIGxhIGFjY2nDs24gY2xpY2FkYS5cbiAgICogQHBhcmFtIHRva2VuIFRva2VuIGRlIGxhIGFjY2nDs25cbiAgICovXG4gIGNsaWNrSGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHRva2VuKTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICAvLyBDb24gZGVzdGlubyBleHBsw61jaXRvIHNlIG5hdmVnYSBhaMOtOiBlbCBoaXN0b3JpYWwgbm8gc2FiZSBhIHF1w6kgdGFiIG9cbiAgICAvLyBmaWx0cm8gdm9sdmVyIHNpIGxhIHZpc3RhIGFudGVyaW9yIGxvIGd1YXJkYWJhIGVuIGxhIFVSTC5cbiAgICBjb25zdCBocmVmID0gdGhpcy5wcm9wcy5iYWNrSHJlZjtcbiAgICBpZiAoaHJlZikge1xuICAgICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGhyZWYpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm5hdi5iYWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5hIHNpIGhheSBhY2Npb25lcyBhIGxhIGRlcmVjaGEuXG4gICAqL1xuICBzb21lSW5SaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnByb3BzLmFjdGlvbnMuZmluZCh4ID0+IHgucG9zaXRpb24gPT09ICdyaWdodCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluYSBzaSBoYXkgYWNjaW9uZXMgYSBsYSBpenF1aWVyZGEuXG4gICAqL1xuICBzb21lSW5MZWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucHJvcHMuYWN0aW9ucy5maW5kKHggPT4geC5wb3NpdGlvbiA9PT0gJ2xlZnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXZ1ZWx2ZSBsYXMgYWNjaW9uZXMgZGUgbGEgZGVyZWNoYS5cbiAgICovXG4gIHJpZ2h0QWN0aW9ucygpOiBUb29sYmFyQWN0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmFjdGlvbnMuZmlsdGVyKHggPT4geC5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jyk7XG4gIH1cblxuICAvKipcbiAgICogRGV2dWVsdmUgbGFzIGFjY2lvbmVzIGRlIGxhIGl6cXVpZXJkYS5cbiAgICovXG4gIGxlZnRBY3Rpb25zKCk6IFRvb2xiYXJBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYWN0aW9ucy5maWx0ZXIoeCA9PiB4LnBvc2l0aW9uID09PSAnbGVmdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRyYWNrQnkgcG9yIGB0b2tlbmAgcGFyYSBlbCAqbmdGb3IgZGUgYWNjaW9uZXMuIFNpbiBlc3RvLCBjb21vIHJpZ2h0QWN0aW9ucygpL1xuICAgKiBsZWZ0QWN0aW9ucygpIGRldnVlbHZlbiB1biBhcnJheSBOVUVWTyBlbiBjYWRhIGNoYW5nZSBkZXRlY3Rpb24sIEFuZ3VsYXIgZGlmZmVhXG4gICAqIHBvciBpZGVudGlkYWQgeSBERVNUUlVZRS9SRUNSRUEgbG9zIG5vZG9zICh2YWwtdXNlci1hdmF0YXIgLyB2YWwtaW1hZ2UpIGN1YW5kb1xuICAgKiBjYW1iaWEgbGEgcmVmZXJlbmNpYSDihpIgZWwgPGltZz4gc2UgcmVjcmVhIHkgcmVhcGFyZWNlIGVsIGZhbGxiYWNrIChcInBhcnBhZGVvXCIpLlxuICAgKiBDb24ga2V5IGVzdGFibGUsIEFuZ3VsYXIgcmV1c2EgZWwgZWxlbWVudG8gZXhpc3RlbnRlIOKGkiBzaW4gcmVjYXJnYSBuaSBmbGlja2VyLlxuICAgKi9cbiAgdHJhY2tCeVRva2VuKF9pbmRleDogbnVtYmVyLCBhY3Rpb246IFRvb2xiYXJBY3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBhY3Rpb24udG9rZW47XG4gIH1cblxuICAvKipcbiAgICogTGFuZ3VhZ2Ugc2VsZWN0b3IgcHJvcHMg4oCUIG1lbW9pemVkIHRvIGF2b2lkIG5ldyBvYmplY3QgcmVmZXJlbmNlIG9uIGV2ZXJ5IENEIGN5Y2xlLlxuICAgKi9cbiAgZ2V0IGZvbnRTaXplU2VsZWN0b3JQcm9wcygpIHtcbiAgICBjb25zdCBmc3MgPSB0aGlzLnByb3BzLmZvbnRTaXplU2VsZWN0b3I7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BzLnRleHRDb2xvcjtcbiAgICBpZiAodGhpcy5fZnNzQ2FjaGUgIT09IG51bGwgJiYgdGhpcy5fZnNzSW5wdXQuZnNzID09PSBmc3MgJiYgdGhpcy5fZnNzSW5wdXQuY29sb3IgPT09IGNvbG9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZnNzQ2FjaGU7XG4gICAgfVxuICAgIHRoaXMuX2Zzc0lucHV0ID0geyBmc3MsIGNvbG9yIH07XG4gICAgdGhpcy5fZnNzQ2FjaGUgPSB7IGNvbG9yOiBjb2xvciB8fCAnZGFyaycsIC4uLmZzcyB9O1xuICAgIHJldHVybiB0aGlzLl9mc3NDYWNoZTtcbiAgfVxuXG4gIGdldCB0aGVtZVNlbGVjdG9yUHJvcHMoKSB7XG4gICAgY29uc3QgdHMgPSB0aGlzLnByb3BzLnRoZW1lU2VsZWN0b3I7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BzLnRleHRDb2xvcjtcbiAgICBpZiAodGhpcy5fdHNDYWNoZSAhPT0gbnVsbCAmJiB0aGlzLl90c0lucHV0LnRzID09PSB0cyAmJiB0aGlzLl90c0lucHV0LmNvbG9yID09PSBjb2xvcikge1xuICAgICAgcmV0dXJuIHRoaXMuX3RzQ2FjaGU7XG4gICAgfVxuICAgIHRoaXMuX3RzSW5wdXQgPSB7IHRzLCBjb2xvciB9O1xuICAgIHRoaXMuX3RzQ2FjaGUgPSB7IGNvbG9yOiBjb2xvciB8fCAnbWVkaXVtJywgLi4udHMgfTtcbiAgICByZXR1cm4gdGhpcy5fdHNDYWNoZTtcbiAgfVxuXG4gIGdldCBsYW5ndWFnZVNlbGVjdG9yUHJvcHMoKSB7XG4gICAgY29uc3QgbHMgPSB0aGlzLnByb3BzLmxhbmd1YWdlU2VsZWN0b3I7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BzLnRleHRDb2xvcjtcbiAgICBpZiAodGhpcy5fbHNwQ2FjaGUgIT09IG51bGwgJiYgdGhpcy5fbHNwSW5wdXQubHMgPT09IGxzICYmIHRoaXMuX2xzcElucHV0LmNvbG9yID09PSBjb2xvcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2xzcENhY2hlO1xuICAgIH1cbiAgICB0aGlzLl9sc3BJbnB1dCA9IHsgbHMsIGNvbG9yIH07XG4gICAgdGhpcy5fbHNwQ2FjaGUgPSB7IG1vZGU6ICdpY29uJyBhcyBjb25zdCwgY29sb3I6IGNvbG9yIHx8ICdkYXJrJywgLi4ubHMgfTtcbiAgICByZXR1cm4gdGhpcy5fbHNwQ2FjaGU7XG4gIH1cbn1cbiJdfQ==
|
|
384
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE9BQU8sRUFDUCxhQUFhLEVBQ2IsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFHL0Q7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpSFQ7Z0ZBUUQsS0FBSztzQkFESixLQUFLO2dCQWNOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uQnV0dG9ucyxcbiAgSW9uSWNvbixcbiAgSW9uTWVudUJ1dHRvbixcbiAgSW9uVGV4dCxcbiAgSW9uVGl0bGUsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uQmFja091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlckF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb250U2l6ZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2ZvbnQtc2l6ZS1zZWxlY3Rvci9mb250LXNpemUtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZW1lU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGhlbWUtc2VsZWN0b3IvdGhlbWUtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb24sIFRvb2xiYXJBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGJhck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVG9vbGJhckNvbXBvbmVudFxuICpcbiAqIENvbXBvbmVudGUgZGUgYmFycmEgZGUgaGVycmFtaWVudGFzIHJldXRpbGl6YWJsZSBwYXJhIGVuY2FiZXphZG9zIHkgcGllcyBkZSBww6FnaW5hLlxuICogUGVybWl0ZSBhY2Npb25lcywgYm90w7NuIGRlIHJldHJvY2VzbywgbWVuw7ogeSBwZXJzb25hbGl6YWNpw7NuIGRlIGNvbG9yZXMgeSB0w610dWxvLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXRvb2xiYXIgW3Byb3BzXT1cInsgdGl0bGU6ICdNaSBBcHAnLCB3aXRoQmFjazogdHJ1ZSwgYWN0aW9uczogWy4uLl0gfVwiIChvbkNsaWNrKT1cImhhbmRsZVRvb2xiYXJBY3Rpb24oJGV2ZW50KVwiPjwvdmFsLXRvb2xiYXI+XG4gKlxuICogQGlucHV0IHByb3BzIHtUb29sYmFyTWV0YWRhdGF9IC0gTWV0YWRhdG9zIGRlIGxhIGJhcnJhIGRlIGhlcnJhbWllbnRhcy5cbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRlIGVsIHRva2VuIGRlIGxhIGFjY2nDs24gY2xpY2FkYS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRvb2xiYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgICBJb25UZXh0LFxuICAgIElvblRpdGxlLFxuICAgIEF2YXRhckNvbXBvbmVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBVc2VyQXZhdGFyQ29tcG9uZW50LFxuICAgIElvbk1lbnVCdXR0b24sXG4gICAgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCxcbiAgICBGb250U2l6ZVNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFRoZW1lU2VsZWN0b3JDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10b29sYmFyIFtjb2xvcl09XCJwcm9wcy5jb2xvclwiIFtjbGFzcy5iYWNrZ3JvdW5kXT1cInByb3BzLmNvbG9yID09PSAnYmFja2dyb3VuZCdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy53aXRoQmFja1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgY2xhc3M9XCJsZWZ0LWJ1dHRvbnNcIiBzbG90PVwic3RhcnRcIiAqbmdJZj1cInByb3BzLndpdGhCYWNrXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICAgICAgW2NvbG9yXT1cInByb3BzLnRleHRDb2xvclwiXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA4cHg7XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvcHMuYmFja1RleHQgfHwgJ1ZvbHZlcidcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1iYWNrLW91dGxpbmVcIlxuICAgICAgICAgICAgICBbc2xvdF09XCJwcm9wcy5iYWNrVGV4dCA/ICdzdGFydCcgOiAnaWNvbi1vbmx5J1wiXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxpb24tdGV4dCAqbmdJZj1cInByb3BzLmJhY2tUZXh0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3sgcHJvcHMuYmFja1RleHQgfX08L2lvbi10ZXh0PlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BzLndpdGhBY3Rpb25zXCI+XG4gICAgICAgIDxpb24tYnV0dG9uc1xuICAgICAgICAgIGNsYXNzPVwicmlnaHQtYnV0dG9uc1wiXG4gICAgICAgICAgc2xvdD1cImVuZFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIHNvbWVJblJpZ2h0KCkgfHwgcHJvcHMud2l0aE1lbnUgfHwgcHJvcHMubGFuZ3VhZ2VTZWxlY3RvciB8fCBwcm9wcy5mb250U2l6ZVNlbGVjdG9yIHx8IHByb3BzLnRoZW1lU2VsZWN0b3JcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJpZ2h0QWN0aW9ucygpOyB0cmFja0J5OiB0cmFja0J5VG9rZW5cIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjdGlvbi50b2tlblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgIHNsb3Q9XCJpY29uLW9ubHlcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInByb3BzLnRleHRDb2xvclwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8dmFsLXVzZXItYXZhdGFyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgdXNlcjogYWN0aW9uLnVzZXIsXG4gICAgICAgICAgICAgICAgYXZhdGFyVXJsOiBhY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgc2l6ZTogYWN0aW9uLmF2YXRhclNpemUgPz8gJ3NtYWxsJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC11c2VyLWF2YXRhcj5cbiAgICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSU1BR0VcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwiYWN0aW9uLmltYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1pbWFnZT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy50ZXh0Q29sb3JcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgICA+e3sgYWN0aW9uLmRlc2NyaXB0aW9uIH19PC9pb24tYnV0dG9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgQGlmIChwcm9wcy50aGVtZVNlbGVjdG9yKSB7XG4gICAgICAgICAgICA8dmFsLXRoZW1lLXNlbGVjdG9yIFtwcm9wc109XCJ0aGVtZVNlbGVjdG9yUHJvcHNcIj48L3ZhbC10aGVtZS1zZWxlY3Rvcj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChwcm9wcy5mb250U2l6ZVNlbGVjdG9yKSB7XG4gICAgICAgICAgICA8dmFsLWZvbnQtc2l6ZS1zZWxlY3RvciBbcHJvcHNdPVwiZm9udFNpemVTZWxlY3RvclByb3BzXCI+PC92YWwtZm9udC1zaXplLXNlbGVjdG9yPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHByb3BzLmxhbmd1YWdlU2VsZWN0b3IpIHtcbiAgICAgICAgICAgIDx2YWwtbGFuZ3VhZ2Utc2VsZWN0b3IgW3Byb3BzXT1cImxhbmd1YWdlU2VsZWN0b3JQcm9wc1wiPjwvdmFsLWxhbmd1YWdlLXNlbGVjdG9yPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHByb3BzLndpdGhNZW51KSB7XG4gICAgICAgICAgICA8aW9uLW1lbnUtYnV0dG9uIFttZW51XT1cInByb3BzLm1lbnVJZCB8fCAnbWFpbi1tZW51J1wiIGNvbG9yPVwiZGFya1wiPjwvaW9uLW1lbnUtYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiICpuZ0lmPVwic29tZUluTGVmdCgpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDRweDtcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgbGVmdEFjdGlvbnMoKTsgdHJhY2tCeTogdHJhY2tCeVRva2VuXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3Rpb24udG9rZW5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICBzbG90PVwiaWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy50ZXh0Q29sb3JcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC11c2VyLWF2YXRhclxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5BVkFUQVJcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHVzZXI6IGFjdGlvbi51c2VyLFxuICAgICAgICAgICAgICAgIGF2YXRhclVybDogYWN0aW9uLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIHNpemU6IGFjdGlvbi5hdmF0YXJTaXplID8/ICdzbWFsbCcsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtdXNlci1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIiAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIj57e1xuICAgICAgICAgICAgICBhY3Rpb24uZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH19PC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8aW9uLXRpdGxlICpuZ0lmPVwicHJvcHMudGl0bGVcIiBbY29sb3JdPVwicHJvcHMudGV4dENvbG9yXCI+e3sgcHJvcHMudGl0bGUgfX08L2lvbi10aXRsZT5cbiAgICAgIDwhLS0gZXhwZXJpbWVudGFsIC0tPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXItYm90dG9tXVwiPjwvbmctY29udGVudD5cbiAgICA8L2lvbi10b29sYmFyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogTWV0YWRhdG9zIGRlIGxhIGJhcnJhIGRlIGhlcnJhbWllbnRhcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBUb29sYmFyTWV0YWRhdGE7XG5cbiAgcHJpdmF0ZSBfbHNwSW5wdXQ6IHsgbHM6IGFueTsgY29sb3I6IGFueSB9ID0geyBsczogbnVsbCwgY29sb3I6IG51bGwgfTtcbiAgcHJpdmF0ZSBfbHNwQ2FjaGU6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgX2Zzc0lucHV0OiB7IGZzczogYW55OyBjb2xvcjogYW55IH0gPSB7IGZzczogbnVsbCwgY29sb3I6IG51bGwgfTtcbiAgcHJpdmF0ZSBfZnNzQ2FjaGU6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgX3RzSW5wdXQ6IHsgdHM6IGFueTsgY29sb3I6IGFueSB9ID0geyB0czogbnVsbCwgY29sb3I6IG51bGwgfTtcbiAgcHJpdmF0ZSBfdHNDYWNoZTogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogRXZlbnRvIGVtaXRpZG8gYWwgaGFjZXIgY2xpY2sgZW4gdW5hIGFjY2nDs24gbyBib3TDs24gZGUgbGEgYmFycmEuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGFjdGlvblR5cGVzID0gVG9vbGJhckFjdGlvblR5cGU7XG5cbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gIGNvbnN0cnVjdG9yKGljb246IEljb25TZXJ2aWNlKSB7XG4gICAgYWRkSWNvbnMoeyBjaGV2cm9uQmFja091dGxpbmUgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgLyoqXG4gICAqIEVtaXRlIGVsIHRva2VuIGRlIGxhIGFjY2nDs24gY2xpY2FkYS5cbiAgICogQHBhcmFtIHRva2VuIFRva2VuIGRlIGxhIGFjY2nDs25cbiAgICovXG4gIGNsaWNrSGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHRva2VuKTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICAvLyBDb24gZGVzdGlubyBleHBsw61jaXRvIHNlIG5hdmVnYSBhaMOtOiBlbCBoaXN0b3JpYWwgbm8gc2FiZSBhIHF1w6kgdGFiIG9cbiAgICAvLyBmaWx0cm8gdm9sdmVyIHNpIGxhIHZpc3RhIGFudGVyaW9yIGxvIGd1YXJkYWJhIGVuIGxhIFVSTC5cbiAgICBjb25zdCBocmVmID0gdGhpcy5wcm9wcy5iYWNrSHJlZjtcbiAgICBpZiAoaHJlZikge1xuICAgICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGhyZWYpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm5hdi5iYWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5hIHNpIGhheSBhY2Npb25lcyBhIGxhIGRlcmVjaGEuXG4gICAqL1xuICBzb21lSW5SaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnByb3BzLmFjdGlvbnMuZmluZCh4ID0+IHgucG9zaXRpb24gPT09ICdyaWdodCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluYSBzaSBoYXkgYWNjaW9uZXMgYSBsYSBpenF1aWVyZGEuXG4gICAqL1xuICBzb21lSW5MZWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucHJvcHMuYWN0aW9ucy5maW5kKHggPT4geC5wb3NpdGlvbiA9PT0gJ2xlZnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXZ1ZWx2ZSBsYXMgYWNjaW9uZXMgZGUgbGEgZGVyZWNoYS5cbiAgICovXG4gIHJpZ2h0QWN0aW9ucygpOiBUb29sYmFyQWN0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmFjdGlvbnMuZmlsdGVyKHggPT4geC5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jyk7XG4gIH1cblxuICAvKipcbiAgICogRGV2dWVsdmUgbGFzIGFjY2lvbmVzIGRlIGxhIGl6cXVpZXJkYS5cbiAgICovXG4gIGxlZnRBY3Rpb25zKCk6IFRvb2xiYXJBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYWN0aW9ucy5maWx0ZXIoeCA9PiB4LnBvc2l0aW9uID09PSAnbGVmdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRyYWNrQnkgcG9yIGB0b2tlbmAgcGFyYSBlbCAqbmdGb3IgZGUgYWNjaW9uZXMuIFNpbiBlc3RvLCBjb21vIHJpZ2h0QWN0aW9ucygpL1xuICAgKiBsZWZ0QWN0aW9ucygpIGRldnVlbHZlbiB1biBhcnJheSBOVUVWTyBlbiBjYWRhIGNoYW5nZSBkZXRlY3Rpb24sIEFuZ3VsYXIgZGlmZmVhXG4gICAqIHBvciBpZGVudGlkYWQgeSBERVNUUlVZRS9SRUNSRUEgbG9zIG5vZG9zICh2YWwtdXNlci1hdmF0YXIgLyB2YWwtaW1hZ2UpIGN1YW5kb1xuICAgKiBjYW1iaWEgbGEgcmVmZXJlbmNpYSDihpIgZWwgPGltZz4gc2UgcmVjcmVhIHkgcmVhcGFyZWNlIGVsIGZhbGxiYWNrIChcInBhcnBhZGVvXCIpLlxuICAgKiBDb24ga2V5IGVzdGFibGUsIEFuZ3VsYXIgcmV1c2EgZWwgZWxlbWVudG8gZXhpc3RlbnRlIOKGkiBzaW4gcmVjYXJnYSBuaSBmbGlja2VyLlxuICAgKi9cbiAgdHJhY2tCeVRva2VuKF9pbmRleDogbnVtYmVyLCBhY3Rpb246IFRvb2xiYXJBY3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBhY3Rpb24udG9rZW47XG4gIH1cblxuICAvKipcbiAgICogTGFuZ3VhZ2Ugc2VsZWN0b3IgcHJvcHMg4oCUIG1lbW9pemVkIHRvIGF2b2lkIG5ldyBvYmplY3QgcmVmZXJlbmNlIG9uIGV2ZXJ5IENEIGN5Y2xlLlxuICAgKi9cbiAgZ2V0IGZvbnRTaXplU2VsZWN0b3JQcm9wcygpIHtcbiAgICBjb25zdCBmc3MgPSB0aGlzLnByb3BzLmZvbnRTaXplU2VsZWN0b3I7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BzLnRleHRDb2xvcjtcbiAgICBpZiAodGhpcy5fZnNzQ2FjaGUgIT09IG51bGwgJiYgdGhpcy5fZnNzSW5wdXQuZnNzID09PSBmc3MgJiYgdGhpcy5fZnNzSW5wdXQuY29sb3IgPT09IGNvbG9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZnNzQ2FjaGU7XG4gICAgfVxuICAgIHRoaXMuX2Zzc0lucHV0ID0geyBmc3MsIGNvbG9yIH07XG4gICAgdGhpcy5fZnNzQ2FjaGUgPSB7IGNvbG9yOiBjb2xvciB8fCAnZGFyaycsIC4uLmZzcyB9O1xuICAgIHJldHVybiB0aGlzLl9mc3NDYWNoZTtcbiAgfVxuXG4gIGdldCB0aGVtZVNlbGVjdG9yUHJvcHMoKSB7XG4gICAgY29uc3QgdHMgPSB0aGlzLnByb3BzLnRoZW1lU2VsZWN0b3I7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BzLnRleHRDb2xvcjtcbiAgICBpZiAodGhpcy5fdHNDYWNoZSAhPT0gbnVsbCAmJiB0aGlzLl90c0lucHV0LnRzID09PSB0cyAmJiB0aGlzLl90c0lucHV0LmNvbG9yID09PSBjb2xvcikge1xuICAgICAgcmV0dXJuIHRoaXMuX3RzQ2FjaGU7XG4gICAgfVxuICAgIHRoaXMuX3RzSW5wdXQgPSB7IHRzLCBjb2xvciB9O1xuICAgIHRoaXMuX3RzQ2FjaGUgPSB7IGNvbG9yOiBjb2xvciB8fCAnbWVkaXVtJywgLi4udHMgfTtcbiAgICByZXR1cm4gdGhpcy5fdHNDYWNoZTtcbiAgfVxuXG4gIGdldCBsYW5ndWFnZVNlbGVjdG9yUHJvcHMoKSB7XG4gICAgY29uc3QgbHMgPSB0aGlzLnByb3BzLmxhbmd1YWdlU2VsZWN0b3I7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BzLnRleHRDb2xvcjtcbiAgICBpZiAodGhpcy5fbHNwQ2FjaGUgIT09IG51bGwgJiYgdGhpcy5fbHNwSW5wdXQubHMgPT09IGxzICYmIHRoaXMuX2xzcElucHV0LmNvbG9yID09PSBjb2xvcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2xzcENhY2hlO1xuICAgIH1cbiAgICB0aGlzLl9sc3BJbnB1dCA9IHsgbHMsIGNvbG9yIH07XG4gICAgdGhpcy5fbHNwQ2FjaGUgPSB7IG1vZGU6ICdpY29uJyBhcyBjb25zdCwgY29sb3I6IGNvbG9yIHx8ICdkYXJrJywgLi4ubHMgfTtcbiAgICByZXR1cm4gdGhpcy5fbHNwQ2FjaGU7XG4gIH1cbn1cbiJdfQ==
|