valtech-components 4.0.61 → 4.0.63
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 +37 -19
- package/esm2022/lib/components/molecules/entity-card/entity-card.component.mjs +147 -0
- package/esm2022/lib/components/molecules/entity-card/types.mjs +2 -0
- package/esm2022/lib/services/auth/oauth-callback.component.mjs +22 -11
- package/esm2022/lib/services/auth/oauth.service.mjs +5 -4
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/valtech-components.mjs +202 -33
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/splash/splash.component.d.ts +11 -5
- package/lib/components/molecules/entity-card/entity-card.component.d.ts +48 -0
- package/lib/components/molecules/entity-card/types.d.ts +74 -0
- package/lib/services/auth/oauth-callback.component.d.ts +12 -4
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -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.63';
|
|
60
60
|
|
|
61
61
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
62
62
|
let isRefreshing = false;
|
|
@@ -6485,8 +6485,9 @@ class OAuthService {
|
|
|
6485
6485
|
// → un oauth_callback_data forjado en localStorage por XSS no lo conoce.
|
|
6486
6486
|
const nonce = this.generateNonce();
|
|
6487
6487
|
this.expectedNonce = nonce;
|
|
6488
|
-
//
|
|
6489
|
-
|
|
6488
|
+
// popup=true sobrevive el bounce cross-origin (Google/MS borran window.name
|
|
6489
|
+
// por privacidad). El backend lo reenvía en el redirect final vía appendParams.
|
|
6490
|
+
const redirectUri = `${window.location.origin}/auth/oauth/callback?popup=true`;
|
|
6490
6491
|
const startUrl = `${this.config?.apiUrl}/v2/auth/oauth/${provider}/start?redirect_uri=${encodeURIComponent(redirectUri)}&client_nonce=${encodeURIComponent(nonce)}`;
|
|
6491
6492
|
// Abrir popup centrado
|
|
6492
6493
|
const width = 500;
|
|
@@ -6601,7 +6602,7 @@ class OAuthService {
|
|
|
6601
6602
|
*/
|
|
6602
6603
|
startLinkFlow(provider) {
|
|
6603
6604
|
return new Observable(observer => {
|
|
6604
|
-
const redirectUri = `${window.location.origin}/auth/oauth/callback`;
|
|
6605
|
+
const redirectUri = `${window.location.origin}/auth/oauth/callback?popup=true`;
|
|
6605
6606
|
const startUrl = `${this.config?.apiUrl}/v2/auth/oauth/link/${provider}/start?redirect_uri=${encodeURIComponent(redirectUri)}`;
|
|
6606
6607
|
const width = 500;
|
|
6607
6608
|
const height = 600;
|
|
@@ -9974,40 +9975,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9974
9975
|
* app (p.ej. el callback OAuth) que deben verse iguales al arranque, en vez de
|
|
9975
9976
|
* un segundo loader casi-duplicado.
|
|
9976
9977
|
*
|
|
9977
|
-
*
|
|
9978
|
-
*
|
|
9979
|
-
*
|
|
9978
|
+
* Por defecto renderiza el logo de la app via la CSS var `--main-logo` (un `<div>`
|
|
9979
|
+
* con `background-image`) — cada frontend del factory define `--main-logo` y la
|
|
9980
|
+
* flipea en dark, asi el splash toma el logo correcto sin que el consumer pase nada.
|
|
9981
|
+
* Override opcional: si se pasan `logoLight`/`logoDark` (no vacios), renderiza un
|
|
9982
|
+
* `<img>` con ese src (comportamiento clasico, back-compat). Fondo overridable con
|
|
9980
9983
|
* las CSS vars `--val-splash-bg` / `--val-splash-bg-dark`.
|
|
9981
9984
|
*/
|
|
9982
9985
|
class SplashComponent {
|
|
9983
9986
|
constructor() {
|
|
9984
|
-
/**
|
|
9985
|
-
|
|
9986
|
-
|
|
9987
|
-
|
|
9987
|
+
/**
|
|
9988
|
+
* Override opcional — src del logo para tema claro. Vacío (default) activa el
|
|
9989
|
+
* modo `--main-logo` (un `<div>` con `background-image: var(--main-logo)` que
|
|
9990
|
+
* toma el logo de la app y respeta dark). Pasalo (no vacío) para forzar `<img>`.
|
|
9991
|
+
*/
|
|
9992
|
+
this.logoLight = input('');
|
|
9993
|
+
/** Override opcional — src del logo para tema oscuro (vía prefers-color-scheme). Solo aplica si `logoLight` no es vacío. */
|
|
9994
|
+
this.logoDark = input('');
|
|
9988
9995
|
/** Texto alternativo del logo. */
|
|
9989
9996
|
this.alt = input('Valtech');
|
|
9990
9997
|
}
|
|
9991
9998
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplashComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9992
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
9999
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.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: `
|
|
9993
10000
|
<div class="val-splash">
|
|
9994
|
-
|
|
9995
|
-
<
|
|
9996
|
-
|
|
9997
|
-
|
|
10001
|
+
@if (logoLight()) {
|
|
10002
|
+
<picture>
|
|
10003
|
+
@if (logoDark()) {
|
|
10004
|
+
<source media="(prefers-color-scheme: dark)" [srcset]="logoDark()" />
|
|
10005
|
+
}
|
|
10006
|
+
<img class="val-splash__logo" [src]="logoLight()" [alt]="alt()" />
|
|
10007
|
+
</picture>
|
|
10008
|
+
} @else {
|
|
10009
|
+
<div class="val-splash__logo val-splash__logo--var" role="img" [attr.aria-label]="alt()"></div>
|
|
10010
|
+
}
|
|
9998
10011
|
</div>
|
|
9999
|
-
`, 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"] }); }
|
|
10012
|
+
`, 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}.val-splash__logo--var{height:180px;background-image:var(--main-logo);background-size:contain;background-repeat:no-repeat;background-position:center}@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"] }); }
|
|
10000
10013
|
}
|
|
10001
10014
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplashComponent, decorators: [{
|
|
10002
10015
|
type: Component,
|
|
10003
10016
|
args: [{ selector: 'val-splash', standalone: true, template: `
|
|
10004
10017
|
<div class="val-splash">
|
|
10005
|
-
|
|
10006
|
-
<
|
|
10007
|
-
|
|
10008
|
-
|
|
10018
|
+
@if (logoLight()) {
|
|
10019
|
+
<picture>
|
|
10020
|
+
@if (logoDark()) {
|
|
10021
|
+
<source media="(prefers-color-scheme: dark)" [srcset]="logoDark()" />
|
|
10022
|
+
}
|
|
10023
|
+
<img class="val-splash__logo" [src]="logoLight()" [alt]="alt()" />
|
|
10024
|
+
</picture>
|
|
10025
|
+
} @else {
|
|
10026
|
+
<div class="val-splash__logo val-splash__logo--var" role="img" [attr.aria-label]="alt()"></div>
|
|
10027
|
+
}
|
|
10009
10028
|
</div>
|
|
10010
|
-
`, 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"] }]
|
|
10029
|
+
`, 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}.val-splash__logo--var{height:180px;background-image:var(--main-logo);background-size:contain;background-repeat:no-repeat;background-position:center}@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"] }]
|
|
10011
10030
|
}] });
|
|
10012
10031
|
|
|
10013
10032
|
const POSITION_MAP = {
|
|
@@ -28763,6 +28782,145 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
28763
28782
|
type: Output
|
|
28764
28783
|
}] } });
|
|
28765
28784
|
|
|
28785
|
+
addIcons({ chevronForward });
|
|
28786
|
+
/**
|
|
28787
|
+
* val-entity-card
|
|
28788
|
+
*
|
|
28789
|
+
* Generic entity card / list row. Two use-cases in one component:
|
|
28790
|
+
*
|
|
28791
|
+
* 1. **Navigable entity** (`clickable: true`, no `actions`) — the whole card is
|
|
28792
|
+
* a button: chevron on the right, `role="button"` + keyboard support, emits
|
|
28793
|
+
* `(cardClick)` with the `token`.
|
|
28794
|
+
* 2. **Row with action(s)** (`actions: ButtonMetadata[]`) — buttons on the
|
|
28795
|
+
* right, each emits `(actionClick)` with its own token.
|
|
28796
|
+
*
|
|
28797
|
+
* Presentational — all text fields are already-resolved strings (no i18n of its
|
|
28798
|
+
* own). Dark-safe: surface/borders/text use theme tokens only.
|
|
28799
|
+
*
|
|
28800
|
+
* @example
|
|
28801
|
+
* ```html
|
|
28802
|
+
* <val-entity-card
|
|
28803
|
+
* [props]="{ chip: { label: 'En vivo', color: 'success' }, title: 'Bingo', subtitle: 'Hoy 20:00', clickable: true, token: 'evt-1' }"
|
|
28804
|
+
* (cardClick)="open($event)" />
|
|
28805
|
+
* ```
|
|
28806
|
+
*/
|
|
28807
|
+
class EntityCardComponent {
|
|
28808
|
+
constructor() {
|
|
28809
|
+
/** Component configuration (object-first). */
|
|
28810
|
+
this.props = input({});
|
|
28811
|
+
/** Emits the `token` when the card is navigable and gets clicked/activated. */
|
|
28812
|
+
this.cardClick = new EventEmitter();
|
|
28813
|
+
/** Emits the token of the clicked action button. */
|
|
28814
|
+
this.actionClick = new EventEmitter();
|
|
28815
|
+
/** Merged config. */
|
|
28816
|
+
this.config = computed(() => this.props());
|
|
28817
|
+
/** Action buttons (empty array when none). */
|
|
28818
|
+
this.actions = computed(() => this.config().actions ?? []);
|
|
28819
|
+
/**
|
|
28820
|
+
* Badge-mode pill props for the status chip, or null when absent.
|
|
28821
|
+
* `chip.color` is a free-form string (Ionic color name or CSS) per the public
|
|
28822
|
+
* contract; cast to satisfy `PillMetadata.color` (Ionic `Color` union).
|
|
28823
|
+
*/
|
|
28824
|
+
this.chipPillProps = computed(() => {
|
|
28825
|
+
const chip = this.config().chip;
|
|
28826
|
+
if (!chip)
|
|
28827
|
+
return null;
|
|
28828
|
+
return { label: chip.label, color: (chip.color || 'medium') };
|
|
28829
|
+
});
|
|
28830
|
+
/** Card is navigable only when `clickable` and there are no actions. */
|
|
28831
|
+
this.isNavigable = computed(() => !!this.config().clickable && this.actions().length === 0);
|
|
28832
|
+
}
|
|
28833
|
+
onCardClick() {
|
|
28834
|
+
if (!this.isNavigable())
|
|
28835
|
+
return;
|
|
28836
|
+
this.cardClick.emit(this.config().token);
|
|
28837
|
+
}
|
|
28838
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28839
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: EntityCardComponent, isStandalone: true, selector: "val-entity-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cardClick: "cardClick", actionClick: "actionClick" }, ngImport: i0, template: `
|
|
28840
|
+
<div
|
|
28841
|
+
class="entity-card"
|
|
28842
|
+
[class.entity-card--clickable]="isNavigable()"
|
|
28843
|
+
[attr.role]="isNavigable() ? 'button' : null"
|
|
28844
|
+
[attr.tabindex]="isNavigable() ? 0 : null"
|
|
28845
|
+
(click)="onCardClick()"
|
|
28846
|
+
(keyup.enter)="onCardClick()"
|
|
28847
|
+
>
|
|
28848
|
+
@if (chipPillProps(); as chip) {
|
|
28849
|
+
<div class="entity-card__eyebrow">
|
|
28850
|
+
<val-pill [props]="chip" />
|
|
28851
|
+
</div>
|
|
28852
|
+
}
|
|
28853
|
+
|
|
28854
|
+
<div class="entity-card__row">
|
|
28855
|
+
<div class="entity-card__text">
|
|
28856
|
+
<span class="entity-card__title">{{ config().title }}</span>
|
|
28857
|
+
@if (config().subtitle) {
|
|
28858
|
+
<span class="entity-card__subtitle">{{ config().subtitle }}</span>
|
|
28859
|
+
}
|
|
28860
|
+
@if (config().endNote) {
|
|
28861
|
+
<span class="entity-card__end-note">{{ config().endNote }}</span>
|
|
28862
|
+
}
|
|
28863
|
+
</div>
|
|
28864
|
+
|
|
28865
|
+
@if (actions().length) {
|
|
28866
|
+
<div class="entity-card__actions" (click)="$event.stopPropagation()">
|
|
28867
|
+
@for (action of actions(); track action.token || $index) {
|
|
28868
|
+
<val-button [props]="action" (onClick)="actionClick.emit($event)" />
|
|
28869
|
+
}
|
|
28870
|
+
</div>
|
|
28871
|
+
} @else if (isNavigable()) {
|
|
28872
|
+
<ion-icon class="entity-card__chevron" name="chevron-forward" aria-hidden="true" />
|
|
28873
|
+
}
|
|
28874
|
+
</div>
|
|
28875
|
+
</div>
|
|
28876
|
+
`, isInline: true, styles: [":host{display:block}.entity-card{background:var(--ion-card-background, var(--ion-background-color, #fff));border:1px solid var(--ion-border-color, var(--ion-color-light-shade, rgba(0, 0, 0, .1)));border-radius:16px;box-shadow:0 1px 3px #0000000f;padding:16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.entity-card--clickable{cursor:pointer}.entity-card--clickable:hover{border-color:var(--ion-color-medium, #92949c);box-shadow:0 4px 12px #0000001a}.entity-card--clickable:active{transform:scale(.99)}.entity-card--clickable:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.entity-card__eyebrow{display:flex;margin-bottom:10px}.entity-card__row{display:flex;align-items:center;gap:12px}.entity-card__text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.entity-card__title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--ion-text-color, #000)}.entity-card__subtitle{font-size:.875rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__end-note{font-size:.8125rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.entity-card__actions val-button{display:inline-block}.entity-card__chevron{font-size:1.25rem;color:var(--ion-color-medium, #92949c);flex-shrink:0}:host-context(body.dark) .entity-card,:host-context(html.ion-palette-dark) .entity-card,:host-context([data-theme=dark]) .entity-card{box-shadow:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
28877
|
+
}
|
|
28878
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityCardComponent, decorators: [{
|
|
28879
|
+
type: Component,
|
|
28880
|
+
args: [{ selector: 'val-entity-card', standalone: true, imports: [CommonModule, IonIcon, PillComponent, ButtonComponent], template: `
|
|
28881
|
+
<div
|
|
28882
|
+
class="entity-card"
|
|
28883
|
+
[class.entity-card--clickable]="isNavigable()"
|
|
28884
|
+
[attr.role]="isNavigable() ? 'button' : null"
|
|
28885
|
+
[attr.tabindex]="isNavigable() ? 0 : null"
|
|
28886
|
+
(click)="onCardClick()"
|
|
28887
|
+
(keyup.enter)="onCardClick()"
|
|
28888
|
+
>
|
|
28889
|
+
@if (chipPillProps(); as chip) {
|
|
28890
|
+
<div class="entity-card__eyebrow">
|
|
28891
|
+
<val-pill [props]="chip" />
|
|
28892
|
+
</div>
|
|
28893
|
+
}
|
|
28894
|
+
|
|
28895
|
+
<div class="entity-card__row">
|
|
28896
|
+
<div class="entity-card__text">
|
|
28897
|
+
<span class="entity-card__title">{{ config().title }}</span>
|
|
28898
|
+
@if (config().subtitle) {
|
|
28899
|
+
<span class="entity-card__subtitle">{{ config().subtitle }}</span>
|
|
28900
|
+
}
|
|
28901
|
+
@if (config().endNote) {
|
|
28902
|
+
<span class="entity-card__end-note">{{ config().endNote }}</span>
|
|
28903
|
+
}
|
|
28904
|
+
</div>
|
|
28905
|
+
|
|
28906
|
+
@if (actions().length) {
|
|
28907
|
+
<div class="entity-card__actions" (click)="$event.stopPropagation()">
|
|
28908
|
+
@for (action of actions(); track action.token || $index) {
|
|
28909
|
+
<val-button [props]="action" (onClick)="actionClick.emit($event)" />
|
|
28910
|
+
}
|
|
28911
|
+
</div>
|
|
28912
|
+
} @else if (isNavigable()) {
|
|
28913
|
+
<ion-icon class="entity-card__chevron" name="chevron-forward" aria-hidden="true" />
|
|
28914
|
+
}
|
|
28915
|
+
</div>
|
|
28916
|
+
</div>
|
|
28917
|
+
`, styles: [":host{display:block}.entity-card{background:var(--ion-card-background, var(--ion-background-color, #fff));border:1px solid var(--ion-border-color, var(--ion-color-light-shade, rgba(0, 0, 0, .1)));border-radius:16px;box-shadow:0 1px 3px #0000000f;padding:16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.entity-card--clickable{cursor:pointer}.entity-card--clickable:hover{border-color:var(--ion-color-medium, #92949c);box-shadow:0 4px 12px #0000001a}.entity-card--clickable:active{transform:scale(.99)}.entity-card--clickable:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.entity-card__eyebrow{display:flex;margin-bottom:10px}.entity-card__row{display:flex;align-items:center;gap:12px}.entity-card__text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.entity-card__title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--ion-text-color, #000)}.entity-card__subtitle{font-size:.875rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__end-note{font-size:.8125rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.entity-card__actions val-button{display:inline-block}.entity-card__chevron{font-size:1.25rem;color:var(--ion-color-medium, #92949c);flex-shrink:0}:host-context(body.dark) .entity-card,:host-context(html.ion-palette-dark) .entity-card,:host-context([data-theme=dark]) .entity-card{box-shadow:none}\n"] }]
|
|
28918
|
+
}], propDecorators: { cardClick: [{
|
|
28919
|
+
type: Output
|
|
28920
|
+
}], actionClick: [{
|
|
28921
|
+
type: Output
|
|
28922
|
+
}] } });
|
|
28923
|
+
|
|
28766
28924
|
/**
|
|
28767
28925
|
* Defaults de InvitationCardMetadata.
|
|
28768
28926
|
*/
|
|
@@ -33121,12 +33279,24 @@ class OAuthCallbackComponent {
|
|
|
33121
33279
|
}
|
|
33122
33280
|
/**
|
|
33123
33281
|
* Indica si este callback corre como la VENTANA PRINCIPAL (flujo redirect),
|
|
33124
|
-
* no como popup.
|
|
33125
|
-
*
|
|
33126
|
-
*
|
|
33127
|
-
*
|
|
33282
|
+
* no como popup.
|
|
33283
|
+
*
|
|
33284
|
+
* NO usamos window.name ni window.opener como indicadores primarios:
|
|
33285
|
+
* - Chrome/Firefox borran window.name al navegar cross-origin (privacidad),
|
|
33286
|
+
* por lo que ya no vale para el flujo OAuth que pasa por Google/MS.
|
|
33287
|
+
* - window.opener queda null cuando el proveedor tiene COOP:same-origin
|
|
33288
|
+
* (Google lo usa), que sever la referencia en el bounce.
|
|
33289
|
+
*
|
|
33290
|
+
* Indicador confiable: `popup=true` en la URL. OAuthService lo inyecta en
|
|
33291
|
+
* el redirect_uri antes del /start; el backend lo reenvía intacto en el
|
|
33292
|
+
* redirect final vía appendParams → sobrevive todo el round-trip sin
|
|
33293
|
+
* depender de estado de la ventana del navegador.
|
|
33128
33294
|
*/
|
|
33129
33295
|
isMainWindow() {
|
|
33296
|
+
const params = new URLSearchParams(window.location.search);
|
|
33297
|
+
if (params.get('popup') === 'true')
|
|
33298
|
+
return false;
|
|
33299
|
+
// Compatibilidad con flujos sin popup=true (redirect directo, tests, legacy).
|
|
33130
33300
|
if (window.name === 'oauth' || window.name === 'oauth-link')
|
|
33131
33301
|
return false;
|
|
33132
33302
|
return !window.opener && window.parent === window;
|
|
@@ -33289,13 +33459,12 @@ class OAuthCallbackComponent {
|
|
|
33289
33459
|
}
|
|
33290
33460
|
}
|
|
33291
33461
|
closeAfterDelay() {
|
|
33292
|
-
//
|
|
33293
|
-
// window.
|
|
33294
|
-
// cross-origin (Google → api backend → app). window.name='oauth' se preserva
|
|
33295
|
-
// a través del bounce y es el indicador confiable de que somos popup OAuth.
|
|
33462
|
+
// popup=true en la URL es el indicador confiable de que somos popup OAuth
|
|
33463
|
+
// (window.name se borra en cross-origin nav; window.opener sever por COOP).
|
|
33296
33464
|
setTimeout(() => {
|
|
33297
|
-
const
|
|
33298
|
-
|
|
33465
|
+
const params = new URLSearchParams(window.location.search);
|
|
33466
|
+
const isPopup = params.get('popup') === 'true' || window.name === 'oauth' || window.name === 'oauth-link';
|
|
33467
|
+
if (window.opener || isPopup) {
|
|
33299
33468
|
window.close();
|
|
33300
33469
|
}
|
|
33301
33470
|
}, 500);
|
|
@@ -68485,5 +68654,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
68485
68654
|
* Generated bundle index. Do not edit.
|
|
68486
68655
|
*/
|
|
68487
68656
|
|
|
68488
|
-
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 };
|
|
68657
|
+
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, 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 };
|
|
68489
68658
|
//# sourceMappingURL=valtech-components.mjs.map
|