valtech-components 2.0.1007 → 2.0.1008

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.
Files changed (43) hide show
  1. package/esm2022/lib/components/molecules/comment/comment.component.mjs +3 -3
  2. package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +3 -141
  3. package/esm2022/lib/components/organisms/organization-view/organization-view.i18n.mjs +1 -21
  4. package/esm2022/lib/components/organisms/profile-view/profile-view.component.mjs +6 -16
  5. package/esm2022/lib/components/templates/auth-background/auth-background.component.mjs +19 -17
  6. package/esm2022/lib/services/auth/auth.service.mjs +1 -14
  7. package/esm2022/lib/services/auth/types.mjs +1 -1
  8. package/esm2022/lib/services/org/org.service.mjs +1 -8
  9. package/esm2022/lib/services/org/types.mjs +1 -1
  10. package/esm2022/lib/services/preferences/preferences.service.mjs +36 -11
  11. package/esm2022/lib/version.mjs +2 -2
  12. package/esm2022/public-api.mjs +1 -7
  13. package/fesm2022/valtech-components.mjs +370 -1905
  14. package/fesm2022/valtech-components.mjs.map +1 -1
  15. package/lib/components/organisms/organization-view/organization-view.component.d.ts +0 -6
  16. package/lib/components/templates/auth-background/auth-background.component.d.ts +2 -2
  17. package/lib/services/auth/auth.service.d.ts +1 -7
  18. package/lib/services/auth/types.d.ts +0 -23
  19. package/lib/services/org/org.service.d.ts +1 -6
  20. package/lib/services/org/types.d.ts +0 -30
  21. package/lib/version.d.ts +1 -1
  22. package/package.json +1 -1
  23. package/public-api.d.ts +1 -8
  24. package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +0 -436
  25. package/esm2022/lib/components/organisms/about-view/about-view.i18n.mjs +0 -61
  26. package/esm2022/lib/components/organisms/about-view/about.routes.mjs +0 -36
  27. package/esm2022/lib/components/organisms/about-view/types.mjs +0 -19
  28. package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.component.mjs +0 -385
  29. package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.i18n.mjs +0 -63
  30. package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +0 -313
  31. package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.i18n.mjs +0 -63
  32. package/esm2022/lib/services/apikeys/api-keys.service.mjs +0 -46
  33. package/esm2022/lib/services/apikeys/types.mjs +0 -7
  34. package/lib/components/organisms/about-view/about-view.component.d.ts +0 -88
  35. package/lib/components/organisms/about-view/about-view.i18n.d.ts +0 -14
  36. package/lib/components/organisms/about-view/about.routes.d.ts +0 -31
  37. package/lib/components/organisms/about-view/types.d.ts +0 -76
  38. package/lib/components/organisms/api-keys-modal/api-keys-modal.component.d.ts +0 -44
  39. package/lib/components/organisms/api-keys-modal/api-keys-modal.i18n.d.ts +0 -6
  40. package/lib/components/organisms/member-import-modal/member-import-modal.component.d.ts +0 -47
  41. package/lib/components/organisms/member-import-modal/member-import-modal.i18n.d.ts +0 -6
  42. package/lib/services/apikeys/api-keys.service.d.ts +0 -25
  43. package/lib/services/apikeys/types.d.ts +0 -46
