valtech-components 2.0.832 → 2.0.834
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-password-modal/change-password-modal.component.mjs +252 -0
- package/esm2022/lib/services/auth/interceptor.mjs +10 -6
- package/esm2022/lib/services/i18n/default-content.mjs +39 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/valtech-components.mjs +6065 -5784
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/change-password-modal/change-password-modal.component.d.ts +77 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { FormMetadata, FormSubmit } from '../../types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** Modo del modal, resuelto al abrir según si el user ya tiene contraseña. */
|
|
5
|
+
type PasswordModalMode = 'loading' | 'change' | 'set';
|
|
6
|
+
/**
|
|
7
|
+
* `val-change-password-modal` — modal de gestión de contraseña para un usuario
|
|
8
|
+
* autenticado. Análogo al modal de "recuperar contraseña" del `val-login`.
|
|
9
|
+
*
|
|
10
|
+
* Es dual-mode: al abrirse consulta `AuthService.checkHasPassword()` y se adapta:
|
|
11
|
+
* - **change** — el user ya tiene contraseña → pide actual + nueva →
|
|
12
|
+
* `changePassword()`.
|
|
13
|
+
* - **set** — el user es OAuth-only (sin contraseña) → pide solo la nueva,
|
|
14
|
+
* pide confirmación explícita (no pierde el acceso social, es aditivo) →
|
|
15
|
+
* `setPasswordForOAuthUser()`.
|
|
16
|
+
*
|
|
17
|
+
* Self-contained: inyecta `AuthService` y llama el endpoint directo — la app
|
|
18
|
+
* solo controla `[isOpen]` y reacciona a `(changed)` / `(dismissed)`.
|
|
19
|
+
*
|
|
20
|
+
* i18n: usa el namespace compartido `_auth` (mismas claves que `val-login`).
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```html
|
|
24
|
+
* <val-change-password-modal
|
|
25
|
+
* [isOpen]="isModalOpen()"
|
|
26
|
+
* (changed)="isModalOpen.set(false)"
|
|
27
|
+
* (dismissed)="isModalOpen.set(false)"
|
|
28
|
+
* />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare class ChangePasswordModalComponent {
|
|
32
|
+
private _isOpen;
|
|
33
|
+
/**
|
|
34
|
+
* Controla la visibilidad del modal. Lo decide el componente padre. Cada vez
|
|
35
|
+
* que pasa de cerrado a abierto se resuelve el modo (change vs set).
|
|
36
|
+
*/
|
|
37
|
+
set isOpen(value: boolean);
|
|
38
|
+
get isOpen(): boolean;
|
|
39
|
+
/** Emite al cambiar/crear la contraseña con éxito. El padre cierra el modal. */
|
|
40
|
+
changed: EventEmitter<void>;
|
|
41
|
+
/** Emite cuando el user cierra el modal (botón X o backdrop). */
|
|
42
|
+
dismissed: EventEmitter<void>;
|
|
43
|
+
private auth;
|
|
44
|
+
private toast;
|
|
45
|
+
private i18n;
|
|
46
|
+
private i18nHelper;
|
|
47
|
+
private confirmDialog;
|
|
48
|
+
private readonly _mode;
|
|
49
|
+
/** Modo actual — `loading` mientras se consulta `checkHasPassword()`. */
|
|
50
|
+
readonly mode: import("@angular/core").Signal<PasswordModalMode>;
|
|
51
|
+
private readonly _formState;
|
|
52
|
+
constructor();
|
|
53
|
+
/** Traduce una clave del namespace `_auth`. */
|
|
54
|
+
t(key: string): string;
|
|
55
|
+
readonly formProps: import("@angular/core").Signal<FormMetadata>;
|
|
56
|
+
/** Campo "nueva contraseña" — compartido por ambos modos. */
|
|
57
|
+
private newPasswordField;
|
|
58
|
+
/** Cierre iniciado por el user (X / backdrop). */
|
|
59
|
+
close(): void;
|
|
60
|
+
/** Consulta si el user ya tiene contraseña para elegir el modo del modal. */
|
|
61
|
+
private resolveMode;
|
|
62
|
+
submitHandler(event: FormSubmit): Promise<void>;
|
|
63
|
+
/** Flujo normal: el user tiene contraseña y la cambia. */
|
|
64
|
+
private handleChangePassword;
|
|
65
|
+
/**
|
|
66
|
+
* Flujo OAuth-only: el user no tiene contraseña. Antes de crearla pide
|
|
67
|
+
* confirmación explícita — es un cambio de cuenta, aunque aditivo (conserva
|
|
68
|
+
* el acceso social).
|
|
69
|
+
*/
|
|
70
|
+
private handleSetPassword;
|
|
71
|
+
/** Mapea los códigos de error del backend a mensajes del namespace `_auth`. */
|
|
72
|
+
private resolveError;
|
|
73
|
+
private showToast;
|
|
74
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChangePasswordModalComponent, never>;
|
|
75
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChangePasswordModalComponent, "val-change-password-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; }, { "changed": "changed"; "dismissed": "dismissed"; }, never, never, true, never>;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
package/lib/version.d.ts
CHANGED
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -179,6 +179,7 @@ export * from './lib/components/organisms/article/article.component';
|
|
|
179
179
|
export * from './lib/components/organisms/article/types';
|
|
180
180
|
export * from './lib/components/organisms/banner/banner.component';
|
|
181
181
|
export * from './lib/components/organisms/banner/types';
|
|
182
|
+
export * from './lib/components/organisms/change-password-modal/change-password-modal.component';
|
|
182
183
|
export * from './lib/components/organisms/cookie-banner/cookie-banner.component';
|
|
183
184
|
export * from './lib/components/organisms/cookie-banner/types';
|
|
184
185
|
export * from './lib/components/organisms/debug-console/config';
|