valtech-components 4.0.41 → 4.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/atoms/splash/splash.component.mjs +45 -0
- package/esm2022/lib/services/auth/auth.service.mjs +28 -26
- package/esm2022/lib/services/auth/oauth-callback.component.mjs +63 -17
- package/esm2022/lib/services/auth/oauth.service.mjs +14 -10
- package/esm2022/lib/services/auth/storage.service.mjs +11 -7
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/valtech-components.mjs +152 -57
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/splash/splash.component.d.ts +23 -0
- package/lib/services/auth/oauth-callback.component.d.ts +21 -1
- package/lib/services/auth/oauth.service.d.ts +6 -7
- package/lib/services/auth/storage.service.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/lib/services/firebase/firebase-messaging-sw.js +0 -145
|
@@ -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.
|
|
59
|
+
const VERSION = '4.0.43';
|
|
60
60
|
|
|
61
61
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
62
62
|
let isRefreshing = false;
|
|
@@ -2349,8 +2349,7 @@ class AuthStorageService {
|
|
|
2349
2349
|
return;
|
|
2350
2350
|
try {
|
|
2351
2351
|
localStorage.setItem(this.keys.ACCESS_TOKEN, state.accessToken);
|
|
2352
|
-
|
|
2353
|
-
// cookie HttpOnly que el backend emite. Así un XSS no puede exfiltrarlo.
|
|
2352
|
+
localStorage.setItem(this.keys.REFRESH_TOKEN, state.refreshToken);
|
|
2354
2353
|
localStorage.setItem(this.keys.ROLES, JSON.stringify(state.roles));
|
|
2355
2354
|
localStorage.setItem(this.keys.PERMISSIONS, JSON.stringify(state.permissions));
|
|
2356
2355
|
localStorage.setItem(this.keys.IS_SUPER_ADMIN, String(state.isSuperAdmin));
|
|
@@ -2408,10 +2407,15 @@ class AuthStorageService {
|
|
|
2408
2407
|
/**
|
|
2409
2408
|
* Guarda el refresh token (token rotation).
|
|
2410
2409
|
*/
|
|
2411
|
-
saveRefreshToken(
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2410
|
+
saveRefreshToken(token) {
|
|
2411
|
+
if (!this.isBrowser)
|
|
2412
|
+
return;
|
|
2413
|
+
try {
|
|
2414
|
+
localStorage.setItem(this.keys.REFRESH_TOKEN, token);
|
|
2415
|
+
}
|
|
2416
|
+
catch (e) {
|
|
2417
|
+
console.warn('[ValtechAuth] Error guardando refresh token:', e);
|
|
2418
|
+
}
|
|
2415
2419
|
}
|
|
2416
2420
|
/**
|
|
2417
2421
|
* Guarda los permisos actualizados.
|
|
@@ -6752,20 +6756,24 @@ class OAuthService {
|
|
|
6752
6756
|
/**
|
|
6753
6757
|
* Verifica que el callback traiga el nonce del flujo actual (M-07).
|
|
6754
6758
|
*
|
|
6755
|
-
*
|
|
6756
|
-
*
|
|
6757
|
-
*
|
|
6758
|
-
*
|
|
6759
|
-
*
|
|
6760
|
-
*
|
|
6761
|
-
* (sin nonce) durante la ventana de transición.
|
|
6759
|
+
* Tolerante a la transición: solo se EXIGE coincidencia cuando el callback
|
|
6760
|
+
* trae un nonce. Si no lo trae (backend aún sin M-07 desplegado, p.ej. dev), no
|
|
6761
|
+
* se bloquea el login. Cuando el backend echa `client_nonce` en todos lados, un
|
|
6762
|
+
* callback forjado con un nonce distinto sí se rechaza. Un payload forjado por
|
|
6763
|
+
* XSS que OMITA el nonce no se frena por acá, pero igual pasa por las
|
|
6764
|
+
* validaciones de tipo/forma de `checkLocalStorageFallback`.
|
|
6762
6765
|
*/
|
|
6763
6766
|
isNonceValid(data) {
|
|
6767
|
+
// No hay flujo con nonce activo (legacy / link flow) → no bloquear.
|
|
6764
6768
|
if (!this.expectedNonce) {
|
|
6765
|
-
// No hay flujo con nonce activo (caso legacy / link flow) → no bloquear.
|
|
6766
6769
|
return true;
|
|
6767
6770
|
}
|
|
6768
|
-
|
|
6771
|
+
// El callback no trae nonce (backend sin M-07) → no bloquear (transición).
|
|
6772
|
+
if (!data?.nonce) {
|
|
6773
|
+
return true;
|
|
6774
|
+
}
|
|
6775
|
+
// Nonce presente → debe coincidir con el del flujo.
|
|
6776
|
+
return data.nonce === this.expectedNonce;
|
|
6769
6777
|
}
|
|
6770
6778
|
/**
|
|
6771
6779
|
* Valida la forma del payload del callback (M-07): debe ser un error o tokens
|
|
@@ -8193,12 +8201,8 @@ class AuthService {
|
|
|
8193
8201
|
this.setupFirestoreRBACSync(claims.uid);
|
|
8194
8202
|
}
|
|
8195
8203
|
}
|
|
8196
|
-
else if (storedState.
|
|
8197
|
-
// 4. Token
|
|
8198
|
-
// HttpOnly (H-05), no en storage — así que el disparador ya no es
|
|
8199
|
-
// "hay refresh en storage" sino "había un access token" (sesión
|
|
8200
|
-
// previa). El /refresh de fondo usa la cookie; si no es válida, falla
|
|
8201
|
-
// y caemos a signOut (catch más abajo).
|
|
8204
|
+
else if (storedState.refreshToken) {
|
|
8205
|
+
// 4. Token expirado pero hay refresh token en storage.
|
|
8202
8206
|
//
|
|
8203
8207
|
// NO bloqueamos el bootstrap esperando la red: un /refresh en una
|
|
8204
8208
|
// Lambda fría son 2-5s de pantalla en blanco (Angular no renderiza
|
|
@@ -8458,21 +8462,28 @@ class AuthService {
|
|
|
8458
8462
|
* que el cliente debe guardar para el próximo refresh.
|
|
8459
8463
|
*/
|
|
8460
8464
|
refreshAccessToken() {
|
|
8461
|
-
// H-05: el refresh token
|
|
8462
|
-
//
|
|
8463
|
-
//
|
|
8464
|
-
//
|
|
8465
|
-
//
|
|
8465
|
+
// Transición H-05: se envía el refresh token en el body (compat con el
|
|
8466
|
+
// backend actual, que lo exige) y se persiste el rotado. `withCredentials`
|
|
8467
|
+
// adjunta además la cookie HttpOnly cuando el backend ya soporta H-05 (que
|
|
8468
|
+
// prioriza el body). El paso "cookie-only" (dejar de guardar el refresh en
|
|
8469
|
+
// localStorage) se hace DESPUÉS de desplegar el backend con H-05 — hacerlo
|
|
8470
|
+
// antes rompe el /refresh contra el backend viejo (400 RefreshToken required).
|
|
8466
8471
|
const refreshToken = this.state().refreshToken;
|
|
8467
|
-
|
|
8472
|
+
if (!refreshToken) {
|
|
8473
|
+
return throwError(() => ({
|
|
8474
|
+
code: 'NO_REFRESH_TOKEN',
|
|
8475
|
+
message: 'No hay token de refresco',
|
|
8476
|
+
}));
|
|
8477
|
+
}
|
|
8468
8478
|
return this.http
|
|
8469
|
-
.post(`${this.baseUrl}/refresh`,
|
|
8479
|
+
.post(`${this.baseUrl}/refresh`, { refreshToken }, { withCredentials: true })
|
|
8470
8480
|
.pipe(tap(response => {
|
|
8471
8481
|
const expiresAt = Date.now() + response.expiresIn * 1000;
|
|
8472
|
-
// Token rotation: el access token
|
|
8473
|
-
// la cookie HttpOnly (NO se persiste en localStorage — H-05).
|
|
8482
|
+
// Token rotation: se guarda el access token Y el refresh rotado.
|
|
8474
8483
|
this.stateService.updateAccessToken(response.accessToken, response.expiresIn);
|
|
8484
|
+
this.stateService.updateRefreshToken(response.refreshToken);
|
|
8475
8485
|
this.storageService.saveAccessToken(response.accessToken, expiresAt);
|
|
8486
|
+
this.storageService.saveRefreshToken(response.refreshToken);
|
|
8476
8487
|
if (this.config?.enableFirebaseIntegration && response.firebaseToken) {
|
|
8477
8488
|
this.signInWithFirebase(response.firebaseToken);
|
|
8478
8489
|
}
|
|
@@ -8548,16 +8559,15 @@ class AuthService {
|
|
|
8548
8559
|
const refreshToken = this.state().refreshToken;
|
|
8549
8560
|
// Eliminar dispositivo del backend antes de cerrar sesión
|
|
8550
8561
|
await this.unregisterDevice();
|
|
8551
|
-
// Notificar al backend (fire and forget).
|
|
8552
|
-
//
|
|
8553
|
-
//
|
|
8554
|
-
|
|
8555
|
-
|
|
8556
|
-
|
|
8557
|
-
|
|
8558
|
-
|
|
8559
|
-
|
|
8560
|
-
.subscribe();
|
|
8562
|
+
// Notificar al backend (fire and forget). Se manda el refresh token en el
|
|
8563
|
+
// body (compat con el backend actual); withCredentials adjunta la cookie
|
|
8564
|
+
// cuando el backend ya soporta H-05 (revoca + expira la cookie).
|
|
8565
|
+
if (refreshToken) {
|
|
8566
|
+
this.http
|
|
8567
|
+
.post(`${this.baseUrl}/logout`, { refreshToken }, { withCredentials: true })
|
|
8568
|
+
.pipe(catchError(() => of(null)))
|
|
8569
|
+
.subscribe();
|
|
8570
|
+
}
|
|
8561
8571
|
// Cerrar sesión de Firebase si está integrado
|
|
8562
8572
|
this.signOutFirebase();
|
|
8563
8573
|
this.clearState();
|
|
@@ -9897,6 +9907,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9897
9907
|
type: Output
|
|
9898
9908
|
}] } });
|
|
9899
9909
|
|
|
9910
|
+
/**
|
|
9911
|
+
* `val-splash` — splash a pantalla completa reutilizable, idéntico al de arranque
|
|
9912
|
+
* de la app (`.app-splash` del `index.html`): logo centrado con pulse, fondo
|
|
9913
|
+
* claro/oscuro vía `prefers-color-scheme`. Para cargas fundamentales dentro de la
|
|
9914
|
+
* app (p.ej. el callback OAuth) que deben verse iguales al arranque, en vez de
|
|
9915
|
+
* un segundo loader casi-duplicado.
|
|
9916
|
+
*
|
|
9917
|
+
* El logo apunta por defecto a `assets/images/main-{light,dark}.svg` — los mismos
|
|
9918
|
+
* assets de la app consumer que usa el splash de `index.html` — y resuelven en
|
|
9919
|
+
* runtime contra la app. Override por inputs si hace falta. Fondo overridable con
|
|
9920
|
+
* las CSS vars `--val-splash-bg` / `--val-splash-bg-dark`.
|
|
9921
|
+
*/
|
|
9922
|
+
class SplashComponent {
|
|
9923
|
+
constructor() {
|
|
9924
|
+
/** Logo para tema claro. Default = asset de la app (igual que index.html). */
|
|
9925
|
+
this.logoLight = input('assets/images/main-light.svg');
|
|
9926
|
+
/** Logo para tema oscuro (vía prefers-color-scheme). */
|
|
9927
|
+
this.logoDark = input('assets/images/main-dark.svg');
|
|
9928
|
+
/** Texto alternativo del logo. */
|
|
9929
|
+
this.alt = input('Valtech');
|
|
9930
|
+
}
|
|
9931
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplashComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9932
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SplashComponent, isStandalone: true, selector: "val-splash", inputs: { logoLight: { classPropertyName: "logoLight", publicName: "logoLight", isSignal: true, isRequired: false, transformFunction: null }, logoDark: { classPropertyName: "logoDark", publicName: "logoDark", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
9933
|
+
<div class="val-splash">
|
|
9934
|
+
<picture>
|
|
9935
|
+
<source media="(prefers-color-scheme: dark)" [srcset]="logoDark()" />
|
|
9936
|
+
<img class="val-splash__logo" [src]="logoLight()" [alt]="alt()" />
|
|
9937
|
+
</picture>
|
|
9938
|
+
</div>
|
|
9939
|
+
`, isInline: true, styles: [".val-splash{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--val-splash-bg, #fbfbfb);z-index:9999;animation:val-splash-in .25s ease}.val-splash__logo{width:180px;max-width:50vw;animation:val-splash-pulse 1.8s ease-in-out infinite}@keyframes val-splash-in{0%{opacity:0}to{opacity:1}}@keyframes val-splash-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-color-scheme: dark){.val-splash{background:var(--val-splash-bg-dark, #0e0420)}}\n"] }); }
|
|
9940
|
+
}
|
|
9941
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplashComponent, decorators: [{
|
|
9942
|
+
type: Component,
|
|
9943
|
+
args: [{ selector: 'val-splash', standalone: true, template: `
|
|
9944
|
+
<div class="val-splash">
|
|
9945
|
+
<picture>
|
|
9946
|
+
<source media="(prefers-color-scheme: dark)" [srcset]="logoDark()" />
|
|
9947
|
+
<img class="val-splash__logo" [src]="logoLight()" [alt]="alt()" />
|
|
9948
|
+
</picture>
|
|
9949
|
+
</div>
|
|
9950
|
+
`, styles: [".val-splash{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--val-splash-bg, #fbfbfb);z-index:9999;animation:val-splash-in .25s ease}.val-splash__logo{width:180px;max-width:50vw;animation:val-splash-pulse 1.8s ease-in-out infinite}@keyframes val-splash-in{0%{opacity:0}to{opacity:1}}@keyframes val-splash-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-color-scheme: dark){.val-splash{background:var(--val-splash-bg-dark, #0e0420)}}\n"] }]
|
|
9951
|
+
}] });
|
|
9952
|
+
|
|
9900
9953
|
const POSITION_MAP = {
|
|
9901
9954
|
'top-left': '0% 0%',
|
|
9902
9955
|
top: '50% 0%',
|
|
@@ -32983,7 +33036,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
32983
33036
|
* `/auth/oauth/callback?error=INVALID_CODE&error_description=...`
|
|
32984
33037
|
*/
|
|
32985
33038
|
class OAuthCallbackComponent {
|
|
32986
|
-
constructor() {
|
|
33039
|
+
constructor(router, authService, config) {
|
|
33040
|
+
this.router = router;
|
|
33041
|
+
this.authService = authService;
|
|
33042
|
+
this.config = config;
|
|
32987
33043
|
this.message = 'Procesando autenticación...';
|
|
32988
33044
|
/**
|
|
32989
33045
|
* Nonce que el opener generó y pasó por el flujo (round-trip backend). Se
|
|
@@ -32995,6 +33051,36 @@ class OAuthCallbackComponent {
|
|
|
32995
33051
|
ngOnInit() {
|
|
32996
33052
|
this.processCallback();
|
|
32997
33053
|
}
|
|
33054
|
+
/**
|
|
33055
|
+
* Indica si este callback corre como la VENTANA PRINCIPAL (flujo redirect),
|
|
33056
|
+
* no como popup. El popup se abre con window.name 'oauth'/'oauth-link'
|
|
33057
|
+
* (OAuthService), nombre que persiste aunque COOP anule window.opener tras el
|
|
33058
|
+
* bounce cross-origin. En la ventana principal nadie consume el localStorage,
|
|
33059
|
+
* así que el callback debe instalar la sesión y navegar él mismo.
|
|
33060
|
+
*/
|
|
33061
|
+
isMainWindow() {
|
|
33062
|
+
if (window.name === 'oauth' || window.name === 'oauth-link')
|
|
33063
|
+
return false;
|
|
33064
|
+
return !window.opener && window.parent === window;
|
|
33065
|
+
}
|
|
33066
|
+
/**
|
|
33067
|
+
* Completa el login en la ventana principal: instala la sesión desde los
|
|
33068
|
+
* tokens del callback y navega al home.
|
|
33069
|
+
*/
|
|
33070
|
+
completeInMainWindow(result) {
|
|
33071
|
+
if (!this.authService)
|
|
33072
|
+
return false;
|
|
33073
|
+
this.authService.setExternalAuth({
|
|
33074
|
+
accessToken: result.accessToken,
|
|
33075
|
+
refreshToken: result.refreshToken,
|
|
33076
|
+
firebaseToken: result.firebaseToken,
|
|
33077
|
+
expiresIn: result.expiresIn,
|
|
33078
|
+
roles: result.roles,
|
|
33079
|
+
permissions: result.permissions,
|
|
33080
|
+
});
|
|
33081
|
+
this.router.navigateByUrl(this.config?.homeRoute || '/', { replaceUrl: true });
|
|
33082
|
+
return true;
|
|
33083
|
+
}
|
|
32998
33084
|
processCallback() {
|
|
32999
33085
|
const params = new URLSearchParams(window.location.search);
|
|
33000
33086
|
this.clientNonce = params.get('client_nonce');
|
|
@@ -33092,6 +33178,11 @@ class OAuthCallbackComponent {
|
|
|
33092
33178
|
type: 'oauth-callback',
|
|
33093
33179
|
tokens: result,
|
|
33094
33180
|
});
|
|
33181
|
+
// Flujo redirect (ventana principal, sin opener que consuma el localStorage):
|
|
33182
|
+
// instalar la sesión acá mismo y navegar al home, en vez de quedar pegado.
|
|
33183
|
+
if (this.isMainWindow() && this.completeInMainWindow(result)) {
|
|
33184
|
+
return;
|
|
33185
|
+
}
|
|
33095
33186
|
this.message = 'Autenticación exitosa';
|
|
33096
33187
|
this.closeAfterDelay();
|
|
33097
33188
|
}
|
|
@@ -33137,23 +33228,27 @@ class OAuthCallbackComponent {
|
|
|
33137
33228
|
}
|
|
33138
33229
|
}, 500);
|
|
33139
33230
|
}
|
|
33140
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OAuthCallbackComponent, isStandalone: true, selector: "val-oauth-callback", ngImport: i0, template:
|
|
33142
|
-
<div class="oauth-callback">
|
|
33143
|
-
<div class="oauth-callback__spinner"></div>
|
|
33144
|
-
<p class="oauth-callback__text">{{ message }}</p>
|
|
33145
|
-
</div>
|
|
33146
|
-
`, isInline: true, styles: [".oauth-callback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.oauth-callback__spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.oauth-callback__text{color:#666;font-size:14px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
33231
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, deps: [{ token: i1$4.Router }, { token: AuthService, optional: true }, { token: VALTECH_AUTH_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33232
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OAuthCallbackComponent, isStandalone: true, selector: "val-oauth-callback", ngImport: i0, template: `<val-splash />`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SplashComponent, selector: "val-splash", inputs: ["logoLight", "logoDark", "alt"] }] }); }
|
|
33147
33233
|
}
|
|
33148
33234
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, decorators: [{
|
|
33149
33235
|
type: Component,
|
|
33150
|
-
args: [{
|
|
33151
|
-
|
|
33152
|
-
|
|
33153
|
-
|
|
33154
|
-
|
|
33155
|
-
|
|
33156
|
-
|
|
33236
|
+
args: [{
|
|
33237
|
+
selector: 'val-oauth-callback',
|
|
33238
|
+
standalone: true,
|
|
33239
|
+
imports: [CommonModule, SplashComponent],
|
|
33240
|
+
// Mismo splash de arranque de la app (logo + pulse) en vez de un loader propio
|
|
33241
|
+
// casi-duplicado: el callback OAuth es una carga fundamental y debe verse igual.
|
|
33242
|
+
template: `<val-splash />`,
|
|
33243
|
+
}]
|
|
33244
|
+
}], ctorParameters: () => [{ type: i1$4.Router }, { type: AuthService, decorators: [{
|
|
33245
|
+
type: Optional
|
|
33246
|
+
}] }, { type: undefined, decorators: [{
|
|
33247
|
+
type: Optional
|
|
33248
|
+
}, {
|
|
33249
|
+
type: Inject,
|
|
33250
|
+
args: [VALTECH_AUTH_CONFIG]
|
|
33251
|
+
}] }] });
|
|
33157
33252
|
|
|
33158
33253
|
/**
|
|
33159
33254
|
* Name of the query param that carries the handoff token. Apps may override
|
|
@@ -67938,5 +68033,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
67938
68033
|
* Generated bundle index. Do not edit.
|
|
67939
68034
|
*/
|
|
67940
68035
|
|
|
67941
|
-
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, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, 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, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, 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, 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, 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, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketCardComponent, 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, 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, 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, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle };
|
|
68036
|
+
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, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, 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, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, 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, 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, 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, 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, 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, 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, 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, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle };
|
|
67942
68037
|
//# sourceMappingURL=valtech-components.mjs.map
|