valtech-components 4.0.13 → 4.0.15
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/invite-member-modal/invite-member-modal.component.mjs +3 -9
- package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +159 -66
- package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.i18n.mjs +17 -9
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +2 -2
- package/esm2022/lib/services/app-version/app-version.service.mjs +10 -4
- package/esm2022/lib/services/app-version/config.mjs +6 -1
- package/esm2022/lib/services/app-version/index.mjs +2 -2
- package/esm2022/lib/services/app-version/types.mjs +1 -1
- package/esm2022/lib/services/org/types.mjs +9 -2
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/valtech-components.mjs +196 -84
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
- package/lib/components/organisms/article/article.component.d.ts +4 -4
- package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
- package/lib/components/organisms/member-import-modal/member-import-modal.component.d.ts +5 -3
- package/lib/services/app-version/app-version.service.d.ts +4 -2
- package/lib/services/app-version/config.d.ts +6 -1
- package/lib/services/app-version/index.d.ts +1 -1
- package/lib/services/app-version/types.d.ts +20 -0
- package/lib/services/org/types.d.ts +12 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/src/lib/components/styles/overrides.scss +8 -0
|
@@ -43,7 +43,7 @@ export declare class RightsFooterComponent {
|
|
|
43
43
|
/**
|
|
44
44
|
* Computed helper for color prop in template.
|
|
45
45
|
*/
|
|
46
|
-
propsColor: import("@angular/core").Signal<"
|
|
46
|
+
propsColor: import("@angular/core").Signal<"primary" | "secondary" | "tertiary" | "success" | "warning" | "danger" | "light" | "medium" | "dark">;
|
|
47
47
|
/**
|
|
48
48
|
* Computed helper for withMargin prop in template.
|
|
49
49
|
*/
|
|
@@ -42,7 +42,7 @@ export declare class FeaturesListComponent {
|
|
|
42
42
|
iconSize: number;
|
|
43
43
|
mode: "horizontal" | "vertical";
|
|
44
44
|
gap: "small" | "medium" | "large";
|
|
45
|
-
alignment: "
|
|
45
|
+
alignment: "start" | "center";
|
|
46
46
|
imageShape: "circle" | "square";
|
|
47
47
|
maxVisible: number;
|
|
48
48
|
showMoreLabel?: string;
|
|
@@ -76,7 +76,7 @@ export declare class ArticleComponent implements OnInit {
|
|
|
76
76
|
getHighlightColor(element: ArticleElement): string;
|
|
77
77
|
getButtonProps(element: ArticleElement): {
|
|
78
78
|
actionType?: import("valtech-components").ActionType;
|
|
79
|
-
expand?: "
|
|
79
|
+
expand?: "block" | "full";
|
|
80
80
|
link?: string;
|
|
81
81
|
href?: string;
|
|
82
82
|
routerLink?: string | any[];
|
|
@@ -91,9 +91,9 @@ export declare class ArticleComponent implements OnInit {
|
|
|
91
91
|
contentInterpolation?: Record<string, string | number>;
|
|
92
92
|
icon?: import("valtech-components").IconMetada;
|
|
93
93
|
shape?: "round";
|
|
94
|
-
size?: "
|
|
95
|
-
fill?: "
|
|
96
|
-
type: "
|
|
94
|
+
size?: "small" | "default" | "large";
|
|
95
|
+
fill?: "outline" | "clear" | "solid" | "default";
|
|
96
|
+
type: "submit" | "button" | "reset";
|
|
97
97
|
token?: string;
|
|
98
98
|
ref?: any;
|
|
99
99
|
handler?: (value: any) => any;
|
|
@@ -4,7 +4,7 @@ export declare class LandingStepsComponent {
|
|
|
4
4
|
private readonly props_;
|
|
5
5
|
set props(v: LandingStepsMetadata);
|
|
6
6
|
readonly p: import("@angular/core").Signal<LandingStepsMetadata>;
|
|
7
|
-
readonly cols: import("@angular/core").Signal<
|
|
7
|
+
readonly cols: import("@angular/core").Signal<3 | 4 | 2>;
|
|
8
8
|
readonly accentColor: import("@angular/core").Signal<string>;
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<LandingStepsComponent, never>;
|
|
10
10
|
static ɵcmp: i0.ɵɵComponentDeclaration<LandingStepsComponent, "val-landing-steps", never, { "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
3
|
import { InputMetadata } from '../../types';
|
|
4
|
-
import { ImportMembersResponse, ImportRowResult } from '../../../services/org/types';
|
|
4
|
+
import { ImportMembersResponse, ImportRowResult, OrgRole } from '../../../services/org/types';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* `val-member-import-modal` — panel de carga masiva de miembros (ADR-023 fase 6).
|
|
@@ -18,7 +18,7 @@ export declare class MemberImportModalComponent implements OnInit {
|
|
|
18
18
|
/** Org destino del import. */
|
|
19
19
|
orgId: string;
|
|
20
20
|
/** Nombres de roles disponibles (para el hint). Opcional. */
|
|
21
|
-
availableRoles:
|
|
21
|
+
availableRoles: OrgRole[];
|
|
22
22
|
/** Callback tras una importación exitosa (≥1 fila procesada) — refresca la lista. */
|
|
23
23
|
onSuccess?: () => void;
|
|
24
24
|
/** Inyectado por `ModalService.open`. */
|
|
@@ -28,9 +28,11 @@ export declare class MemberImportModalComponent implements OnInit {
|
|
|
28
28
|
/** Namespace i18n. */
|
|
29
29
|
i18nNamespace: string;
|
|
30
30
|
csv: string;
|
|
31
|
-
|
|
31
|
+
readonly importMode: import("@angular/core").WritableSignal<"file" | "paste">;
|
|
32
32
|
readonly onConflictControl: FormControl<string>;
|
|
33
|
+
readonly sendActivationControl: FormControl<boolean>;
|
|
33
34
|
readonly conflictSelectProps: import("@angular/core").Signal<Partial<InputMetadata>>;
|
|
35
|
+
readonly sendActivationProps: import("@angular/core").Signal<InputMetadata>;
|
|
34
36
|
readonly submitting: import("@angular/core").WritableSignal<boolean>;
|
|
35
37
|
readonly errorMsg: import("@angular/core").WritableSignal<string>;
|
|
36
38
|
readonly results: import("@angular/core").WritableSignal<ImportMembersResponse>;
|
|
@@ -7,6 +7,8 @@ export declare class AppVersionService {
|
|
|
7
7
|
/** AppConfigService es opcional: la app puede no wirearlo. */
|
|
8
8
|
private readonly appConfig;
|
|
9
9
|
private readonly serviceConfig;
|
|
10
|
+
/** Plugin nativo opcional: provisto por apps Capacitor para Play Store / App Store. */
|
|
11
|
+
private readonly platformPlugin;
|
|
10
12
|
private readonly document;
|
|
11
13
|
private readonly destroyRef;
|
|
12
14
|
/** True cuando el SW reportó un bundle nuevo listo (`VERSION_READY`). */
|
|
@@ -40,8 +42,8 @@ export declare class AppVersionService {
|
|
|
40
42
|
/**
|
|
41
43
|
* Aplica la actualización pendiente.
|
|
42
44
|
*
|
|
43
|
-
* Si
|
|
44
|
-
*
|
|
45
|
+
* Si hay un plugin de plataforma (nativo/Capacitor), delega en él (ej. Play Store).
|
|
46
|
+
* Si no, activa la versión SW si está disponible y recarga la página.
|
|
45
47
|
*/
|
|
46
48
|
applyUpdate(): Promise<void>;
|
|
47
49
|
/**
|
|
@@ -4,11 +4,16 @@
|
|
|
4
4
|
* Provider e injection token para el servicio de verificación de versión.
|
|
5
5
|
*/
|
|
6
6
|
import { EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
7
|
-
import { AppVersionServiceConfig } from './types';
|
|
7
|
+
import { AppVersionPlatformPlugin, AppVersionServiceConfig } from './types';
|
|
8
8
|
/**
|
|
9
9
|
* Token de inyección para la configuración de AppVersionService.
|
|
10
10
|
*/
|
|
11
11
|
export declare const VALTECH_APP_VERSION: InjectionToken<Required<AppVersionServiceConfig>>;
|
|
12
|
+
/**
|
|
13
|
+
* Token de inyección para el plugin de plataforma nativa.
|
|
14
|
+
* Provisto opcionalmente por apps que corren en iOS/Android vía Capacitor.
|
|
15
|
+
*/
|
|
16
|
+
export declare const APP_VERSION_PLATFORM_PLUGIN: InjectionToken<AppVersionPlatformPlugin>;
|
|
12
17
|
/**
|
|
13
18
|
* Provee el servicio de verificación de versión a la aplicación Angular.
|
|
14
19
|
*
|
|
@@ -19,5 +19,5 @@
|
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
21
|
export * from './types';
|
|
22
|
-
export { VALTECH_APP_VERSION, provideValtechAppVersion } from './config';
|
|
22
|
+
export { VALTECH_APP_VERSION, APP_VERSION_PLATFORM_PLUGIN, provideValtechAppVersion } from './config';
|
|
23
23
|
export { AppVersionService } from './app-version.service';
|
|
@@ -33,3 +33,23 @@ export declare const DEFAULT_CHECK_INTERVAL_MS: number;
|
|
|
33
33
|
* Configuración por defecto del servicio.
|
|
34
34
|
*/
|
|
35
35
|
export declare const DEFAULT_APP_VERSION_SERVICE_CONFIG: Required<AppVersionServiceConfig>;
|
|
36
|
+
/**
|
|
37
|
+
* Plugin de plataforma para comportamiento nativo de actualizaciones.
|
|
38
|
+
*
|
|
39
|
+
* Implementado por la app consumidora y provisto via `APP_VERSION_PLATFORM_PLUGIN`.
|
|
40
|
+
* Permite redirigir al Play Store / App Store en lugar de recargar la página.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* // android-update.plugin.ts
|
|
45
|
+
* @Injectable({ providedIn: 'root' })
|
|
46
|
+
* export class AndroidUpdatePlugin implements AppVersionPlatformPlugin {
|
|
47
|
+
* async applyUpdate(): Promise<void> {
|
|
48
|
+
* window.open('https://play.google.com/store/apps/details?id=com.myapp', '_system');
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export interface AppVersionPlatformPlugin {
|
|
54
|
+
applyUpdate(): Promise<void>;
|
|
55
|
+
}
|
|
@@ -83,7 +83,18 @@ export interface OrgRole {
|
|
|
83
83
|
description?: string;
|
|
84
84
|
permissions?: string[];
|
|
85
85
|
isSystem?: boolean;
|
|
86
|
-
|
|
86
|
+
/** Nombre legible por idioma. Backend autoritativo (ADR-024). nil para roles custom. */
|
|
87
|
+
displayName?: {
|
|
88
|
+
es?: string;
|
|
89
|
+
en?: string;
|
|
90
|
+
[lang: string]: string | undefined;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Resuelve el label legible de un rol para el idioma dado.
|
|
95
|
+
* Fallback: displayName en otro idioma → role.name (snake_case).
|
|
96
|
+
*/
|
|
97
|
+
export declare function resolveRoleLabel(role: OrgRole, lang: string): string;
|
|
87
98
|
export interface ListOrgRolesResponse {
|
|
88
99
|
operationId: string;
|
|
89
100
|
roles: OrgRole[];
|
package/lib/version.d.ts
CHANGED
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -360,7 +360,7 @@ export * from './lib/services/legal-link/legal-link.service';
|
|
|
360
360
|
export * from './lib/services/firebase';
|
|
361
361
|
export * from './lib/services/auth';
|
|
362
362
|
export { OrgService } from './lib/services/org/org.service';
|
|
363
|
-
export type { Organization, OrgType, OrgPlan, CreateOrgRequest, UpdateOrgRequest, InviteUserRequest, InviteUserResponse, LeaveOrgResponse, ListMyOrgsResponse, OrgResponse, OrgMember, ListOrgMembersResponse, PendingInvitation, ListPendingInvitationsResponse, AcceptInvitationResponse, OrgRole, ListOrgRolesResponse, ChangeMemberRoleRequest, ChangeMemberRoleResponse, ImportUserRow, ImportOnConflict, ImportMembersRequest, ImportRowStatus, ImportRowResult, ImportSummary, ImportMembersResponse, } from './lib/services/org/types';
|
|
363
|
+
export type { Organization, OrgType, OrgPlan, CreateOrgRequest, UpdateOrgRequest, InviteUserRequest, InviteUserResponse, LeaveOrgResponse, ListMyOrgsResponse, OrgResponse, OrgMember, ListOrgMembersResponse, PendingInvitation, ListPendingInvitationsResponse, AcceptInvitationResponse, OrgRole, resolveRoleLabel, ListOrgRolesResponse, ChangeMemberRoleRequest, ChangeMemberRoleResponse, ImportUserRow, ImportOnConflict, ImportMembersRequest, ImportRowStatus, ImportRowResult, ImportSummary, ImportMembersResponse, } from './lib/services/org/types';
|
|
364
364
|
export { ApiKeyService } from './lib/services/apikeys/api-keys.service';
|
|
365
365
|
export type { ClientApiKey, ClientApiKeyWithSecret, CreateApiKeyRequest, CreateApiKeyResponse, ListApiKeysResponse, AvailablePermissionsResponse, RevokeApiKeyResponse, } from './lib/services/apikeys/types';
|
|
366
366
|
export * from './lib/services/i18n';
|
|
@@ -265,6 +265,14 @@ ion-modal.modal-sheet ion-header ion-toolbar:last-of-type {
|
|
|
265
265
|
padding-bottom: 0.5rem !important;
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
+
/* Sheet modals (breakpoints): ion-content calcula su altura contra el viewport
|
|
269
|
+
completo, no contra la altura restringida del sheet → el usuario no puede
|
|
270
|
+
scrollear. --overflow: hidden auto fuerza scroll vertical en todos los modales
|
|
271
|
+
de las apps del factory. */
|
|
272
|
+
ion-modal ion-content {
|
|
273
|
+
--overflow: hidden auto;
|
|
274
|
+
}
|
|
275
|
+
|
|
268
276
|
// Estilos para enlaces procesados automáticamente
|
|
269
277
|
.processed-link {
|
|
270
278
|
color: var(--ion-color-primary, #3880ff);
|