valtech-components 2.0.977 → 2.0.979

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.
Files changed (32) hide show
  1. package/esm2022/lib/components/organisms/form/form.component.mjs +6 -1
  2. package/esm2022/lib/components/organisms/preferences-view/preferences-view.component.mjs +68 -1
  3. package/esm2022/lib/components/organisms/preferences-view/preferences-view.i18n.mjs +11 -1
  4. package/esm2022/lib/components/organisms/preferences-view/types.mjs +1 -1
  5. package/esm2022/lib/components/types.mjs +1 -1
  6. package/esm2022/lib/config/company-footer.config.mjs +69 -11
  7. package/esm2022/lib/services/font-size/font-size.service.mjs +53 -0
  8. package/esm2022/lib/services/preferences/preferences.service.mjs +31 -5
  9. package/esm2022/lib/services/preferences/preferences.types.mjs +1 -1
  10. package/esm2022/lib/services/requests/types.mjs +1 -1
  11. package/esm2022/lib/shared/constants/storage.mjs +2 -1
  12. package/esm2022/lib/version.mjs +2 -2
  13. package/esm2022/public-api.mjs +2 -1
  14. package/fesm2022/valtech-components.mjs +228 -14
  15. package/fesm2022/valtech-components.mjs.map +1 -1
  16. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
  17. package/lib/components/atoms/text/text.component.d.ts +1 -1
  18. package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
  19. package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
  20. package/lib/components/organisms/article/article.component.d.ts +4 -7
  21. package/lib/components/organisms/preferences-view/preferences-view.component.d.ts +5 -1
  22. package/lib/components/organisms/preferences-view/types.d.ts +5 -1
  23. package/lib/components/types.d.ts +5 -2
  24. package/lib/config/company-footer.config.d.ts +42 -0
  25. package/lib/services/font-size/font-size.service.d.ts +16 -0
  26. package/lib/services/preferences/preferences.service.d.ts +8 -3
  27. package/lib/services/preferences/preferences.types.d.ts +4 -0
  28. package/lib/services/requests/types.d.ts +1 -1
  29. package/lib/shared/constants/storage.d.ts +1 -0
  30. package/lib/version.d.ts +1 -1
  31. package/package.json +1 -1
  32. package/public-api.d.ts +1 -0
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
54
54
  * Current version of valtech-components.
55
55
  * This is automatically updated during the publish process.
56
56
  */
57
- const VERSION = '2.0.977';
57
+ const VERSION = '2.0.979';
58
58
 
59
59
  // Control de estado de refresco (singleton a nivel de módulo)
60
60
  let isRefreshing = false;
@@ -16689,6 +16689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
16689
16689
 
16690
16690
  const LANG = 'LANG';
16691
16691
  const THEME = 'THEME';
16692
+ const FONT_SIZE = 'FONT_SIZE';
16692
16693
 
16693
16694
  /**
16694
16695
  * Utility service for interacting with browser localStorage in a type-safe way.
@@ -30723,6 +30724,11 @@ class FormComponent {
30723
30724
  * Actualiza el cache de actions basado en el estado actual del form.
30724
30725
  */