@@ -1,76 +0,0 @@
1
- /**
2
- * Configuración acotada de `val-about-view` (object-first). La vista About es
3
- * app-specific por naturaleza (logo, nombre, versión, redes, acciones extra),
4
- * así que lo propio de cada app se parametriza como **DATA de config** — NO como
5
- * slots arbitrarios (ADR-021: una vista full-feature no abre slots; si falta
6
- * algo, se promueve un nuevo punto de extensión).
7
- *
8
- * Ejes de variación permitidos:
9
- * - **branding** — `brand.name` / `brand.logoSrc` (qué muestra el HERO).
10
- * - **versión** — `version` la pasa el consumer (la lib NO puede importar el
11
- * `version.ts` de la app). Si no se pasa, se oculta el pill de versión.
12
- * - **redes** — `socialLinks`; si está vacío se oculta la sección social.
13
- * - **rating** — `showRating` + `ratingEntityId` + `onRated`.
14
- * - **acciones extra** — `actions[]` genéricas que el consumer agrega junto a
15
- * la acción de rating built-in.
16
- * - **branding i18n** — `i18nNamespace` (default `'Settings.About'`).
17
- */
18
- /** Marca a mostrar en el HERO (logo + nombre). */
19
- export interface AboutBrand {
20
- /** Nombre de la marca. Default `'Valtech'`. */
21
- name?: string;
22
- /** Ruta del logo. Default `'assets/images/main-icon.png'`. */
23
- logoSrc?: string;
24
- }
25
- /**
26
- * Acción genérica extra de la sección "Acciones" (además del rating built-in).
27
- * El consumer la modela completa (label/descripción/ícono + handler). Las
28
- * acciones share/faq de showcase NO son genéricas (Web Share API y ruta interna
29
- * de la app), por eso se exponen como `actions` para que cada app aporte las
30
- * suyas en vez de hardcodearlas en la lib.
31
- */
32
- export interface AboutAction {
33
- /** Texto principal de la action-card. */
34
- label: string;
35
- /** Texto secundario (opcional). */
36
- description?: string;
37
- /** Ionicon name (ej. `'share-social-outline'`). */
38
- icon?: string;
39
- /** Handler del click. */
40
- onClick: () => void;
41
- }
42
- export interface AboutViewConfig {
43
- /** Marca del HERO (logo + nombre). Default Valtech. */
44
- brand?: AboutBrand;
45
- /**
46
- * Versión a mostrar en el pill (el consumer pasa su `APP_VERSION`). La lib NO
47
- * importa el `version.ts` de la app. Si no se pasa, el pill de versión se
48
- * oculta.
49
- */
50
- version?: string;
51
- /**
52
- * Redes sociales. Si está vacío (o no se pasa), la sección social se oculta.
53
- * `icon` = ionicon name; `url` = destino; `label` = aria-label.
54
- */
55
- socialLinks?: {
56
- icon: string;
57
- url: string;
58
- label: string;
59
- }[];
60
- /** Muestra la action-card de rating built-in. Default `true`. */
61
- showRating?: boolean;
62
- /**
63
- * `entityId` del `entityRef` que recibe `val-content-reaction` al calificar
64
- * (el `entityType` es siempre `'app'`). Default `'experience'`.
65
- */
66
- ratingEntityId?: string;
67
- /** Acciones genéricas extra de la sección "Acciones". Default `[]`. */
68
- actions?: AboutAction[];
69
- /**
70
- * Namespace i18n con el que la vista resuelve sus textos.
71
- * Default `'Settings.About'`.
72
- */
73
- i18nNamespace?: string;
74
- /** Hook tras enviar la calificación (rating) desde `val-content-reaction`. */
75
- onRated?: () => void;
76
- }
@@ -1,44 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { ClientApiKey, ClientApiKeyWithSecret } from '../../../services/apikeys/types';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * `val-api-keys-modal` — gestión de Client API Keys org-scopeadas (ADR-023 fase 6).
6
- *
7
- * Lista las keys de la org, permite crear (mostrando el secreto UNA vez con copia)
8
- * y revocar. Pensado para habilitar integraciones M2M del import de miembros, pero
9
- * sirve a cualquier permiso del catálogo. Header canónico (Regla #5).
10
- */
11
- export declare class ApiKeysModalComponent implements OnInit {
12
- private i18n;
13
- private apiKeys;
14
- /** Inyectado por `ModalService.open`. */
15
- _modalRef?: {
16
- dismiss: (data?: unknown, role?: string) => void;
17
- };
18
- /** Namespace i18n. */
19
- i18nNamespace: string;
20
- readonly keys: import("@angular/core").WritableSignal<ClientApiKey[]>;
21
- readonly availablePermissions: import("@angular/core").WritableSignal<string[]>;
22
- readonly loading: import("@angular/core").WritableSignal<boolean>;
23
- readonly showCreate: import("@angular/core").WritableSignal<boolean>;
24
- readonly submitting: import("@angular/core").WritableSignal<boolean>;
25
- readonly errorMsg: import("@angular/core").WritableSignal<string>;
26
- readonly secret: import("@angular/core").WritableSignal<ClientApiKeyWithSecret>;
27
- readonly copied: import("@angular/core").WritableSignal<boolean>;
28
- name: string;
29
- expiresInDays: number | null;
30
- readonly selectedPerms: import("@angular/core").WritableSignal<Set<string>>;
31
- constructor();
32
- ngOnInit(): void;
33
- private refresh;
34
- openCreate(): void;
35
- togglePerm(perm: string, ev: Event): void;
36
- submit(): void;
37
- revoke(key: ClientApiKey): void;
38
- copy(secret: string): Promise<void>;
39
- finishSecret(): void;
40
- dismiss(): void;
41
- t(key: string): string;
42
- static ɵfac: i0.ɵɵFactoryDeclaration<ApiKeysModalComponent, never>;
43
- static ɵcmp: i0.ɵɵComponentDeclaration<ApiKeysModalComponent, "val-api-keys-modal", never, { "_modalRef": { "alias": "_modalRef"; "required": false; }; "i18nNamespace": { "alias": "i18nNamespace"; "required": false; }; }, {}, never, never, true, never>;
44
- }
@@ -1,6 +0,0 @@
1
- import { LanguagesContent } from '../../../services/i18n/types';
2
- /**
3
- * Defaults i18n (es/en) embebidos en `val-api-keys-modal` (ADR-023).
4
- * Auto-registrados si el consumer no proveyó el namespace `Settings.ApiKeysModal`.
5
- */
6
- export declare const API_KEYS_MODAL_I18N: LanguagesContent;
@@ -1,47 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { ImportMembersResponse, ImportOnConflict, ImportRowResult } from '../../../services/org/types';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * `val-member-import-modal` — panel de carga masiva de miembros (ADR-023 fase 6).
6
- *
7
- * El admin pega un CSV (`email,nombre,rol`); el modal lo parsea a filas y llama
8
- * `OrgService.importMembers`. Muestra el resultado por-fila (partial success):
9
- * `created` / `assigned` / `skipped` / `error`. Header canónico (Regla #5).
10
- *
11
- * Auto-registra defaults i18n (es/en) en `Settings.ImportModal`.
12
- */
13
- export declare class MemberImportModalComponent implements OnInit {
14
- private i18n;
15
- private orgService;
16
- /** Org destino del import. */
17
- orgId: string;
18
- /** Nombres de roles disponibles (para el hint). Opcional. */
19
- availableRoles: string[];
20
- /** Callback tras una importación exitosa (≥1 fila procesada) — refresca la lista. */
21
- onSuccess?: () => void;
22
- /** Inyectado por `ModalService.open`. */
23
- _modalRef?: {
24
- dismiss: (data?: unknown, role?: string) => void;
25
- };
26
- /** Namespace i18n. */
27
- i18nNamespace: string;
28
- csv: string;
29
- onConflict: ImportOnConflict;
30
- sendActivation: boolean;
31
- readonly submitting: import("@angular/core").WritableSignal<boolean>;
32
- readonly errorMsg: import("@angular/core").WritableSignal<string>;
33
- readonly results: import("@angular/core").WritableSignal<ImportMembersResponse>;
34
- readonly rolesHint: import("@angular/core").Signal<string>;
35
- readonly summaryLabel: import("@angular/core").Signal<string>;
36
- constructor();
37
- ngOnInit(): void;
38
- /** Parsea el CSV pegado a filas {email,name,roleName}. Tolera header. */
39
- private parseCsv;
40
- submit(): void;
41
- statusLabel(r: ImportRowResult): string;
42
- reset(): void;
43
- dismiss(): void;
44
- t(key: string): string;
45
- static ɵfac: i0.ɵɵFactoryDeclaration<MemberImportModalComponent, never>;
46
- static ɵcmp: i0.ɵɵComponentDeclaration<MemberImportModalComponent, "val-member-import-modal", never, { "orgId": { "alias": "orgId"; "required": false; }; "availableRoles": { "alias": "availableRoles"; "required": false; }; "onSuccess": { "alias": "onSuccess"; "required": false; }; "_modalRef": { "alias": "_modalRef"; "required": false; }; "i18nNamespace": { "alias": "i18nNamespace"; "required": false; }; }, {}, never, never, true, never>;
47
- }
@@ -1,6 +0,0 @@
1
- import { LanguagesContent } from '../../../services/i18n/types';
2
- /**
3
- * Defaults i18n (es/en) embebidos en `val-member-import-modal` (ADR-023).
4
- * Auto-registrados si el consumer no proveyó el namespace `Settings.ImportModal`.
5
- */
6
- export declare const MEMBER_IMPORT_MODAL_I18N: LanguagesContent;
@@ -1,25 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import { ValtechAuthConfig } from '../auth/types';
4
- import { ClientApiKey, CreateApiKeyRequest, CreateApiKeyResponse, RevokeApiKeyResponse } from './types';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Cliente HTTP de Client API Keys org-scopeadas (ADR-023). La org activa se
8
- * resuelve en backend desde el JWT, así que el path no la incluye.
9
- */
10
- export declare class ApiKeyService {
11
- private config;
12
- private http;
13
- constructor(config: ValtechAuthConfig, http: HttpClient);
14
- private get baseUrl();
15
- /** Lista las API keys de la org activa. */
16
- list(): Observable<ClientApiKey[]>;
17
- /** Crea una API key. La respuesta incluye el secreto (se muestra UNA vez). */
18
- create(req: CreateApiKeyRequest): Observable<CreateApiKeyResponse>;
19
- /** Revoca (elimina) una API key por id. */
20
- revoke(keyId: string): Observable<RevokeApiKeyResponse>;
21
- /** Catálogo de permisos asignables a una key. */
22
- availablePermissions(): Observable<string[]>;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<ApiKeyService, never>;
24
- static ɵprov: i0.ɵɵInjectableDeclaration<ApiKeyService>;
25
- }
@@ -1,46 +0,0 @@
1
- /**
2
- * Tipos de Client API Keys org-scopeadas (ADR-023). Contrato espejo de
3
- * `lambdas/org` `/org/api-keys/*`. El orgID se resuelve del JWT (ActiveOrgID),
4
- * no va en el path.
5
- */
6
- export interface ClientApiKey {
7
- keyId: string;
8
- name: string;
9
- organizationId: string;
10
- status: string;
11
- permissions: string[];
12
- rateLimit?: number;
13
- expiresAt?: string;
14
- allowedIps?: string[];
15
- createdBy: string;
16
- createdAt: string;
17
- lastUsedAt?: string;
18
- }
19
- /** Solo en la respuesta de creación: el secreto se muestra UNA vez. */
20
- export interface ClientApiKeyWithSecret extends ClientApiKey {
21
- secret: string;
22
- }
23
- export interface CreateApiKeyRequest {
24
- name: string;
25
- permissions: string[];
26
- rateLimit?: number;
27
- expiresInDays?: number;
28
- allowedIps?: string[];
29
- }
30
- export interface CreateApiKeyResponse {
31
- operationId: string;
32
- key: ClientApiKeyWithSecret;
33
- }
34
- export interface ListApiKeysResponse {
35
- operationId: string;
36
- keys: ClientApiKey[];
37
- nextToken?: string;
38
- }
39
- export interface AvailablePermissionsResponse {
40
- operationId: string;
41
- permissions: string[];
42
- }
43
- export interface RevokeApiKeyResponse {
44
- operationId: string;
45
- message: string;
46
- }