valtech-components 2.0.615 → 2.0.616

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.
@@ -89,12 +89,23 @@ export class FooterLinksComponent {
89
89
  </ion-row>
90
90
 
91
91
  <ion-row style="margin-top: 1rem;">
92
- <ion-col size="12" *ngIf="props.logo || props.socialLinks?.length">
92
+ <ion-col size="12" *ngIf="props.logoCssVariable || props.logo || props.socialLinks?.length">
93
93
  <!-- Mobile layout: centered -->
94
94
  <div class="mobile-layout">
95
- <!-- Light mode logo -->
95
+ <!-- CSS Variable logo (recommended for dark mode) -->
96
+ <span
97
+ *ngIf="props.logoCssVariable"
98
+ class="logo-clickable footer-logo footer-logo--css-var"
99
+ role="img"
100
+ [attr.aria-label]="props.logoAlt || 'Logo'"
101
+ [style.--logo-var]="'var(' + props.logoCssVariable + ')'"
102
+ [style.width]="props.logoWidth || '10rem'"
103
+ [style.height]="props.logoHeight || '3rem'"
104
+ (click)="onLogoClick()"
105
+ ></span>
106
+ <!-- Light mode logo (fallback) -->
96
107
  <val-image
97
- *ngIf="props.logo"
108
+ *ngIf="!props.logoCssVariable && props.logo"
98
109
  class="logo-clickable footer-logo footer-logo--light"
99
110
  [props]="{
100
111
  width: 14,
@@ -109,9 +120,9 @@ export class FooterLinksComponent {
109
120
  }"
110
121
  (click)="onLogoClick()"
111
122
  />
112
- <!-- Dark mode logo -->
123
+ <!-- Dark mode logo (fallback) -->
113
124
  <val-image
114
- *ngIf="props.logo && props.logoDark"
125
+ *ngIf="!props.logoCssVariable && props.logo && props.logoDark"
115
126
  class="logo-clickable footer-logo footer-logo--dark"
116
127
  [props]="{
117
128
  width: 14,
@@ -144,9 +155,20 @@ export class FooterLinksComponent {
144
155
 
145
156
  <!-- Desktop layout: space-between -->
146
157
  <div class="desktop-layout">
147
- <!-- Light mode logo -->
158
+ <!-- CSS Variable logo (recommended for dark mode) -->
159
+ <span
160
+ *ngIf="props.logoCssVariable"
161
+ class="logo-clickable footer-logo footer-logo--css-var"
162
+ role="img"
163
+ [attr.aria-label]="props.logoAlt || 'Logo'"
164
+ [style.--logo-var]="'var(' + props.logoCssVariable + ')'"
165
+ [style.width]="props.logoWidth || '10rem'"
166
+ [style.height]="props.logoHeight || '3rem'"
167
+ (click)="onLogoClick()"
168
+ ></span>
169
+ <!-- Light mode logo (fallback) -->
148
170
  <val-image
149
- *ngIf="props.logo"
171
+ *ngIf="!props.logoCssVariable && props.logo"
150
172
  class="logo-clickable footer-logo footer-logo--light"
151
173
  [props]="{
152
174
  width: 16,
@@ -161,9 +183,9 @@ export class FooterLinksComponent {
161
183
  }"
162
184
  (click)="onLogoClick()"
163
185
  />
164
- <!-- Dark mode logo -->
186
+ <!-- Dark mode logo (fallback) -->
165
187
  <val-image
166
- *ngIf="props.logo && props.logoDark"
188
+ *ngIf="!props.logoCssVariable && props.logo && props.logoDark"
167
189
  class="logo-clickable footer-logo footer-logo--dark"
168
190
  [props]="{
169
191
  width: 16,
@@ -196,7 +218,7 @@ export class FooterLinksComponent {
196
218
  </ion-col>
197
219
  </ion-row>
198
220
  </div>
199
- `, isInline: true, styles: [".footer-links .mobile-layout{display:block;text-align:center;padding:8px 0}.footer-links .desktop-layout{display:none;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.footer-links .social-links-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}.footer-links .social-button{--color: #666;--color-hover: #333;transition:all .2s ease;min-height:40px;min-width:40px;margin:0}.footer-links .social-button:hover{--color: #333;transform:translateY(-1px)}.footer-links .social-button ion-icon{font-size:20px}.footer-links .logo-clickable{cursor:pointer}.footer-links .footer-logo{margin-top:1rem}.footer-links .footer-logo--light{display:block}.footer-links .footer-logo--dark{display:none}@media (prefers-color-scheme: dark){.footer-links .footer-logo--light{display:none}.footer-links .footer-logo--dark{display:block}}.footer-links :host-context(.dark) .footer-logo--light{display:none}.footer-links :host-context(.dark) .footer-logo--dark{display:block}@media (min-width: 768px){.footer-links .mobile-layout{display:none!important}.footer-links .desktop-layout{display:flex!important}.footer-links .social-links-container{margin-top:0;justify-content:flex-end}}@media (max-width: 767px){.footer-links .mobile-layout{display:block!important}.footer-links .desktop-layout{display:none!important}.footer-links .social-links-container{justify-content:center;margin-bottom:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { 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: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: LinksCakeComponent, selector: "val-links-cake", inputs: ["props"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }] }); }
221
+ `, isInline: true, styles: [".footer-links .mobile-layout{display:block;text-align:center;padding:8px 0}.footer-links .desktop-layout{display:none;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.footer-links .social-links-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}.footer-links .social-button{--color: #666;--color-hover: #333;transition:all .2s ease;min-height:40px;min-width:40px;margin:0}.footer-links .social-button:hover{--color: #333;transform:translateY(-1px)}.footer-links .social-button ion-icon{font-size:20px}.footer-links .logo-clickable{cursor:pointer}.footer-links .footer-logo{margin-top:1rem}.footer-links .footer-logo--css-var{display:block;background-image:var(--logo-var);background-size:contain;background-repeat:no-repeat;background-position:center;transition:opacity .2s ease}.footer-links .footer-logo--css-var:hover{opacity:.8}.footer-links .mobile-layout .footer-logo--css-var{margin-left:auto;margin-right:auto}.footer-links .footer-logo--light{display:block}.footer-links .footer-logo--dark{display:none}@media (prefers-color-scheme: dark){.footer-links .footer-logo--light{display:none}.footer-links .footer-logo--dark{display:block}}.footer-links :host-context(.dark) .footer-logo--light{display:none}.footer-links :host-context(.dark) .footer-logo--dark{display:block}@media (min-width: 768px){.footer-links .mobile-layout{display:none!important}.footer-links .desktop-layout{display:flex!important}.footer-links .social-links-container{margin-top:0;justify-content:flex-end}}@media (max-width: 767px){.footer-links .mobile-layout{display:block!important}.footer-links .desktop-layout{display:none!important}.footer-links .social-links-container{justify-content:center;margin-bottom:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { 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: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: LinksCakeComponent, selector: "val-links-cake", inputs: ["props"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }] }); }
200
222
  }
201
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FooterLinksComponent, decorators: [{
202
224
  type: Component,
@@ -231,12 +253,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
231
253
  </ion-row>
232
254
 
233
255
  <ion-row style="margin-top: 1rem;">
234
- <ion-col size="12" *ngIf="props.logo || props.socialLinks?.length">
256
+ <ion-col size="12" *ngIf="props.logoCssVariable || props.logo || props.socialLinks?.length">
235
257
  <!-- Mobile layout: centered -->
236
258
  <div class="mobile-layout">
237
- <!-- Light mode logo -->
259
+ <!-- CSS Variable logo (recommended for dark mode) -->
260
+ <span
261
+ *ngIf="props.logoCssVariable"
262
+ class="logo-clickable footer-logo footer-logo--css-var"
263
+ role="img"
264
+ [attr.aria-label]="props.logoAlt || 'Logo'"
265
+ [style.--logo-var]="'var(' + props.logoCssVariable + ')'"
266
+ [style.width]="props.logoWidth || '10rem'"
267
+ [style.height]="props.logoHeight || '3rem'"
268
+ (click)="onLogoClick()"
269
+ ></span>
270
+ <!-- Light mode logo (fallback) -->
238
271
  <val-image
239
- *ngIf="props.logo"
272
+ *ngIf="!props.logoCssVariable && props.logo"
240
273
  class="logo-clickable footer-logo footer-logo--light"
241
274
  [props]="{
242
275
  width: 14,
@@ -251,9 +284,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
251
284
  }"
252
285
  (click)="onLogoClick()"
253
286
  />
254
- <!-- Dark mode logo -->
287
+ <!-- Dark mode logo (fallback) -->
255
288
  <val-image
256
- *ngIf="props.logo && props.logoDark"
289
+ *ngIf="!props.logoCssVariable && props.logo && props.logoDark"
257
290
  class="logo-clickable footer-logo footer-logo--dark"
258
291
  [props]="{
259
292
  width: 14,
@@ -286,9 +319,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
286
319
 
287
320
  <!-- Desktop layout: space-between -->
288
321
  <div class="desktop-layout">
289
- <!-- Light mode logo -->
322
+ <!-- CSS Variable logo (recommended for dark mode) -->
323
+ <span
324
+ *ngIf="props.logoCssVariable"
325
+ class="logo-clickable footer-logo footer-logo--css-var"
326
+ role="img"
327
+ [attr.aria-label]="props.logoAlt || 'Logo'"
328
+ [style.--logo-var]="'var(' + props.logoCssVariable + ')'"
329
+ [style.width]="props.logoWidth || '10rem'"
330
+ [style.height]="props.logoHeight || '3rem'"
331
+ (click)="onLogoClick()"
332
+ ></span>
333
+ <!-- Light mode logo (fallback) -->
290
334
  <val-image
291
- *ngIf="props.logo"
335
+ *ngIf="!props.logoCssVariable && props.logo"
292
336
  class="logo-clickable footer-logo footer-logo--light"
293
337
  [props]="{
294
338
  width: 16,
@@ -303,9 +347,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
303
347
  }"
304
348
  (click)="onLogoClick()"
305
349
  />
306
- <!-- Dark mode logo -->
350
+ <!-- Dark mode logo (fallback) -->
307
351
  <val-image
308
- *ngIf="props.logo && props.logoDark"
352
+ *ngIf="!props.logoCssVariable && props.logo && props.logoDark"
309
353
  class="logo-clickable footer-logo footer-logo--dark"
310
354
  [props]="{
311
355
  width: 16,
@@ -338,10 +382,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
338
382
  </ion-col>
339
383
  </ion-row>
340
384
  </div>
341
- `, styles: [".footer-links .mobile-layout{display:block;text-align:center;padding:8px 0}.footer-links .desktop-layout{display:none;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.footer-links .social-links-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}.footer-links .social-button{--color: #666;--color-hover: #333;transition:all .2s ease;min-height:40px;min-width:40px;margin:0}.footer-links .social-button:hover{--color: #333;transform:translateY(-1px)}.footer-links .social-button ion-icon{font-size:20px}.footer-links .logo-clickable{cursor:pointer}.footer-links .footer-logo{margin-top:1rem}.footer-links .footer-logo--light{display:block}.footer-links .footer-logo--dark{display:none}@media (prefers-color-scheme: dark){.footer-links .footer-logo--light{display:none}.footer-links .footer-logo--dark{display:block}}.footer-links :host-context(.dark) .footer-logo--light{display:none}.footer-links :host-context(.dark) .footer-logo--dark{display:block}@media (min-width: 768px){.footer-links .mobile-layout{display:none!important}.footer-links .desktop-layout{display:flex!important}.footer-links .social-links-container{margin-top:0;justify-content:flex-end}}@media (max-width: 767px){.footer-links .mobile-layout{display:block!important}.footer-links .desktop-layout{display:none!important}.footer-links .social-links-container{justify-content:center;margin-bottom:8px}}\n"] }]
385
+ `, styles: [".footer-links .mobile-layout{display:block;text-align:center;padding:8px 0}.footer-links .desktop-layout{display:none;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.footer-links .social-links-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}.footer-links .social-button{--color: #666;--color-hover: #333;transition:all .2s ease;min-height:40px;min-width:40px;margin:0}.footer-links .social-button:hover{--color: #333;transform:translateY(-1px)}.footer-links .social-button ion-icon{font-size:20px}.footer-links .logo-clickable{cursor:pointer}.footer-links .footer-logo{margin-top:1rem}.footer-links .footer-logo--css-var{display:block;background-image:var(--logo-var);background-size:contain;background-repeat:no-repeat;background-position:center;transition:opacity .2s ease}.footer-links .footer-logo--css-var:hover{opacity:.8}.footer-links .mobile-layout .footer-logo--css-var{margin-left:auto;margin-right:auto}.footer-links .footer-logo--light{display:block}.footer-links .footer-logo--dark{display:none}@media (prefers-color-scheme: dark){.footer-links .footer-logo--light{display:none}.footer-links .footer-logo--dark{display:block}}.footer-links :host-context(.dark) .footer-logo--light{display:none}.footer-links :host-context(.dark) .footer-logo--dark{display:block}@media (min-width: 768px){.footer-links .mobile-layout{display:none!important}.footer-links .desktop-layout{display:flex!important}.footer-links .social-links-container{margin-top:0;justify-content:flex-end}}@media (max-width: 767px){.footer-links .mobile-layout{display:block!important}.footer-links .desktop-layout{display:none!important}.footer-links .social-links-container{justify-content:center;margin-bottom:8px}}\n"] }]
342
386
  }], propDecorators: { props: [{
343
387
  type: Input
344
388
  }], logoClick: [{
345
389
  type: Output
346
390
  }] } });
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLWxpbmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZm9vdGVyLWxpbmtzL2Zvb3Rlci1saW5rcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUd4RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBa0pILE1BQU0sT0FBTyxvQkFBb0I7SUFqSmpDO1FBa0pVLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQU94Qzs7V0FFRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBZ0NoRDtJQTlCQzs7T0FFRztJQUNILElBQUksc0JBQXNCO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPO1lBQ0wsU0FBUyxFQUFFLEtBQUs7WUFDaEIsV0FBVyxFQUFFO2dCQUNYLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixHQUFHLEVBQUUsVUFBVTtnQkFDZixRQUFRLEVBQUUsUUFBUTthQUNuQjtZQUNELFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBMUNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDZJQW5JckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0lULHkvQ0ExSUMsWUFBWSxnUUFDWixNQUFNLGtUQUNOLE1BQU0sb0RBQ04sU0FBUyxvUEFDVCxPQUFPLDJKQUNQLGdCQUFnQiwyRUFDaEIsY0FBYyx5RUFDZCxrQkFBa0IsOEVBQ2xCLHlCQUF5Qjs7NEZBcUloQixvQkFBb0I7a0JBakpoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixNQUFNO3dCQUNOLE1BQU07d0JBQ04sU0FBUzt3QkFDVCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHlCQUF5QjtxQkFDMUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnSVQ7OEJBU1EsS0FBSztzQkFBYixLQUFLO2dCQUtJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25Db2wsIElvbkljb24sIElvblJvdyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgfSBmcm9tICcuLi9sYW5ndWFnZS1zZWxlY3Rvci90eXBlcyc7XG5pbXBvcnQgeyBMaW5rc0Nha2VDb21wb25lbnQgfSBmcm9tICcuLi9saW5rcy1jYWtlL2xpbmtzLWNha2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZvb3RlckxpbmtzTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtZm9vdGVyLWxpbmtzXG4gKlxuICogQSByZXNwb25zaXZlIGZvb3RlciBjb21wb25lbnQgd2l0aCB0d28gY29sdW1ucyBvZiBsaW5rcywgc29jaWFsIG1lZGlhIGljb25zLFxuICogbG9nbywgYW5kIG9wdGlvbmFsIGxhbmd1YWdlIHNlbGVjdG9yLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWZvb3Rlci1saW5rc1xuICogICBbcHJvcHNdPVwie1xuICogICAgIGxlZnRMaW5rczogeyB0aXRsZTogJ0NvbXBhbnknLCBsaW5rczogWy4uLl0gfSxcbiAqICAgICByaWdodExpbmtzOiB7IHRpdGxlOiAnUmVzb3VyY2VzJywgbGlua3M6IFsuLi5dIH0sXG4gKiAgICAgbG9nbzogJ2xvZ28uc3ZnJyxcbiAqICAgICBsb2dvUm91dGU6ICcvJyxcbiAqICAgICBzb2NpYWxMaW5rczogW1xuICogICAgICAgeyBpY29uOiAnbG9nby1mYWNlYm9vaycsIHVybDogJ2h0dHBzOi8vZmFjZWJvb2suY29tJywgbmFtZTogJ0ZhY2Vib29rJyB9XG4gKiAgICAgXVxuICogICB9XCJcbiAqID48L3ZhbC1mb290ZXItbGlua3M+XG4gKlxuICogQGlucHV0IHByb3BzIC0gRm9vdGVyIGNvbmZpZ3VyYXRpb25cbiAqIEBvdXRwdXQgbG9nb0NsaWNrIC0gRW1pdHMgd2hlbiBsb2dvIGlzIGNsaWNrZWRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWZvb3Rlci1saW5rcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uQ29sLFxuICAgIElvblJvdyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgICBEaXZpZGVyQ29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIExpbmtzQ2FrZUNvbXBvbmVudCxcbiAgICBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmb290ZXItbGlua3NcIj5cbiAgICAgIDxpb24tcm93PlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIj5cbiAgICAgICAgICA8dmFsLWRpdmlkZXIgW3Byb3BzXT1cInByb3BzLmRpdmlkZXIgfHwgeyBzaXplOiAnc21hbGwnLCBjb2xvcjogJ21lZGl1bScsIGZpbGw6ICdzb2xpZCcgfVwiIC8+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPGlvbi1jb2wgc2l6ZS14cz1cIjEyXCIgc2l6ZS1tZD1cIjZcIj5cbiAgICAgICAgICA8dmFsLWxpbmtzLWNha2UgW3Byb3BzXT1cInByb3BzLmxlZnRMaW5rc1wiIC8+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPGlvbi1jb2wgc2l6ZS14cz1cIjEyXCIgc2l6ZS1tZD1cIjZcIj5cbiAgICAgICAgICA8dmFsLWxpbmtzLWNha2UgW3Byb3BzXT1cInByb3BzLnJpZ2h0TGlua3NcIiAvPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG5cbiAgICAgIDxpb24tcm93ICpuZ0lmPVwicHJvcHMubGFuZ3VhZ2VTZWxlY3RvciAhPT0gZmFsc2VcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07XCI+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICAgIDx2YWwtbGFuZ3VhZ2Utc2VsZWN0b3IgW3Byb3BzXT1cImxhbmd1YWdlU2VsZWN0b3JDb25maWdcIiAvPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG5cbiAgICAgIDxpb24tcm93IHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbTtcIj5cbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgKm5nSWY9XCJwcm9wcy5sb2dvIHx8IHByb3BzLnNvY2lhbExpbmtzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8IS0tIE1vYmlsZSBsYXlvdXQ6IGNlbnRlcmVkIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbGF5b3V0XCI+XG4gICAgICAgICAgICA8IS0tIExpZ2h0IG1vZGUgbG9nbyAtLT5cbiAgICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJwcm9wcy5sb2dvXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsb2dvLWNsaWNrYWJsZSBmb290ZXItbG9nbyBmb290ZXItbG9nby0tbGlnaHRcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNCxcbiAgICAgICAgICAgICAgICBtb2RlOiAnYm94JyxcbiAgICAgICAgICAgICAgICBzaGFkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHNyYzogcHJvcHMubG9nbyxcbiAgICAgICAgICAgICAgICBhbHQ6IHByb3BzLmxvZ29BbHQgfHwgJ0xvZ28nLFxuICAgICAgICAgICAgICAgIGxpbWl0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhcms6IHRydWVcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ29DbGljaygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8IS0tIERhcmsgbW9kZSBsb2dvIC0tPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cInByb3BzLmxvZ28gJiYgcHJvcHMubG9nb0RhcmtcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxvZ28tY2xpY2thYmxlIGZvb3Rlci1sb2dvIGZvb3Rlci1sb2dvLS1kYXJrXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogMTQsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBzcmM6IHByb3BzLmxvZ29EYXJrLFxuICAgICAgICAgICAgICAgIGFsdDogcHJvcHMubG9nb0FsdCB8fCAnTG9nbycsXG4gICAgICAgICAgICAgICAgbGltaXRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGFyazogdHJ1ZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTG9nb0NsaWNrKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb2NpYWwtbGlua3MtY29udGFpbmVyXCIgKm5nSWY9XCJwcm9wcy5zb2NpYWxMaW5rcz8ubGVuZ3RoXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtXCI+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNvY2lhbCBvZiBwcm9wcy5zb2NpYWxMaW5rc1wiXG4gICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cInNvY2lhbC51cmxcIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic29jaWFsLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzb2NpYWwubmFtZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwic29jaWFsLmljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgW2NvbG9yXT1cInByb3BzLnNvY2lhbEljb25Db2xvciB8fCAnZGFyaydcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gRGVza3RvcCBsYXlvdXQ6IHNwYWNlLWJldHdlZW4gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2t0b3AtbGF5b3V0XCI+XG4gICAgICAgICAgICA8IS0tIExpZ2h0IG1vZGUgbG9nbyAtLT5cbiAgICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJwcm9wcy5sb2dvXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsb2dvLWNsaWNrYWJsZSBmb290ZXItbG9nbyBmb290ZXItbG9nby0tbGlnaHRcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgICAgICAgICBtb2RlOiAnYm94JyxcbiAgICAgICAgICAgICAgICBzaGFkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHNyYzogcHJvcHMubG9nbyxcbiAgICAgICAgICAgICAgICBhbHQ6IHByb3BzLmxvZ29BbHQgfHwgJ0xvZ28nLFxuICAgICAgICAgICAgICAgIGxpbWl0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhcms6IHRydWVcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ29DbGljaygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8IS0tIERhcmsgbW9kZSBsb2dvIC0tPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cInByb3BzLmxvZ28gJiYgcHJvcHMubG9nb0RhcmtcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxvZ28tY2xpY2thYmxlIGZvb3Rlci1sb2dvIGZvb3Rlci1sb2dvLS1kYXJrXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogMTYsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBzcmM6IHByb3BzLmxvZ29EYXJrLFxuICAgICAgICAgICAgICAgIGFsdDogcHJvcHMubG9nb0FsdCB8fCAnTG9nbycsXG4gICAgICAgICAgICAgICAgbGltaXRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGFyazogdHJ1ZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTG9nb0NsaWNrKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb2NpYWwtbGlua3MtY29udGFpbmVyXCIgKm5nSWY9XCJwcm9wcy5zb2NpYWxMaW5rcz8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNvY2lhbCBvZiBwcm9wcy5zb2NpYWxMaW5rc1wiXG4gICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cInNvY2lhbC51cmxcIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic29jaWFsLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzb2NpYWwubmFtZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwic29jaWFsLmljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgW2NvbG9yXT1cInByb3BzLnNvY2lhbEljb25Db2xvciB8fCAnZGFyaydcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9mb290ZXItbGlua3MuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9vdGVyTGlua3NDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEZvb3RlciBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHMhOiBGb290ZXJMaW5rc01ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBsb2dvIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgbG9nb0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGxhbmd1YWdlIHNlbGVjdG9yIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBnZXQgbGFuZ3VhZ2VTZWxlY3RvckNvbmZpZygpOiBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEge1xuICAgIGlmICh0aGlzLnByb3BzLmxhbmd1YWdlU2VsZWN0b3IgJiYgdHlwZW9mIHRoaXMucHJvcHMubGFuZ3VhZ2VTZWxlY3RvciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmxhbmd1YWdlU2VsZWN0b3I7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBzaG93TGFiZWw6IGZhbHNlLFxuICAgICAgbGFiZWxDb25maWc6IHtcbiAgICAgICAgY2xhc3NOYW1lOiAnX2dsb2JhbCcsXG4gICAgICAgIGtleTogJ2xhbmd1YWdlJyxcbiAgICAgICAgZmFsbGJhY2s6ICdJZGlvbWEnLFxuICAgICAgfSxcbiAgICAgIHNob3dGbGFnczogdHJ1ZSxcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGxvZ28gY2xpY2sgLSBuYXZpZ2F0ZXMgaWYgcm91dGUgcHJvdmlkZWQsIG90aGVyd2lzZSBlbWl0cyBldmVudC5cbiAgICovXG4gIG9uTG9nb0NsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmxvZ29Sb3V0ZSkge1xuICAgICAgdGhpcy5uYXYubmF2aWdhdGVCeVVybCh0aGlzLnByb3BzLmxvZ29Sb3V0ZSk7XG4gICAgfVxuICAgIHRoaXMubG9nb0NsaWNrLmVtaXQoKTtcbiAgfVxufVxuIl19
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLWxpbmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZm9vdGVyLWxpbmtzL2Zvb3Rlci1saW5rcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUd4RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBd0tILE1BQU0sT0FBTyxvQkFBb0I7SUF2S2pDO1FBd0tVLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQU94Qzs7V0FFRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBZ0NoRDtJQTlCQzs7T0FFRztJQUNILElBQUksc0JBQXNCO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPO1lBQ0wsU0FBUyxFQUFFLEtBQUs7WUFDaEIsV0FBVyxFQUFFO2dCQUNYLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixHQUFHLEVBQUUsVUFBVTtnQkFDZixRQUFRLEVBQUUsUUFBUTthQUNuQjtZQUNELFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBMUNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDZJQXpKckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNKVCxrMERBaEtDLFlBQVksZ1FBQ1osTUFBTSxrVEFDTixNQUFNLG9EQUNOLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxnQkFBZ0IsMkVBQ2hCLGNBQWMseUVBQ2Qsa0JBQWtCLDhFQUNsQix5QkFBeUI7OzRGQTJKaEIsb0JBQW9CO2tCQXZLaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osTUFBTTt3QkFDTixNQUFNO3dCQUNOLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQix5QkFBeUI7cUJBQzFCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNKVDs4QkFTUSxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkNvbCwgSW9uSWNvbiwgSW9uUm93IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBEaXZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YSB9IGZyb20gJy4uL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcbmltcG9ydCB7IExpbmtzQ2FrZUNvbXBvbmVudCB9IGZyb20gJy4uL2xpbmtzLWNha2UvbGlua3MtY2FrZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9vdGVyTGlua3NNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1mb290ZXItbGlua3NcbiAqXG4gKiBBIHJlc3BvbnNpdmUgZm9vdGVyIGNvbXBvbmVudCB3aXRoIHR3byBjb2x1bW5zIG9mIGxpbmtzLCBzb2NpYWwgbWVkaWEgaWNvbnMsXG4gKiBsb2dvLCBhbmQgb3B0aW9uYWwgbGFuZ3VhZ2Ugc2VsZWN0b3IuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtZm9vdGVyLWxpbmtzXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgbGVmdExpbmtzOiB7IHRpdGxlOiAnQ29tcGFueScsIGxpbmtzOiBbLi4uXSB9LFxuICogICAgIHJpZ2h0TGlua3M6IHsgdGl0bGU6ICdSZXNvdXJjZXMnLCBsaW5rczogWy4uLl0gfSxcbiAqICAgICBsb2dvOiAnbG9nby5zdmcnLFxuICogICAgIGxvZ29Sb3V0ZTogJy8nLFxuICogICAgIHNvY2lhbExpbmtzOiBbXG4gKiAgICAgICB7IGljb246ICdsb2dvLWZhY2Vib29rJywgdXJsOiAnaHR0cHM6Ly9mYWNlYm9vay5jb20nLCBuYW1lOiAnRmFjZWJvb2snIH1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogPjwvdmFsLWZvb3Rlci1saW5rcz5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBGb290ZXIgY29uZmlndXJhdGlvblxuICogQG91dHB1dCBsb2dvQ2xpY2sgLSBFbWl0cyB3aGVuIGxvZ28gaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZm9vdGVyLWxpbmtzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25Db2wsXG4gICAgSW9uUm93LFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25JY29uLFxuICAgIERpdmlkZXJDb21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgTGlua3NDYWtlQ29tcG9uZW50LFxuICAgIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZvb3Rlci1saW5rc1wiPlxuICAgICAgPGlvbi1yb3c+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICAgIDx2YWwtZGl2aWRlciBbcHJvcHNdPVwicHJvcHMuZGl2aWRlciB8fCB7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnbWVkaXVtJywgZmlsbDogJ3NvbGlkJyB9XCIgLz5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCBzaXplLXhzPVwiMTJcIiBzaXplLW1kPVwiNlwiPlxuICAgICAgICAgIDx2YWwtbGlua3MtY2FrZSBbcHJvcHNdPVwicHJvcHMubGVmdExpbmtzXCIgLz5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCBzaXplLXhzPVwiMTJcIiBzaXplLW1kPVwiNlwiPlxuICAgICAgICAgIDx2YWwtbGlua3MtY2FrZSBbcHJvcHNdPVwicHJvcHMucmlnaHRMaW5rc1wiIC8+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cblxuICAgICAgPGlvbi1yb3cgKm5nSWY9XCJwcm9wcy5sYW5ndWFnZVNlbGVjdG9yICE9PSBmYWxzZVwiIHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbTtcIj5cbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCI+XG4gICAgICAgICAgPHZhbC1sYW5ndWFnZS1zZWxlY3RvciBbcHJvcHNdPVwibGFuZ3VhZ2VTZWxlY3RvckNvbmZpZ1wiIC8+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cblxuICAgICAgPGlvbi1yb3cgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtO1wiPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiAqbmdJZj1cInByb3BzLmxvZ29Dc3NWYXJpYWJsZSB8fCBwcm9wcy5sb2dvIHx8IHByb3BzLnNvY2lhbExpbmtzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8IS0tIE1vYmlsZSBsYXlvdXQ6IGNlbnRlcmVkIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbGF5b3V0XCI+XG4gICAgICAgICAgICA8IS0tIENTUyBWYXJpYWJsZSBsb2dvIChyZWNvbW1lbmRlZCBmb3IgZGFyayBtb2RlKSAtLT5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICpuZ0lmPVwicHJvcHMubG9nb0Nzc1ZhcmlhYmxlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsb2dvLWNsaWNrYWJsZSBmb290ZXItbG9nbyBmb290ZXItbG9nby0tY3NzLXZhclwiXG4gICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb3BzLmxvZ29BbHQgfHwgJ0xvZ28nXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tbG9nby12YXJdPVwiJ3ZhcignICsgcHJvcHMubG9nb0Nzc1ZhcmlhYmxlICsgJyknXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb3BzLmxvZ29XaWR0aCB8fCAnMTByZW0nXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJwcm9wcy5sb2dvSGVpZ2h0IHx8ICczcmVtJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ29DbGljaygpXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8IS0tIExpZ2h0IG1vZGUgbG9nbyAoZmFsbGJhY2spIC0tPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cIiFwcm9wcy5sb2dvQ3NzVmFyaWFibGUgJiYgcHJvcHMubG9nb1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwibG9nby1jbGlja2FibGUgZm9vdGVyLWxvZ28gZm9vdGVyLWxvZ28tLWxpZ2h0XCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogMTQsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBzcmM6IHByb3BzLmxvZ28sXG4gICAgICAgICAgICAgICAgYWx0OiBwcm9wcy5sb2dvQWx0IHx8ICdMb2dvJyxcbiAgICAgICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkYXJrOiB0cnVlXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Mb2dvQ2xpY2soKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPCEtLSBEYXJrIG1vZGUgbG9nbyAoZmFsbGJhY2spIC0tPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cIiFwcm9wcy5sb2dvQ3NzVmFyaWFibGUgJiYgcHJvcHMubG9nbyAmJiBwcm9wcy5sb2dvRGFya1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwibG9nby1jbGlja2FibGUgZm9vdGVyLWxvZ28gZm9vdGVyLWxvZ28tLWRhcmtcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNCxcbiAgICAgICAgICAgICAgICBtb2RlOiAnYm94JyxcbiAgICAgICAgICAgICAgICBzaGFkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHNyYzogcHJvcHMubG9nb0RhcmssXG4gICAgICAgICAgICAgICAgYWx0OiBwcm9wcy5sb2dvQWx0IHx8ICdMb2dvJyxcbiAgICAgICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkYXJrOiB0cnVlXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Mb2dvQ2xpY2soKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNvY2lhbC1saW5rcy1jb250YWluZXJcIiAqbmdJZj1cInByb3BzLnNvY2lhbExpbmtzPy5sZW5ndGhcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW1cIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc29jaWFsIG9mIHByb3BzLnNvY2lhbExpbmtzXCJcbiAgICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwic29jaWFsLnVybFwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzb2NpYWwtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNvY2lhbC5uYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJzb2NpYWwuaWNvblwiIHNsb3Q9XCJpY29uLW9ubHlcIiBbY29sb3JdPVwicHJvcHMuc29jaWFsSWNvbkNvbG9yIHx8ICdkYXJrJ1wiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBEZXNrdG9wIGxheW91dDogc3BhY2UtYmV0d2VlbiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVza3RvcC1sYXlvdXRcIj5cbiAgICAgICAgICAgIDwhLS0gQ1NTIFZhcmlhYmxlIGxvZ28gKHJlY29tbWVuZGVkIGZvciBkYXJrIG1vZGUpIC0tPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKm5nSWY9XCJwcm9wcy5sb2dvQ3NzVmFyaWFibGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxvZ28tY2xpY2thYmxlIGZvb3Rlci1sb2dvIGZvb3Rlci1sb2dvLS1jc3MtdmFyXCJcbiAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvcHMubG9nb0FsdCB8fCAnTG9nbydcIlxuICAgICAgICAgICAgICBbc3R5bGUuLS1sb2dvLXZhcl09XCIndmFyKCcgKyBwcm9wcy5sb2dvQ3NzVmFyaWFibGUgKyAnKSdcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwicHJvcHMubG9nb1dpZHRoIHx8ICcxMHJlbSdcIlxuICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cInByb3BzLmxvZ29IZWlnaHQgfHwgJzNyZW0nXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTG9nb0NsaWNrKClcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIDwhLS0gTGlnaHQgbW9kZSBsb2dvIChmYWxsYmFjaykgLS0+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXByb3BzLmxvZ29Dc3NWYXJpYWJsZSAmJiBwcm9wcy5sb2dvXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsb2dvLWNsaWNrYWJsZSBmb290ZXItbG9nbyBmb290ZXItbG9nby0tbGlnaHRcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgICAgICAgICBtb2RlOiAnYm94JyxcbiAgICAgICAgICAgICAgICBzaGFkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHNyYzogcHJvcHMubG9nbyxcbiAgICAgICAgICAgICAgICBhbHQ6IHByb3BzLmxvZ29BbHQgfHwgJ0xvZ28nLFxuICAgICAgICAgICAgICAgIGxpbWl0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhcms6IHRydWVcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ29DbGljaygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8IS0tIERhcmsgbW9kZSBsb2dvIChmYWxsYmFjaykgLS0+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXByb3BzLmxvZ29Dc3NWYXJpYWJsZSAmJiBwcm9wcy5sb2dvICYmIHByb3BzLmxvZ29EYXJrXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsb2dvLWNsaWNrYWJsZSBmb290ZXItbG9nbyBmb290ZXItbG9nby0tZGFya1wiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2LFxuICAgICAgICAgICAgICAgIG1vZGU6ICdib3gnLFxuICAgICAgICAgICAgICAgIHNoYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgc3JjOiBwcm9wcy5sb2dvRGFyayxcbiAgICAgICAgICAgICAgICBhbHQ6IHByb3BzLmxvZ29BbHQgfHwgJ0xvZ28nLFxuICAgICAgICAgICAgICAgIGxpbWl0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhcms6IHRydWVcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ29DbGljaygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic29jaWFsLWxpbmtzLWNvbnRhaW5lclwiICpuZ0lmPVwicHJvcHMuc29jaWFsTGlua3M/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzb2NpYWwgb2YgcHJvcHMuc29jaWFsTGlua3NcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJzb2NpYWwudXJsXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNvY2lhbC1idXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic29jaWFsLm5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInNvY2lhbC5pY29uXCIgc2xvdD1cImljb24tb25seVwiIFtjb2xvcl09XCJwcm9wcy5zb2NpYWxJY29uQ29sb3IgfHwgJ2RhcmsnXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZm9vdGVyLWxpbmtzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvb3RlckxpbmtzQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBGb290ZXIgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzITogRm9vdGVyTGlua3NNZXRhZGF0YTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgbG9nbyBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIGxvZ29DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBsYW5ndWFnZSBzZWxlY3RvciBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgZ2V0IGxhbmd1YWdlU2VsZWN0b3JDb25maWcoKTogTGFuZ3VhZ2VTZWxlY3Rvck1ldGFkYXRhIHtcbiAgICBpZiAodGhpcy5wcm9wcy5sYW5ndWFnZVNlbGVjdG9yICYmIHR5cGVvZiB0aGlzLnByb3BzLmxhbmd1YWdlU2VsZWN0b3IgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5sYW5ndWFnZVNlbGVjdG9yO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcbiAgICAgIGxhYmVsQ29uZmlnOiB7XG4gICAgICAgIGNsYXNzTmFtZTogJ19nbG9iYWwnLFxuICAgICAgICBrZXk6ICdsYW5ndWFnZScsXG4gICAgICAgIGZhbGxiYWNrOiAnSWRpb21hJyxcbiAgICAgIH0sXG4gICAgICBzaG93RmxhZ3M6IHRydWUsXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBsb2dvIGNsaWNrIC0gbmF2aWdhdGVzIGlmIHJvdXRlIHByb3ZpZGVkLCBvdGhlcndpc2UgZW1pdHMgZXZlbnQuXG4gICAqL1xuICBvbkxvZ29DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5sb2dvUm91dGUpIHtcbiAgICAgIHRoaXMubmF2Lm5hdmlnYXRlQnlVcmwodGhpcy5wcm9wcy5sb2dvUm91dGUpO1xuICAgIH1cbiAgICB0aGlzLmxvZ29DbGljay5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2Zvb3Rlci1saW5rcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGl2aWRlck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvZGl2aWRlci90eXBlcyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgfSBmcm9tICcuLi9sYW5ndWFnZS1zZWxlY3Rvci90eXBlcyc7XG5pbXBvcnQgeyBMaW5rQ2FrZU1ldGFkYXRhIH0gZnJvbSAnLi4vbGlua3MtY2FrZS90eXBlcyc7XG5cbi8qKlxuICogU29jaWFsIGxpbmsgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb2NpYWxMaW5rTWV0YWRhdGEge1xuICAvKiogSW9uaWNvbiBuYW1lIChlLmcuLCAnbG9nby1mYWNlYm9vaycsICdsb2dvLXR3aXR0ZXInKSAqL1xuICBpY29uOiBzdHJpbmc7XG4gIC8qKiBVUkwgdG8gdGhlIHNvY2lhbCBwcm9maWxlICovXG4gIHVybDogc3RyaW5nO1xuICAvKiogQWNjZXNzaWJsZSBuYW1lIGZvciB0aGUgbGluayAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZvb3RlciBsaW5rcyBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyTGlua3NNZXRhZGF0YSB7XG4gIC8qKiBMZWZ0IGNvbHVtbiBsaW5rcyBjb25maWd1cmF0aW9uICovXG4gIGxlZnRMaW5rczogTGlua0Nha2VNZXRhZGF0YTtcbiAgLyoqIFJpZ2h0IGNvbHVtbiBsaW5rcyBjb25maWd1cmF0aW9uICovXG4gIHJpZ2h0TGlua3M6IExpbmtDYWtlTWV0YWRhdGE7XG4gIC8qKiBPcHRpb25hbCBsb2dvIFVSTCAqL1xuICBsb2dvPzogc3RyaW5nO1xuICAvKiogTG9nbyBVUkwgZm9yIGRhcmsgbW9kZS4gSWYgbm90IHNldCwgdXNlcyBsb2dvIHdpdGggZmlsdGVyIGludmVydC4gKi9cbiAgbG9nb0Rhcms/OiBzdHJpbmc7XG4gIC8qKiBMb2dvIGFsdCB0ZXh0LiBEZWZhdWx0OiAnTG9nbycgKi9cbiAgbG9nb0FsdD86IHN0cmluZztcbiAgLyoqIFJvdXRlIHRvIG5hdmlnYXRlIHdoZW4gbG9nbyBpcyBjbGlja2VkICovXG4gIGxvZ29Sb3V0ZT86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGRpdmlkZXIgY29uZmlndXJhdGlvbiAqL1xuICBkaXZpZGVyPzogRGl2aWRlck1ldGFkYXRhO1xuICAvKiogU29jaWFsIG1lZGlhIGxpbmtzICovXG4gIHNvY2lhbExpbmtzPzogU29jaWFsTGlua01ldGFkYXRhW107XG4gIC8qKiBMYW5ndWFnZSBzZWxlY3RvciBjb25maWd1cmF0aW9uLiBTZXQgdG8gZmFsc2UgdG8gaGlkZS4gKi9cbiAgbGFuZ3VhZ2VTZWxlY3Rvcj86IExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YSB8IGZhbHNlO1xuICAvKiogSWNvbiBjb2xvciBmb3Igc29jaWFsIGxpbmtzLiBEZWZhdWx0OiAnZGFyaycgKi9cbiAgc29jaWFsSWNvbkNvbG9yPzogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2Zvb3Rlci1saW5rcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGl2aWRlck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvZGl2aWRlci90eXBlcyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgfSBmcm9tICcuLi9sYW5ndWFnZS1zZWxlY3Rvci90eXBlcyc7XG5pbXBvcnQgeyBMaW5rQ2FrZU1ldGFkYXRhIH0gZnJvbSAnLi4vbGlua3MtY2FrZS90eXBlcyc7XG5cbi8qKlxuICogU29jaWFsIGxpbmsgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb2NpYWxMaW5rTWV0YWRhdGEge1xuICAvKiogSW9uaWNvbiBuYW1lIChlLmcuLCAnbG9nby1mYWNlYm9vaycsICdsb2dvLXR3aXR0ZXInKSAqL1xuICBpY29uOiBzdHJpbmc7XG4gIC8qKiBVUkwgdG8gdGhlIHNvY2lhbCBwcm9maWxlICovXG4gIHVybDogc3RyaW5nO1xuICAvKiogQWNjZXNzaWJsZSBuYW1lIGZvciB0aGUgbGluayAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZvb3RlciBsaW5rcyBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyTGlua3NNZXRhZGF0YSB7XG4gIC8qKiBMZWZ0IGNvbHVtbiBsaW5rcyBjb25maWd1cmF0aW9uICovXG4gIGxlZnRMaW5rczogTGlua0Nha2VNZXRhZGF0YTtcbiAgLyoqIFJpZ2h0IGNvbHVtbiBsaW5rcyBjb25maWd1cmF0aW9uICovXG4gIHJpZ2h0TGlua3M6IExpbmtDYWtlTWV0YWRhdGE7XG4gIC8qKlxuICAgKiBDU1MgdmFyaWFibGUgbmFtZSBmb3IgdGhlIGxvZ28gKHJlY29tbWVuZGVkIGZvciBkYXJrIG1vZGUgc3VwcG9ydCkuXG4gICAqIFdoZW4gc2V0LCB1c2VzIGJhY2tncm91bmQtaW1hZ2Ugd2l0aCB0aGlzIENTUyB2YXJpYWJsZS5cbiAgICogVGhlIHZhcmlhYmxlIHNob3VsZCBiZSBkZWZpbmVkIGluIHlvdXIgdGhlbWUgYW5kIGNoYW5nZSBiYXNlZCBvbiBjb2xvciBzY2hlbWUuXG4gICAqIEBleGFtcGxlICctLW1haW4tbG9nbydcbiAgICovXG4gIGxvZ29Dc3NWYXJpYWJsZT86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGxvZ28gVVJMIChhbHRlcm5hdGl2ZSB0byBsb2dvQ3NzVmFyaWFibGUpICovXG4gIGxvZ28/OiBzdHJpbmc7XG4gIC8qKiBMb2dvIFVSTCBmb3IgZGFyayBtb2RlLiBJZiBub3Qgc2V0LCB1c2VzIGxvZ28gd2l0aCBmaWx0ZXIgaW52ZXJ0LiAqL1xuICBsb2dvRGFyaz86IHN0cmluZztcbiAgLyoqIExvZ28gYWx0IHRleHQuIERlZmF1bHQ6ICdMb2dvJyAqL1xuICBsb2dvQWx0Pzogc3RyaW5nO1xuICAvKiogTG9nbyB3aWR0aCB3aGVuIHVzaW5nIGxvZ29Dc3NWYXJpYWJsZSBAZGVmYXVsdCAnMTByZW0nICovXG4gIGxvZ29XaWR0aD86IHN0cmluZztcbiAgLyoqIExvZ28gaGVpZ2h0IHdoZW4gdXNpbmcgbG9nb0Nzc1ZhcmlhYmxlIEBkZWZhdWx0ICczcmVtJyAqL1xuICBsb2dvSGVpZ2h0Pzogc3RyaW5nO1xuICAvKiogUm91dGUgdG8gbmF2aWdhdGUgd2hlbiBsb2dvIGlzIGNsaWNrZWQgKi9cbiAgbG9nb1JvdXRlPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgZGl2aWRlciBjb25maWd1cmF0aW9uICovXG4gIGRpdmlkZXI/OiBEaXZpZGVyTWV0YWRhdGE7XG4gIC8qKiBTb2NpYWwgbWVkaWEgbGlua3MgKi9cbiAgc29jaWFsTGlua3M/OiBTb2NpYWxMaW5rTWV0YWRhdGFbXTtcbiAgLyoqIExhbmd1YWdlIHNlbGVjdG9yIGNvbmZpZ3VyYXRpb24uIFNldCB0byBmYWxzZSB0byBoaWRlLiAqL1xuICBsYW5ndWFnZVNlbGVjdG9yPzogTGFuZ3VhZ2VTZWxlY3Rvck1ldGFkYXRhIHwgZmFsc2U7XG4gIC8qKiBJY29uIGNvbG9yIGZvciBzb2NpYWwgbGlua3MuIERlZmF1bHQ6ICdkYXJrJyAqL1xuICBzb2NpYWxJY29uQ29sb3I/OiBzdHJpbmc7XG59XG4iXX0=
@@ -17196,12 +17196,23 @@ class FooterLinksComponent {
17196
17196
  </ion-row>
17197
17197
 
17198
17198
  <ion-row style="margin-top: 1rem;">
17199
- <ion-col size="12" *ngIf="props.logo || props.socialLinks?.length">
17199
+ <ion-col size="12" *ngIf="props.logoCssVariable || props.logo || props.socialLinks?.length">
17200
17200
  <!-- Mobile layout: centered -->
17201
17201
  <div class="mobile-layout">
17202
- <!-- Light mode logo -->
17202
+ <!-- CSS Variable logo (recommended for dark mode) -->
17203
+ <span
17204
+ *ngIf="props.logoCssVariable"
17205
+ class="logo-clickable footer-logo footer-logo--css-var"
17206
+ role="img"
17207
+ [attr.aria-label]="props.logoAlt || 'Logo'"
17208
+ [style.--logo-var]="'var(' + props.logoCssVariable + ')'"
17209
+ [style.width]="props.logoWidth || '10rem'"
17210
+ [style.height]="props.logoHeight || '3rem'"
17211
+ (click)="onLogoClick()"
17212
+ ></span>
17213
+ <!-- Light mode logo (fallback) -->
17203
17214
  <val-image
17204
- *ngIf="props.logo"
17215
+ *ngIf="!props.logoCssVariable && props.logo"
17205
17216
  class="logo-clickable footer-logo footer-logo--light"
17206
17217
  [props]="{
17207
17218
  width: 14,
@@ -17216,9 +17227,9 @@ class FooterLinksComponent {
17216
17227
  }"
17217
17228
  (click)="onLogoClick()"
17218
17229
  />
17219
- <!-- Dark mode logo -->
17230
+ <!-- Dark mode logo (fallback) -->
17220
17231
  <val-image
17221
- *ngIf="props.logo && props.logoDark"
17232
+ *ngIf="!props.logoCssVariable && props.logo && props.logoDark"
17222
17233
  class="logo-clickable footer-logo footer-logo--dark"
17223
17234
  [props]="{
17224
17235
  width: 14,
@@ -17251,9 +17262,20 @@ class FooterLinksComponent {
17251
17262
 
17252
17263
  <!-- Desktop layout: space-between -->
17253
17264
  <div class="desktop-layout">
17254
- <!-- Light mode logo -->
17265
+ <!-- CSS Variable logo (recommended for dark mode) -->
17266
+ <span
17267
+ *ngIf="props.logoCssVariable"
17268
+ class="logo-clickable footer-logo footer-logo--css-var"
17269
+ role="img"
17270
+ [attr.aria-label]="props.logoAlt || 'Logo'"
17271
+ [style.--logo-var]="'var(' + props.logoCssVariable + ')'"
17272
+ [style.width]="props.logoWidth || '10rem'"
17273
+ [style.height]="props.logoHeight || '3rem'"
17274
+ (click)="onLogoClick()"
17275
+ ></span>
17276
+ <!-- Light mode logo (fallback) -->
17255
17277
  <val-image
17256
- *ngIf="props.logo"
17278
+ *ngIf="!props.logoCssVariable && props.logo"
17257
17279
  class="logo-clickable footer-logo footer-logo--light"
17258
17280
  [props]="{
17259
17281
  width: 16,
@@ -17268,9 +17290,9 @@ class FooterLinksComponent {
17268
17290
  }"
17269
17291
  (click)="onLogoClick()"
17270
17292
  />
17271
- <!-- Dark mode logo -->
17293
+ <!-- Dark mode logo (fallback) -->
17272
17294
  <val-image
17273
- *ngIf="props.logo && props.logoDark"
17295
+ *ngIf="!props.logoCssVariable && props.logo && props.logoDark"
17274
17296
  class="logo-clickable footer-logo footer-logo--dark"
17275
17297
  [props]="{
17276
17298
  width: 16,
@@ -17303,7 +17325,7 @@ class FooterLinksComponent {
17303
17325
  </ion-col>
17304
17326
  </ion-row>
17305
17327
  </div>
17306
- `, isInline: true, styles: [".footer-links .mobile-layout{display:block;text-align:center;padding:8px 0}.footer-links .desktop-layout{display:none;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.footer-links .social-links-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}.footer-links .social-button{--color: #666;--color-hover: #333;transition:all .2s ease;min-height:40px;min-width:40px;margin:0}.footer-links .social-button:hover{--color: #333;transform:translateY(-1px)}.footer-links .social-button ion-icon{font-size:20px}.footer-links .logo-clickable{cursor:pointer}.footer-links .footer-logo{margin-top:1rem}.footer-links .footer-logo--light{display:block}.footer-links .footer-logo--dark{display:none}@media (prefers-color-scheme: dark){.footer-links .footer-logo--light{display:none}.footer-links .footer-logo--dark{display:block}}.footer-links :host-context(.dark) .footer-logo--light{display:none}.footer-links :host-context(.dark) .footer-logo--dark{display:block}@media (min-width: 768px){.footer-links .mobile-layout{display:none!important}.footer-links .desktop-layout{display:flex!important}.footer-links .social-links-container{margin-top:0;justify-content:flex-end}}@media (max-width: 767px){.footer-links .mobile-layout{display:block!important}.footer-links .desktop-layout{display:none!important}.footer-links .social-links-container{justify-content:center;margin-bottom:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { 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: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: LinksCakeComponent, selector: "val-links-cake", inputs: ["props"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }] }); }
17328
+ `, isInline: true, styles: [".footer-links .mobile-layout{display:block;text-align:center;padding:8px 0}.footer-links .desktop-layout{display:none;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.footer-links .social-links-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}.footer-links .social-button{--color: #666;--color-hover: #333;transition:all .2s ease;min-height:40px;min-width:40px;margin:0}.footer-links .social-button:hover{--color: #333;transform:translateY(-1px)}.footer-links .social-button ion-icon{font-size:20px}.footer-links .logo-clickable{cursor:pointer}.footer-links .footer-logo{margin-top:1rem}.footer-links .footer-logo--css-var{display:block;background-image:var(--logo-var);background-size:contain;background-repeat:no-repeat;background-position:center;transition:opacity .2s ease}.footer-links .footer-logo--css-var:hover{opacity:.8}.footer-links .mobile-layout .footer-logo--css-var{margin-left:auto;margin-right:auto}.footer-links .footer-logo--light{display:block}.footer-links .footer-logo--dark{display:none}@media (prefers-color-scheme: dark){.footer-links .footer-logo--light{display:none}.footer-links .footer-logo--dark{display:block}}.footer-links :host-context(.dark) .footer-logo--light{display:none}.footer-links :host-context(.dark) .footer-logo--dark{display:block}@media (min-width: 768px){.footer-links .mobile-layout{display:none!important}.footer-links .desktop-layout{display:flex!important}.footer-links .social-links-container{margin-top:0;justify-content:flex-end}}@media (max-width: 767px){.footer-links .mobile-layout{display:block!important}.footer-links .desktop-layout{display:none!important}.footer-links .social-links-container{justify-content:center;margin-bottom:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { 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: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: LinksCakeComponent, selector: "val-links-cake", inputs: ["props"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }] }); }
17307
17329
  }
17308
17330
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FooterLinksComponent, decorators: [{
17309
17331
  type: Component,
@@ -17338,12 +17360,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
17338
17360
  </ion-row>
17339
17361
 
17340
17362
  <ion-row style="margin-top: 1rem;">
17341
- <ion-col size="12" *ngIf="props.logo || props.socialLinks?.length">
17363
+ <ion-col size="12" *ngIf="props.logoCssVariable || props.logo || props.socialLinks?.length">
17342
17364
  <!-- Mobile layout: centered -->
17343
17365
  <div class="mobile-layout">
17344
- <!-- Light mode logo -->
17366
+ <!-- CSS Variable logo (recommended for dark mode) -->
17367
+ <span
17368
+ *ngIf="props.logoCssVariable"
17369
+ class="logo-clickable footer-logo footer-logo--css-var"
17370
+ role="img"
17371
+ [attr.aria-label]="props.logoAlt || 'Logo'"
17372
+ [style.--logo-var]="'var(' + props.logoCssVariable + ')'"
17373
+ [style.width]="props.logoWidth || '10rem'"
17374
+ [style.height]="props.logoHeight || '3rem'"
17375
+ (click)="onLogoClick()"
17376
+ ></span>
17377
+ <!-- Light mode logo (fallback) -->
17345
17378
  <val-image
17346
- *ngIf="props.logo"
17379
+ *ngIf="!props.logoCssVariable && props.logo"
17347
17380
  class="logo-clickable footer-logo footer-logo--light"
17348
17381
  [props]="{
17349
17382
  width: 14,
@@ -17358,9 +17391,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
17358
17391
  }"
17359
17392
  (click)="onLogoClick()"
17360
17393
  />
17361
- <!-- Dark mode logo -->
17394
+ <!-- Dark mode logo (fallback) -->
17362
17395
  <val-image
17363
- *ngIf="props.logo && props.logoDark"
17396
+ *ngIf="!props.logoCssVariable && props.logo && props.logoDark"
17364
17397
  class="logo-clickable footer-logo footer-logo--dark"
17365
17398
  [props]="{
17366
17399
  width: 14,
@@ -17393,9 +17426,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
17393
17426
 
17394
17427
  <!-- Desktop layout: space-between -->
17395
17428
  <div class="desktop-layout">
17396
- <!-- Light mode logo -->
17429
+ <!-- CSS Variable logo (recommended for dark mode) -->
17430
+ <span
17431
+ *ngIf="props.logoCssVariable"
17432
+ class="logo-clickable footer-logo footer-logo--css-var"
17433
+ role="img"
17434
+ [attr.aria-label]="props.logoAlt || 'Logo'"
17435
+ [style.--logo-var]="'var(' + props.logoCssVariable + ')'"
17436
+ [style.width]="props.logoWidth || '10rem'"
17437
+ [style.height]="props.logoHeight || '3rem'"
17438
+ (click)="onLogoClick()"
17439
+ ></span>
17440
+ <!-- Light mode logo (fallback) -->
17397
17441
  <val-image
17398
- *ngIf="props.logo"
17442
+ *ngIf="!props.logoCssVariable && props.logo"
17399
17443
  class="logo-clickable footer-logo footer-logo--light"
17400
17444
  [props]="{
17401
17445
  width: 16,
@@ -17410,9 +17454,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
17410
17454
  }"
17411
17455
  (click)="onLogoClick()"
17412
17456
  />
17413
- <!-- Dark mode logo -->
17457
+ <!-- Dark mode logo (fallback) -->
17414
17458
  <val-image
17415
- *ngIf="props.logo && props.logoDark"
17459
+ *ngIf="!props.logoCssVariable && props.logo && props.logoDark"
17416
17460
  class="logo-clickable footer-logo footer-logo--dark"
17417
17461
  [props]="{
17418
17462
  width: 16,
@@ -17445,7 +17489,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
17445
17489
  </ion-col>
17446
17490
  </ion-row>
17447
17491
  </div>
17448
- `, styles: [".footer-links .mobile-layout{display:block;text-align:center;padding:8px 0}.footer-links .desktop-layout{display:none;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.footer-links .social-links-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}.footer-links .social-button{--color: #666;--color-hover: #333;transition:all .2s ease;min-height:40px;min-width:40px;margin:0}.footer-links .social-button:hover{--color: #333;transform:translateY(-1px)}.footer-links .social-button ion-icon{font-size:20px}.footer-links .logo-clickable{cursor:pointer}.footer-links .footer-logo{margin-top:1rem}.footer-links .footer-logo--light{display:block}.footer-links .footer-logo--dark{display:none}@media (prefers-color-scheme: dark){.footer-links .footer-logo--light{display:none}.footer-links .footer-logo--dark{display:block}}.footer-links :host-context(.dark) .footer-logo--light{display:none}.footer-links :host-context(.dark) .footer-logo--dark{display:block}@media (min-width: 768px){.footer-links .mobile-layout{display:none!important}.footer-links .desktop-layout{display:flex!important}.footer-links .social-links-container{margin-top:0;justify-content:flex-end}}@media (max-width: 767px){.footer-links .mobile-layout{display:block!important}.footer-links .desktop-layout{display:none!important}.footer-links .social-links-container{justify-content:center;margin-bottom:8px}}\n"] }]
17492
+ `, styles: [".footer-links .mobile-layout{display:block;text-align:center;padding:8px 0}.footer-links .desktop-layout{display:none;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 0}.footer-links .social-links-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}.footer-links .social-button{--color: #666;--color-hover: #333;transition:all .2s ease;min-height:40px;min-width:40px;margin:0}.footer-links .social-button:hover{--color: #333;transform:translateY(-1px)}.footer-links .social-button ion-icon{font-size:20px}.footer-links .logo-clickable{cursor:pointer}.footer-links .footer-logo{margin-top:1rem}.footer-links .footer-logo--css-var{display:block;background-image:var(--logo-var);background-size:contain;background-repeat:no-repeat;background-position:center;transition:opacity .2s ease}.footer-links .footer-logo--css-var:hover{opacity:.8}.footer-links .mobile-layout .footer-logo--css-var{margin-left:auto;margin-right:auto}.footer-links .footer-logo--light{display:block}.footer-links .footer-logo--dark{display:none}@media (prefers-color-scheme: dark){.footer-links .footer-logo--light{display:none}.footer-links .footer-logo--dark{display:block}}.footer-links :host-context(.dark) .footer-logo--light{display:none}.footer-links :host-context(.dark) .footer-logo--dark{display:block}@media (min-width: 768px){.footer-links .mobile-layout{display:none!important}.footer-links .desktop-layout{display:flex!important}.footer-links .social-links-container{margin-top:0;justify-content:flex-end}}@media (max-width: 767px){.footer-links .mobile-layout{display:block!important}.footer-links .desktop-layout{display:none!important}.footer-links .social-links-container{justify-content:center;margin-bottom:8px}}\n"] }]
17449
17493
  }], propDecorators: { props: [{
17450
17494
  type: Input
17451
17495
  }], logoClick: [{