30725
30726
  updateActionsCache() {
30727
+ // En modo controlled (o sin submit) no hay botón propio que cachear.
30728
+ if (!this.props.actions) {
30729
+ this.actionsCache = [];
30730
+ return;
30731
+ }
30726
30732
  let actionState = this.props.actions.state;
30727
30733
  if (this.props.state === ComponentStates.WORKING) {
30728
30734
  // Submit real del form en curso → botón en loading (spinner).
@@ -42300,6 +42306,54 @@ function provideValtechProfileRoutes(opts) {
42300
42306
  ];
42301
42307
  }
42302
42308
 
42309
+ var FontSizeOption;
42310
+ (function (FontSizeOption) {
42311
+ FontSizeOption["SMALL"] = "small";
42312
+ FontSizeOption["MEDIUM"] = "medium";
42313
+ FontSizeOption["LARGE"] = "large";
42314
+ })(FontSizeOption || (FontSizeOption = {}));
42315
+ const SIZE_PX = {
42316
+ [FontSizeOption.SMALL]: '14px',
42317
+ [FontSizeOption.MEDIUM]: '16px',
42318
+ [FontSizeOption.LARGE]: '19px',
42319
+ };
42320
+ class FontSizeService {
42321
+ constructor(platformId) {
42322
+ this._size = signal(FontSizeOption.MEDIUM);
42323
+ this.size = this._size.asReadonly();
42324
+ this.isBrowser = isPlatformBrowser(platformId);
42325
+ if (!this.isBrowser)
42326
+ return;
42327
+ const stored = LocalStorageService.get(FONT_SIZE);
42328
+ const initial = stored && SIZE_PX[stored] ? stored : FontSizeOption.MEDIUM;
42329
+ this._size.set(initial);
42330
+ this.applySize(initial);
42331
+ }
42332
+ setSize(size) {
42333
+ if (!SIZE_PX[size])
42334
+ return;
42335
+ this._size.set(size);
42336
+ if (this.isBrowser) {
42337
+ LocalStorageService.set(FONT_SIZE, size);
42338
+ }
42339
+ this.applySize(size);
42340
+ }
42341
+ applySize(size) {
42342
+ if (!this.isBrowser)
42343
+ return;
42344
+ document.documentElement.style.fontSize = SIZE_PX[size];
42345
+ }
42346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FontSizeService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
42347
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FontSizeService, providedIn: 'root' }); }
42348
+ }
42349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FontSizeService, decorators: [{
42350
+ type: Injectable,
42351
+ args: [{ providedIn: 'root' }]
42352
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
42353
+ type: Inject,
42354
+ args: [PLATFORM_ID]
42355
+ }] }] });
42356
+
42303
42357
  /**
42304
42358
  * PreferencesService — preferencias del user en el doc canónico Firestore
42305
42359
  * `/apps/{appId}/users/{uid}/preferences/main`.
@@ -42315,15 +42369,17 @@ function provideValtechProfileRoutes(opts) {
42315
42369
  * Auto-bind al user actual via `AuthService.user()`. Sin user (logout) → unbind.
42316
42370
  */
