@aslaluroba/help-center
Version:
A powerful and customizable help center widget for Angular applications with real-time chat functionality, AI assistance, and multi-language support.
107 lines (106 loc) • 3.91 kB
TypeScript
import { OnInit, OnDestroy, ElementRef } from '@angular/core';
import { ApiService } from '../services/api.service';
import { TranslationService } from '../services/translation.service';
import * as i0 from "@angular/core";
interface Option {
id: string;
helpScreenId: string;
parentOptionId: string | null;
nestedOptions: Option[];
title: string;
paragraphs: string[];
chatWithUs: boolean;
assistantId?: string;
assistant?: {
id: string;
tenantId: string;
tenant: {
id: string;
name: string;
key: string;
};
name: string;
openAIAssistantId: string;
greeting: string;
closing: string;
};
hasNestedOptions: boolean;
order: number;
}
interface Message {
id: string | number;
sender: 'user' | 'assistant' | 'agent';
senderType: number;
messageContent: string;
sentAt: Date;
isSeen: boolean;
}
export declare class HelpCenterWidgetComponent implements OnInit, OnDestroy {
private apiService;
private translationService;
getToken: () => Promise<string>;
helpScreenId: string;
showArrow: boolean;
messageLabel: string | null;
set currentLang(value: string);
get currentLang(): string;
isIntroScreenEnabled: boolean;
chatMessagesContainer: ElementRef;
private _currentLang;
private langSubscription?;
isRTL: boolean;
isPopupOpen: boolean;
helpScreenData: any;
status: string;
error: string | null;
showArrowAnimation: boolean;
showTooltip: boolean;
sessionId: string | null;
isAblyConnected: boolean;
isChatClosed: boolean;
showChat: boolean;
messageText: string;
isTyping: boolean;
messages: Message[];
showHelpScreenData: boolean;
chatIsLoading: boolean;
ablyToken: string | null;
isOpen: boolean;
needsAgent: boolean;
assistantStatus: string;
selectedOption: Option | null;
selectedNestedOption: Option | null;
showEndChatConfirmation: boolean;
constructor(apiService: ApiService, translationService: TranslationService);
ngOnInit(): void;
ngOnDestroy(): void;
handleTogglePopup(): Promise<void>;
private fetchHelpScreenData;
createChatSession(option?: Option): Promise<any>;
sendMessage(messageText?: string): Promise<void>;
sendMessageToChatSession(chatSessionId: string, messageDto: any): Promise<any>;
handleReceiveMessage(message: string, senderType: string, needsAgent: boolean): void;
private getSenderType;
handleStartNewChat(option: Option): Promise<void>;
private startNewChatSession;
handleStartChat(option: any): Promise<void>;
handleEndChat(): Promise<void>;
confirmEndChat(): Promise<void>;
cancelEndChat(): void;
closeChatSession(chatSessionId: string): Promise<any>;
handleClosePopup(): void;
handleCloseArrowAnimation(): void;
handleBack(): void;
handleShowChat(): void;
selectOption(option: Option): void;
selectNestedOption(nestedOption: Option): void;
handleShowHelpScreenData(): void;
handleHideHelpScreenData(): void;
private scrollToBottom;
getDirection(): "ltr" | "rtl";
get helpScreenDataList(): any;
navigateToUrl(url: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<HelpCenterWidgetComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<HelpCenterWidgetComponent, "app-help-center-widget", never, { "getToken": { "alias": "getToken"; "required": false; }; "helpScreenId": { "alias": "helpScreenId"; "required": false; }; "showArrow": { "alias": "showArrow"; "required": false; }; "messageLabel": { "alias": "messageLabel"; "required": false; }; "currentLang": { "alias": "currentLang"; "required": false; }; "isIntroScreenEnabled": { "alias": "isIntroScreenEnabled"; "required": false; }; }, {}, never, never, true, never>;
}
export {};