valtech-components 4.0.226 → 4.0.228

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 (27) hide show
  1. package/esm2022/lib/components/molecules/chat-input/chat-input.component.mjs +9 -1
  2. package/esm2022/lib/components/molecules/message-bubble/message-bubble.component.mjs +191 -259
  3. package/esm2022/lib/components/molecules/typing-indicator/typing-indicator.component.mjs +12 -11
  4. package/esm2022/lib/components/organisms/chat-window/chat-window.component.mjs +203 -216
  5. package/esm2022/lib/components/organisms/thread-panel/thread-panel.component.mjs +10 -10
  6. package/esm2022/lib/services/chat/conversation.service.mjs +11 -23
  7. package/esm2022/lib/services/chat/types.mjs +1 -1
  8. package/esm2022/lib/services/i18n/default-content.mjs +1 -5
  9. package/esm2022/lib/shared/utils/datetime.mjs +1 -54
  10. package/esm2022/lib/version.mjs +2 -2
  11. package/esm2022/public-api.mjs +2 -4
  12. package/fesm2022/valtech-components.mjs +425 -898
  13. package/fesm2022/valtech-components.mjs.map +1 -1
  14. package/lib/components/molecules/message-bubble/message-bubble.component.d.ts +32 -33
  15. package/lib/components/molecules/typing-indicator/typing-indicator.component.d.ts +4 -5
  16. package/lib/components/organisms/chat-window/chat-window.component.d.ts +56 -52
  17. package/lib/services/chat/conversation.service.d.ts +2 -7
  18. package/lib/services/chat/types.d.ts +52 -86
  19. package/lib/shared/utils/datetime.d.ts +0 -19
  20. package/lib/version.d.ts +1 -1
  21. package/package.json +1 -1
  22. package/public-api.d.ts +1 -3
  23. package/src/lib/services/firebase/firebase-messaging-sw.js +125 -70
  24. package/esm2022/lib/components/molecules/chat-composer/chat-composer.component.mjs +0 -238
  25. package/esm2022/lib/components/molecules/conversation-list-item/conversation-list-item.component.mjs +0 -108
  26. package/lib/components/molecules/chat-composer/chat-composer.component.d.ts +0 -46
  27. package/lib/components/molecules/conversation-list-item/conversation-list-item.component.d.ts +0 -30
@@ -1,46 +0,0 @@
1
- import { MessageReplyTo } from '../../../services/chat/types';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * val-chat-composer — barra de redacción de chat moderna (signal inputs).
5
- *
6
- * Pill con: adjuntar (+), textarea auto-grow, emoji (fila rápida) y mic/enviar
7
- * (mic cuando está vacío, enviar cuando hay texto — patrón WhatsApp/Telegram).
8
- * Muestra una barra de contexto "respondiendo a" cuando `replyingTo` está seteado.
9
- * `typing` se emite con debounce (máx. 1 vez cada 2s) para no spamear writes.
10
- */
11
- export declare class ChatComposerComponent {
12
- private i18n;
13
- readonly placeholder: import("@angular/core").InputSignal<string>;
14
- readonly disabled: import("@angular/core").InputSignal<boolean>;
15
- readonly maxLength: import("@angular/core").InputSignal<number>;
16
- readonly replyingTo: import("@angular/core").InputSignal<MessageReplyTo>;
17
- readonly showAttach: import("@angular/core").InputSignal<boolean>;
18
- readonly showEmoji: import("@angular/core").InputSignal<boolean>;
19
- readonly showMic: import("@angular/core").InputSignal<boolean>;
20
- readonly send: import("@angular/core").OutputEmitterRef<string>;
21
- readonly typing: import("@angular/core").OutputEmitterRef<void>;
22
- readonly attach: import("@angular/core").OutputEmitterRef<File>;
23
- readonly voice: import("@angular/core").OutputEmitterRef<void>;
24
- readonly cancelReply: import("@angular/core").OutputEmitterRef<void>;
25
- protected readonly body: import("@angular/core").WritableSignal<string>;
26
- protected readonly emojiOpen: import("@angular/core").WritableSignal<boolean>;
27
- protected readonly quickEmojis: string[];
28
- private lastTypingEmit;
29
- constructor();
30
- protected readonly canSend: import("@angular/core").Signal<boolean>;
31
- protected readonly placeholderText: import("@angular/core").Signal<string>;
32
- protected onInput(event: Event): void;
33
- protected onKeydown(event: KeyboardEvent): void;
34
- protected onSend(): void;
35
- protected toggleEmoji(): void;
36
- protected insertEmoji(emoji: string): void;
37
- protected onFile(event: Event): void;
38
- /**
39
- * Emite typing como máximo 1 vez cada 2s. No usa Date.now() directo en plantillas
40
- * de workflow; aquí estamos en runtime de navegador, performance.now es seguro.
41
- */
42
- private emitTypingDebounced;
43
- t(key: string): string;
44
- static ɵfac: i0.ɵɵFactoryDeclaration<ChatComposerComponent, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<ChatComposerComponent, "val-chat-composer", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "replyingTo": { "alias": "replyingTo"; "required": false; "isSignal": true; }; "showAttach": { "alias": "showAttach"; "required": false; "isSignal": true; }; "showEmoji": { "alias": "showEmoji"; "required": false; "isSignal": true; }; "showMic": { "alias": "showMic"; "required": false; "isSignal": true; }; }, { "send": "send"; "typing": "typing"; "attach": "attach"; "voice": "voice"; "cancelReply": "cancelReply"; }, never, never, true, never>;
46
- }
@@ -1,30 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- /**
3
- * val-conversation-list-item — fila de lista de conversaciones estilo
4
- * Telegram/WhatsApp: avatar (imagen o iniciales), nombre + hora relativa,
5
- * preview del último mensaje + badge de no-leídos. Signal inputs, dark-safe.
6
- *
7
- * @example
8
- * <val-conversation-list-item
9
- * [name]="conv.name"
10
- * [lastMessage]="conv.lastMsgPreview"
11
- * [timestamp]="conv.lastMsgAt"
12
- * [unreadCount]="conv.unread"
13
- * (select)="open(conv.convId)" />
14
- */
15
- export declare class ConversationListItemComponent {
16
- private i18n;
17
- readonly name: import("@angular/core").InputSignal<string>;
18
- readonly avatarUrl: import("@angular/core").InputSignal<string>;
19
- readonly lastMessage: import("@angular/core").InputSignal<string>;
20
- readonly timestamp: import("@angular/core").InputSignal<string | Date>;
21
- readonly unreadCount: import("@angular/core").InputSignal<number>;
22
- readonly locale: import("@angular/core").InputSignal<string>;
23
- readonly select: import("@angular/core").OutputEmitterRef<void>;
24
- constructor();
25
- protected readonly initials: import("@angular/core").Signal<string>;
26
- protected readonly timeLabel: import("@angular/core").Signal<string>;
27
- protected emptyText(): string;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<ConversationListItemComponent, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<ConversationListItemComponent, "val-conversation-list-item", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "avatarUrl": { "alias": "avatarUrl"; "required": false; "isSignal": true; }; "lastMessage": { "alias": "lastMessage"; "required": false; "isSignal": true; }; "timestamp": { "alias": "timestamp"; "required": false; "isSignal": true; }; "unreadCount": { "alias": "unreadCount"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, never, true, never>;
30
- }