42317
42371
  class PreferencesService {
42318
- constructor(config, firestore, auth, http, themeService, i18n) {
42372
+ constructor(config, firestore, auth, http, themeService, fontSizeService, i18n) {
42319
42373
  this.config = config;
42320
42374
  this.firestore = firestore;
42321
42375
  this.auth = auth;
42322
42376
  this.http = http;
42323
42377
  this.themeService = themeService;
42378
+ this.fontSizeService = fontSizeService;
42324
42379
  this.i18n = i18n;
42325
42380
  this._theme = signal('auto');
42326
42381
  this._language = signal('es');
42382
+ this._fontSize = signal('medium');
42327
42383
  // Default `false` (opt-in). El user debe activar explícitamente las notificaciones;
42328
42384
  // no asumimos consentimiento implícito. Backend debe coincidir.
42329
42385
  this._notificationsMaster = signal(false);
@@ -42331,6 +42387,7 @@ class PreferencesService {
42331
42387
  this._synced = signal(false);
42332
42388
  this.theme = this._theme.asReadonly();
42333
42389
  this.language = this._language.asReadonly();
42390
+ this.fontSize = this._fontSize.asReadonly();
42334
42391
  this.notificationsMaster = this._notificationsMaster.asReadonly();
42335
42392
  this.synced = this._synced.asReadonly();
42336
42393
  /**
@@ -42379,6 +42436,15 @@ class PreferencesService {
42379
42436
  this.i18n.setLanguage(l);
42380
42437
  }
42381
42438
  });
42439
+ // Side-effect: aplicar fontSize local cuando llega snapshot real.
42440
+ effect(() => {
42441
+ if (!this._synced())
42442
+ return;
42443
+ const fs = this._fontSize();
42444
+ if (this.fontSizeService) {
42445
+ this.fontSizeService.setSize(fs);
42446
+ }
42447
+ });
42382
42448
  }
42383
42449
  /** Actualiza preferencias via backend. Optimistic UI: aplica local, revierte si falla. */
42384
42450
  async update(partial) {
@@ -42386,12 +42452,15 @@ class PreferencesService {
42386
42452
  const prev = {
42387
42453
  theme: this._theme(),
42388
42454
  language: this._language(),
42455
+ fontSize: this._fontSize(),
42389
42456
  master: this._notificationsMaster(),
42390
42457
  };
42391
42458
  if (partial.theme)
42392
42459
  this._theme.set(partial.theme);
42393
42460
  if (partial.language)
42394
42461
  this._language.set(partial.language);
42462
+ if (partial.fontSize)
42463
+ this._fontSize.set(partial.fontSize);
42395
42464
  if (partial.notifications && typeof partial.notifications.master === 'boolean') {
42396
42465
  this._notificationsMaster.set(partial.notifications.master);
42397
42466
  }
@@ -42411,6 +42480,8 @@ class PreferencesService {
42411
42480
  this._theme.set(res.theme);
42412
42481
  if (res.language)
42413
42482
  this._language.set(res.language);
42483
+ if (res.fontSize)
42484
+ this._fontSize.set(res.fontSize);
42414
42485
  if (typeof res.notifications?.master === 'boolean') {
42415
42486
  this._notificationsMaster.set(res.notifications.master);
42416
42487
  }
@@ -42420,6 +42491,7 @@ class PreferencesService {
42420
42491
  // Revert optimistic.
42421
42492
  this._theme.set(prev.theme);
42422
42493
  this._language.set(prev.language);
42494
+ this._fontSize.set(prev.fontSize);
42423
42495
  this._notificationsMaster.set(prev.master);
42424
42496
  throw err;
42425
42497
  }
@@ -42433,6 +42505,9 @@ class PreferencesService {
42433
42505
  setLanguage(language) {
42434
42506
  return this.update({ language });
42435
42507
  }
42508
+ setFontSize(fontSize) {
42509
+ return this.update({ fontSize });
42510
+ }
42436
42511
  setNotificationsMaster(enabled) {
42437
42512
  return this.update({ notifications: { master: enabled } });
42438
42513
  }
@@ -42462,6 +42537,8 @@ class PreferencesService {
42462
42537
  this._theme.set(doc.theme);
42463
42538
  if (doc.language)
42464
42539
  this._language.set(doc.language);
42540
+ if (doc.fontSize)
42541
+ this._fontSize.set(doc.fontSize);
42465
42542
  if (doc.notifications && typeof doc.notifications.master === 'boolean') {
42466
42543
  this._notificationsMaster.set(doc.notifications.master);
42467
42544
  }
@@ -42474,7 +42551,7 @@ class PreferencesService {
42474
42551
  this.currentUserId = undefined;
42475
42552
  this._synced.set(false);
42476
42553
  }
42477
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: FirestoreService }, { token: AuthService }, { token: i1$3.HttpClient }, { token: ThemeService, optional: true }, { token: I18nService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
42554
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: FirestoreService }, { token: AuthService }, { token: i1$3.HttpClient }, { token: ThemeService, optional: true }, { token: FontSizeService, optional: true }, { token: I18nService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
42478
42555
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesService, providedIn: 'root' }); }
42479
42556
  }
42480
42557
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesService, decorators: [{
@@ -42485,6 +42562,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
42485
42562
  args: [VALTECH_AUTH_CONFIG]
42486
42563
  }] }, { type: FirestoreService }, { type: AuthService }, { type: i1$3.HttpClient }, { type: ThemeService, decorators: [{
42487
42564
  type: Optional
42565
+ }] }, { type: FontSizeService, decorators: [{
42566
+ type: Optional
42488
42567
  }] }, { type: I18nService, decorators: [{
42489
42568
  type: Optional
42490
42569
  }] }] });
@@ -42510,6 +42589,11 @@ const PREFERENCES_VIEW_I18N = {
42510
42589
  themeAuto: 'Auto',
42511
42590
  languageTitle: 'Idioma',
42512
42591
  languageHint: 'Idioma de la interfaz y de los correos que recibes.',
42592
+ fontSizeTitle: 'Tamaño de texto',
42593
+ fontSizeHint: 'Ajusta el tamaño de la letra en toda la app.',
42594
+ fontSizeSmall: 'Pequeño',
42595
+ fontSizeMedium: 'Mediano',
42596
+ fontSizeLarge: 'Grande',
42513
42597
  saveError: 'No se pudo guardar la preferencia.',
42514
42598
  },
42515
42599
  en: {
@@ -42522,6 +42606,11 @@ const PREFERENCES_VIEW_I18N = {
42522
42606
  themeAuto: 'Auto',
42523
42607
  languageTitle: 'Language',
42524
42608
  languageHint: 'Language of the interface and of the emails you receive.',
42609
+ fontSizeTitle: 'Text size',
42610
+ fontSizeHint: 'Adjust the font size across the entire app.',
42611
+ fontSizeSmall: 'Small',
42612
+ fontSizeMedium: 'Medium',
42613
+ fontSizeLarge: 'Large',
42525
42614
  saveError: 'Could not save preference.',
42526
42615
  },
42527
42616
  };
@@ -42561,10 +42650,12 @@ class PreferencesViewComponent {
42561
42650
  return {
42562
42651
  showTheme: merged.showTheme ?? true,
42563
42652
  showLanguage: merged.showLanguage ?? true,
42653
+ showFontSize: merged.showFontSize ?? true,
42564
42654
  supportedLanguages: merged.supportedLanguages ?? DEFAULT_LANGUAGES,
42565
42655
  i18nNamespace: merged.i18nNamespace ?? DEFAULT_NAMESPACE,
42566
42656
  onThemeChanged: merged.onThemeChanged,
42567
42657
  onLanguageChanged: merged.onLanguageChanged,
42658
+ onFontSizeChanged: merged.onFontSizeChanged,
42568
42659
  };
42569
42660
  });
