valtech-components 4.0.156 → 4.0.157

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, InjectionToken, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, Injectable, DestroyRef, Inject, signal, computed, PLATFORM_ID, isDevMode, Optional, runInInjectionContext, effect, Pipe, TemplateRef, ViewContainerRef, input, Directive, EventEmitter, Component, Input, Output, ChangeDetectionStrategy, HostBinding, HostListener, SecurityContext, NgZone, ViewChild, ElementRef, ChangeDetectorRef, output, ContentChild, model, ViewEncapsulation, viewChild, untracked, Injector, isSignal } from '@angular/core';
2
+ import { inject, InjectionToken, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, Injectable, DestroyRef, Inject, signal, computed, PLATFORM_ID, isDevMode, Optional, runInInjectionContext, effect, Pipe, TemplateRef, ViewContainerRef, input, Directive, EventEmitter, Component, Input, Output, ChangeDetectionStrategy, HostBinding, HostListener, SecurityContext, NgZone, ViewChild, ElementRef, ChangeDetectorRef, output, ContentChild, model, ViewEncapsulation, untracked, viewChild, Injector, isSignal } from '@angular/core';
3
3
  import { BehaviorSubject, throwError, Subject, map, distinctUntilChanged, filter as filter$1, take as take$1, firstValueFrom, of, from, EMPTY, Observable, interval, debounceTime, switchMap as switchMap$1, catchError as catchError$1, takeUntil, isObservable, forkJoin, race, timer, shareReplay } from 'rxjs';
4
4
  import { catchError, switchMap, finalize, filter, take, map as map$1, tap, distinctUntilChanged as distinctUntilChanged$1, retry, timeout, debounceTime as debounceTime$1, takeUntil as takeUntil$1 } from 'rxjs/operators';
5
5
  import * as i1$3 from '@angular/common/http';
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.156';
59
+ const VERSION = '4.0.157';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -795,8 +795,7 @@ class AnalyticsService {
795
795
  return this.isAnalyticsSupported() && this._consentState().settings.analytics === true;
796
796
  });
797
797
  this.analyticsConfig = config.analyticsConfig ?? {};
798
- this.consentStorageKey =
799
- this.analyticsConfig.consentStorageKey ?? DEFAULT_CONSENT_STORAGE_KEY;
798
+ this.consentStorageKey = this.analyticsConfig.consentStorageKey ?? DEFAULT_CONSENT_STORAGE_KEY;
800
799
  this.eventPrefix = this.analyticsConfig.eventPrefix ?? '';
801
800
  this.samplingRate = this.analyticsConfig.samplingRate ?? 1.0;
802
801
  this.initializeAnalytics();
@@ -811,6 +810,9 @@ class AnalyticsService {
811
810
  if (!isPlatformBrowser(this.platformId)) {
812
811
  return;
813
812
  }
813
+ // Consent Mode v2: default denied ANTES de que Firebase/gtag inicialice.
814
+ // Garantiza que no se recolectan datos hasta que el usuario decida.
815
+ this.setConsentModeDefault();
814
816
  // Cargar consent desde localStorage
815
817
  this.loadConsentFromStorage();
816
818
  // Configurar debug mode
@@ -1191,6 +1193,28 @@ class AnalyticsService {
1191
1193
  getConsentState() {
1192
1194
  return this._consentState();
1193
1195
  }
1196
+ /**
1197
+ * Establece el consent default ANTES de que Firebase/gtag inicialice.
1198
+ * Requerido por Google Consent Mode v2 para no recolectar datos hasta
1199
+ * que el usuario tome una decision explicita.
1200
+ */
1201
+ setConsentModeDefault() {
1202
+ // gtag puede no estar disponible aun (Firebase lo carga async).
1203
+ // Usamos dataLayer directamente, que si esta disponible desde index.html.
1204
+ const w = window;
1205
+ const dataLayer = w['dataLayer'] ?? [];
1206
+ w['dataLayer'] = dataLayer;
1207
+ // push a dataLayer funciona antes de que gtag.js cargue — GA lo consume al cargar.
1208
+ dataLayer.push('consent', 'default', {
1209
+ analytics_storage: 'denied',
1210
+ ad_storage: 'denied',
1211
+ ad_user_data: 'denied',
1212
+ ad_personalization: 'denied',
1213
+ functionality_storage: 'denied',
1214
+ security_storage: 'granted',
1215
+ wait_for_update: 500,
1216
+ });
1217
+ }
1194
1218
  /**
1195
1219
  * Aplica consent settings a gtag (GA4 Consent Mode v2)
1196
1220
  */
@@ -1338,7 +1362,7 @@ class AnalyticsService {
1338
1362
  params,
1339
1363
  sent,
1340
1364
  };
1341
- this._debugHistory.update((history) => {
1365
+ this._debugHistory.update(history => {
1342
1366
  const newHistory = [event, ...history];
1343
1367
  return newHistory.slice(0, MAX_DEBUG_HISTORY);
1344
1368
  });
@@ -36054,6 +36078,237 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
36054
36078
  type: Output
36055
36079
  }] } });
