valtech-components 2.0.915 → 2.0.916
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/organisms/change-email-modal/change-email-modal.component.mjs +293 -0
- package/esm2022/lib/services/auth/auth.service.mjs +24 -3
- package/esm2022/lib/services/auth/types.mjs +1 -1
- package/esm2022/lib/services/i18n/default-content.mjs +41 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/valtech-components.mjs +346 -4
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/change-email-modal/change-email-modal.component.d.ts +54 -0
- package/lib/services/auth/auth.service.d.ts +4 -1
- package/lib/services/auth/types.d.ts +24 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
|
|
|
54
54
|
* Current version of valtech-components.
|
|
55
55
|
* This is automatically updated during the publish process.
|
|
56
56
|
*/
|
|
57
|
-
const VERSION = '2.0.
|
|
57
|
+
const VERSION = '2.0.916';
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
60
|
* Servicio para gestionar presets de componentes.
|
|
@@ -4374,6 +4374,26 @@ const VALTECH_DEFAULT_CONTENT = {
|
|
|
4374
4374
|
passwordChangedSuccess: '¡Contraseña actualizada!',
|
|
4375
4375
|
errorCurrentPasswordWrong: 'La contraseña actual es incorrecta',
|
|
4376
4376
|
errorSamePassword: 'La nueva contraseña debe ser diferente a la actual',
|
|
4377
|
+
// Change email (3 pasos)
|
|
4378
|
+
changeEmailTitle: 'Cambiar email',
|
|
4379
|
+
changeEmailStep1Description: 'Ingresa tu contraseña actual y el nuevo email.',
|
|
4380
|
+
changeEmailNewEmail: 'Nuevo email',
|
|
4381
|
+
changeEmailNewEmailInvalid: 'Ingresa un email válido',
|
|
4382
|
+
changeEmailInitiate: 'Continuar',
|
|
4383
|
+
changeEmailStep2Title: 'Verifica tu identidad',
|
|
4384
|
+
changeEmailStep2Description: 'Ingresa el código de 6 dígitos que enviamos a tu email actual.',
|
|
4385
|
+
changeEmailCodeCurrent: 'Código de verificación',
|
|
4386
|
+
changeEmailConfirm1: 'Confirmar',
|
|
4387
|
+
changeEmailStep3Title: 'Confirma el nuevo email',
|
|
4388
|
+
changeEmailStep3Description: 'Ingresa el código de 6 dígitos que enviamos a {email}.',
|
|
4389
|
+
changeEmailCodeNew: 'Código del nuevo email',
|
|
4390
|
+
changeEmailConfirm2: 'Cambiar email',
|
|
4391
|
+
changeEmailSuccess: '¡Email actualizado!',
|
|
4392
|
+
changeEmailNoPasswordTitle: 'Contraseña requerida',
|
|
4393
|
+
changeEmailNoPasswordHint: 'Para cambiar el email debes tener una contraseña. Primero configúrala desde "Cambiar contraseña".',
|
|
4394
|
+
errorEmailSameAsCurrent: 'El nuevo email es igual al actual',
|
|
4395
|
+
errorEmailAlreadyInUse: 'Este email ya está en uso',
|
|
4396
|
+
errorEmailChangePendingExpired: 'El flujo expiró. Comienza de nuevo.',
|
|
4377
4397
|
// Set password (cuenta OAuth-only)
|
|
4378
4398
|
setPasswordTitle: 'Crear contraseña',
|
|
4379
4399
|
setPasswordDescription: 'Tu cuenta usa inicio de sesión social. Crea una contraseña para entrar también con tu correo.',
|
|
@@ -4537,6 +4557,26 @@ const VALTECH_DEFAULT_CONTENT = {
|
|
|
4537
4557
|
passwordChangedSuccess: 'Password updated!',
|
|
4538
4558
|
errorCurrentPasswordWrong: 'Current password is incorrect',
|
|
4539
4559
|
errorSamePassword: 'New password must be different from the current one',
|
|
4560
|
+
// Change email (3 steps)
|
|
4561
|
+
changeEmailTitle: 'Change email',
|
|
4562
|
+
changeEmailStep1Description: 'Enter your current password and the new email.',
|
|
4563
|
+
changeEmailNewEmail: 'New email',
|
|
4564
|
+
changeEmailNewEmailInvalid: 'Enter a valid email',
|
|
4565
|
+
changeEmailInitiate: 'Continue',
|
|
4566
|
+
changeEmailStep2Title: 'Verify your identity',
|
|
4567
|
+
changeEmailStep2Description: 'Enter the 6-digit code we sent to your current email.',
|
|
4568
|
+
changeEmailCodeCurrent: 'Verification code',
|
|
4569
|
+
changeEmailConfirm1: 'Confirm',
|
|
4570
|
+
changeEmailStep3Title: 'Confirm new email',
|
|
4571
|
+
changeEmailStep3Description: 'Enter the 6-digit code we sent to {email}.',
|
|
4572
|
+
changeEmailCodeNew: 'New email code',
|
|
4573
|
+
changeEmailConfirm2: 'Change email',
|
|
4574
|
+
changeEmailSuccess: 'Email updated!',
|
|
4575
|
+
changeEmailNoPasswordTitle: 'Password required',
|
|
4576
|
+
changeEmailNoPasswordHint: 'You need a password to change your email. Set one first via "Change password".',
|
|
4577
|
+
errorEmailSameAsCurrent: 'The new email is the same as the current one',
|
|
4578
|
+
errorEmailAlreadyInUse: 'This email is already in use',
|
|
4579
|
+
errorEmailChangePendingExpired: 'The flow expired. Start again.',
|
|
4540
4580
|
// Set password (OAuth-only account)
|
|
4541
4581
|
setPasswordTitle: 'Create password',
|
|
4542
4582
|
setPasswordDescription: 'Your account uses social sign-in. Create a password to also sign in with your email.',
|
|
@@ -25813,8 +25853,8 @@ class AuthService {
|
|
|
25813
25853
|
/** Error actual */
|
|
25814
25854
|
this.error = this.stateService.error;
|
|
25815
25855
|
if (!this.config && isDevMode()) {
|
|
25816
|
-
console.warn(
|
|
25817
|
-
|
|
25856
|
+
console.warn('[valtech-components] AuthService: provideValtechAuth() no está en main.ts. ' +
|
|
25857
|
+
'Login, registro y sesión no funcionarán.');
|
|
25818
25858
|
}
|
|
25819
25859
|
}
|
|
25820
25860
|
// =============================================
|
|
@@ -26389,6 +26429,27 @@ class AuthService {
|
|
|
26389
26429
|
.pipe(catchError(error => this.handleAuthError(error)));
|
|
26390
26430
|
}
|
|
26391
26431
|
// =============================================
|
|
26432
|
+
// CAMBIO DE EMAIL — flujo de 3 pasos
|
|
26433
|
+
// =============================================
|
|
26434
|
+
initiateEmailChange(currentPassword, newEmail) {
|
|
26435
|
+
const request = { currentPassword, newEmail };
|
|
26436
|
+
return this.http
|
|
26437
|
+
.post(`${this.baseUrl}/email/initiate`, request)
|
|
26438
|
+
.pipe(catchError(error => this.handleAuthError(error)));
|
|
26439
|
+
}
|
|
26440
|
+
confirmEmailChangeStep1(code) {
|
|
26441
|
+
const request = { code };
|
|
26442
|
+
return this.http
|
|
26443
|
+
.post(`${this.baseUrl}/email/confirm/1`, request)
|
|
26444
|
+
.pipe(catchError(error => this.handleAuthError(error)));
|
|
26445
|
+
}
|
|
26446
|
+
confirmEmailChangeStep2(code) {
|
|
26447
|
+
const request = { code };
|
|
26448
|
+
return this.http
|
|
26449
|
+
.post(`${this.baseUrl}/email/confirm/2`, request)
|
|
26450
|
+
.pipe(catchError(error => this.handleAuthError(error)));
|
|
26451
|
+
}
|
|
26452
|
+
// =============================================
|
|
26392
26453
|
// ELIMINACIÓN DE CUENTA
|
|
26393
26454
|
// =============================================
|
|
26394
26455
|
/**
|
|
@@ -31286,6 +31347,287 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31286
31347
|
type: Output
|
|
31287
31348
|
}] } });
|
|
31288
31349
|
|
|
31350
|
+
/**
|
|
31351
|
+
* `val-change-email-modal` — modal de cambio de email en 3 pasos.
|
|
31352
|
+
*
|
|
31353
|
+
* Paso 1: contraseña actual + nuevo email → `initiateEmailChange()`
|
|
31354
|
+
* Paso 2: código enviado al email actual → `confirmEmailChangeStep1()`
|
|
31355
|
+
* Paso 3: código enviado al nuevo email → `confirmEmailChangeStep2()`
|
|
31356
|
+
*
|
|
31357
|
+
* Si el user no tiene contraseña (cuenta OAuth-only), muestra aviso.
|
|
31358
|
+
*
|
|
31359
|
+
* @example
|
|
31360
|
+
* ```html
|
|
31361
|
+
* <val-change-email-modal
|
|
31362
|
+
* [isOpen]="isEmailModalOpen()"
|
|
31363
|
+
* (changed)="isEmailModalOpen.set(false)"
|
|
31364
|
+
* (dismissed)="isEmailModalOpen.set(false)"
|
|
31365
|
+
* />
|
|
31366
|
+
* ```
|
|
31367
|
+
*/
|
|
31368
|
+
class ChangeEmailModalComponent {
|
|
31369
|
+
constructor() {
|
|
31370
|
+
this._isOpen = false;
|
|
31371
|
+
/** Emite al completar el cambio de email con éxito. El padre cierra el modal. */
|
|
31372
|
+
this.changed = new EventEmitter();
|
|
31373
|
+
/** Emite cuando el user cierra el modal. */
|
|
31374
|
+
this.dismissed = new EventEmitter();
|
|
31375
|
+
this.auth = inject(AuthService);
|
|
31376
|
+
this.toast = inject(ToastService);
|
|
31377
|
+
this.i18n = inject(I18nService);
|
|
31378
|
+
this.i18nHelper = inject(InputI18nHelper);
|
|
31379
|
+
this._step = signal('loading');
|
|
31380
|
+
this._pendingEmail = signal('');
|
|
31381
|
+
this._formState = signal(ComponentStates.ENABLED);
|
|
31382
|
+
this.noPasswordTitle = computed(() => this.t('changeEmailNoPasswordTitle'));
|
|
31383
|
+
this.noPasswordHint = computed(() => this.t('changeEmailNoPasswordHint'));
|
|
31384
|
+
this.step1Props = computed(() => this.i18nHelper.resolveForm({
|
|
31385
|
+
nameKey: 'changeEmailTitle',
|
|
31386
|
+
i18nNamespace: '_auth',
|
|
31387
|
+
sections: [
|
|
31388
|
+
{
|
|
31389
|
+
name: this.t('changeEmailStep1Description'),
|
|
31390
|
+
order: 0,
|
|
31391
|
+
fields: [
|
|
31392
|
+
{
|
|
31393
|
+
type: InputType.PASSWORD,
|
|
31394
|
+
name: 'currentPassword',
|
|
31395
|
+
token: 'change-email-password',
|
|
31396
|
+
labelKey: 'currentPassword',
|
|
31397
|
+
hint: '',
|
|
31398
|
+
placeholderKey: 'passwordPlaceholder',
|
|
31399
|
+
errorKeys: { required: 'currentPasswordRequired' },
|
|
31400
|
+
validators: [Validators.required],
|
|
31401
|
+
order: 0,
|
|
31402
|
+
state: ComponentStates.ENABLED,
|
|
31403
|
+
},
|
|
31404
|
+
{
|
|
31405
|
+
type: InputType.EMAIL,
|
|
31406
|
+
name: 'newEmail',
|
|
31407
|
+
token: 'change-email-new',
|
|
31408
|
+
labelKey: 'changeEmailNewEmail',
|
|
31409
|
+
hint: '',
|
|
31410
|
+
placeholderKey: 'emailPlaceholder',
|
|
31411
|
+
errorKeys: {
|
|
31412
|
+
required: 'emailRequired',
|
|
31413
|
+
email: 'changeEmailNewEmailInvalid',
|
|
31414
|
+
},
|
|
31415
|
+
validators: [Validators.required, Validators.email],
|
|
31416
|
+
order: 1,
|
|
31417
|
+
state: ComponentStates.ENABLED,
|
|
31418
|
+
},
|
|
31419
|
+
],
|
|
31420
|
+
},
|
|
31421
|
+
],
|
|
31422
|
+
actions: {
|
|
31423
|
+
...SolidDefaultBlock('', 'submit'),
|
|
31424
|
+
token: 'change-email-initiate',
|
|
31425
|
+
textKey: 'changeEmailInitiate',
|
|
31426
|
+
},
|
|
31427
|
+
state: this._formState(),
|
|
31428
|
+
}));
|
|
31429
|
+
this.step2Props = computed(() => this.i18nHelper.resolveForm({
|
|
31430
|
+
nameKey: 'changeEmailStep2Title',
|
|
31431
|
+
i18nNamespace: '_auth',
|
|
31432
|
+
sections: [
|
|
31433
|
+
{
|
|
31434
|
+
name: this.t('changeEmailStep2Description'),
|
|
31435
|
+
order: 0,
|
|
31436
|
+
fields: [
|
|
31437
|
+
{
|
|
31438
|
+
type: InputType.PIN_CODE,
|
|
31439
|
+
name: 'code',
|
|
31440
|
+
token: 'change-email-code-current',
|
|
31441
|
+
labelKey: 'changeEmailCodeCurrent',
|
|
31442
|
+
hint: '',
|
|
31443
|
+
placeholderKey: '',
|
|
31444
|
+
errorKeys: { required: 'mfaCodeInvalid' },
|
|
31445
|
+
validators: [Validators.required],
|
|
31446
|
+
order: 0,
|
|
31447
|
+
state: ComponentStates.ENABLED,
|
|
31448
|
+
length: 6,
|
|
31449
|
+
allowNumbersOnly: true,
|
|
31450
|
+
autoFocus: true,
|
|
31451
|
+
},
|
|
31452
|
+
],
|
|
31453
|
+
},
|
|
31454
|
+
],
|
|
31455
|
+
actions: {
|
|
31456
|
+
...SolidDefaultBlock('', 'submit'),
|
|
31457
|
+
token: 'change-email-confirm-1',
|
|
31458
|
+
textKey: 'changeEmailConfirm1',
|
|
31459
|
+
},
|
|
31460
|
+
state: this._formState(),
|
|
31461
|
+
}));
|
|
31462
|
+
this.step3Props = computed(() => {
|
|
31463
|
+
const email = this._pendingEmail();
|
|
31464
|
+
const desc = this.t('changeEmailStep3Description').replace('{email}', email);
|
|
31465
|
+
return this.i18nHelper.resolveForm({
|
|
31466
|
+
nameKey: 'changeEmailStep3Title',
|
|
31467
|
+
i18nNamespace: '_auth',
|
|
31468
|
+
sections: [
|
|
31469
|
+
{
|
|
31470
|
+
name: desc,
|
|
31471
|
+
order: 0,
|
|
31472
|
+
fields: [
|
|
31473
|
+
{
|
|
31474
|
+
type: InputType.PIN_CODE,
|
|
31475
|
+
name: 'code',
|
|
31476
|
+
token: 'change-email-code-new',
|
|
31477
|
+
labelKey: 'changeEmailCodeNew',
|
|
31478
|
+
hint: '',
|
|
31479
|
+
placeholderKey: '',
|
|
31480
|
+
errorKeys: { required: 'mfaCodeInvalid' },
|
|
31481
|
+
validators: [Validators.required],
|
|
31482
|
+
order: 0,
|
|
31483
|
+
state: ComponentStates.ENABLED,
|
|
31484
|
+
length: 6,
|
|
31485
|
+
allowNumbersOnly: true,
|
|
31486
|
+
autoFocus: true,
|
|
31487
|
+
},
|
|
31488
|
+
],
|
|
31489
|
+
},
|
|
31490
|
+
],
|
|
31491
|
+
actions: {
|
|
31492
|
+
...SolidDefaultBlock('', 'submit'),
|
|
31493
|
+
token: 'change-email-confirm-2',
|
|
31494
|
+
textKey: 'changeEmailConfirm2',
|
|
31495
|
+
},
|
|
31496
|
+
state: this._formState(),
|
|
31497
|
+
});
|
|
31498
|
+
});
|
|
31499
|
+
}
|
|
31500
|
+
set isOpen(value) {
|
|
31501
|
+
const opening = value && !this._isOpen;
|
|
31502
|
+
this._isOpen = value;
|
|
31503
|
+
if (opening) {
|
|
31504
|
+
this.resolveMode();
|
|
31505
|
+
}
|
|
31506
|
+
}
|
|
31507
|
+
get isOpen() {
|
|
31508
|
+
return this._isOpen;
|
|
31509
|
+
}
|
|
31510
|
+
t(key) {
|
|
31511
|
+
return this.i18n.t(key, '_auth');
|
|
31512
|
+
}
|
|
31513
|
+
close() {
|
|
31514
|
+
this.dismissed.emit();
|
|
31515
|
+
}
|
|
31516
|
+
resolveMode() {
|
|
31517
|
+
this._step.set('loading');
|
|
31518
|
+
this._formState.set(ComponentStates.ENABLED);
|
|
31519
|
+
this._pendingEmail.set('');
|
|
31520
|
+
this.auth.checkHasPassword().subscribe({
|
|
31521
|
+
next: res => this._step.set(res.hasPassword ? 'step1' : 'no-password'),
|
|
31522
|
+
error: () => this._step.set('step1'),
|
|
31523
|
+
});
|
|
31524
|
+
}
|
|
31525
|
+
handleStep1(event) {
|
|
31526
|
+
const currentPassword = event.fields['currentPassword'];
|
|
31527
|
+
const newEmail = event.fields['newEmail'];
|
|
31528
|
+
if (!currentPassword || !newEmail) {
|
|
31529
|
+
this.showToast(this.t('completeAllFields'));
|
|
31530
|
+
return;
|
|
31531
|
+
}
|
|
31532
|
+
this._formState.set(ComponentStates.WORKING);
|
|
31533
|
+
this.auth.initiateEmailChange(currentPassword, newEmail).subscribe({
|
|
31534
|
+
next: res => {
|
|
31535
|
+
this._formState.set(ComponentStates.ENABLED);
|
|
31536
|
+
this._pendingEmail.set(res.pendingEmail);
|
|
31537
|
+
this._step.set('step2');
|
|
31538
|
+
},
|
|
31539
|
+
error: err => {
|
|
31540
|
+
this._formState.set(ComponentStates.ENABLED);
|
|
31541
|
+
this.showToast(this.resolveError(err));
|
|
31542
|
+
},
|
|
31543
|
+
});
|
|
31544
|
+
}
|
|
31545
|
+
handleStep2(event) {
|
|
31546
|
+
const code = event.fields['code'];
|
|
31547
|
+
if (!code) {
|
|
31548
|
+
this.showToast(this.t('mfaCodeInvalid'));
|
|
31549
|
+
return;
|
|
31550
|
+
}
|
|
31551
|
+
this._formState.set(ComponentStates.WORKING);
|
|
31552
|
+
this.auth.confirmEmailChangeStep1(code).subscribe({
|
|
31553
|
+
next: () => {
|
|
31554
|
+
this._formState.set(ComponentStates.ENABLED);
|
|
31555
|
+
this._step.set('step3');
|
|
31556
|
+
},
|
|
31557
|
+
error: err => {
|
|
31558
|
+
this._formState.set(ComponentStates.ENABLED);
|
|
31559
|
+
this.showToast(this.resolveError(err));
|
|
31560
|
+
},
|
|
31561
|
+
});
|
|
31562
|
+
}
|
|
31563
|
+
handleStep3(event) {
|
|
31564
|
+
const code = event.fields['code'];
|
|
31565
|
+
if (!code) {
|
|
31566
|
+
this.showToast(this.t('mfaCodeInvalid'));
|
|
31567
|
+
return;
|
|
31568
|
+
}
|
|
31569
|
+
this._formState.set(ComponentStates.WORKING);
|
|
31570
|
+
this.auth.confirmEmailChangeStep2(code).subscribe({
|
|
31571
|
+
next: () => {
|
|
31572
|
+
this._formState.set(ComponentStates.ENABLED);
|
|
31573
|
+
this.showToast(this.t('changeEmailSuccess'));
|
|
31574
|
+
this.changed.emit();
|
|
31575
|
+
},
|
|
31576
|
+
error: err => {
|
|
31577
|
+
this._formState.set(ComponentStates.ENABLED);
|
|
31578
|
+
this.showToast(this.resolveError(err));
|
|
31579
|
+
},
|
|
31580
|
+
});
|
|
31581
|
+
}
|
|
31582
|
+
resolveError(err) {
|
|
31583
|
+
const code = err?.code;
|
|
31584
|
+
switch (code) {
|
|
31585
|
+
case 'AUTHV2_INVALID_CURRENT_PASSWORD':
|
|
31586
|
+
return this.t('errorCurrentPasswordWrong');
|
|
31587
|
+
case 'AUTHV2_EMAIL_SAME_AS_CURRENT':
|
|
31588
|
+
return this.t('errorEmailSameAsCurrent');
|
|
31589
|
+
case 'AUTHV2_EMAIL_EXISTS':
|
|
31590
|
+
return this.t('errorEmailAlreadyInUse');
|
|
31591
|
+
case 'AUTHV2_EMAIL_CHANGE_PENDING_EXPIRED':
|
|
31592
|
+
return this.t('errorEmailChangePendingExpired');
|
|
31593
|
+
case 'AUTHV2_INVALID_CODE':
|
|
31594
|
+
return this.t('errorInvalidCode');
|
|
31595
|
+
case 'AUTHV2_EXPIRED_CODE':
|
|
31596
|
+
return this.t('errorExpiredCode');
|
|
31597
|
+
case 'AUTHV2_TOO_MANY_ATTEMPTS':
|
|
31598
|
+
return this.t('errorTooManyAttempts');
|
|
31599
|
+
default:
|
|
31600
|
+
return this.t('errorGeneric');
|
|
31601
|
+
}
|
|
31602
|
+
}
|
|
31603
|
+
showToast(message) {
|
|
31604
|
+
this.toast.show({ message, duration: 3500 });
|
|
31605
|
+
}
|
|
31606
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChangeEmailModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31607
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChangeEmailModalComponent, isStandalone: true, selector: "val-change-email-modal", inputs: { isOpen: "isOpen" }, outputs: { changed: "changed", dismissed: "dismissed" }, ngImport: i0, template: "<ion-modal [isOpen]=\"isOpen\" (didDismiss)=\"close()\">\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"close()\">\n <strong>{{ t('close') }}</strong>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content class=\"ion-padding\">\n <section class=\"modal-form-section\">\n @if (_step() === 'loading') {\n <div class=\"modal-loading\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else if (_step() === 'no-password') {\n <val-display [props]=\"{ content: noPasswordTitle(), size: 'small', color: 'dark' }\" />\n <val-text [props]=\"{ content: noPasswordHint(), size: 'medium', color: 'medium', bold: false }\" />\n } @else if (_step() === 'step1') {\n <val-form [props]=\"step1Props()\" (onSubmit)=\"handleStep1($event)\" />\n } @else if (_step() === 'step2') {\n <val-form [props]=\"step2Props()\" (onSubmit)=\"handleStep2($event)\" />\n } @else if (_step() === 'step3') {\n <val-form [props]=\"step3Props()\" (onSubmit)=\"handleStep3($event)\" />\n }\n </section>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [".modal-form-section{display:flex;flex-direction:column;gap:16px;max-width:420px;margin:0 auto;padding-top:8px}.modal-loading{display:flex;justify-content:center;padding:40px 0}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
|
|
31608
|
+
}
|
|
31609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChangeEmailModalComponent, decorators: [{
|
|
31610
|
+
type: Component,
|
|
31611
|
+
args: [{ selector: 'val-change-email-modal', standalone: true, imports: [
|
|
31612
|
+
IonButton,
|
|
31613
|
+
IonButtons,
|
|
31614
|
+
IonContent,
|
|
31615
|
+
IonHeader,
|
|
31616
|
+
IonModal,
|
|
31617
|
+
IonSpinner,
|
|
31618
|
+
IonToolbar,
|
|
31619
|
+
FormComponent,
|
|
31620
|
+
DisplayComponent,
|
|
31621
|
+
TextComponent,
|
|
31622
|
+
], template: "<ion-modal [isOpen]=\"isOpen\" (didDismiss)=\"close()\">\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"close()\">\n <strong>{{ t('close') }}</strong>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content class=\"ion-padding\">\n <section class=\"modal-form-section\">\n @if (_step() === 'loading') {\n <div class=\"modal-loading\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else if (_step() === 'no-password') {\n <val-display [props]=\"{ content: noPasswordTitle(), size: 'small', color: 'dark' }\" />\n <val-text [props]=\"{ content: noPasswordHint(), size: 'medium', color: 'medium', bold: false }\" />\n } @else if (_step() === 'step1') {\n <val-form [props]=\"step1Props()\" (onSubmit)=\"handleStep1($event)\" />\n } @else if (_step() === 'step2') {\n <val-form [props]=\"step2Props()\" (onSubmit)=\"handleStep2($event)\" />\n } @else if (_step() === 'step3') {\n <val-form [props]=\"step3Props()\" (onSubmit)=\"handleStep3($event)\" />\n }\n </section>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [".modal-form-section{display:flex;flex-direction:column;gap:16px;max-width:420px;margin:0 auto;padding-top:8px}.modal-loading{display:flex;justify-content:center;padding:40px 0}\n"] }]
|
|
31623
|
+
}], propDecorators: { isOpen: [{
|
|
31624
|
+
type: Input
|
|
31625
|
+
}], changed: [{
|
|
31626
|
+
type: Output
|
|
31627
|
+
}], dismissed: [{
|
|
31628
|
+
type: Output
|
|
31629
|
+
}] } });
|
|
31630
|
+
|
|
31289
31631
|
/**
|
|
31290
31632
|
* `val-cookie-banner` — bottom/top fixed banner asking the user to choose
|
|
31291
31633
|
* a cookie consent option. Presentational only: emits events on each
|
|
@@ -49259,5 +49601,5 @@ function buildFooterLinks(links, t, resolver) {
|
|
|
49259
49601
|
* Generated bundle index. Do not edit.
|
|
49260
49602
|
*/
|
|
49261
49603
|
|
|
49262
|
-
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_SPACING, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentTransformer, CookieBannerComponent, CountdownComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormFooterComponent, FormSkeletonComponent, FunHeaderComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MenuComponent, MessagingService, MetaService, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RightsFooterComponent, RotatingTextComponent, SHAPE_KEYS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STROKE_KEYS, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, ShareButtonsComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_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_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, blogPost, buildFooterLinks, buildPath, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPresets, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor, resolveInputDefaultValue, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
49604
|
+
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_SPACING, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentTransformer, CookieBannerComponent, CountdownComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormFooterComponent, FormSkeletonComponent, FunHeaderComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MenuComponent, MessagingService, MetaService, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RightsFooterComponent, RotatingTextComponent, SHAPE_KEYS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STROKE_KEYS, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, ShareButtonsComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_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_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, blogPost, buildFooterLinks, buildPath, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPresets, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor, resolveInputDefaultValue, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
49263
49605
|
//# sourceMappingURL=valtech-components.mjs.map
|