import { OnInit, OnChanges, SimpleChange, EventEmitter, ElementRef, ChangeDetectorRef } from '@angular/core'; import { IMessage, IdOptions, IdOptionsEnum, IWelcomeMessage, GlobalStateEnum } from './interfaces'; import { ChatbotHttpClientService } from './chatbot-http-client.service'; import { LivechatHttpClientService } from './livechat-http-client.service'; import { ChatStateMachine } from './fsm-service.service'; import { MessageBus } from './service-bus.service'; import { FormControl } from '@angular/forms'; import { Observable, Subscription } from 'rxjs'; import { ChatMachineStatesEnum, ChatAvailabilityStateEnum, BrowserTypeEnumSLA } from './interfaces-livechat'; export declare class UnitxAngularChatbotComponentComponent implements OnInit, OnChanges { private cd; private chatStateMachine; private apiClient; container: ElementRef; /** * CHECKLIST PRO DEPLOY ------------------ POZOR !!!! * * ZVYSENI VERZE * * KC WORKING HOURS 8-22 * DATUM PRO AKTIVACI KC 12.3 * DEBUG FALSE * INTERVALY VE FSM */ isDebug: boolean; LV_ACTIVE_DATE: string; WA_ERROR_TEXT: string; WA_ERROR_FIXED_TEXT: string; WA_ERROR_NOT_FIXED_TEXT: string; LV_OP_BACK_TO_AVAILABLE_CHAT_MSG: string; WA_NOT_UNDERSTAND_TEXT: string; WA_NOT_UNDERSTAND_TEXT_AFTER_12_3: string; WA_WELCOME_MESSAGE: string; WA_INTRO_MSG: string; WA_BY_MSG: string; WA_MAX_INPUT: number; LV_MAX_INPUT: number; WA_MIN_INPUT_LENGTH_FOR_LV: number; WA_LV_MAX_INPUT_ERR_MSG: string; LV_INIT_BUTTON_MSG: string; LV_CONFIRM_BUTTON_MSG: string; LV_END_WAITING_CHAT_BUTTON_MSG: string; LV_END_ACTIVE_CHAT_BUTTON_MSG: string; LV_FEEDBACK_Q_MSG: string; LV_FEEDBACK_B_YES_MSG: string; LV_FEEDBACK_B_NO_MSG: string; LV_NO_FEEDBACK_MSG: string; LV_SYSTEM_MSG_1: string; LV_SYSTEM_MSG_2: string; LV_INVALID_USER_INPUT_MSG: string; LV_CONFIRM_CONSENT_BUTTON_MSG: string; messages: IMessage[]; localHistory: string[]; localHistoryCounter: number; localHistoryInput: string; answersCounter: number; singleAnswersCounter: number; multipleAnswersCounter: number; notFoundAnswersCounter: number; questionHistory: any; changeLog: string[]; inputField: FormControl; pastedInput: string; loading: boolean; isOpen: boolean; isVisible: boolean; isPopupOpen: boolean; wasPopupClosed: boolean; initialButtonIsIconOnly: boolean; welcomeMessageObj: IWelcomeMessage; selectedButton: string; mainIconUrl: string; buttonIconUrl: string; isESF: boolean; isIe: boolean; openCounter: number; failedLoginCounter: number; isLoggedOnServer: boolean; lang: string; apikey: string; apikey2: string; url: string; url2: string; chatbotMainIconUrl: string; chatbotButtonIconUrl: string; parentApp: string; lastActivity: EventEmitter; oksHeartbeatObservable$: Observable; oksHeartbeatSubscription: Subscription; oksHearbeatTimeoutInterval: number; oksHearbeatTimeoutWaitOpRepeat: number; oksHearbeatTimeoutWaitUserConfirmRepeat: number; oksHearbeatTimeoutTotalRepeat: number; isLV: boolean; livechatClient: LivechatHttpClientService; messageBus: MessageBus; messageSubscription: Subscription; machineEventSub: Subscription; fsmState: ChatMachineStatesEnum; shouldDisplayChatButtons: boolean; shouldDisplayStartOpButton: boolean; shouldDisplayEndWaitingOpButton: boolean; shouldDisplayWaitForOpButton: boolean; shouldDisplayEndActiveOpButton: boolean; shouldDisplayFeedbackOpButton: boolean; shouldDisplayGdprConsentButton: boolean; chatAvailabilityStateEnum: typeof ChatAvailabilityStateEnum; globalState: GlobalStateEnum; private chatState$; soundError: any; constructor(apiClient: ChatbotHttpClientService, cd: ChangeDetectorRef, livechatClient: LivechatHttpClientService, messageBus: MessageBus, chatStateMachine: ChatStateMachine); onSelectedButton(event: string): void; onSelectedToggle(event: any): void; ngOnChanges(changes: { [propKey: string]: SimpleChange; }): void; closePopup(): void; private myBrowser; getBrowserVersion(): any; checkIfMobileBrowser(): BrowserTypeEnumSLA; private ieVersion; private formatAnsweredSystemMessage; private filterMessagesForLoading; isWorkingHoursForOP(): boolean; ngOnInit(): Promise; runHeartbeatEventsForOKS(repeat: number): void; /** * Zjisti dostupnost v pripade aktualni chyby a nastavi stav FSM .... */ checkAvailabilityBeforeSendMessage(): Promise; shouldSendMessagesToBot(): boolean; createMsg(msg: string, from: IdOptions, mode: any, loading: any): IMessage; makeLogin(): Promise; openChatbotDialog(): Promise; private openChatbotDialogOnly; checkBotServerByLogin(): Promise; saveAndCreateWelcomeMessage(input: string): IMessage; createWelcomeErrorMessage(input: string): IMessage; private prepareRequestToWatson; removeSubstringFromMessage(inStr: String, subStr: String): String; parseMessage(message: IMessage): IMessage; parseButtons(msg: any): any; handleResponseFromServer(result: any, input: string): string; handleErrorResponseFromXXX(mode: IdOptionsEnum, message: string): void; updateChangesAndScroll(): void; checkIfhiddenThenOpenChatbot(): void; hideChatbot(): void; onKeydownHandler(event: KeyboardEvent): void; enableChatbot(shouldEnable: boolean): void; onEnter(event: any): void; onPaste(event: ClipboardEvent): void; validateInputLengthOnBotClientOnly(input: string, shouldTrimBotInput: boolean): boolean; validateInputLengthOnLivechatClientOnly(input: string): boolean; validateInputOnBotClientOnly(input: string, shouldCheckInvalidInput: boolean): boolean; private findAndRemoveURLs; validateInputOnLivechatOnly(input: string): boolean; logRequestForOpToServer(): Promise; sendMessage(input?: string): Promise; sendMessageToOp(input: string): Promise; sendMessageToBot(input: string, shouldHideQuestion?: boolean): Promise; /** * Po kazde odeslane zprave kontroluji zda mam zobrazit LV tlacitko * V pripade ze je CHAT stav error/busy a je LV online rovnou nabizim tlacitko po kazde otazce */ checkShouldEnableChatButton(): Promise; updateScroll(): void; ngOnDestroy(): void; controlChatButton(mode: number): void; onFeedbackChatButton(mode: number): Promise; onWaitForOpChatButton(mode: boolean): void; onConsentButton(mode: boolean): void; }