36056
36080
 
36081
+ /** I18n namespace used by the component. Apps can override via I18nService. */
36082
+ const NS$1 = 'CookieSettings';
36083
+ const COOKIE_SETTINGS_I18N = {
36084
+ es: {
36085
+ title: 'Preferencias de cookies',
36086
+ description: 'Controla que tecnologias permites. Puedes cambiar esto en cualquier momento.',
36087
+ categoryEssential: 'Esenciales',
36088
+ categoryEssentialHint: 'Necesarias para autenticacion y seguridad. Siempre activas.',
36089
+ categoryAnalytics: 'Analitica',
36090
+ categoryAnalyticsHint: 'Metricas anonimas de uso para mejorar el servicio.',
36091
+ categoryFunctionality: 'Funcionalidad',
36092
+ categoryFunctionalityHint: 'Recuerdan preferencias como idioma y tema.',
36093
+ categoryAdvertising: 'Publicidad',
36094
+ categoryAdvertisingHint: 'Personalizacion de anuncios. Requerido para publicidad relevante.',
36095
+ notDecidedYet: 'Aun no has tomado una decision explicita.',
36096
+ lastUpdated: 'Ultima actualizacion: {date}',
36097
+ acceptAll: 'Aceptar todo',
36098
+ rejectAll: 'Solo esenciales',
36099
+ save: 'Guardar',
36100
+ saved: 'Preferencias guardadas',
36101
+ },
36102
+ en: {
36103
+ title: 'Cookie preferences',
36104
+ description: 'Control which technologies you allow. You can change this at any time.',
36105
+ categoryEssential: 'Essential',
36106
+ categoryEssentialHint: 'Required for authentication and security. Always on.',
36107
+ categoryAnalytics: 'Analytics',
36108
+ categoryAnalyticsHint: 'Anonymous usage metrics to improve the service.',
36109
+ categoryFunctionality: 'Functionality',
36110
+ categoryFunctionalityHint: 'Remember preferences like language and theme.',
36111
+ categoryAdvertising: 'Advertising',
36112
+ categoryAdvertisingHint: 'Ad personalization. Required for relevant advertising.',
36113
+ notDecidedYet: 'You have not made an explicit decision yet.',
36114
+ lastUpdated: 'Last updated: {date}',
36115
+ acceptAll: 'Accept all',
36116
+ rejectAll: 'Essential only',
36117
+ save: 'Save',
36118
+ saved: 'Preferences saved',
36119
+ },
36120
+ };
36121
+ /**
36122
+ * `val-cookie-settings` — panel de gestion de consent GDPR.
36123
+ *
36124
+ * Self-contained: inyecta AnalyticsService internamente. Solo necesita montarse.
36125
+ * Emite `(saved)` cuando el usuario guarda/acepta/rechaza para que el padre
36126
+ * pueda cerrar un modal, navegar, etc.
36127
+ *
36128
+ * @example
36129
+ * <val-cookie-settings (saved)="onConsentSaved()" />
36130
+ */
36131
+ class CookieSettingsComponent {
36132
+ ngOnInit() {
36133
+ this.i18n.registerContent(NS$1, COOKIE_SETTINGS_I18N);
36134
+ }
36135
+ constructor() {
36136
+ this.analytics = inject(AnalyticsService);
36137
+ this.i18n = inject(I18nService);
36138
+ this.toast = inject(ToastService);
36139
+ /** Muestra titulo y descripcion. Util desactivarlo cuando la pagina ya tiene header propio. */
36140
+ this.showTitle = signal(true);
36141
+ /** Emite cuando el usuario guarda/acepta/rechaza. */
36142
+ this.saved = new EventEmitter();
36143
+ // FormControls internos
36144
+ this.analyticsCtrl = new FormControl(true, { nonNullable: true });
36145
+ this.functionalityCtrl = new FormControl(true, { nonNullable: true });
36146
+ this.advertisingCtrl = new FormControl(false, { nonNullable: true });
36147
+ this.essentialCtrl = new FormControl({ value: true, disabled: true }, { nonNullable: true });
36148
+ this.categories = [
36149
+ {
36150
+ key: 'security',
36151
+ labelKey: 'categoryEssential',
36152
+ hintKey: 'categoryEssentialHint',
36153
+ control: this.essentialCtrl,
36154
+ disabled: true,
36155
+ },
36156
+ { key: 'analytics', labelKey: 'categoryAnalytics', hintKey: 'categoryAnalyticsHint', control: this.analyticsCtrl },
36157
+ {
36158
+ key: 'functionality',
36159
+ labelKey: 'categoryFunctionality',
36160
+ hintKey: 'categoryFunctionalityHint',
36161
+ control: this.functionalityCtrl,
36162
+ },
36163
+ {
36164
+ key: 'advertising',
36165
+ labelKey: 'categoryAdvertising',
36166
+ hintKey: 'categoryAdvertisingHint',
36167
+ control: this.advertisingCtrl,
36168
+ },
36169
+ ];
36170
+ this.consentState = computed(() => this.analytics.consentState());
36171
+ this.hasDecided = computed(() => this.consentState().hasDecided);
36172
+ this.lastUpdatedText = computed(() => {
36173
+ const ts = this.consentState().updatedAt;
36174
+ if (!ts)
36175
+ return '';
36176
+ return this.t('lastUpdated').replace('{date}', new Date(ts).toLocaleString(this.i18n.lang()));
36177
+ });
36178
+ this.alwaysOnLabel = '✓';
36179
+ // Sync controls desde estado actual de consent
36180
+ effect(() => {
36181
+ const settings = this.consentState().settings;
36182
+ untracked(() => {
36183
+ this.analyticsCtrl.setValue(settings.analytics ?? true, { emitEvent: false });
36184
+ this.functionalityCtrl.setValue(settings.functionality ?? true, { emitEvent: false });
36185
+ this.advertisingCtrl.setValue(settings.advertising ?? false, { emitEvent: false });
36186
+ });
36187
+ }, { allowSignalWrites: true });
36188
+ }
36189
+ onAcceptAll() {
36190
+ this.analytics.grantAllConsent();
36191
+ this.toast.show({ message: this.t('saved'), duration: 2000, color: 'dark', position: 'top' });
36192
+ this.saved.emit({ analytics: true, advertising: true, functionality: true, security: true });
36193
+ }
36194
+ onRejectAll() {
36195
+ this.analytics.denyAllConsent();
36196
+ this.toast.show({ message: this.t('saved'), duration: 2000, color: 'dark', position: 'top' });
36197
+ this.saved.emit({ analytics: false, advertising: false, functionality: false, security: true });
36198
+ }
36199
+ onSave() {
36200
+ const settings = {
36201
+ analytics: this.analyticsCtrl.value,
36202
+ functionality: this.functionalityCtrl.value,
36203
+ advertising: this.advertisingCtrl.value,
36204
+ security: true,
36205
+ };
36206
+ this.analytics.updateConsent(settings);
36207
+ this.toast.show({ message: this.t('saved'), duration: 2000, color: 'dark', position: 'top' });
36208
+ this.saved.emit(settings);
36209
+ }
36210
+ t(key) {
36211
+ const v = this.i18n.t(key, NS$1);
36212
+ if (v && !v.startsWith('['))
36213
+ return v;
36214
+ return COOKIE_SETTINGS_I18N.es[key] ?? key;
36215
+ }
36216
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CookieSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36217
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CookieSettingsComponent, isStandalone: true, selector: "val-cookie-settings", inputs: { showTitle: "showTitle" }, outputs: { saved: "saved" }, ngImport: i0, template: `
36218
+ <div class="vcs">
36219
+ @if (showTitle()) {
36220
+ <h2 class="vcs__title">{{ t('title') }}</h2>
36221
+ <p class="vcs__desc">{{ t('description') }}</p>
36222
+ }
36223
+
36224
+ @if (!hasDecided()) {
36225
+ <p class="vcs__status vcs__status--pending">{{ t('notDecidedYet') }}</p>
36226
+ } @else if (lastUpdatedText()) {
36227
+ <p class="vcs__status vcs__status--date">{{ lastUpdatedText() }}</p>
36228
+ }
36229
+
36230
+ <div class="vcs__categories">
36231
+ @for (cat of categories; track cat.key) {
36232
+ <div class="vcs__row" [class.vcs__row--disabled]="cat.disabled">
36233
+ <div class="vcs__row-header">
36234
+ <label class="vcs__row-label">{{ t(cat.labelKey) }}</label>
36235
+ <div class="vcs__toggle-wrap">
36236
+ @if (cat.disabled) {
36237
+ <div class="vcs__always-on">{{ alwaysOnLabel }}</div>
36238
+ } @else {
36239
+ <label class="vcs__switch" [attr.aria-label]="t(cat.labelKey)">
36240
+ <input type="checkbox" class="vcs__checkbox" [formControl]="cat.control" />
36241
+ <span class="vcs__slider"></span>
36242
+ </label>
36243
+ }
36244
+ </div>
36245
+ </div>
36246
+ <p class="vcs__row-hint">{{ t(cat.hintKey) }}</p>
36247
+ </div>
36248
+ }
36249
+ </div>
36250
+
36251
+ <div class="vcs__actions">
36252
+ <ion-button fill="outline" size="small" color="medium" (click)="onRejectAll()">{{ t('rejectAll') }}</ion-button>
36253
+
36254
+ <ion-button fill="outline" size="small" color="dark" (click)="onSave()">{{ t('save') }}</ion-button>
36255
+
36256
+ <ion-button fill="solid" size="small" color="primary" (click)="onAcceptAll()">{{ t('acceptAll') }}</ion-button>
36257
+ </div>
36258
+ </div>
36259
+ `, isInline: true, styles: [".vcs{display:block}.vcs__title{font-size:1.125rem;font-weight:700;color:var(--ion-text-color, #000);margin:0 0 6px}.vcs__desc{font-size:.875rem;color:var(--ion-color-medium, #92949c);margin:0 0 16px;line-height:1.5}.vcs__status{font-size:.8125rem;margin:0 0 16px;padding:8px 12px;border-radius:8px}.vcs__status--pending{background:rgba(var(--ion-color-warning-rgb, 255, 196, 9),.12);color:var(--ion-color-warning-shade, #e0ac08)}.vcs__status--date{background:var(--ion-color-light, #f4f5f8);color:var(--ion-color-medium, #92949c)}.vcs__categories{display:flex;flex-direction:column;gap:0;margin-bottom:20px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-radius:12px;overflow:hidden}.vcs__row{padding:14px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .06))}.vcs__row:last-child{border-bottom:none}.vcs__row--disabled{opacity:.7}.vcs__row-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.vcs__row-label{font-size:.9375rem;font-weight:600;color:var(--ion-text-color, #000)}.vcs__row-hint{font-size:.8125rem;color:var(--ion-color-medium, #92949c);margin:0;line-height:1.4}.vcs__toggle-wrap{flex-shrink:0}.vcs__always-on{font-size:.75rem;font-weight:600;color:var(--ion-color-success, #2dd36f);padding:2px 8px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);border-radius:20px}.vcs__switch{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer}.vcs__checkbox{opacity:0;width:0;height:0;position:absolute}.vcs__slider{position:absolute;inset:0;border-radius:24px;background:var(--ion-color-medium, #92949c);transition:background .2s ease}.vcs__slider:before{content:\"\";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s ease;box-shadow:0 1px 3px #0003}.vcs__checkbox:checked+.vcs__slider{background:var(--ion-color-primary, #7026df)}.vcs__checkbox:checked+.vcs__slider:before{transform:translate(20px)}.vcs__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}@media (max-width: 480px){.vcs__actions{flex-direction:column-reverse}.vcs__actions ion-button{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36260
+ }
36261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CookieSettingsComponent, decorators: [{
36262
+ type: Component,
36263
+ args: [{ selector: 'val-cookie-settings', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonButton], template: `
36264
+ <div class="vcs">
36265
+ @if (showTitle()) {
36266
+ <h2 class="vcs__title">{{ t('title') }}</h2>
36267
+ <p class="vcs__desc">{{ t('description') }}</p>
36268
+ }
36269
+
36270
+ @if (!hasDecided()) {
36271
+ <p class="vcs__status vcs__status--pending">{{ t('notDecidedYet') }}</p>
36272
+ } @else if (lastUpdatedText()) {
36273
+ <p class="vcs__status vcs__status--date">{{ lastUpdatedText() }}</p>
36274
+ }
36275
+
36276
+ <div class="vcs__categories">
36277
+ @for (cat of categories; track cat.key) {
36278
+ <div class="vcs__row" [class.vcs__row--disabled]="cat.disabled">
36279
+ <div class="vcs__row-header">
36280
+ <label class="vcs__row-label">{{ t(cat.labelKey) }}</label>
36281
+ <div class="vcs__toggle-wrap">
36282
+ @if (cat.disabled) {
36283
+ <div class="vcs__always-on">{{ alwaysOnLabel }}</div>
36284
+ } @else {
36285
+ <label class="vcs__switch" [attr.aria-label]="t(cat.labelKey)">
36286
+ <input type="checkbox" class="vcs__checkbox" [formControl]="cat.control" />
36287
+ <span class="vcs__slider"></span>
36288
+ </label>
36289
+ }
36290
+ </div>
36291
+ </div>
36292
+ <p class="vcs__row-hint">{{ t(cat.hintKey) }}</p>
36293
+ </div>
36294
+ }
36295
+ </div>
36296
+
36297
+ <div class="vcs__actions">
36298
+ <ion-button fill="outline" size="small" color="medium" (click)="onRejectAll()">{{ t('rejectAll') }}</ion-button>
36299
+
36300
+ <ion-button fill="outline" size="small" color="dark" (click)="onSave()">{{ t('save') }}</ion-button>
36301
+
36302
+ <ion-button fill="solid" size="small" color="primary" (click)="onAcceptAll()">{{ t('acceptAll') }}</ion-button>
36303
+ </div>
36304
+ </div>
36305
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".vcs{display:block}.vcs__title{font-size:1.125rem;font-weight:700;color:var(--ion-text-color, #000);margin:0 0 6px}.vcs__desc{font-size:.875rem;color:var(--ion-color-medium, #92949c);margin:0 0 16px;line-height:1.5}.vcs__status{font-size:.8125rem;margin:0 0 16px;padding:8px 12px;border-radius:8px}.vcs__status--pending{background:rgba(var(--ion-color-warning-rgb, 255, 196, 9),.12);color:var(--ion-color-warning-shade, #e0ac08)}.vcs__status--date{background:var(--ion-color-light, #f4f5f8);color:var(--ion-color-medium, #92949c)}.vcs__categories{display:flex;flex-direction:column;gap:0;margin-bottom:20px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-radius:12px;overflow:hidden}.vcs__row{padding:14px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .06))}.vcs__row:last-child{border-bottom:none}.vcs__row--disabled{opacity:.7}.vcs__row-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.vcs__row-label{font-size:.9375rem;font-weight:600;color:var(--ion-text-color, #000)}.vcs__row-hint{font-size:.8125rem;color:var(--ion-color-medium, #92949c);margin:0;line-height:1.4}.vcs__toggle-wrap{flex-shrink:0}.vcs__always-on{font-size:.75rem;font-weight:600;color:var(--ion-color-success, #2dd36f);padding:2px 8px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);border-radius:20px}.vcs__switch{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer}.vcs__checkbox{opacity:0;width:0;height:0;position:absolute}.vcs__slider{position:absolute;inset:0;border-radius:24px;background:var(--ion-color-medium, #92949c);transition:background .2s ease}.vcs__slider:before{content:\"\";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s ease;box-shadow:0 1px 3px #0003}.vcs__checkbox:checked+.vcs__slider{background:var(--ion-color-primary, #7026df)}.vcs__checkbox:checked+.vcs__slider:before{transform:translate(20px)}.vcs__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}@media (max-width: 480px){.vcs__actions{flex-direction:column-reverse}.vcs__actions ion-button{width:100%}}\n"] }]
36306
+ }], ctorParameters: () => [], propDecorators: { showTitle: [{
36307
+ type: Input
36308
+ }], saved: [{
36309
+ type: Output
36310
+ }] } });
36311
+
36057
36312
  /**
36058
36313
  * DebugConsole Types
36059
36314
  *
@@ -70497,5 +70752,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
70497
70752
  * Generated bundle index. Do not edit.
70498
70753
  */
70499
70754
 
70500
- export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, APP_VERSION_PLATFORM_PLUGIN, APP_VERSION_REMOTE_PLUGIN, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, 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_LOGIN_LOGO, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, EntityCardComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormFieldComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HapticsService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGGED_IN_HINT_COOKIE, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LanguageSelectorV2Component, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OptionCardsComponent, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PermissionCatalogService, PermissionSelectorComponent, PermissionsModalComponent, PermissionsViewComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestFormComponent, RequestModalComponent, 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, SectionHeaderComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashComponent, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketCardComponent, TicketCardImageService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, 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_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VALTECH_WHATSAPP_CONFIG, VERSION, ValtechErrorService, VerifyViewComponent, WhatsappFabComponent, WhatsappService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, canSubmitRequestType, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createPageState, createPermissionLabeler, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, groupPermissionsByScope, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAppVersionHttp, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, provideValtechWhatsapp, query, rbacGuard, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle };
70755
+ export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, APP_VERSION_PLATFORM_PLUGIN, APP_VERSION_REMOTE_PLUGIN, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CookieSettingsComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, 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_LOGIN_LOGO, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, EntityCardComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormFieldComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HapticsService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGGED_IN_HINT_COOKIE, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LanguageSelectorV2Component, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OptionCardsComponent, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PermissionCatalogService, PermissionSelectorComponent, PermissionsModalComponent, PermissionsViewComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestFormComponent, RequestModalComponent, 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, SectionHeaderComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashComponent, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketCardComponent, TicketCardImageService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, 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_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VALTECH_WHATSAPP_CONFIG, VERSION, ValtechErrorService, VerifyViewComponent, WhatsappFabComponent, WhatsappService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, canSubmitRequestType, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createPageState, createPermissionLabeler, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, groupPermissionsByScope, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAppVersionHttp, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, provideValtechWhatsapp, query, rbacGuard, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle };
70501
70756
  //# sourceMappingURL=valtech-components.mjs.map