@trixwell/ngx-parl
Version:
Highly customizable Angular Material chat component
81 lines (74 loc) • 3.38 kB
TypeScript
import * as _angular_core from '@angular/core';
import { TranslocoService } from '@ngneat/transloco';
import { HttpClient } from '@angular/common/http';
declare class ChatMessage {
id: number;
chat_id: number;
cr_time: string;
type: ChatMessageType;
user: string;
content: string;
avatar: string | null;
file_path: string[] | null;
checked: boolean | null;
edit: boolean;
constructor(data: ChatMessageDTO);
get dateSimple(): string;
get timeHHmm(): string;
}
interface ChatMessageDTO {
id: number;
chat_id: number;
cr_time: string;
type: ChatMessageType;
user: string;
content: string;
avatar?: string | null;
file_path?: string[] | null;
checked?: boolean | null;
}
type ChatMessageType = 'incoming' | 'outgoing';
declare class UtilsService {
protected http: HttpClient;
constructor(http: HttpClient);
langToLocale(lang: string): string;
getLocalISODate(): string;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UtilsService, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<UtilsService>;
}
declare enum FlowTheme {
PRIMARY = "primary",
SECONDARY = "secondary"
}
declare class NgxParlComponent {
private utils;
private transloco;
ai_run_in_progress: boolean;
private lastUpdateKey;
theme: _angular_core.InputSignal<FlowTheme>;
header: _angular_core.InputSignal<boolean>;
language: _angular_core.InputSignal<"uk" | "en">;
messageList: _angular_core.ModelSignal<ChatMessage[]>;
messageUpdate: _angular_core.ModelSignal<ChatMessage | undefined>;
selectedForEdit: _angular_core.ModelSignal<ChatMessage | null>;
incomingUser: _angular_core.Signal<string>;
hideHandler: _angular_core.InputSignal<(() => unknown) | null>;
closeHandler: _angular_core.InputSignal<(() => unknown) | null>;
constructor(utils: UtilsService, transloco: TranslocoService);
onCancelEdit(messageId: number | null): this;
sendMessage(event: string | {
id: number;
content: string;
files?: string[];
} | {
content: string;
files?: string[];
} | undefined): this;
onHideClick(): this;
onCloseClick(): this;
protected readonly FlowTheme: typeof FlowTheme;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxParlComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxParlComponent, "ngx-parl", never, { "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "messageList": { "alias": "messageList"; "required": false; "isSignal": true; }; "messageUpdate": { "alias": "messageUpdate"; "required": false; "isSignal": true; }; "selectedForEdit": { "alias": "selectedForEdit"; "required": false; "isSignal": true; }; "hideHandler": { "alias": "hideHandler"; "required": false; "isSignal": true; }; "closeHandler": { "alias": "closeHandler"; "required": false; "isSignal": true; }; }, { "messageList": "messageListChange"; "messageUpdate": "messageUpdateChange"; "selectedForEdit": "selectedForEditChange"; }, never, never, true, never>;
}
declare function provideNgxParl(): _angular_core.EnvironmentProviders[];
export { NgxParlComponent, provideNgxParl };