valtech-components 2.0.779 → 2.0.781

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvdXNlci1hdmF0YXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlndXJhY2nDs24gZGVsIGNvbXBvbmVudGUgYHZhbC11c2VyLWF2YXRhcmAuXG4gKlxuICogQXZhdGFyIHNtYXJ0IGNvbiBjYWRlbmEgZGUgZmFsbGJhY2s6XG4gKiAgIGZvdG8gKGBhdmF0YXJVcmxgKSDihpIgaW5pY2lhbGVzIChkZSBgbmFtZWAvYGVtYWlsYCkg4oaSIGljb25vIHBlcnNvbmEuXG4gKlxuICogRGlzZcOxYWRvIHBhcmEgaGVhZGVycywgcGVyZmlsZXMsIGxpc3RhcyBkZSB1c3VhcmlvcyB5IGRyb3Bkb3ducy5cbiAqXG4gKiBAZXhhbXBsZSBDb24gdXNlciBjb21wbGV0byAoZ3JlZXRpbmcgaGVybyk6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXVzZXItYXZhdGFyIFtwcm9wc109XCJ7IHVzZXI6IGF1dGgudXNlcigpLCBzaXplOiAnbWVkaXVtJyB9XCIgLz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFN0YW5kYWxvbmUgZmllbGRzOlxuICogYGBgaHRtbFxuICogPHZhbC11c2VyLWF2YXRhciBbcHJvcHNdPVwieyBuYW1lOiAnSnVhbiBQw6lyZXonLCBhdmF0YXJVcmw6ICcvYS5qcGcnLCBzaXplOiAnc21hbGwnIH1cIiAvPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgSGVhZGVyIGF2YXRhciBjbGlja2FibGUgKGxpbmsgYSAvcHJvZmlsZSk6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXVzZXItYXZhdGFyIFtwcm9wc109XCJ7IHVzZXI6IGF1dGgudXNlcigpIH1cIiAob25DbGljayk9XCJnb1RvUHJvZmlsZSgpXCIgLz5cbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBdmF0YXJNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBVc2VyIHNoYXBlIOKAlCBwYXNhIGVsIHJlc3VsdGFkbyBkZSBgYXV0aC51c2VyKClgIGRpcmVjdGFtZW50ZS4gQ3VhbHF1aWVyXG4gICAqIGNvbWJpbmFjacOzbiBkZSBgbmFtZWAvYGF2YXRhclVybGAvYGVtYWlsYCBzZSBhY2VwdGEuIFRpZW5lbiBwcmVjZWRlbmNpYVxuICAgKiBzb2JyZSBsb3MgcHJvcHMgc3VlbHRvcyAoYG5hbWVgLCBgZW1haWxgLCBgYXZhdGFyVXJsYCkgYWJham8uXG4gICAqL1xuICB1c2VyPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgYXZhdGFyVXJsPzogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIGhhbmRsZT86IHN0cmluZztcbiAgfSB8IG51bGw7XG5cbiAgLyoqIE5vbWJyZSBkaXJlY3RvIOKAlCB1c2FkbyBzaSBubyBoYXkgYHVzZXJgIG8gc2kgYHVzZXIubmFtZWAgZXN0w6EgdmFjw61vLiAqL1xuICBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBFbWFpbCBkaXJlY3RvIOKAlCB1c2FkbyBzaSBubyBoYXkgYHVzZXJgIG8gc2kgYHVzZXIuZW1haWxgIGVzdMOhIHZhY8Otby4gKi9cbiAgZW1haWw/OiBzdHJpbmc7XG5cbiAgLyoqIFVSTCBkZSBhdmF0YXIgZGlyZWN0YSDigJQgdXNhZG8gc2kgbm8gaGF5IGB1c2VyYCBvIHNpIGB1c2VyLmF2YXRhclVybGAgZXN0w6EgdmFjw61vLiAqL1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhbWHDsW86XG4gICAqIC0gYCd4c21hbGwnYCAyNHB4XG4gICAqIC0gYCdzbWFsbCdgIChkZWZhdWx0KSAzMnB4XG4gICAqIC0gYCdtZWRpdW0nYCA0OHB4XG4gICAqIC0gYCdsYXJnZSdgIDcycHhcbiAgICogLSBgJ3hsYXJnZSdgIDk2cHhcbiAgICovXG4gIHNpemU/OiAneHNtYWxsJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJztcblxuICAvKipcbiAgICogRm9ybWE6XG4gICAqIC0gYCdjaXJjbGUnYCAoZGVmYXVsdCkg4oCUIHJlZG9uZG8gY29tcGxldG9cbiAgICogLSBgJ3NxdWFyZSdgIOKAlCBib3JkZXMgcmVkb25kZWFkb3MgcGVybyBjdWFkcmFkb1xuICAgKi9cbiAgc2hhcGU/OiAnY2lyY2xlJyB8ICdzcXVhcmUnO1xuXG4gIC8qKlxuICAgKiBDb2xvciBkZSBmb25kbyBwYXJhIGVsIG1vZG8gaW5pY2lhbGVzL2ljb25vLiBDdWFuZG8gbm8gc2UgcHJvdmVlLCBzZVxuICAgKiBkZXJpdmUgZGV0ZXJtaW5pc3RpY2FtZW50ZSBkZWwgYG5hbWVgL2BlbWFpbGAgKG1pc21vIGlucHV0IOKGkiBtaXNtbyBjb2xvcilcbiAgICogcGFyYSBxdWUgZWwgbWlzbW8gdXNlciB0ZW5nYSBzaWVtcHJlIGVsIG1pc21vIGNvbG9yLlxuICAgKi9cbiAgYmFja2dyb3VuZD86IHN0cmluZztcblxuICAvKiogQ29sb3IgZGVsIHRleHRvL2ljb25vIGN1YW5kbyBubyBoYXkgZm90by4gRGVmYXVsdCBgJyNmZmYnYC4gKi9cbiAgZm9yZWdyb3VuZD86IHN0cmluZztcblxuICAvKipcbiAgICogTW9zdHJhciBib3JkZXIuIMOadGlsIHBhcmEgb3ZlcmxheXMgc29icmUgZm90b3MgbyBiYWNrZ3JvdW5kcyBkYXJrLlxuICAgKiBEZWZhdWx0OiBgZmFsc2VgLlxuICAgKi9cbiAgYm9yZGVyZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBIYWJpbGl0YSBncmF5c2NhbGUgKGUuZy4sIHVzZXIgZGVzYWN0aXZhZG8pLiBEZWZhdWx0OiBgZmFsc2VgLiAqL1xuICBncmF5c2NhbGU/OiBib29sZWFuO1xuXG4gIC8qKiBDbGFzZSBDU1MgZXh0cmEuICovXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,209 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, computed, EventEmitter, Input, Output, signal } from '@angular/core';
3
+ import { IonIcon } from '@ionic/angular/standalone';
4
+ import { addIcons } from 'ionicons';
5
+ import { personOutline } from 'ionicons/icons';
6
+ import * as i0 from "@angular/core";
7
+ addIcons({ personOutline });
8
+ /**
9
+ * `val-user-avatar`
10
+ *
11
+ * Avatar **smart** con cadena de fallback automática:
12
+ *
13
+ * foto (`avatarUrl`) → iniciales (de `name`/`email`) → icono persona.
14
+ *
15
+ * Si la imagen falla en cargar (404, CORS, etc.), automáticamente cae a las
16
+ * iniciales sin que el caller tenga que hacer nada. Color de fondo derivado
17
+ * deterministicamente del user para que el mismo user tenga siempre el mismo
18
+ * color (a menos que `background` se sobrescriba).
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <val-user-avatar [props]="{ user: auth.user() }" (onClick)="goProfile()" />
23
+ * ```
24
+ */
25
+ export class UserAvatarComponent {
26
+ constructor() {
27
+ this.props_ = signal({});
28
+ this.imageFailed = signal(false);
29
+ /** Indica si el `<img>` actual disparó su evento `load`. Conduce el fade-in. */
30
+ this.imageLoaded = signal(false);
31
+ this.onClick = new EventEmitter();
32
+ this.resolvedProps = computed(() => this.props_());
33
+ /** Resuelve los campos del user (user prop > campos sueltos). */
34
+ this.resolvedUser = computed(() => {
35
+ const p = this.resolvedProps();
36
+ return {
37
+ name: p.user?.name?.trim() || p.name?.trim() || '',
38
+ email: p.user?.email?.trim() || p.email?.trim() || '',
39
+ avatarUrl: p.user?.avatarUrl?.trim() || p.avatarUrl?.trim() || '',
40
+ };
41
+ });
42
+ /**
43
+ * URL de imagen. Empty si la última carga falló — eso evita re-intentar
44
+ * con la misma URL cuando el browser ya marcó error. El placeholder
45
+ * (iniciales/icono) sigue visible debajo.
46
+ */
47
+ this.imageUrl = computed(() => {
48
+ if (this.imageFailed())
49
+ return '';
50
+ return this.resolvedUser().avatarUrl;
51
+ });
52
+ /** Iniciales — 1-2 chars derivados de name (preferred) o email prefix. */
53
+ this.initials = computed(() => {
54
+ const { name, email } = this.resolvedUser();
55
+ if (name) {
56
+ const parts = name.split(/\s+/).filter(Boolean);
57
+ if (parts.length >= 2)
58
+ return parts[0][0] + parts[1][0];
59
+ if (parts.length === 1 && parts[0].length >= 2) {
60
+ return parts[0].slice(0, 2);
61
+ }
62
+ return parts[0]?.[0] ?? '';
63
+ }
64
+ if (email) {
65
+ const prefix = email.split('@')[0] ?? '';
66
+ // Tomar 1-2 chars del prefix
67
+ if (prefix.length >= 2)
68
+ return prefix.slice(0, 2);
69
+ return prefix[0] ?? '';
70
+ }
71
+ return '';
72
+ });
73
+ this.sizeClass = computed(() => this.resolvedProps().size || 'small');
74
+ this.shapeClass = computed(() => this.resolvedProps().shape || 'circle');
75
+ /** Background — explicito o derivado deterministicamente del user. */
76
+ this.bgColor = computed(() => {
77
+ const p = this.resolvedProps();
78
+ if (p.background)
79
+ return p.background;
80
+ const { name, email } = this.resolvedUser();
81
+ const seed = name || email || 'val';
82
+ return this.colorFromSeed(seed);
83
+ });
84
+ this.ariaLabel = computed(() => {
85
+ const { name, email } = this.resolvedUser();
86
+ return name || email || 'User avatar';
87
+ });
88
+ }
89
+ set props(value) {
90
+ const prev = this.props_();
91
+ const next = value ?? {};
92
+ this.props_.set(next);
93
+ // Reset estado de carga si cambia la URL — re-disparar fade-in.
94
+ const prevUrl = prev?.user?.avatarUrl || prev?.avatarUrl || '';
95
+ const nextUrl = next.user?.avatarUrl || next.avatarUrl || '';
96
+ if (prevUrl !== nextUrl) {
97
+ this.imageFailed.set(false);
98
+ this.imageLoaded.set(false);
99
+ }
100
+ }
101
+ /** Subscribers — usado para condicionar cursor/aria. */
102
+ get hasClick() {
103
+ return this.onClick.observed;
104
+ }
105
+ onImageError() {
106
+ this.imageFailed.set(true);
107
+ this.imageLoaded.set(false);
108
+ }
109
+ onImageLoad() {
110
+ this.imageFailed.set(false);
111
+ this.imageLoaded.set(true);
112
+ }
113
+ /**
114
+ * Hash determinista string → HSL color del rango Valtech (purples/blues).
115
+ * Mismo seed → mismo color (consistencia entre sessions).
116
+ */
117
+ colorFromSeed(seed) {
118
+ let hash = 0;
119
+ for (let i = 0; i < seed.length; i++) {
120
+ hash = (hash * 31 + seed.charCodeAt(i)) >>> 0;
121
+ }
122
+ // Restringir a rango violet/blue (240-290°) para coherencia con palette
123
+ const hue = 240 + (hash % 50);
124
+ const sat = 55 + ((hash >>> 8) % 20); // 55-75%
125
+ const light = 38 + ((hash >>> 16) % 12); // 38-50% — siempre legible con fg blanco
126
+ return `hsl(${hue}, ${sat}%, ${light}%)`;
127
+ }
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UserAvatarComponent, isStandalone: true, selector: "val-user-avatar", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
130
+ <button
131
+ type="button"
132
+ class="val-user-avatar"
133
+ [class.bordered]="resolvedProps().bordered"
134
+ [class.grayscale]="resolvedProps().grayscale"
135
+ [class.has-click]="hasClick"
136
+ [class]="shapeClass() + ' ' + sizeClass() + ' ' + (resolvedProps().cssClass || '')"
137
+ [style.background]="bgColor()"
138
+ [style.color]="resolvedProps().foreground || '#fff'"
139
+ [attr.aria-label]="ariaLabel()"
140
+ (click)="onClick.emit()"
141
+ >
142
+ <!-- Placeholder layer (siempre presente) — iniciales o icono. La imagen
143
+ se monta encima y hace fade-in al cargar; si falla queda invisible
144
+ y el placeholder permanece visible sin parpadeo. -->
145
+ @if (initials()) {
146
+ <span class="val-user-avatar__initials">{{ initials() }}</span>
147
+ } @else {
148
+ <ion-icon name="person-outline" class="val-user-avatar__icon" aria-hidden="true" />
149
+ }
150
+
151
+ @if (imageUrl()) {
152
+ <img
153
+ class="val-user-avatar__img"
154
+ [class.loaded]="imageLoaded()"
155
+ [src]="imageUrl()"
156
+ alt=""
157
+ loading="lazy"
158
+ decoding="async"
159
+ (error)="onImageError()"
160
+ (load)="onImageLoad()"
161
+ />
162
+ }
163
+ </button>
164
+ `, isInline: true, styles: [":host{display:inline-flex}.val-user-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;padding:0;margin:0;border:none;background:var(--ion-color-medium, #92949c);color:#fff;font-weight:600;font-family:inherit;line-height:1;-webkit-user-select:none;user-select:none;cursor:default;transition:transform .15s ease,box-shadow .15s ease}.val-user-avatar.has-click{cursor:pointer}.val-user-avatar.has-click:hover{transform:scale(1.04)}.val-user-avatar.has-click:active{transform:scale(.96)}.val-user-avatar.circle{border-radius:50%}.val-user-avatar.square{border-radius:8px}.val-user-avatar.xsmall{width:24px;height:24px;font-size:.625rem}.val-user-avatar.small{width:32px;height:32px;font-size:.75rem}.val-user-avatar.medium{width:48px;height:48px;font-size:1rem}.val-user-avatar.large{width:72px;height:72px;font-size:1.5rem}.val-user-avatar.xlarge{width:96px;height:96px;font-size:2rem}.val-user-avatar.bordered{box-shadow:0 0 0 2px var(--ion-background-color, #fff)}.val-user-avatar.grayscale{filter:grayscale(100%)}.val-user-avatar__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .35s ease-in-out;pointer-events:none}.val-user-avatar__img.loaded{opacity:1}.val-user-avatar__initials{text-transform:uppercase;letter-spacing:.02em;position:relative;z-index:0}.val-user-avatar__icon{font-size:60%;position:relative;z-index:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
165
+ }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserAvatarComponent, decorators: [{
167
+ type: Component,
168
+ args: [{ selector: 'val-user-avatar', standalone: true, imports: [CommonModule, IonIcon], template: `
169
+ <button
170
+ type="button"
171
+ class="val-user-avatar"
172
+ [class.bordered]="resolvedProps().bordered"
173
+ [class.grayscale]="resolvedProps().grayscale"
174
+ [class.has-click]="hasClick"
175
+ [class]="shapeClass() + ' ' + sizeClass() + ' ' + (resolvedProps().cssClass || '')"
176
+ [style.background]="bgColor()"
177
+ [style.color]="resolvedProps().foreground || '#fff'"
178
+ [attr.aria-label]="ariaLabel()"
179
+ (click)="onClick.emit()"
180
+ >
181
+ <!-- Placeholder layer (siempre presente) — iniciales o icono. La imagen
182
+ se monta encima y hace fade-in al cargar; si falla queda invisible
183
+ y el placeholder permanece visible sin parpadeo. -->
184
+ @if (initials()) {
185
+ <span class="val-user-avatar__initials">{{ initials() }}</span>
186
+ } @else {
187
+ <ion-icon name="person-outline" class="val-user-avatar__icon" aria-hidden="true" />
188
+ }
189
+
190
+ @if (imageUrl()) {
191
+ <img
192
+ class="val-user-avatar__img"
193
+ [class.loaded]="imageLoaded()"
194
+ [src]="imageUrl()"
195
+ alt=""
196
+ loading="lazy"
197
+ decoding="async"
198
+ (error)="onImageError()"
199
+ (load)="onImageLoad()"
200
+ />
201
+ }
202
+ </button>
203
+ `, styles: [":host{display:inline-flex}.val-user-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;padding:0;margin:0;border:none;background:var(--ion-color-medium, #92949c);color:#fff;font-weight:600;font-family:inherit;line-height:1;-webkit-user-select:none;user-select:none;cursor:default;transition:transform .15s ease,box-shadow .15s ease}.val-user-avatar.has-click{cursor:pointer}.val-user-avatar.has-click:hover{transform:scale(1.04)}.val-user-avatar.has-click:active{transform:scale(.96)}.val-user-avatar.circle{border-radius:50%}.val-user-avatar.square{border-radius:8px}.val-user-avatar.xsmall{width:24px;height:24px;font-size:.625rem}.val-user-avatar.small{width:32px;height:32px;font-size:.75rem}.val-user-avatar.medium{width:48px;height:48px;font-size:1rem}.val-user-avatar.large{width:72px;height:72px;font-size:1.5rem}.val-user-avatar.xlarge{width:96px;height:96px;font-size:2rem}.val-user-avatar.bordered{box-shadow:0 0 0 2px var(--ion-background-color, #fff)}.val-user-avatar.grayscale{filter:grayscale(100%)}.val-user-avatar__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .35s ease-in-out;pointer-events:none}.val-user-avatar__img.loaded{opacity:1}.val-user-avatar__initials{text-transform:uppercase;letter-spacing:.02em;position:relative;z-index:0}.val-user-avatar__icon{font-size:60%;position:relative;z-index:0}\n"] }]
204
+ }], propDecorators: { props: [{
205
+ type: Input
206
+ }], onClick: [{
207
+ type: Output
208
+ }] } });
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHL0MsUUFBUSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztBQUU1Qjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQStKSCxNQUFNLE9BQU8sbUJBQW1CO0lBOUpoQztRQStKbUIsV0FBTSxHQUFHLE1BQU0sQ0FBcUIsRUFBRSxDQUFDLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsZ0ZBQWdGO1FBQzdELGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBZXJDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBT3BDLGtCQUFhLEdBQUcsUUFBUSxDQUFxQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUUzRSxpRUFBaUU7UUFDaEQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQixPQUFPO2dC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LG1CQUFtQjtrQkE5Si9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ1Q7OEJBNkhZLEtBQUs7c0JBQWpCLEtBQUs7Z0JBYUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBwZXJzb25PdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgVXNlckF2YXRhck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHsgcGVyc29uT3V0bGluZSB9KTtcblxuLyoqXG4gKiBgdmFsLXVzZXItYXZhdGFyYFxuICpcbiAqIEF2YXRhciAqKnNtYXJ0KiogY29uIGNhZGVuYSBkZSBmYWxsYmFjayBhdXRvbcOhdGljYTpcbiAqXG4gKiAgIGZvdG8gKGBhdmF0YXJVcmxgKSDihpIgaW5pY2lhbGVzIChkZSBgbmFtZWAvYGVtYWlsYCkg4oaSIGljb25vIHBlcnNvbmEuXG4gKlxuICogU2kgbGEgaW1hZ2VuIGZhbGxhIGVuIGNhcmdhciAoNDA0LCBDT1JTLCBldGMuKSwgYXV0b23DoXRpY2FtZW50ZSBjYWUgYSBsYXNcbiAqIGluaWNpYWxlcyBzaW4gcXVlIGVsIGNhbGxlciB0ZW5nYSBxdWUgaGFjZXIgbmFkYS4gQ29sb3IgZGUgZm9uZG8gZGVyaXZhZG9cbiAqIGRldGVybWluaXN0aWNhbWVudGUgZGVsIHVzZXIgcGFyYSBxdWUgZWwgbWlzbW8gdXNlciB0ZW5nYSBzaWVtcHJlIGVsIG1pc21vXG4gKiBjb2xvciAoYSBtZW5vcyBxdWUgYGJhY2tncm91bmRgIHNlIHNvYnJlc2NyaWJhKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC11c2VyLWF2YXRhciBbcHJvcHNdPVwieyB1c2VyOiBhdXRoLnVzZXIoKSB9XCIgKG9uQ2xpY2spPVwiZ29Qcm9maWxlKClcIiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC11c2VyLWF2YXRhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJ2YWwtdXNlci1hdmF0YXJcIlxuICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInJlc29sdmVkUHJvcHMoKS5ib3JkZXJlZFwiXG4gICAgICBbY2xhc3MuZ3JheXNjYWxlXT1cInJlc29sdmVkUHJvcHMoKS5ncmF5c2NhbGVcIlxuICAgICAgW2NsYXNzLmhhcy1jbGlja109XCJoYXNDbGlja1wiXG4gICAgICBbY2xhc3NdPVwic2hhcGVDbGFzcygpICsgJyAnICsgc2l6ZUNsYXNzKCkgKyAnICcgKyAocmVzb2x2ZWRQcm9wcygpLmNzc0NsYXNzIHx8ICcnKVwiXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJiZ0NvbG9yKClcIlxuICAgICAgW3N0eWxlLmNvbG9yXT1cInJlc29sdmVkUHJvcHMoKS5mb3JlZ3JvdW5kIHx8ICcjZmZmJ1wiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCgpXCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrLmVtaXQoKVwiXG4gICAgPlxuICAgICAgPCEtLSBQbGFjZWhvbGRlciBsYXllciAoc2llbXByZSBwcmVzZW50ZSkg4oCUIGluaWNpYWxlcyBvIGljb25vLiBMYSBpbWFnZW5cbiAgICAgICAgICAgc2UgbW9udGEgZW5jaW1hIHkgaGFjZSBmYWRlLWluIGFsIGNhcmdhcjsgc2kgZmFsbGEgcXVlZGEgaW52aXNpYmxlXG4gICAgICAgICAgIHkgZWwgcGxhY2Vob2xkZXIgcGVybWFuZWNlIHZpc2libGUgc2luIHBhcnBhZGVvLiAtLT5cbiAgICAgIEBpZiAoaW5pdGlhbHMoKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInZhbC11c2VyLWF2YXRhcl9faW5pdGlhbHNcIj57eyBpbml0aWFscygpIH19PC9zcGFuPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVyc29uLW91dGxpbmVcIiBjbGFzcz1cInZhbC11c2VyLWF2YXRhcl9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaW1hZ2VVcmwoKSkge1xuICAgICAgICA8aW1nXG4gICAgICAgICAgY2xhc3M9XCJ2YWwtdXNlci1hdmF0YXJfX2ltZ1wiXG4gICAgICAgICAgW2NsYXNzLmxvYWRlZF09XCJpbWFnZUxvYWRlZCgpXCJcbiAgICAgICAgICBbc3JjXT1cImltYWdlVXJsKClcIlxuICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgIGRlY29kaW5nPVwiYXN5bmNcIlxuICAgICAgICAgIChlcnJvcik9XCJvbkltYWdlRXJyb3IoKVwiXG4gICAgICAgICAgKGxvYWQpPVwib25JbWFnZUxvYWQoKVwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgPC9idXR0b24+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICB9XG5cbiAgICAgIC52YWwtdXNlci1hdmF0YXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM5Mjk0OWMpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIHRyYW5zZm9ybSAwLjE1cyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnZhbC11c2VyLWF2YXRhci5oYXMtY2xpY2sge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC52YWwtdXNlci1hdmF0YXIuaGFzLWNsaWNrOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTtcbiAgICAgIH1cblxuICAgICAgLnZhbC11c2VyLWF2YXRhci5oYXMtY2xpY2s6YWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbiAgICAgIH1cblxuICAgICAgLyogU2hhcGUgKi9cbiAgICAgIC52YWwtdXNlci1hdmF0YXIuY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICAudmFsLXVzZXItYXZhdGFyLnNxdWFyZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIH1cblxuICAgICAgLyogU2l6ZXMgKi9cbiAgICAgIC52YWwtdXNlci1hdmF0YXIueHNtYWxsIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjYyNXJlbTtcbiAgICAgIH1cbiAgICAgIC52YWwtdXNlci1hdmF0YXIuc21hbGwge1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICB9XG4gICAgICAudmFsLXVzZXItYXZhdGFyLm1lZGl1bSB7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIH1cbiAgICAgIC52YWwtdXNlci1hdmF0YXIubGFyZ2Uge1xuICAgICAgICB3aWR0aDogNzJweDtcbiAgICAgICAgaGVpZ2h0OiA3MnB4O1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIH1cbiAgICAgIC52YWwtdXNlci1hdmF0YXIueGxhcmdlIHtcbiAgICAgICAgd2lkdGg6IDk2cHg7XG4gICAgICAgIGhlaWdodDogOTZweDtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgfVxuXG4gICAgICAudmFsLXVzZXItYXZhdGFyLmJvcmRlcmVkIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgICAgIH1cblxuICAgICAgLnZhbC11c2VyLWF2YXRhci5ncmF5c2NhbGUge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgICAgIH1cblxuICAgICAgLyogSW1hZ2UgbGF5ZXIg4oCUIGNhcGEgYWJzb2x1dGEgc29icmUgZWwgcGxhY2Vob2xkZXIuIEluaWNpYSBpbnZpc2libGVcbiAgICAgICAqIHkgZmFkZS1pbiBjdWFuZG8gZWwgbmF2ZWdhZG9yIGRpc3BhcmEgZWwgZXZlbnRvIGxvYWQuIFNpIGZhbGxhLCBsYVxuICAgICAgICogY2xhc2UgLmxvYWRlZCBudW5jYSBzZSBhcGxpY2Eg4oaSIHF1ZWRhIHRyYW5zcGFyZW50IHkgZWwgcGxhY2Vob2xkZXIgZGVcbiAgICAgICAqIGFiYWpvIHBlcm1hbmVjZSB2aXNpYmxlIChzaW4gZmxhc2ggYmxhbmNvKS4gKi9cbiAgICAgIC52YWwtdXNlci1hdmF0YXJfX2ltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjM1cyBlYXNlLWluLW91dDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC52YWwtdXNlci1hdmF0YXJfX2ltZy5sb2FkZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAudmFsLXVzZXItYXZhdGFyX19pbml0aWFscyB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgIH1cblxuICAgICAgLnZhbC11c2VyLWF2YXRhcl9faWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNjAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVXNlckF2YXRhckNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHNfID0gc2lnbmFsPFVzZXJBdmF0YXJNZXRhZGF0YT4oe30pO1xuICBwcml2YXRlIHJlYWRvbmx5IGltYWdlRmFpbGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIEluZGljYSBzaSBlbCBgPGltZz5gIGFjdHVhbCBkaXNwYXLDsyBzdSBldmVudG8gYGxvYWRgLiBDb25kdWNlIGVsIGZhZGUtaW4uICovXG4gIHByb3RlY3RlZCByZWFkb25seSBpbWFnZUxvYWRlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgQElucHV0KCkgc2V0IHByb3BzKHZhbHVlOiBVc2VyQXZhdGFyTWV0YWRhdGEgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBwcmV2ID0gdGhpcy5wcm9wc18oKTtcbiAgICBjb25zdCBuZXh0ID0gdmFsdWUgPz8ge307XG4gICAgdGhpcy5wcm9wc18uc2V0KG5leHQpO1xuICAgIC8vIFJlc2V0IGVzdGFkbyBkZSBjYXJnYSBzaSBjYW1iaWEgbGEgVVJMIOKAlCByZS1kaXNwYXJhciBmYWRlLWluLlxuICAgIGNvbnN0IHByZXZVcmwgPSBwcmV2Py51c2VyPy5hdmF0YXJVcmwgfHwgcHJldj8uYXZhdGFyVXJsIHx8ICcnO1xuICAgIGNvbnN0IG5leHRVcmwgPSBuZXh0LnVzZXI/LmF2YXRhclVybCB8fCBuZXh0LmF2YXRhclVybCB8fCAnJztcbiAgICBpZiAocHJldlVybCAhPT0gbmV4dFVybCkge1xuICAgICAgdGhpcy5pbWFnZUZhaWxlZC5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5pbWFnZUxvYWRlZC5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBTdWJzY3JpYmVycyDigJQgdXNhZG8gcGFyYSBjb25kaWNpb25hciBjdXJzb3IvYXJpYS4gKi9cbiAgZ2V0IGhhc0NsaWNrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9uQ2xpY2sub2JzZXJ2ZWQ7XG4gIH1cblxuICByZWFkb25seSByZXNvbHZlZFByb3BzID0gY29tcHV0ZWQ8VXNlckF2YXRhck1ldGFkYXRhPigoKSA9PiB0aGlzLnByb3BzXygpKTtcblxuICAvKiogUmVzdWVsdmUgbG9zIGNhbXBvcyBkZWwgdXNlciAodXNlciBwcm9wID4gY2FtcG9zIHN1ZWx0b3MpLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVkVXNlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwID0gdGhpcy5yZXNvbHZlZFByb3BzKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHAudXNlcj8ubmFtZT8udHJpbSgpIHx8IHAubmFtZT8udHJpbSgpIHx8ICcnLFxuICAgICAgZW1haWw6IHAudXNlcj8uZW1haWw/LnRyaW0oKSB8fCBwLmVtYWlsPy50cmltKCkgfHwgJycsXG4gICAgICBhdmF0YXJVcmw6IHAudXNlcj8uYXZhdGFyVXJsPy50cmltKCkgfHwgcC5hdmF0YXJVcmw/LnRyaW0oKSB8fCAnJyxcbiAgICB9O1xuICB9KTtcblxuICAvKipcbiAgICogVVJMIGRlIGltYWdlbi4gRW1wdHkgc2kgbGEgw7psdGltYSBjYXJnYSBmYWxsw7Mg4oCUIGVzbyBldml0YSByZS1pbnRlbnRhclxuICAgKiBjb24gbGEgbWlzbWEgVVJMIGN1YW5kbyBlbCBicm93c2VyIHlhIG1hcmPDsyBlcnJvci4gRWwgcGxhY2Vob2xkZXJcbiAgICogKGluaWNpYWxlcy9pY29ubykgc2lndWUgdmlzaWJsZSBkZWJham8uXG4gICAqL1xuICByZWFkb25seSBpbWFnZVVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5pbWFnZUZhaWxlZCgpKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRVc2VyKCkuYXZhdGFyVXJsO1xuICB9KTtcblxuICAvKiogSW5pY2lhbGVzIOKAlCAxLTIgY2hhcnMgZGVyaXZhZG9zIGRlIG5hbWUgKHByZWZlcnJlZCkgbyBlbWFpbCBwcmVmaXguICovXG4gIHJlYWRvbmx5IGluaXRpYWxzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgbmFtZSwgZW1haWwgfSA9IHRoaXMucmVzb2x2ZWRVc2VyKCk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gbmFtZS5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKTtcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPj0gMikgcmV0dXJuIHBhcnRzWzBdIVswXSEgKyBwYXJ0c1sxXSFbMF0hO1xuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMSAmJiBwYXJ0c1swXSEubGVuZ3RoID49IDIpIHtcbiAgICAgICAgcmV0dXJuIHBhcnRzWzBdIS5zbGljZSgwLCAyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJ0c1swXT8uWzBdID8/ICcnO1xuICAgIH1cbiAgICBpZiAoZW1haWwpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IGVtYWlsLnNwbGl0KCdAJylbMF0gPz8gJyc7XG4gICAgICAvLyBUb21hciAxLTIgY2hhcnMgZGVsIHByZWZpeFxuICAgICAgaWYgKHByZWZpeC5sZW5ndGggPj0gMikgcmV0dXJuIHByZWZpeC5zbGljZSgwLCAyKTtcbiAgICAgIHJldHVybiBwcmVmaXhbMF0gPz8gJyc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2l6ZUNsYXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZFByb3BzKCkuc2l6ZSB8fCAnc21hbGwnKTtcbiAgcmVhZG9ubHkgc2hhcGVDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRQcm9wcygpLnNoYXBlIHx8ICdjaXJjbGUnKTtcblxuICAvKiogQmFja2dyb3VuZCDigJQgZXhwbGljaXRvIG8gZGVyaXZhZG8gZGV0ZXJtaW5pc3RpY2FtZW50ZSBkZWwgdXNlci4gKi9cbiAgcmVhZG9ubHkgYmdDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwID0gdGhpcy5yZXNvbHZlZFByb3BzKCk7XG4gICAgaWYgKHAuYmFja2dyb3VuZCkgcmV0dXJuIHAuYmFja2dyb3VuZDtcbiAgICBjb25zdCB7IG5hbWUsIGVtYWlsIH0gPSB0aGlzLnJlc29sdmVkVXNlcigpO1xuICAgIGNvbnN0IHNlZWQgPSBuYW1lIHx8IGVtYWlsIHx8ICd2YWwnO1xuICAgIHJldHVybiB0aGlzLmNvbG9yRnJvbVNlZWQoc2VlZCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGFyaWFMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IG5hbWUsIGVtYWlsIH0gPSB0aGlzLnJlc29sdmVkVXNlcigpO1xuICAgIHJldHVybiBuYW1lIHx8IGVtYWlsIHx8ICdVc2VyIGF2YXRhcic7XG4gIH0pO1xuXG4gIG9uSW1hZ2VFcnJvcigpOiB2b2lkIHtcbiAgICB0aGlzLmltYWdlRmFpbGVkLnNldCh0cnVlKTtcbiAgICB0aGlzLmltYWdlTG9hZGVkLnNldChmYWxzZSk7XG4gIH1cblxuICBvbkltYWdlTG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmltYWdlRmFpbGVkLnNldChmYWxzZSk7XG4gICAgdGhpcy5pbWFnZUxvYWRlZC5zZXQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogSGFzaCBkZXRlcm1pbmlzdGEgc3RyaW5nIOKGkiBIU0wgY29sb3IgZGVsIHJhbmdvIFZhbHRlY2ggKHB1cnBsZXMvYmx1ZXMpLlxuICAgKiBNaXNtbyBzZWVkIOKGkiBtaXNtbyBjb2xvciAoY29uc2lzdGVuY2lhIGVudHJlIHNlc3Npb25zKS5cbiAgICovXG4gIHByaXZhdGUgY29sb3JGcm9tU2VlZChzZWVkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBoYXNoID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGhhc2ggPSAoaGFzaCAqIDMxICsgc2VlZC5jaGFyQ29kZUF0KGkpKSA+Pj4gMDtcbiAgICB9XG4gICAgLy8gUmVzdHJpbmdpciBhIHJhbmdvIHZpb2xldC9ibHVlICgyNDAtMjkwwrApIHBhcmEgY29oZXJlbmNpYSBjb24gcGFsZXR0ZVxuICAgIGNvbnN0IGh1ZSA9IDI0MCArIChoYXNoICUgNTApO1xuICAgIGNvbnN0IHNhdCA9IDU1ICsgKChoYXNoID4+PiA4KSAlIDIwKTsgLy8gNTUtNzUlXG4gICAgY29uc3QgbGlnaHQgPSAzOCArICgoaGFzaCA+Pj4gMTYpICUgMTIpOyAvLyAzOC01MCUg4oCUIHNpZW1wcmUgbGVnaWJsZSBjb24gZmcgYmxhbmNvXG4gICAgcmV0dXJuIGBoc2woJHtodWV9LCAke3NhdH0lLCAke2xpZ2h0fSUpYDtcbiAgfVxufVxuIl19
@@ -1,99 +1,92 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, Input } from '@angular/core';
3
- import { BoxComponent } from '../../atoms/box/box.component';
2
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
4
3
  import { TextComponent } from '../../atoms/text/text.component';
5
4
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
5
  /**
8
- * val-notes-box
6
+ * `val-notes-box` — callout / admonition para resaltar información dentro de un
7
+ * flujo de texto.
9
8
  *
10
- * Displays a styled notes/info box with optional prefix and configurable color, size, and padding.
9
+ * Diseño tipo GitHub/Docusaurus: fondo tintado suave, accent en el borde
10
+ * izquierdo, prefijo en mayúsculas pequeñas. Funciona en light & dark.
11
11
  *
12
- * @example
13
- * <val-notes-box [props]="{ text: 'Note', prefix: 'Info', color: 'primary', textColor: 'dark', size: 'medium', rounded: true, padding: '8px' }"></val-notes-box>
12
+ * El color es un Ionic Color (primary, success, warning, danger, tertiary, …).
13
+ * No usa `ion-card` ni `ion-color="X"` como background sino una mezcla
14
+ * `rgba(--ion-color-X-rgb, 0.08)` para no asfixiar el contenido.
15
+ *
16
+ * Renderiza inline HTML (`<strong>`, links via `processLinks`) cuando los
17
+ * flags están activos.
14
18
  *
15
- * @input props: NotesBoxMetadata - Configuration for the notes box (text, prefix, color, textColor, size, rounded, padding)
19
+ * @example
20
+ * <val-notes-box [props]="{
21
+ * text: 'Recordá guardar tus cambios antes de salir.',
22
+ * prefix: 'Tip',
23
+ * color: 'tertiary',
24
+ * textColor: 'dark',
25
+ * size: 'medium',
26
+ * rounded: true,
27
+ * allowPartialBold: true,
28
+ * }"></val-notes-box>
16
29
  */
17
30
  export class NotesBoxComponent {
18
- constructor() { }
19
- ngOnInit() { }
20
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NotesBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
32
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NotesBoxComponent, isStandalone: true, selector: "val-notes-box", inputs: { props: "props" }, ngImport: i0, template: `
22
33
  <div
23
- [class.notes-box-compact]="props.compact"
24
- [class.notes-box-align-center]="props.align === 'center'"
25
- [class.notes-box-align-right]="props.align === 'right'"
34
+ class="val-notes-box"
35
+ [class.is-compact]="props.compact"
36
+ [class.is-rounded]="props.rounded"
37
+ [class.align-center]="props.align === 'center'"
38
+ [class.align-right]="props.align === 'right'"
39
+ [attr.data-color]="props.color || 'primary'"
40
+ role="note"
26
41
  >
27
- <val-box
28
- [props]="{
29
- icon: '',
30
- bordered: false,
31
- color: props.color,
32
- leftBorder: !props.compact,
33
- rounded: props.rounded,
34
- padding: props.padding || (props.compact ? '6px 12px' : undefined),
35
- }"
36
- >
37
- <div [ngClass]="['content-container', props.size]" body>
38
- @if (props.prefix) {
39
- <val-text
40
- [props]="{ content: props.prefix, color: props.textColor, bold: true, size: props.size }"
41
- ></val-text>
42
- }
43
- <val-text
44
- [props]="{
45
- content: props.text,
46
- color: props.textColor,
47
- bold: false,
48
- size: props.size,
49
- allowPartialBold: props.allowPartialBold,
50
- processLinks: props.processLinks,
51
- }"
52
- ></val-text>
53
- </div>
54
- </val-box>
42
+ @if (props.prefix) {
43
+ <div class="val-notes-box__header">{{ props.prefix }}</div>
44
+ }
45
+ <div class="val-notes-box__body" [class]="'size-' + (props.size || 'medium')">
46
+ <val-text
47
+ [props]="{
48
+ content: props.text,
49
+ color: props.textColor,
50
+ bold: false,
51
+ size: props.size,
52
+ allowPartialBold: props.allowPartialBold,
53
+ processLinks: props.processLinks,
54
+ }"
55
+ ></val-text>
56
+ </div>
55
57
  </div>