42570
42661
  this.saving = signal(false);
@@ -42574,6 +42665,8 @@ class PreferencesViewComponent {
42574
42665
  this.themeHint = computed(() => this.t('themeHint'));
42575
42666
  this.langTitle = computed(() => this.t('languageTitle'));
42576
42667
  this.langHint = computed(() => this.t('languageHint'));
42668
+ this.fontSizeTitle = computed(() => this.t('fontSizeTitle'));
42669
+ this.fontSizeHint = computed(() => this.t('fontSizeHint'));
42577
42670
  this.themeProps = computed(() => ({
42578
42671
  value: this.prefs.theme(),
42579
42672
  disabled: this.saving(),
@@ -42591,6 +42684,15 @@ class PreferencesViewComponent {
42591
42684
  expand: 'block',
42592
42685
  fill: 'outline',
42593
42686
  }));
42687
+ this.fontSizeProps = computed(() => ({
42688
+ value: this.prefs.fontSize(),
42689
+ disabled: this.saving(),
42690
+ options: [
42691
+ { value: 'small', label: this.t('fontSizeSmall') },
42692
+ { value: 'medium', label: this.t('fontSizeMedium') },
42693
+ { value: 'large', label: this.t('fontSizeLarge') },
42694
+ ],
42695
+ }));
42594
42696
  // Auto-registro i18n — respeta override del consumer. El namespace puede
42595
42697
  // venir de @Input.config o del route data; lo resolvemos acá.
42596
42698
  const ns = this.ns;
@@ -42605,6 +42707,12 @@ class PreferencesViewComponent {
42605
42707
  const theme = value;
42606
42708
  await this.dispatch(() => this.prefs.setTheme(theme), () => this.resolvedConfig().onThemeChanged?.(theme));
42607
42709
  }
42710
+ async onFontSizeChange(value) {
42711
+ const fontSize = value;
42712
+ if (this.saving() || value === this.prefs.fontSize())
42713
+ return;
42714
+ await this.dispatch(() => this.prefs.setFontSize(fontSize), () => this.resolvedConfig().onFontSizeChanged?.(fontSize));
42715
+ }
42608
42716
  async onLanguageChange(value) {
42609
42717
  const lang = value;
42610
42718
  if (!this.resolvedConfig().supportedLanguages.includes(lang))
@@ -42696,6 +42804,30 @@ class PreferencesViewComponent {
42696
42804
  </div>
42697
42805
  </section>
42698
42806
  }
42807
+
42808
+ @if (resolvedConfig().showFontSize) {
42809
+ <section class="settings-section">
42810
+ <val-title
42811
+ [props]="{
42812
+ size: 'medium',
42813
+ color: 'dark',
42814
+ bold: true,
42815
+ content: fontSizeTitle(),
42816
+ }"
42817
+ />
42818
+ <div class="section-body">
42819
+ <val-text
42820
+ [props]="{
42821
+ size: 'medium',
42822
+ color: 'dark',
42823
+ bold: false,
42824
+ content: fontSizeHint(),
42825
+ }"
42826
+ />
42827
+ <val-segment-control [props]="fontSizeProps()" (segmentChange)="onFontSizeChange($event)" />
42828
+ </div>
42829
+ </section>
42830
+ }
42699
42831
  </div>
42700
42832
  `, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SegmentControlComponent, selector: "val-segment-control", inputs: ["preset", "props"], outputs: ["segmentChange"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
42701
42833
  }
@@ -42769,6 +42901,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
42769
42901
  </div>
42770
42902
  </section>
42771
42903
  }
42904
+
42905
+ @if (resolvedConfig().showFontSize) {
42906
+ <section class="settings-section">
42907
+ <val-title
42908
+ [props]="{
42909
+ size: 'medium',
42910
+ color: 'dark',
42911
+ bold: true,
42912
+ content: fontSizeTitle(),
42913
+ }"
42914
+ />
42915
+ <div class="section-body">
42916
+ <val-text
42917
+ [props]="{
42918
+ size: 'medium',
42919
+ color: 'dark',
42920
+ bold: false,
42921
+ content: fontSizeHint(),
42922
+ }"
42923
+ />
42924
+ <val-segment-control [props]="fontSizeProps()" (segmentChange)="onFontSizeChange($event)" />
42925
+ </div>
42926
+ </section>
42927
+ }
42772
42928
  </div>
42773
42929
  `, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"] }]
42774
42930
  }], ctorParameters: () => [], propDecorators: { config: [{
@@ -52976,16 +53132,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
52976
53132
  type: Output
52977
53133
  }] } });
