valtech-components 4.0.238 → 4.0.240
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/molecules/chat-composer/chat-composer.component.mjs +113 -103
- package/esm2022/lib/services/events/meta.mjs +22 -0
- package/esm2022/lib/services/pdf/pdf.service.mjs +6 -2
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/valtech-components.mjs +138 -103
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/components/atoms/text/text.component.d.ts +1 -1
- package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
- package/lib/components/molecules/chat-composer/chat-composer.component.d.ts +15 -13
- package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
- package/lib/components/molecules/load-more/load-more.component.d.ts +1 -1
- package/lib/components/organisms/article/article.component.d.ts +6 -6
- package/lib/components/organisms/chat-window/chat-window.component.d.ts +1 -1
- 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 +1 -1
- package/lib/services/events/meta.d.ts +27 -0
- package/lib/services/pdf/pdf.service.d.ts +2 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -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<"dark" | "primary" | "secondary" | "tertiary" | "success" | "warning" | "danger" | "light" | "medium">;
|
|
47
47
|
/**
|
|
48
48
|
* Computed helper for withMargin prop in template.
|
|
49
49
|
*/
|
|
@@ -11,7 +11,7 @@ export declare class TextComponent {
|
|
|
11
11
|
*/
|
|
12
12
|
displayContent: import("@angular/core").Signal<string>;
|
|
13
13
|
propsColor: import("@angular/core").Signal<import("@ionic/core").Color>;
|
|
14
|
-
propsSize: import("@angular/core").Signal<"
|
|
14
|
+
propsSize: import("@angular/core").Signal<"medium" | "small" | "large" | "xlarge">;
|
|
15
15
|
propsBold: import("@angular/core").Signal<boolean>;
|
|
16
16
|
propsProcessLinks: import("@angular/core").Signal<boolean>;
|
|
17
17
|
propsAllowPartialBold: import("@angular/core").Signal<boolean>;
|
|
@@ -38,7 +38,7 @@ export declare class UserAvatarComponent {
|
|
|
38
38
|
readonly imageUrl: import("@angular/core").Signal<string>;
|
|
39
39
|
/** Iniciales — 1-2 chars derivados de name (preferred) o email prefix. */
|
|
40
40
|
readonly initials: import("@angular/core").Signal<string>;
|
|
41
|
-
readonly sizeClass: import("@angular/core").Signal<"
|
|
41
|
+
readonly sizeClass: import("@angular/core").Signal<"medium" | "small" | "large" | "xlarge" | "xsmall">;
|
|
42
42
|
readonly shapeClass: import("@angular/core").Signal<"circle" | "square">;
|
|
43
43
|
/** Background — explicito o derivado deterministicamente del user. */
|
|
44
44
|
readonly bgColor: import("@angular/core").Signal<string>;
|
|
@@ -14,13 +14,16 @@ export interface ChatComposerSendEvent {
|
|
|
14
14
|
files: File[];
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
* val-chat-composer — barra de redacción
|
|
17
|
+
* val-chat-composer — barra de redacción estilo Notion/Claude (full custom).
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
19
|
+
* El editor es un `contenteditable` (NO ion-textarea): crece hasta un max-height,
|
|
20
|
+
* soporta pegar texto plano e imágenes del portapapeles, Enter envía / Shift+Enter
|
|
21
|
+
* salta línea. Debajo, una fila de acciones propias: adjuntar (+), mic/enviar.
|
|
22
|
+
* Los adjuntos (botón / pegar / audio grabado) se acumulan como miniaturas de
|
|
23
|
+
* PREVIEW y se mandan en UN solo evento `send {text, files}` (caption + adjuntos).
|
|
24
|
+
*
|
|
25
|
+
* Pensado para vivir en un contenedor fijo al fondo del viewport (el consumer
|
|
26
|
+
* ancla la posición). No incluye emoji picker (el teclado del sistema lo trae).
|
|
24
27
|
*/
|
|
25
28
|
export declare class ChatComposerComponent implements OnDestroy {
|
|
26
29
|
private i18n;
|
|
@@ -34,6 +37,7 @@ export declare class ChatComposerComponent implements OnDestroy {
|
|
|
34
37
|
readonly typing: import("@angular/core").OutputEmitterRef<void>;
|
|
35
38
|
readonly voice: import("@angular/core").OutputEmitterRef<void>;
|
|
36
39
|
readonly cancelReply: import("@angular/core").OutputEmitterRef<void>;
|
|
40
|
+
private readonly editableRef;
|
|
37
41
|
protected readonly body: import("@angular/core").WritableSignal<string>;
|
|
38
42
|
protected readonly pending: import("@angular/core").WritableSignal<PendingAttachment[]>;
|
|
39
43
|
private pendingId;
|
|
@@ -48,19 +52,17 @@ export declare class ChatComposerComponent implements OnDestroy {
|
|
|
48
52
|
constructor();
|
|
49
53
|
protected readonly canSend: import("@angular/core").Signal<boolean>;
|
|
50
54
|
protected readonly placeholderText: import("@angular/core").Signal<string>;
|
|
51
|
-
|
|
55
|
+
/** Lee el texto del contenteditable a la signal `body`. */
|
|
56
|
+
protected syncBody(): void;
|
|
52
57
|
protected onKeydown(event: KeyboardEvent): void;
|
|
58
|
+
/** Pegar: texto plano (sin formato) + imágenes del portapapeles. */
|
|
59
|
+
protected onPaste(event: ClipboardEvent): void;
|
|
53
60
|
protected onSend(): void;
|
|
61
|
+
private clearEditable;
|
|
54
62
|
protected onFile(event: Event): void;
|
|
55
|
-
/** Pegar imagen desde el portapapeles (captura de pantalla, copiar imagen). */
|
|
56
|
-
protected onPaste(event: ClipboardEvent): void;
|
|
57
63
|
private addPending;
|
|
58
64
|
protected removePending(id: number): void;
|
|
59
|
-
/**
|
|
60
|
-
* Emite typing como máximo 1 vez cada 2s. performance.now es seguro en runtime.
|
|
61
|
-
*/
|
|
62
65
|
private emitTypingDebounced;
|
|
63
|
-
/** Selecciona un mimeType de audio soportado por el navegador. */
|
|
64
66
|
private pickAudioMime;
|
|
65
67
|
protected startRecording(): Promise<void>;
|
|
66
68
|
/** Para la grabación y la stagea como adjunto pendiente (con preview de audio). */
|
|
@@ -41,7 +41,7 @@ export declare class FeaturesListComponent {
|
|
|
41
41
|
iconColor: string;
|
|
42
42
|
iconSize: number;
|
|
43
43
|
mode: "horizontal" | "vertical";
|
|
44
|
-
gap: "
|
|
44
|
+
gap: "medium" | "small" | "large";
|
|
45
45
|
alignment: "center" | "start";
|
|
46
46
|
imageShape: "circle" | "square";
|
|
47
47
|
maxVisible: number;
|
|
@@ -26,7 +26,7 @@ export declare class LoadMoreComponent {
|
|
|
26
26
|
readonly color: import("@angular/core").Signal<string>;
|
|
27
27
|
readonly fill: import("@angular/core").Signal<string>;
|
|
28
28
|
readonly shape: import("@angular/core").Signal<string>;
|
|
29
|
-
readonly size: import("@angular/core").Signal<"
|
|
29
|
+
readonly size: import("@angular/core").Signal<"small" | "default" | "large">;
|
|
30
30
|
readonly threshold: import("@angular/core").Signal<string>;
|
|
31
31
|
readonly label: import("@angular/core").Signal<string>;
|
|
32
32
|
private readonly _pendingComplete;
|
|
@@ -45,7 +45,7 @@ export declare class ArticleComponent implements OnInit {
|
|
|
45
45
|
getVideoElement(element: ArticleElement): ArticleVideoElement;
|
|
46
46
|
getCustomElement(element: ArticleElement): ArticleCustomElement;
|
|
47
47
|
getQuoteTextProps(element: ArticleElement): {
|
|
48
|
-
size: "
|
|
48
|
+
size: "medium" | "small" | "large" | "xlarge";
|
|
49
49
|
color: import("@ionic/core").Color;
|
|
50
50
|
content?: string;
|
|
51
51
|
bold: boolean;
|
|
@@ -61,7 +61,7 @@ export declare class ArticleComponent implements OnInit {
|
|
|
61
61
|
showQuoteMark?: boolean;
|
|
62
62
|
};
|
|
63
63
|
getHighlightTextProps(element: ArticleElement): {
|
|
64
|
-
size: "
|
|
64
|
+
size: "medium" | "small" | "large" | "xlarge";
|
|
65
65
|
color: import("@ionic/core").Color;
|
|
66
66
|
content?: string;
|
|
67
67
|
bold: boolean;
|
|
@@ -78,7 +78,7 @@ export declare class ArticleComponent implements OnInit {
|
|
|
78
78
|
actionType?: import("valtech-components").ActionType; /**
|
|
79
79
|
* Obtiene los estilos de padding para el contenedor article
|
|
80
80
|
*/
|
|
81
|
-
expand?: "
|
|
81
|
+
expand?: "block" | "full";
|
|
82
82
|
link?: string;
|
|
83
83
|
href?: string;
|
|
84
84
|
routerLink?: string | any[];
|
|
@@ -93,9 +93,9 @@ export declare class ArticleComponent implements OnInit {
|
|
|
93
93
|
contentInterpolation?: Record<string, string | number>;
|
|
94
94
|
icon?: import("valtech-components").IconMetada;
|
|
95
95
|
shape?: "round";
|
|
96
|
-
size?: "
|
|
97
|
-
fill?: "
|
|
98
|
-
type: "
|
|
96
|
+
size?: "small" | "default" | "large";
|
|
97
|
+
fill?: "solid" | "clear" | "outline" | "default";
|
|
98
|
+
type: "button" | "submit" | "reset";
|
|
99
99
|
token?: string;
|
|
100
100
|
ref?: any;
|
|
101
101
|
handler?: (value: any) => any;
|
|
@@ -50,7 +50,7 @@ export declare class ChatWindowComponent {
|
|
|
50
50
|
protected readonly replyingTo: import("@angular/core").WritableSignal<MessageReplyTo>;
|
|
51
51
|
protected readonly atBottom: import("@angular/core").WritableSignal<boolean>;
|
|
52
52
|
protected readonly hasNew: import("@angular/core").WritableSignal<boolean>;
|
|
53
|
-
protected readonly locale: import("@angular/core").Signal<"
|
|
53
|
+
protected readonly locale: import("@angular/core").Signal<"en-US" | "es-CL">;
|
|
54
54
|
constructor();
|
|
55
55
|
protected readonly rows: import("@angular/core").Signal<ChatRow[]>;
|
|
56
56
|
protected onScroll(): void;
|
|
@@ -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 | 2 | 4>;
|
|
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>;
|
|
@@ -28,7 +28,7 @@ export declare class MemberImportModalComponent implements OnInit {
|
|
|
28
28
|
/** Namespace i18n. */
|
|
29
29
|
i18nNamespace: string;
|
|
30
30
|
csv: string;
|
|
31
|
-
readonly importMode: import("@angular/core").WritableSignal<"
|
|
31
|
+
readonly importMode: import("@angular/core").WritableSignal<"file" | "paste">;
|
|
32
32
|
readonly onConflictControl: FormControl<string>;
|
|
33
33
|
readonly sendActivationControl: FormControl<boolean>;
|
|
34
34
|
readonly conflictSelectProps: import("@angular/core").Signal<Partial<InputMetadata>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contrato de metadatos de eventos de dominio (ADR-043) — espejo TS del
|
|
3
|
+
* registro Go `services/events/routes.go`. Mantener ambos en sync.
|
|
4
|
+
*
|
|
5
|
+
* El sobre `meta` viaja con una operación async para que el ruteo a flujos
|
|
6
|
+
* downstream (mailer, archiver...) se resuelva declarativamente en EventBridge.
|
|
7
|
+
*/
|
|
8
|
+
export declare const META_SCHEMA_VERSION = 1;
|
|
9
|
+
/** Intención de ruteo: QUÉ hacer con la salida, no qué servicio lo hace. */
|
|
10
|
+
export type RouteIntent = 'email' | 'archive' | 'webhook';
|
|
11
|
+
/** Set de intents válidos. Sumar uno nuevo aquí y en el registro Go. */
|
|
12
|
+
export declare const KNOWN_ROUTES: readonly RouteIntent[];
|
|
13
|
+
export declare function isKnownRoute(r: string): r is RouteIntent;
|
|
14
|
+
/** Valida que todos los tags de `routes` estén registrados. Lanza si no. */
|
|
15
|
+
export declare function validateRoutes(routes: string[] | undefined): void;
|
|
16
|
+
/**
|
|
17
|
+
* Sobre opaco que el caller declara al encolar. El productor no lo interpreta:
|
|
18
|
+
* lo persiste y lo echa en el evento de completado. `params` chico e inline si
|
|
19
|
+
* no es sensible; grande/PII por puntero ({ ref: "directives/<id>" }).
|
|
20
|
+
*/
|
|
21
|
+
export interface EventMeta {
|
|
22
|
+
schemaVersion?: number;
|
|
23
|
+
correlationId?: string;
|
|
24
|
+
origin?: string;
|
|
25
|
+
routes?: RouteIntent[];
|
|
26
|
+
params?: Record<string, unknown>;
|
|
27
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { ValtechAuthConfig } from '../auth/types';
|
|
3
3
|
import type { PdfGenerateRequest, PdfResult, PdfJob, PdfJobEnqueued } from './types';
|
|
4
|
+
import { EventMeta } from '../events/meta';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* Servicio de PDF de plataforma (ADR-042). Reutilizable por cualquier app.
|
|
@@ -35,7 +36,7 @@ export declare class PdfService {
|
|
|
35
36
|
* Lambda lo genera fuera de banda y, al completar, proyecta el estado a
|
|
36
37
|
* Firestore. Usar watchJob(jobId) para observar el resultado en tiempo real.
|
|
37
38
|
*/
|
|
38
|
-
createJob(req: PdfGenerateRequest): Observable<PdfJobEnqueued>;
|
|
39
|
+
createJob(req: PdfGenerateRequest, meta?: EventMeta): Observable<PdfJobEnqueued>;
|
|
39
40
|
/**
|
|
40
41
|
* Observa el estado de un job PDF async en tiempo real (onSnapshot del doc
|
|
41
42
|
* `apps/{appId}/orgs/{orgId}/pdf-jobs/{jobId}`). Emite null si no hay org
|
package/lib/version.d.ts
CHANGED
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -354,6 +354,7 @@ export * from './lib/components/templates/auth-background/types';
|
|
|
354
354
|
export * from './lib/services/download.service';
|
|
355
355
|
export * from './lib/services/pdf/pdf.service';
|
|
356
356
|
export * from './lib/services/pdf/types';
|
|
357
|
+
export * from './lib/services/events/meta';
|
|
357
358
|
export * from './lib/services/icons.service';
|
|
358
359
|
export * from './lib/services/in-app-browser.service';
|
|
359
360
|
export * from './lib/services/link-processor.service';
|