56
- `, 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-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;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}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)}.content-container{display:inline-grid}.notes-box-compact{display:inline-block;width:fit-content;max-width:100%}.notes-box-compact ::ng-deep val-box ion-card{margin:0;box-shadow:none}.notes-box-align-center{text-align:center}.notes-box-align-center:not(.notes-box-compact){display:flex;justify-content:center}.notes-box-align-right{text-align:right}.notes-box-align-right:not(.notes-box-compact){display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BoxComponent, selector: "val-box", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
58
+ `, 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-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;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}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)}:host{display:block}.val-notes-box{--notes-rgb: var(--ion-color-primary-rgb, 112, 38, 223);--notes-bg: rgba(var(--notes-rgb), .07);--notes-border: rgba(var(--notes-rgb), .18);--notes-accent: rgb(var(--notes-rgb));--notes-text: var(--ion-color-dark, #0a0612);--notes-link: rgb(var(--notes-rgb));position:relative;display:block;padding:14px 18px 14px 20px;background:var(--notes-bg);border:1px solid var(--notes-border);border-left:4px solid var(--notes-accent);border-radius:10px;color:var(--notes-text);margin:0;line-height:1.55}.val-notes-box.is-rounded{border-radius:12px}.val-notes-box[data-color=primary]{--notes-rgb: var(--ion-color-primary-rgb)}.val-notes-box[data-color=secondary]{--notes-rgb: var(--ion-color-secondary-rgb)}.val-notes-box[data-color=tertiary]{--notes-rgb: var(--ion-color-tertiary-rgb)}.val-notes-box[data-color=success]{--notes-rgb: var(--ion-color-success-rgb)}.val-notes-box[data-color=warning]{--notes-rgb: var(--ion-color-warning-rgb)}.val-notes-box[data-color=danger]{--notes-rgb: var(--ion-color-danger-rgb)}.val-notes-box[data-color=medium]{--notes-rgb: var(--ion-color-medium-rgb)}.val-notes-box[data-color=dark]{--notes-rgb: var(--ion-color-dark-rgb)}.val-notes-box[data-color=light]{--notes-rgb: var(--ion-color-medium-rgb)}.val-notes-box__header{display:block;margin:0 0 6px;font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--notes-accent);font-family:var(--ion-font-family, inherit)}.val-notes-box__body{display:block;color:var(--notes-text);font-size:14px;line-height:1.6}.val-notes-box__body.size-small{font-size:13px;line-height:1.55}.val-notes-box__body.size-large{font-size:15px;line-height:1.6}.val-notes-box__body.size-xlarge{font-size:16px;line-height:1.55}.val-notes-box__body ::ng-deep val-text{display:block;color:var(--notes-text)}.val-notes-box__body ::ng-deep val-text p{margin:0;color:inherit}.val-notes-box__body ::ng-deep val-text ion-text{color:var(--notes-text)!important}.val-notes-box__body ::ng-deep val-text strong,.val-notes-box__body ::ng-deep val-text b,.val-notes-box__body ::ng-deep .partial-bold{color:var(--notes-text);font-weight:700}.val-notes-box__body ::ng-deep val-text a{color:var(--notes-link);text-decoration:underline;text-underline-offset:2px;font-weight:600}.val-notes-box__body ::ng-deep val-text a:hover{opacity:.85}.val-notes-box.align-center,.val-notes-box.align-center .val-notes-box__header{text-align:center}.val-notes-box.align-right,.val-notes-box.align-right .val-notes-box__header{text-align:right}.val-notes-box.is-compact{display:inline-block;width:fit-content;max-width:100%;padding:5px 12px;border-left-width:1px;border-radius:999px;font-size:12px;line-height:1.3}.val-notes-box.is-compact .val-notes-box__header{display:inline;margin:0 6px 0 0;font-size:11px;letter-spacing:.06em}.val-notes-box.is-compact .val-notes-box__body{display:inline;font-size:12px}.val-notes-box.is-compact ::ng-deep val-text{display:inline}.val-notes-box.is-compact ::ng-deep val-text p{display:inline}@media (prefers-color-scheme: dark){:host-context(body:not(.light)) .val-notes-box{--notes-bg: rgba(var(--notes-rgb), .16);--notes-border: rgba(var(--notes-rgb), .3);--notes-text: var(--ion-color-light, #f4f5f8)}}:host-context(body.dark) .val-notes-box,:host-context(.theme-dark) .val-notes-box,:host-context([data-theme=dark]) .val-notes-box{--notes-bg: rgba(var(--notes-rgb), .16);--notes-border: rgba(var(--notes-rgb), .3);--notes-text: var(--ion-color-light, #f4f5f8)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
59
  }
58
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NotesBoxComponent, decorators: [{
59
61
  type: Component,
60
- args: [{ selector: 'val-notes-box', standalone: true, imports: [CommonModule, BoxComponent, TextComponent], template: `
62
+ args: [{ selector: 'val-notes-box', standalone: true, imports: [CommonModule, TextComponent], template: `
61
63
  <div
62
- [class.notes-box-compact]="props.compact"
63
- [class.notes-box-align-center]="props.align === 'center'"
64
- [class.notes-box-align-right]="props.align === 'right'"
64
+ class="val-notes-box"
65
+ [class.is-compact]="props.compact"
66
+ [class.is-rounded]="props.rounded"
67
+ [class.align-center]="props.align === 'center'"
68
+ [class.align-right]="props.align === 'right'"
69
+ [attr.data-color]="props.color || 'primary'"
70
+ role="note"
65
71
  >
66
- <val-box
67
- [props]="{
68
- icon: '',
69
- bordered: false,
70
- color: props.color,
71
- leftBorder: !props.compact,
72
- rounded: props.rounded,
73
- padding: props.padding || (props.compact ? '6px 12px' : undefined),
74
- }"
75
- >
76
- <div [ngClass]="['content-container', props.size]" body>
77
- @if (props.prefix) {
78
- <val-text
79
- [props]="{ content: props.prefix, color: props.textColor, bold: true, size: props.size }"
80
- ></val-text>
81
- }
82
- <val-text
83
- [props]="{
84
- content: props.text,
85
- color: props.textColor,
86
- bold: false,
87
- size: props.size,
88
- allowPartialBold: props.allowPartialBold,
89
- processLinks: props.processLinks,
90
- }"
91
- ></val-text>
92
- </div>
93
- </val-box>
72
+ @if (props.prefix) {
73
+ <div class="val-notes-box__header">{{ props.prefix }}</div>
74
+ }
75
+ <div class="val-notes-box__body" [class]="'size-' + (props.size || 'medium')">
76
+ <val-text
77
+ [props]="{
78
+ content: props.text,
79
+ color: props.textColor,
80
+ bold: false,
81
+ size: props.size,
82
+ allowPartialBold: props.allowPartialBold,
83
+ processLinks: props.processLinks,
84
+ }"
85
+ ></val-text>
86
+ </div>
94
87
  </div>
95
- `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--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;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}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)}.content-container{display:inline-grid}.notes-box-compact{display:inline-block;width:fit-content;max-width:100%}.notes-box-compact ::ng-deep val-box ion-card{margin:0;box-shadow:none}.notes-box-align-center{text-align:center}.notes-box-align-center:not(.notes-box-compact){display:flex;justify-content:center}.notes-box-align-right{text-align:right}.notes-box-align-right:not(.notes-box-compact){display:flex;justify-content:flex-end}\n"] }]
96
- }], ctorParameters: () => [], propDecorators: { props: [{
88
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--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;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}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)}:host{display:block}.val-notes-box{--notes-rgb: var(--ion-color-primary-rgb, 112, 38, 223);--notes-bg: rgba(var(--notes-rgb), .07);--notes-border: rgba(var(--notes-rgb), .18);--notes-accent: rgb(var(--notes-rgb));--notes-text: var(--ion-color-dark, #0a0612);--notes-link: rgb(var(--notes-rgb));position:relative;display:block;padding:14px 18px 14px 20px;background:var(--notes-bg);border:1px solid var(--notes-border);border-left:4px solid var(--notes-accent);border-radius:10px;color:var(--notes-text);margin:0;line-height:1.55}.val-notes-box.is-rounded{border-radius:12px}.val-notes-box[data-color=primary]{--notes-rgb: var(--ion-color-primary-rgb)}.val-notes-box[data-color=secondary]{--notes-rgb: var(--ion-color-secondary-rgb)}.val-notes-box[data-color=tertiary]{--notes-rgb: var(--ion-color-tertiary-rgb)}.val-notes-box[data-color=success]{--notes-rgb: var(--ion-color-success-rgb)}.val-notes-box[data-color=warning]{--notes-rgb: var(--ion-color-warning-rgb)}.val-notes-box[data-color=danger]{--notes-rgb: var(--ion-color-danger-rgb)}.val-notes-box[data-color=medium]{--notes-rgb: var(--ion-color-medium-rgb)}.val-notes-box[data-color=dark]{--notes-rgb: var(--ion-color-dark-rgb)}.val-notes-box[data-color=light]{--notes-rgb: var(--ion-color-medium-rgb)}.val-notes-box__header{display:block;margin:0 0 6px;font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--notes-accent);font-family:var(--ion-font-family, inherit)}.val-notes-box__body{display:block;color:var(--notes-text);font-size:14px;line-height:1.6}.val-notes-box__body.size-small{font-size:13px;line-height:1.55}.val-notes-box__body.size-large{font-size:15px;line-height:1.6}.val-notes-box__body.size-xlarge{font-size:16px;line-height:1.55}.val-notes-box__body ::ng-deep val-text{display:block;color:var(--notes-text)}.val-notes-box__body ::ng-deep val-text p{margin:0;color:inherit}.val-notes-box__body ::ng-deep val-text ion-text{color:var(--notes-text)!important}.val-notes-box__body ::ng-deep val-text strong,.val-notes-box__body ::ng-deep val-text b,.val-notes-box__body ::ng-deep .partial-bold{color:var(--notes-text);font-weight:700}.val-notes-box__body ::ng-deep val-text a{color:var(--notes-link);text-decoration:underline;text-underline-offset:2px;font-weight:600}.val-notes-box__body ::ng-deep val-text a:hover{opacity:.85}.val-notes-box.align-center,.val-notes-box.align-center .val-notes-box__header{text-align:center}.val-notes-box.align-right,.val-notes-box.align-right .val-notes-box__header{text-align:right}.val-notes-box.is-compact{display:inline-block;width:fit-content;max-width:100%;padding:5px 12px;border-left-width:1px;border-radius:999px;font-size:12px;line-height:1.3}.val-notes-box.is-compact .val-notes-box__header{display:inline;margin:0 6px 0 0;font-size:11px;letter-spacing:.06em}.val-notes-box.is-compact .val-notes-box__body{display:inline;font-size:12px}.val-notes-box.is-compact ::ng-deep val-text{display:inline}.val-notes-box.is-compact ::ng-deep val-text p{display:inline}@media (prefers-color-scheme: dark){:host-context(body:not(.light)) .val-notes-box{--notes-bg: rgba(var(--notes-rgb), .16);--notes-border: rgba(var(--notes-rgb), .3);--notes-text: var(--ion-color-light, #f4f5f8)}}:host-context(body.dark) .val-notes-box,:host-context(.theme-dark) .val-notes-box,:host-context([data-theme=dark]) .val-notes-box{--notes-bg: rgba(var(--notes-rgb), .16);--notes-border: rgba(var(--notes-rgb), .3);--notes-text: var(--ion-color-light, #f4f5f8)}\n"] }]
89
+ }], propDecorators: { props: [{
97
90
  type: Input
98
91
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZXMtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbm90ZXMtYm94L25vdGVzLWJveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQTZDaEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQWU1QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOytHQWpCRixpQkFBaUI7bUdBQWpCLGlCQUFpQixxR0FoRGxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVCxzcUdBcENTLFlBQVksNkhBQUUsWUFBWSw2RkFBRSxhQUFhOzs0RkFpRHhDLGlCQUFpQjtrQkFwRDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQzFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVDt3REEwQkQsS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYm94L2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90ZXNCb3hNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbm90ZXMtYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQm94Q29tcG9uZW50LCBUZXh0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBbY2xhc3Mubm90ZXMtYm94LWNvbXBhY3RdPVwicHJvcHMuY29tcGFjdFwiXG4gICAgICBbY2xhc3Mubm90ZXMtYm94LWFsaWduLWNlbnRlcl09XCJwcm9wcy5hbGlnbiA9PT0gJ2NlbnRlcidcIlxuICAgICAgW2NsYXNzLm5vdGVzLWJveC1hbGlnbi1yaWdodF09XCJwcm9wcy5hbGlnbiA9PT0gJ3JpZ2h0J1wiXG4gICAgPlxuICAgICAgPHZhbC1ib3hcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBpY29uOiAnJyxcbiAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgY29sb3I6IHByb3BzLmNvbG9yLFxuICAgICAgICAgIGxlZnRCb3JkZXI6ICFwcm9wcy5jb21wYWN0LFxuICAgICAgICAgIHJvdW5kZWQ6IHByb3BzLnJvdW5kZWQsXG4gICAgICAgICAgcGFkZGluZzogcHJvcHMucGFkZGluZyB8fCAocHJvcHMuY29tcGFjdCA/ICc2cHggMTJweCcgOiB1bmRlZmluZWQpLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJbJ2NvbnRlbnQtY29udGFpbmVyJywgcHJvcHMuc2l6ZV1cIiBib2R5PlxuICAgICAgICAgIEBpZiAocHJvcHMucHJlZml4KSB7XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgY29udGVudDogcHJvcHMucHJlZml4LCBjb2xvcjogcHJvcHMudGV4dENvbG9yLCBib2xkOiB0cnVlLCBzaXplOiBwcm9wcy5zaXplIH1cIlxuICAgICAgICAgICAgPjwvdmFsLXRleHQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogcHJvcHMudGV4dCxcbiAgICAgICAgICAgICAgY29sb3I6IHByb3BzLnRleHRDb2xvcixcbiAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIHNpemU6IHByb3BzLnNpemUsXG4gICAgICAgICAgICAgIGFsbG93UGFydGlhbEJvbGQ6IHByb3BzLmFsbG93UGFydGlhbEJvbGQsXG4gICAgICAgICAgICAgIHByb2Nlc3NMaW5rczogcHJvcHMucHJvY2Vzc0xpbmtzLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPjwvdmFsLXRleHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC92YWwtYm94PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9ub3Rlcy1ib3guY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1ub3Rlcy1ib3hcbiAqXG4gKiBEaXNwbGF5cyBhIHN0eWxlZCBub3Rlcy9pbmZvIGJveCB3aXRoIG9wdGlvbmFsIHByZWZpeCBhbmQgY29uZmlndXJhYmxlIGNvbG9yLCBzaXplLCBhbmQgcGFkZGluZy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1ub3Rlcy1ib3ggW3Byb3BzXT1cInsgdGV4dDogJ05vdGUnLCBwcmVmaXg6ICdJbmZvJywgY29sb3I6ICdwcmltYXJ5JywgdGV4dENvbG9yOiAnZGFyaycsIHNpemU6ICdtZWRpdW0nLCByb3VuZGVkOiB0cnVlLCBwYWRkaW5nOiAnOHB4JyB9XCI+PC92YWwtbm90ZXMtYm94PlxuICpcbiAqIEBpbnB1dCBwcm9wczogTm90ZXNCb3hNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBub3RlcyBib3ggKHRleHQsIHByZWZpeCwgY29sb3IsIHRleHRDb2xvciwgc2l6ZSwgcm91bmRlZCwgcGFkZGluZylcbiAqL1xuZXhwb3J0IGNsYXNzIE5vdGVzQm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIE5vdGVzIGJveCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge05vdGVzQm94TWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSB0ZXh0IC0gVGhlIG1haW4gdGV4dCBjb250ZW50LlxuICAgKiBAcHJvcGVydHkgcHJlZml4IC0gT3B0aW9uYWwgcHJlZml4IHRleHQgKGJvbGQpLlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm94LlxuICAgKiBAcHJvcGVydHkgdGV4dENvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSB0ZXh0LlxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSB0ZXh0IGFuZCBib3guXG4gICAqIEBwcm9wZXJ0eSByb3VuZGVkIC0gV2hldGhlciB0aGUgYm94IGhhcyByb3VuZGVkIGNvcm5lcnMuXG4gICAqIEBwcm9wZXJ0eSBwYWRkaW5nIC0gQ3VzdG9tIHBhZGRpbmcgZm9yIHRoZSBib3guXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogTm90ZXNCb3hNZXRhZGF0YTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZXMtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbm90ZXMtYm94L25vdGVzLWJveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFHaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQW1DSCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7bUdBQWpCLGlCQUFpQixxR0E5QmxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVCxncE1BM0JTLFlBQVksK0JBQUUsYUFBYTs7NEZBK0IxQixpQkFBaUI7a0JBbEM3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQzVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFJdEMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3Rlc0JveE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1ub3Rlcy1ib3hgIOKAlCBjYWxsb3V0IC8gYWRtb25pdGlvbiBwYXJhIHJlc2FsdGFyIGluZm9ybWFjacOzbiBkZW50cm8gZGUgdW5cbiAqIGZsdWpvIGRlIHRleHRvLlxuICpcbiAqIERpc2XDsW8gdGlwbyBHaXRIdWIvRG9jdXNhdXJ1czogZm9uZG8gdGludGFkbyBzdWF2ZSwgYWNjZW50IGVuIGVsIGJvcmRlXG4gKiBpenF1aWVyZG8sIHByZWZpam8gZW4gbWF5w7pzY3VsYXMgcGVxdWXDsWFzLiBGdW5jaW9uYSBlbiBsaWdodCAmIGRhcmsuXG4gKlxuICogRWwgY29sb3IgZXMgdW4gSW9uaWMgQ29sb3IgKHByaW1hcnksIHN1Y2Nlc3MsIHdhcm5pbmcsIGRhbmdlciwgdGVydGlhcnksIOKApikuXG4gKiBObyB1c2EgYGlvbi1jYXJkYCBuaSBgaW9uLWNvbG9yPVwiWFwiYCBjb21vIGJhY2tncm91bmQg4oCUIHNpbm8gdW5hIG1lemNsYVxuICogYHJnYmEoLS1pb24tY29sb3ItWC1yZ2IsIDAuMDgpYCBwYXJhIG5vIGFzZml4aWFyIGVsIGNvbnRlbmlkby5cbiAqXG4gKiBSZW5kZXJpemEgaW5saW5lIEhUTUwgKGA8c3Ryb25nPmAsIGxpbmtzIHZpYSBgcHJvY2Vzc0xpbmtzYCkgY3VhbmRvIGxvc1xuICogZmxhZ3MgZXN0w6FuIGFjdGl2b3MuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbm90ZXMtYm94IFtwcm9wc109XCJ7XG4gKiAgIHRleHQ6ICdSZWNvcmTDoSBndWFyZGFyIHR1cyBjYW1iaW9zIGFudGVzIGRlIHNhbGlyLicsXG4gKiAgIHByZWZpeDogJ1RpcCcsXG4gKiAgIGNvbG9yOiAndGVydGlhcnknLFxuICogICB0ZXh0Q29sb3I6ICdkYXJrJyxcbiAqICAgc2l6ZTogJ21lZGl1bScsXG4gKiAgIHJvdW5kZWQ6IHRydWUsXG4gKiAgIGFsbG93UGFydGlhbEJvbGQ6IHRydWUsXG4gKiB9XCI+PC92YWwtbm90ZXMtYm94PlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbm90ZXMtYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGV4dENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ2YWwtbm90ZXMtYm94XCJcbiAgICAgIFtjbGFzcy5pcy1jb21wYWN0XT1cInByb3BzLmNvbXBhY3RcIlxuICAgICAgW2NsYXNzLmlzLXJvdW5kZWRdPVwicHJvcHMucm91bmRlZFwiXG4gICAgICBbY2xhc3MuYWxpZ24tY2VudGVyXT1cInByb3BzLmFsaWduID09PSAnY2VudGVyJ1wiXG4gICAgICBbY2xhc3MuYWxpZ24tcmlnaHRdPVwicHJvcHMuYWxpZ24gPT09ICdyaWdodCdcIlxuICAgICAgW2F0dHIuZGF0YS1jb2xvcl09XCJwcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIlxuICAgICAgcm9sZT1cIm5vdGVcIlxuICAgID5cbiAgICAgIEBpZiAocHJvcHMucHJlZml4KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtbm90ZXMtYm94X19oZWFkZXJcIj57eyBwcm9wcy5wcmVmaXggfX08L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtbm90ZXMtYm94X19ib2R5XCIgW2NsYXNzXT1cIidzaXplLScgKyAocHJvcHMuc2l6ZSB8fCAnbWVkaXVtJylcIj5cbiAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLnRleHQsXG4gICAgICAgICAgICBjb2xvcjogcHJvcHMudGV4dENvbG9yLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICBzaXplOiBwcm9wcy5zaXplLFxuICAgICAgICAgICAgYWxsb3dQYXJ0aWFsQm9sZDogcHJvcHMuYWxsb3dQYXJ0aWFsQm9sZCxcbiAgICAgICAgICAgIHByb2Nlc3NMaW5rczogcHJvcHMucHJvY2Vzc0xpbmtzLFxuICAgICAgICAgIH1cIlxuICAgICAgICA+PC92YWwtdGV4dD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9ub3Rlcy1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVzQm94Q29tcG9uZW50IHtcbiAgLyoqIE5vdGVzIGJveCBjb25maWd1cmF0aW9uIG9iamVjdC4gKi9cbiAgQElucHV0KCkgcHJvcHMhOiBOb3Rlc0JveE1ldGFkYXRhO1xufVxuIl19