52978
53134
 
52979
- /**
52980
- * Shared Company Footer Configuration
52981
- *
52982
- * This configuration is shared across all Valtech products:
52983
- * - ui-docs
52984
- * - showcase
52985
- * - myvaltech (company website)
52986
- *
52987
- * When links or social profiles change, update here and publish a new version.
52988
- */
52989
53135
  /**
52990
53136
  * Social media links for Valtech
52991
53137
  */
@@ -53107,6 +53253,74 @@ function buildFooterLinks(links, t, resolver) {
53107
53253
  };
53108
53254
  });
53109
53255
  }
53256
+ /**
53257
+ * Builds a `CompanyLinkResolver` that rewrites cross-app `legal`/`site` links to
53258
+ * the main brand site via `LegalLinkService`, leaving `support` (and any other)
53259
+ * links untouched.
53260
+ *
53261
+ * Satellite apps (showcase, sigify, …) wire `provideValtechSite(env)` so that
53262
+ * `legal`/`site` links resolve to the canonical main-site URLs; `support` links
53263
+ * stay per-app. This is the generic half of an app's footer resolver — apps that
53264
+ * need extra per-link overrides (e.g. redirecting `/feedback` to an authed route)
53265
+ * compose this with their own logic.
53266
+ *
53267
+ * @param legal Injected `LegalLinkService` (no-op when running as the main site).
53268
+ * @param locale Getter for the active locale (e.g. `() => i18n.lang()`) — appended
53269
+ * as `?lang=` when the resolved URL is cross-origin.
53270
+ *
53271
+ * @example
53272
+ * const base = buildLegalLinkResolver(legal, () => i18n.lang());
53273
+ * const resolver: CompanyLinkResolver = (link) =>
53274
+ * link.url === '/feedback' ? { url: '/app/feedback', external: false } : base(link);
53275
+ */
53276
+ function buildLegalLinkResolver(legal, locale) {
53277
+ return (link) => {
53278
+ const shouldRewrite = link.kind === 'legal' || link.kind === 'site';
53279
+ return {
53280
+ url: shouldRewrite ? legal.resolve(link.url, { locale: locale() }) : link.url,
53281
+ external: link.external || (shouldRewrite && legal.isExternal(link.url)),
53282
+ };
53283
+ };
53284
+ }
53285
+ /**
53286
+ * Builds the shared `CompanyFooterMetadata` used across Valtech apps (login,
53287
+ * legal, public landing, …) so the footer stays consistent. Assembles the
53288
+ * standard left/right link sections, logo, social links and language selector
53289
+ * from the shared config.
53290
+ *
53291
+ * Call from a `computed()` that reads the active language for reactivity.
53292
+ *
53293
+ * @param t Translation helper for the `Layout` namespace.
53294
+ * @param linkResolver Optional resolver applied to every footer link — typically
53295
+ * `buildLegalLinkResolver(...)` (or an app wrapper) to point `legal`/`site`
53296
+ * links at the main site when running as a satellite app.
53297
+ */
53298
+ function buildCompanyFooterProps(t, linkResolver) {
53299
+ return {
53300
+ links: {
53301
+ leftLinks: {
53302
+ title: t('footerLeftTitle'),
53303
+ size: 'small',
53304
+ links: buildFooterLinks(VALTECH_COMPANY_LINKS.legal, t, linkResolver),
53305
+ },
53306
+ rightLinks: {
53307
+ title: t('footerRightTitle'),
53308
+ size: 'small',
53309
+ links: buildFooterLinks(VALTECH_COMPANY_LINKS.support, t, linkResolver),
53310
+ },
53311
+ logoCssVariable: VALTECH_FOOTER_LOGO.logoCssVariable,
53312
+ logoAlt: VALTECH_FOOTER_LOGO.logoAlt,
53313
+ logoRoute: VALTECH_FOOTER_LOGO.logoRoute,
53314
+ socialLinks: VALTECH_SOCIAL_LINKS,
53315
+ languageSelector: VALTECH_LANGUAGE_SELECTOR,
53316
+ },
53317
+ rights: {
53318
+ fullText: t('copyrightText'),
53319
+ align: 'center',
53320
+ },
53321
+ withPadding: true,
53322
+ };
53323
+ }
53110
53324
 
53111
53325
  /**
53112
53326
  * Shared configuration exports
@@ -54069,5 +54283,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
54069
54283
  * Generated bundle index. Do not edit.
54070
54284
  */
54071
54285
 
54072
- export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CONTENT_CARD_DEFAULTS, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentCardComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INFO_CARD_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoCardComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildFooterLinks, buildPath, buildSettingsCards, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor$1 as resolveColor, resolveInputDefaultValue, resolveWebBaseUrl, roleGuard, storagePaths, superAdminGuard, toArticle };
54286
+ export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CONTENT_CARD_DEFAULTS, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentCardComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INFO_CARD_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoCardComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor$1 as resolveColor, resolveInputDefaultValue, resolveWebBaseUrl, roleGuard, storagePaths, superAdminGuard, toArticle };
54073
54287
  //# sourceMappingURL=valtech-components.mjs.map