@hivegpt/hiveai-angular 0.0.366 → 0.0.367
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/bundles/hivegpt-hiveai-angular.umd.js +3 -0
- package/bundles/hivegpt-hiveai-angular.umd.js.map +1 -1
- package/bundles/hivegpt-hiveai-angular.umd.min.js +1 -1
- package/bundles/hivegpt-hiveai-angular.umd.min.js.map +1 -1
- package/esm2015/lib/components/translations/translation.service.js +4 -1
- package/fesm2015/hivegpt-hiveai-angular.js +3 -0
- package/fesm2015/hivegpt-hiveai-angular.js.map +1 -1
- package/lib/components/translations/translation.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hivegpt-hiveai-angular.js","sources":["../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/translations/translation.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/utils/utils.ts","../../../../projects/hivegpt/eventsgpt-angular/src/environments/environment.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/conversation.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/NotificationSocket.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/socket-service.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/bot.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/chat-drawer/chat-drawer.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/chatbot/chatbot.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/pipes/safe-html.pipe.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/video-player/video-player.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/bot-html-editor/bot-html-editor.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/hivegpt.module.ts","../../../../projects/hivegpt/eventsgpt-angular/src/public-api.ts","../../../../projects/hivegpt/eventsgpt-angular/src/hivegpt-hiveai-angular.ts"],"sourcesContent":["import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslationService {\n private eventId: string | null = null;\n\n setEventId(id: string) {\n this.eventId = id;\n }\n\n getTranslation(key: string): string {\n console.log('eventId', this.eventId);\n let lang = String(this.getLang(this.eventId));\n console.log('lang 2.0', lang);\n const entry = this.translationsData.find((item) => item.Key === key);\n\n if (!entry) {\n return key; // fallback\n }\n\n return entry.Translations[lang] || entry.DefaultValue || key;\n }\n\n private getLang(eventId?: string | null): string {\n const suffix = eventId ? `-${eventId}` : '';\n const storageKey = `defaultLanguage${suffix}`;\n\n return localStorage.getItem(storageKey) || 'en';\n }\n\n private translationsData: any[] = [\n {\n Key: 'Ask anything',\n DefaultValue: 'Ask anything',\n Translations: {\n en: 'Ask anything',\n fr: 'Demandez ce que vous voulez',\n it: 'Chiedi qualsiasi cosa',\n es: 'Pregunta lo que quieras',\n de: 'Frag alles',\n 'pt-br': 'Pergunte qualquer coisa',\n ar: 'اسأل أي شيء',\n zh: '随便问',\n ru: 'Спросите что угодно',\n },\n },\n {\n Key: 'Assistant',\n DefaultValue: 'Assistant',\n Translations: {\n en: 'Assistant',\n fr: 'Assistant',\n it: 'Assistente',\n es: 'Asistente',\n de: 'Assistent',\n 'pt-br': 'Assistente',\n ar: 'مساعد',\n zh: '助手',\n ru: 'Ассистент',\n },\n },\n {\n Key: 'Your personal or company information is kept private and secure within this chat.',\n DefaultValue:\n 'Your personal or company information is kept private and secure within this chat.',\n Translations: {\n en: 'Your personal or company information is kept private and secure within this chat.',\n fr: 'Vos informations personnelles ou celles de votre entreprise sont conservées privées et sécurisées dans cette conversation.',\n it: \"Le tue informazioni personali o aziendali sono mantenute private e sicure all'interno di questa chat.\",\n es: 'Tu información personal o de la empresa se mantiene privada y segura dentro de este chat.',\n de: 'Ihre persönlichen oder geschäftlichen Informationen bleiben in diesem Chat privat und sicher.',\n 'pt-br':\n 'Suas informações pessoais ou da empresa são mantidas privadas e seguras dentro deste chat.',\n ar: 'تظل معلوماتك الشخصية أو معلومات شركتك خاصة وآمنة داخل هذه المحادثة.',\n zh: '您的个人或公司信息在此聊天中保持私密和安全。',\n ru: 'Ваша личная или корпоративная информация остается конфиденциальной и защищенной в этом чате.',\n },\n },\n {\n Key: 'Send message',\n DefaultValue: 'Send message',\n Translations: {\n en: 'Send message',\n fr: 'Envoyer un message',\n it: 'Invia messaggio',\n es: 'Enviar mensaje',\n de: 'Nachricht senden',\n 'pt-br': 'Enviar mensagem',\n ar: 'إرسال رسالة',\n zh: '发送消息',\n ru: 'Отправить сообщение',\n },\n },\n {\n Key: 'Platform GPT',\n DefaultValue: 'Platform GPT',\n Translations: {\n en: 'Platform GPT',\n fr: 'Plateforme GPT',\n it: 'Piattaforma GPT',\n es: 'Plataforma GPT',\n de: 'Plattform GPT',\n 'pt-br': 'Plataforma GPT',\n ar: 'منصة GPT',\n zh: '平台 GPT',\n ru: 'Платформа GPT',\n },\n },\n {\n Key: 'New Chat',\n DefaultValue: 'New Chat',\n Translations: {\n en: 'New Chat',\n fr: 'Nouvelle conversation',\n it: 'Nuova chat',\n es: 'Nuevo chat',\n de: 'Neuer Chat',\n 'pt-br': 'Novo chat',\n ar: 'محادثة جديدة',\n zh: '新聊天',\n ru: 'Новый чат',\n },\n },\n {\n Key: 'You',\n DefaultValue: 'You',\n Translations: {\n en: 'You',\n fr: 'Vous',\n it: 'Tu',\n es: 'Tú',\n de: 'Du',\n 'pt-br': 'Você',\n ar: 'أنت',\n zh: '您',\n ru: 'Вы',\n },\n },\n {\n Key: 'Write your message',\n DefaultValue: 'Write your message',\n Translations: {\n en: 'Write your message',\n fr: 'Écrivez votre message',\n it: 'Scrivi il tuo messaggio',\n es: 'Escribe tu mensaje',\n de: 'Schreiben Sie Ihre Nachricht',\n 'pt-br': 'Escreva sua mensagem',\n ar: 'اكتب رسالتك',\n zh: '写下您的消息',\n ru: 'Напишите ваше сообщение',\n },\n },\n {\n Key: 'Send',\n DefaultValue: 'Send',\n Translations: {\n en: 'Send',\n fr: 'Envoyer',\n it: 'Invia',\n es: 'Enviar',\n de: 'Senden',\n 'pt-br': 'Enviar',\n ar: 'إرسال',\n zh: '发送',\n ru: 'Отправить',\n },\n },\n {\n Key: 'Call Interface',\n DefaultValue: 'Call Interface',\n Translations: {\n en: 'Call Interface',\n fr: \"Interface d'appel\",\n it: 'Interfaccia chiamata',\n es: 'Interfaz de llamada',\n de: 'Anrufoberfläche',\n 'pt-br': 'Interface de chamada',\n ar: 'واجهة الاتصال',\n zh: '呼叫界面',\n ru: 'Интерфейс звонка',\n },\n },\n {\n Key: 'Call Interface',\n DefaultValue: 'Call Interface',\n Translations: {\n en: 'Call Interface',\n fr: \"Interface d'appel\",\n it: 'Interfaccia chiamata',\n es: 'Interfaz de llamada',\n de: 'Anrufoberfläche',\n 'pt-br': 'Interface de chamada',\n ar: 'واجهة الاتصال',\n zh: '呼叫界面',\n ru: 'Интерфейс звонка',\n },\n },\n {\n Key: 'Close',\n DefaultValue: 'Close',\n Translations: {\n en: 'Close',\n fr: 'Fermer',\n it: 'Chiudi',\n es: 'Cerrar',\n de: 'Schließen',\n 'pt-br': 'Fechar',\n ar: 'إغلاق',\n zh: '关闭',\n ru: 'Закрыть',\n },\n },\n ];\n}\n","const formatHoursAndMinutes = (date: Date) => {\n let hours = date.getHours() % 12;\n const minutes = date.getMinutes();\n const amPm = date.getHours() < 12 ? 'AM' : 'PM';\n if(hours === 0) hours = 12;\n\n const formattedHours = hours < 10 ? `0${hours}` : hours;\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\n\n return `${formattedHours}:${formattedMinutes} ${amPm}`;\n};\n\nexport const formatNow = (timezone?: string) => {\n const now = new Date();\n if (timezone) {\n const options: any = {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n timeZone: timezone,\n };\n return now.toLocaleString('en-US', options);\n }\n return formatHoursAndMinutes(now);\n};\n\nexport const formatTimeStamps = (timezone: string, timestamps: any) => {\n const date = new Date(timestamps + 'Z');\n\n const options: any = {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n timeZone: timezone,\n };\n return date.toLocaleString('en-US', options);\n};\n","\n\nexport const prod_environment = {\n USERS_API: 'https://es-user.social27.com/api',\n BASE_URL: 'https://agent-api.hivegpt.ai',\n AGENTS_API: 'https://hive-ai.social27.com/api',\n API_KEY: '82595783-dc9c-4513-8204-709818d51be3',\n SocketUrl: 'https://notif-v2-ws.social27.com/'\n}\n\n\nexport const dev_environment = {\n USERS_API: 'https://pre-user.social27.com/api',\n BASE_URL: 'https://pre-agent-api.hivegpt.ai',\n AGENTS_API: 'https://hive-pre-ai.social27.com/api',\n API_KEY: '66d59244c50b8fb597a101t1',\n SocketUrl: 'https://notif-ws-staging.social27.com/',\n};\n\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConversationService {\n private conversationStorageKeyPrefix = 'conversationKey_';\n private sessionStorageKeyPrefix = 'sessionKey_';\n\n private userSpecificNotification: Subject<any> = new Subject<any>();\n\n constructor() { }\n\n generateKey(): string {\n const timestamp = Math.floor(new Date().getTime() / 1000).toString(16);\n const randomHex = 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {\n return Math.floor(Math.random() * 16).toString(16);\n });\n return timestamp + randomHex;\n }\n\n getKey(botId: string, resetKey: boolean = false): string {\n const storageKey = `${this.conversationStorageKeyPrefix}${botId}`;\n let value = localStorage.getItem(storageKey);\n\n if (!value || resetKey) {\n value = this.generateKey();\n localStorage.setItem(storageKey, value);\n }\n\n return value;\n }\n\n getSessionKey(sessionId: string, resetKey: boolean = false): string {\n const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}`;\n let value = localStorage.getItem(storageKey);\n\n if (!value || resetKey) {\n value = this.generateKey();\n localStorage.setItem(storageKey, value);\n }\n\n return value;\n }\n\n sendValidatedUserData(message: any) {\n this.userSpecificNotification.next(message);\n }\n\n getUserSpecificNotification(): Observable<any> {\n return this.userSpecificNotification.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Socket, SocketIoConfig } from 'ngx-socket-io';\nimport { prod_environment } from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root' // This ensures the service is available across the application\n})\nexport class NotificationSocket extends Socket {\n constructor() {\n super(socketConfig);\n\n // Log connection status\n this.on('connect', () => {\n console.log('Socket connected');\n });\n\n this.on('disconnect', () => {\n console.warn('Socket disconnected');\n });\n\n this.on('connect_error', (err) => {\n console.error('Socket connection error:', err);\n });\n }\n}\n\nconst socketConfig: SocketIoConfig = {\n url: prod_environment.SocketUrl,\n options: {\n transports: ['websocket', 'polling'],\n reconnection: true,\n autoConnect: true,\n upgrade: true,\n reconnectionDelay: 1000,\n reconnectionDelayMax: 5000,\n reconnectionAttempts: Infinity\n }\n};","import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\nimport { ConversationService } from './conversation.service';\nimport { NotificationSocket } from './NotificationSocket';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocketService {\n public testMessage: string;\n private isCommonSocketInitialized = false;\n private isUserSpecificSocketInitialized = false;\n private isUserSpecificEventReleased = true;\n private messageQueue: any[] = [];\n private releaseInterval = 1000;\n private intervalSetup: boolean = false;\n\n constructor(\n private conversationService: ConversationService,\n private notificationSocket: NotificationSocket\n ) {\n this.startReleasingMessages();\n }\n\n isSocketInitialized(isCommon: boolean) {\n return isCommon\n ? this.isCommonSocketInitialized\n : this.isUserSpecificSocketInitialized &&\n !this.isUserSpecificEventReleased;\n }\n\n disconnectSocketConnection() {\n this.notificationSocket.disconnect();\n }\n connectSocketConnection() {\n this.notificationSocket.connect();\n }\n registerUserSpecificHiveSocket(botId: string, conversation_id: string, org_id: string) {\n const commonNotification = 'commonNotification';\n const groupId = `Hive_AI_Notifs_${botId}_${conversation_id}`;\n const groupId_org = `Hive_AI_Notifs_${org_id}`;\n\n // Remove any pre-existing listeners for commonNotification\n // this.notificationSocket.removeAllListeners(commonNotification);\n\n // Join the group again with updated botId and conversation_id\n this.notificationSocket.emit('joinData', { groupId });\n this.notificationSocket.emit('joinData', { groupId: groupId_org });\n\n // Re-register for common notifications\n this.notificationSocket.fromEvent(commonNotification).subscribe(\n (res) => {\n console.log('Received commonNotification:', res);\n this.conversationService.sendValidatedUserData(res);\n },\n (error) => {\n console.error('Error receiving commonNotification:', error);\n }\n );\n }\n\n private startReleasingMessages() {\n if (!this.intervalSetup) {\n setInterval(() => {\n if (this.messageQueue.length > 0) {\n const message = this.messageQueue.shift(); // Remove the first message from the queue\n // Handle the message here, e.g., send it to the server or process it\n console.log('Releasing message from queue:', message);\n // this.campaignService.sendValidatedUserData(message);\n }\n }, this.releaseInterval);\n this.intervalSetup = true; // Prevents multiple intervals\n }\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { HttpHeaders } from '@angular/common/http';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { AnyRecord } from 'dns';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BotsService {\n eventDescription = new Subject();\n bot_api = 'https://agent-api.hivegpt.ai/';\n constructor(private http: HttpClient) { }\n\n fetchSpeechAuthorizationToken(botId, apiKey, domain) {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n 'hive-bot-id': botId,\n 'domain-authority': domain\n });\n\n const apiUrl = `${this.bot_api}speech/issue_token`;\n const url = `${apiUrl}`;\n return this.http.get(url, { headers }).pipe(\n map((resp: any) => {\n return resp.token;\n })\n );\n }\n\n getWorkflowsByOrgId(orgId: string): Observable<any> {\n const apiUrl = `${this.bot_api}workflows`;\n const url = `${apiUrl}?org_id=${orgId}`;\n return this.http.get(url).pipe(\n map((resp: any) => {\n return resp;\n })\n );\n }\n\n getWorkflowExecutionById(executionId: string): Observable<any> {\n const apiUrl = `${this.bot_api}workflows/execution/${executionId}`;\n return this.http.get(apiUrl).pipe(\n map((resp: any) => {\n return resp;\n })\n );\n }\n}","// import { Platform } from '@angular/cdk/platform';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { TranslationService } from '../translations/translation.service';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\nimport {\n dev_environment,\n prod_environment,\n} from '../../../environments/environment';\nimport { ConversationService } from '../conversation.service';\nimport { Observable } from 'rxjs';\nimport { SocketService } from '../socket-service.service';\n\nimport { FormBuilder, Validators } from '@angular/forms';\nimport * as SpeechSDK from 'microsoft-cognitiveservices-speech-sdk';\nimport { BotsService } from '../bot.service';\nimport * as marked from 'marked'; // Import marked\n\n@Component({\n selector: 'hivegpt-chat-drawer-package',\n templateUrl: './chat-drawer.component.html',\n styleUrls: ['./chat-drawer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatDrawerComponent implements OnInit, OnChanges {\n @ViewChild('chatMain') private chatMain: ElementRef;\n @ViewChild('myInput') private myInput: ElementRef;\n @ViewChildren('closeplaygroundbutton')\n closePlaygroundButtons: QueryList<ElementRef>;\n @ViewChild('drawer') drawer!: MatDrawer;\n @ViewChild('sourcesDrawer') sourcesDrawer!: MatDrawer;\n @ViewChild('editorsDrawer') editorsDrawer!: MatDrawer;\n private bodyOverflowClass = 'body-overflow-hidden';\n @ViewChild('myTextarea', { static: false })\n myTextarea!: ElementRef<HTMLTextAreaElement>; // Reference to the textarea\n isCollapsedTrue = false;\n @Input() copilotName: string = 'HiveXGPT';\n @Input() firstName!: string;\n @Input() lastName!: string;\n @Input() apiKey!: string;\n @Input() bgBubbleAi!: string;\n @Input() bgBubbleUser!: string;\n @Input() bgGradient!: string[];\n @Input() botName!: string;\n @Input() botSkills!: string;\n @Input() botId!: string;\n @Input() orgId!: string;\n @Input() closeButtonColor!: string;\n @Input() closeButtonbgColor!: string;\n @Input() credentials!: [];\n @Input() dateTimeColor!: string;\n @Input() dateTextColor!: string;\n @Input() eventId!: string;\n @Input() s27Token!: string;\n @Input() eventName!: string;\n @Input() botIcon!: string;\n @Input() formFieldBgColor!: string;\n @Input() formFieldTextColor!: string;\n @Input() fullView!: boolean;\n @Input() gradientColors!: string[];\n @Input() greeting!: string;\n @Input() messageTextColorAi!: string;\n @Input() messageTextColorUser!: string;\n @Input() rules!: string;\n @Input() sendButtonColor!: string;\n @Input() sendButtonTextColor!: string;\n @Input() showClose!: boolean;\n @Input() thumbsDownMessages!: string[];\n @Input() thumbsUpMessage!: string;\n @Input() timezone!: string;\n @Input() unknownResponses!: [];\n @Input() useOpenAi!: boolean;\n @Input() userId!: string;\n @Input() isDev!: boolean;\n\n @Input() againButtonColor!: string[];\n @Input() againButtonTextColor!: string[];\n @Output() feedbackEvent = new EventEmitter<string>();\n @Output() onCloseEvent = new EventEmitter<void>();\n @Output() openPage = new EventEmitter<any>();\n @Output() sessionActions = new EventEmitter<any>();\n @Output() closeBot = new EventEmitter<any>();\n @Output() connectWithUser = new EventEmitter<any>();\n @Output() scheduleMeeting = new EventEmitter<string>();\n @Output() refreshToken = new EventEmitter<any>();\n @Output() openSupport = new EventEmitter<any>();\n\n autogenKey = 'Autogen_eDJTtEU-NB0RtIpzq1w';\n addToMyAgendaAction = 'add_to_my_agenda';\n myUpcomingSessionAction = 'my_upcomming_session';\n connectOrFollowAction = 'connect_or_follow';\n aiResponse: string = '';\n chatLog: any[] = [];\n decoder = new TextDecoder();\n feedbackDone: boolean = false;\n greetingMsg: string = '';\n hasBackdropValue: boolean = false;\n input: string = '';\n listenerAdded = false;\n loading: boolean = false;\n mode: string = 'over';\n quickPrompts: any[] = [];\n thumbsDownMsgIndex = 0;\n userName: string = '';\n showStartAgain: boolean = false;\n isIOSDevice: boolean = false;\n showFeedBackIconsIndex: number | null = null;\n temperature: number = 1;\n speakers = [];\n environment: {\n USERS_API;\n BASE_URL;\n AGENTS_API;\n };\n pendingRequests: any;\n myConnections: any;\n conversationKey: string;\n conSessionKey: string = '';\n isFetchDataFor: boolean;\n is401: boolean;\n msg: any;\n chat: any;\n isWorkflowOpen: boolean;\n orgWorkflows: any;\n openWorkflowInput: boolean;\n selectedWorkflow: any;\n workflowForm: any;\n currentWorkflowActionProgress: number = 0;\n currentWorkflowAction: string = '';\n executingWorkflow: boolean;\n workflowExecutionDetails: any;\n showWorkflowExecutionDetails: any;\n currentWorkflowExecutionDetails: any;\n\n speechConfig: SpeechSDK.SpeechConfig;\n recognizer: SpeechSDK.SpeechRecognizer;\n recognizedText: string = '';\n authorizationToken: string = '';\n region: string = 'westeurope'; // Set your Azure region here\n isRecording: boolean;\n\n constructor(\n private fb: FormBuilder,\n private botService: BotsService,\n private cdr: ChangeDetectorRef,\n private http: HttpClient,\n private sanitizer: DomSanitizer,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private socketService: SocketService,\n private conversationService: ConversationService, // private platform: Platform\n private translationService: TranslationService\n ) {\n this.chatMain = new ElementRef(null);\n\n // if (this.platform.IOS) {\n // this.isIOSDevice = true;\n // }\n }\ngetTranslation(key: string) {\n return this.translationService.getTranslation(key);\n }\n ngOnChanges(changes: SimpleChanges): void {\n // Handle eventId changes to update translation service\n if (changes.eventId && changes.eventId.currentValue) {\n this.translationService.setEventId(changes.eventId.currentValue);\n }\n\n if (changes.s27Token) {\n if (changes.s27Token.currentValue != changes.s27Token.previousValue) {\n this.s27Token = changes.s27Token.currentValue;\n\n console.log('isFetchDataFor: ', this.isFetchDataFor);\n console.log('msg: ', this.msg);\n console.log('chat: ', this.chat);\n if (this.is401) {\n if (this.isFetchDataFor) {\n this.fetchDataFor(this.msg, this.chat);\n } else {\n this.fetchData(this.msg);\n }\n }\n }\n }\n\n if (changes.orgId) {\n if (\n changes.orgId.currentValue != changes.orgId.previousValue &&\n changes.orgId.currentValue\n ) {\n this.initializeSocket();\n\n }\n }\n }\n\n\n domainAuthorityValue: any = \"prod-lite\";\n\n ngOnInit(): void {\n // Set the eventId in translation service to get the correct language from localStorage\n if (this.eventId) {\n this.translationService.setEventId(this.eventId);\n }\n\n this.environment = this.isDev ? dev_environment : prod_environment;\n\n const domain = window.location.hostname;\n\n // Determine the header value based on the domain\n\n\n if (domain.includes('pre-app.social27.com')) {\n this.domainAuthorityValue = 'pre-prod-lite';\n } else if (domain.includes('app.social27.com')) {\n this.domainAuthorityValue = 'prod-lite';\n } else if (domain.includes('hivegpt.io')) {\n this.domainAuthorityValue = 'hivegpt';\n }\n\n // this.fetchMyConnections().subscribe();\n // this.fetchPendingRequests().subscribe();\n\n this.changeTemperature(this.temperature);\n this.fetchBotConfig().subscribe(\n (res) => {\n this.cdr.markForCheck();\n\n this.fetchChatHistory().subscribe(\n (response) => {\n this.loading = false;\n this.mapChatHistory(response);\n this.cdr.markForCheck();\n },\n (err) => {\n console.error('Error fetching chat history:', err);\n }\n );\n },\n (err) => {\n console.error('Error fetching chat history:', err);\n }\n );\n // this.fetchAgents();\n // this.fetchEditorContent();\n this.cdr.markForCheck();\n // this.initializeSocket();\n this.botService.fetchSpeechAuthorizationToken(this.botId, this.apiKey, this.domainAuthorityValue).subscribe((token) => {\n this.authorizationToken = token;\n this.initializeSpeechRecognizer(token);\n });\n }\n\n private eventSubscription: Subscription;\n initializeSocket() {\n try {\n this.socketService.disconnectSocketConnection();\n } catch (error) { }\n setTimeout(() => {\n this.socketService.connectSocketConnection();\n setTimeout(() => {\n console.log('YES INIT');\n const conversation_id = this.conversationService.getKey(this.botId);\n\n this.socketService.registerUserSpecificHiveSocket(\n this.botId,\n conversation_id,\n this.orgId\n );\n setTimeout(() => {\n this.listenSockets();\n }, 300);\n }, 200);\n }, 300);\n }\n\n subscriptionNew: any;\n socketData: any;\n\n listenSockets() {\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n }\n console.log('Listen Socket');\n this.eventSubscription = this.conversationService\n .getUserSpecificNotification()\n .subscribe(\n (res) => {\n console.log('Listen Socket response');\n console.log(res);\n // Check if OtherFields exists in the response\n if (res?.m?.OtherFields?.workflow_id) {\n const {\n percentage,\n output,\n action_name,\n current_action_name,\n workflow_execution_id,\n time_stamp,\n } = res?.m?.OtherFields;\n\n this.currentWorkflowActionProgress = percentage;\n this.currentWorkflowAction = action_name;\n\n const actionIndex = this.workflowExecutionDetails.Actions.findIndex(\n (a) => a.Name == current_action_name\n );\n\n if (actionIndex !== -1) {\n this.workflowExecutionDetails.Actions[actionIndex][\n 'Output'\n ] = output;\n this.workflowExecutionDetails.Actions[actionIndex][\n 'InsertTimeStamp'\n ] = formatTimeStamps(this.timezone, time_stamp);\n } else {\n console.error(`Action with name ${action_name} not found`);\n }\n\n this.currentWorkflowExecutionDetails = this.workflowExecutionDetails;\n\n if (this.currentWorkflowActionProgress == 100) {\n this.chatLog[this.chatLog.length - 1][\n 'WorkflowExecutionId'\n ] = workflow_execution_id;\n this.isChatingWithAi = false;\n this.executingWorkflow = false;\n }\n\n this.cdr.detectChanges();\n } else if (res?.m?.OtherFields) {\n const {\n conversation_id,\n bot_id,\n message_id,\n answer,\n web_results,\n search_results,\n graphs,\n execution_graphs,\n suggestions,\n } = res?.m?.OtherFields;\n console.log('message_id1');\n console.log(res?.m?.OtherFields);\n var currentChatMessage = this.chatLog.find(\n (p) => p._id == message_id\n );\n console.log(this.chatLog);\n if (!currentChatMessage) {\n console.log('message_id2');\n console.log(message_id);\n currentChatMessage = {\n _id: message_id,\n type: 'ai',\n time: formatNow(this.timezone),\n };\n\n this.chatLog.push(currentChatMessage);\n\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n console.log('message_id3');\n console.log(message_id);\n this.cdr.detectChanges();\n }\n\n // Handle the fields based on their presence\n if (search_results && Array.isArray(search_results)) {\n console.log('Online Search Terms:', search_results);\n currentChatMessage.searchTerms = search_results;\n this.cdr.detectChanges();\n }\n\n if (web_results && Array.isArray(web_results)) {\n console.log('Web Results:', web_results);\n currentChatMessage.sourcesList = web_results;\n currentChatMessage.displayedSources = web_results?.slice(0, 3); // First 3 cards\n currentChatMessage.remainingSources = web_results?.slice(3); // Remaining items\n this.cdr.detectChanges();\n }\n\n if (answer) {\n this.isChatingWithAi = false;\n console.log('Answer:', answer);\n\n currentChatMessage.message = this.processMessageForDisplay(\n answer\n );\n this.cdr.detectChanges();\n this.scrollToBottom();\n }\n\n if (graphs && Array.isArray(graphs)) {\n console.log('Graphs:', graphs);\n currentChatMessage.graphs = graphs;\n this.cdr.detectChanges();\n }\n\n if (execution_graphs && Array.isArray(execution_graphs)) {\n console.log('Execution Graphs:', execution_graphs);\n currentChatMessage.executionGraphs = execution_graphs;\n this.cdr.detectChanges();\n }\n\n if (suggestions && Array.isArray(suggestions)) {\n console.log('suggestions:', suggestions);\n currentChatMessage.relatedListItems = suggestions;\n this.cdr.detectChanges();\n // Process online search terms as needed\n }\n\n // Add any other fields and their processing here\n } else {\n console.warn('OtherFields is missing in the response');\n }\n },\n (err) => {\n this.eventSubscription.unsubscribe();\n console.error('Error in fetching data from socket', err);\n }\n );\n }\n\n initializeSocketAndListen() { }\n handleEvent(data: any, type: string) {\n switch (type) {\n case 'webresult':\n break;\n case 'answer':\n break;\n case 'graph':\n break;\n default:\n break;\n }\n }\n ngOnDestroy(): void {\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n }\n this.socketService.disconnectSocketConnection();\n //this.socketService.close();\n }\n changeTemperature(newTemperature: number) {\n if (this.loading) return;\n this.temperature = newTemperature;\n const wrapper = document.querySelector('.hivegpt-chat-wrapper');\n // Remove existing theme classes from body\n wrapper?.classList.remove('creative', 'balanced', 'precise');\n\n switch (newTemperature) {\n case 0:\n wrapper?.classList.add('creative');\n break;\n case 1:\n wrapper?.classList.add('balanced');\n break;\n case 2:\n wrapper?.classList.add('precise');\n break;\n default:\n break;\n }\n }\n\n onStartAgain() {\n if (this.loading) return;\n this.showStartAgain = false;\n this.chatLog = [];\n this.chatLog.push({\n type: 'ai',\n message: this.greetingMsg,\n\n time: formatNow(this.timezone),\n });\n this.archieveMessages().subscribe();\n }\n\n archieveMessages() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n });\n const url = `${this.environment.BASE_URL}/bot/clear-history/${this.botId}/${this.userId}`;\n return this.http.post(url, { headers }).pipe(\n switchMap((res: any) => {\n return of(res);\n }),\n catchError((error) => {\n return of(null);\n })\n );\n }\n\n triggerSupport() {\n\n this.openSupport.emit();\n }\n fetchBotConfig() {\n this.loading = true;\n const headers = new HttpHeaders({\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n });\n const url = `${this.environment.BASE_URL}/bots?bot_id=${this.botId}`;\n return this.http.get(url, { headers }).pipe(\n switchMap((res: any) => {\n this.botName = res.Name;\n this.botIcon = res.Icon;\n this.botSkills = res?.Skills;\n this.greetingMsg = res.Greeting;\n\n this.thumbsDownMessages = res?.NegativeResponses?.length\n ? res.NegativeResponses\n : [\n `We are sorry we've not been able to answer your question.<br/> However, our dedicated support team is happy to help. <span class='feedback-link' style='cursor: pointer; text-decoration: underline; font-weight: 700; color: #17235B;'><a style='color: inherit; text-decoration: none;' id='supportLink88' >Please click here</a></span> and a human agent will assist you as soon as possible`,\n ];\n this.quickPrompts = res.QuickPrompts;\n this.cdr.markForCheck();\n this.loading = false;\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n this.loading = false;\n return of(null);\n })\n );\n }\n\n fetchChatHistory(): Observable<any> {\n this.loading = true;\n\n this.conversationKey = this.conversationService.getKey(this.botId, false);\n this.conSessionKey = this.conversationService.getSessionKey(this.botId, false);\n const url = `${this.environment.BASE_URL}/conversations/${this.conversationKey}?session_id=${this.conSessionKey}`;\n const headers = new HttpHeaders({\n accept: 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n });\n\n return this.http\n .get(url, { headers })\n .pipe(catchError(this.handleError<any>('fetchConversation')));\n }\n\n private handleError<T>(operation = 'operation', result?: T) {\n return (error: any): Observable<T> => {\n console.error(`${operation} failed: ${error.message}`);\n return of(result as T);\n };\n }\n // fetchChatHistory() {\n // this.loading = true;\n // const headers = new HttpHeaders({\n // 'Content-Type': 'application/json',\n // 'x-api-key': this.apiKey,\n // });\n // return this.http\n // .get(`${this.environment.BASE_URL}/conversations/${this.conversationKey}`, { headers })\n // .pipe(\n // switchMap((res: any) => {\n // this.loading = false;\n // return of(res);\n // }),\n // catchError((error: any) => {\n // console.error('Error fetching chat history: ', error);\n // this.loading = false;\n // return of(null);\n // })\n // );\n // }\n\n mapChatHistory(chats: any) {\n this.chatLog.push({\n type: 'ai',\n message: this.greetingMsg,\n time: formatNow(this.timezone),\n });\n if (chats && chats?.Messages?.length) {\n chats?.Messages.forEach((chat: any) => {\n if (chat.Type == 'user') {\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(chat.Text),\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\n copied: false,\n isCollapsedTrue: false,\n WorkflowExecutionId: chat.WorkflowExecutionId,\n _id: chat._id\n });\n }\n if (chat.Type == 'ai') {\n var sourcesList = chat.WebLinks || [];\n var displayedSources = chat.WebLinks.slice(0, 3); // First 3 cards\n var remainingSources = chat.WebLinks.slice(3); // Remaining items\n\n this.chatLog.push({\n type: 'ai',\n message: this.processMessageForDisplay(chat.Text),\n executionGraphs: chat.ExecutionGraphs,\n graphs: chat.Graphs,\n searchTerms: chat.SearchTerms,\n sourcesList: sourcesList,\n displayedSources: displayedSources,\n remainingSources: remainingSources,\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\n copied: false,\n isCollapsedTrue: false,\n _id: chat._id\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n }\n });\n this.showStartAgain = true;\n }\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n processMessage(message: string): SafeHtml {\n if (!message || !(message?.length > 0)) {\n return '';\n }\n\n // console.log('here is my message')\n // console.log(message);\n\n message = message.trim();\n\n const markdownLinkRegex = /\\[([^[]+)]\\(([^)]+)\\)/g;\n const urlRegex = /(?<!href=\")\\bhttps?:\\/\\/\\S+(?<![.,])/gi;\n\n if (markdownLinkRegex.test(message)) {\n const html = message.replace(\n markdownLinkRegex,\n '<a href=\"$2\" target=\"_blank\">$1</a>'\n );\n //console.log('Sanitized message: ', message);\n return this.sanitizeHtml(html);\n }\n\n if (urlRegex.test(message)) {\n const html = message.replace(\n urlRegex,\n '<a href=\"$&\" target=\"_blank\">$&</a>'\n );\n // console.log('Sanitized message: ', message);\n return this.sanitizeHtml(html);\n }\n\n message = message.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\n\n message = message.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\n // Convert Markdown headers to HTML headers\n message = message.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\n const level = hashes.length;\n return `<h${level}>${text}</h${level}>`;\n });\n\n this.cdr.markForCheck();\n const sanitizedMessage = this.sanitizeHtml(message);\n return sanitizedMessage;\n }\n\n ngAfterViewChecked() {\n const feedbackLinks = this.elementRef.nativeElement.querySelectorAll(\n '.feedback-link'\n );\n feedbackLinks.forEach((link: any) => {\n link.addEventListener(\n 'click',\n this.onFeedbackClick.bind(this, 'zendesk')\n );\n });\n // if (this.elementRef.nativeElement.querySelector('.feedback-link')) {\n // this.elementRef.nativeElement\n // .querySelector('.feedback-link')\n // .addEventListener('click', this.onFeedbackClick.bind(this, 'zendesk'));\n // }\n }\n\n sanitizeHtml(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n onFeedbackClick(value: string) {\n this.feedbackEvent.emit(value);\n }\n\n onClose() {\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\n this.onCloseEvent.emit();\n }\n\n sendMessageWithTile(prompt: string) {\n this.input = prompt;\n this.fetchData();\n this.scrollToBottom();\n }\n isChatingWithAi = false;\n fetchData(msg = null) {\n this.input = msg || this.input?.trim();\n this.msg = this.input;\n if (!this.input || this.loading) {\n return;\n }\n\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(this.input),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n\n try {\n const textarea = this.myInput.nativeElement;\n textarea.style.height = 'hidden'; // Reset the height\n textarea.style.height = `62px`;\n } catch (error) { }\n this.cdr.markForCheck();\n\n this.aiResponse = '';\n this.isChatingWithAi = true;\n\n this.makeAskRequest(this.input, this.agents, this.conversationKey);\n }\n fetchDataFor(msg, chat) {\n const inputMsg = msg?.trim();\n if (!inputMsg || this.loading) {\n return;\n }\n try {\n chat.relatedListItems = [];\n this.cdr.detectChanges();\n } catch (error) { }\n\n this.scrollToBottom();\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(inputMsg),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n\n this.cdr.markForCheck();\n\n this.aiResponse = '';\n this.isChatingWithAi = true;\n\n this.makeAskRequest(inputMsg, this.agents, this.conversationKey, msg, chat);\n }\n fetchSmallTalk() {\n this.loading = true;\n this.cdr.markForCheck();\n\n const url = `${this.environment.BASE_URL}/bot/small-talk/${this.botId}/${this.userId}`;\n\n this.http\n .get<{ smallTalk: string }>(url, {\n headers: {\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n },\n })\n .pipe(\n catchError((error) => {\n console.error('Error while fetching small talk:', error);\n\n return of(null);\n })\n )\n .subscribe((response) => {\n this.loading = false;\n this.cdr.markForCheck();\n\n if (!response) {\n return;\n }\n\n if (response && response.smallTalk) {\n this.chatLog.push({\n type: 'ai',\n message: this.processMessage(response.smallTalk),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 2;\n // this.scrollToBottom();\n this.cdr.markForCheck();\n }\n });\n }\n\n readAllChunks = (stream: any) => {\n const reader = stream.getReader();\n const allSuggestions: string[] = [];\n\n reader.closed.catch((err: any) => {\n if (err) {\n console.error('Error reading stream: ', err);\n }\n\n this.isChatingWithAi = false;\n this.scrollToBottom();\n return;\n });\n\n return new ReadableStream({\n start: (controller) => {\n return this.pump(controller, reader, allSuggestions);\n },\n });\n };\n\n pump(controller: any, reader: any, allSuggestions: string[]) {\n reader.read().then(({ done, value }: any) => {\n const lastItem = this.chatLog[this.chatLog.length - 1];\n\n if (done) {\n lastItem.message = this.processMessageForDisplay(lastItem.message);\n this.chatLog.pop();\n this.chatLog.push(lastItem);\n if (allSuggestions?.length) {\n this.chatLog.push({\n type: 'suggestions',\n suggestions: allSuggestions,\n });\n }\n\n controller.close();\n this.isChatingWithAi = false;\n // this.scrollToBottom();\n this.cdr.markForCheck();\n this.showStartAgain = true;\n\n // setTimeout(() => {\n // this.fetchSmallTalk();\n // },1000)\n return;\n }\n\n let decodedChunk = this.decoder.decode(value, { stream: true });\n this.aiResponse += decodedChunk;\n if (lastItem.type === 'ai') {\n const suggestionsMatch = this.aiResponse.match(/<sug>(.*?)<\\/sug>/g);\n if (suggestionsMatch) {\n suggestionsMatch.forEach((match) => {\n this.aiResponse = this.aiResponse.replace(match, '');\n allSuggestions.push(match?.replace(/<\\/?sug>/g, ''));\n });\n }\n\n lastItem.message = this.aiResponse;\n this.cdr.markForCheck();\n } else {\n this.isChatingWithAi = false;\n\n let aiFormattedData: any;\n\n try {\n console.log('parsing json ');\n aiFormattedData = JSON.parse(JSON.parse(this.aiResponse));\n } catch (e) {\n try {\n console.log('parsing json 2');\n aiFormattedData = JSON.parse(this.aiResponse);\n } catch (e) { }\n }\n\n console.log('parsing json done');\n\n if (aiFormattedData && aiFormattedData?.section_id?.length > 0) {\n if (\n aiFormattedData.section_id == 'company_search' ||\n aiFormattedData.section_id == 'user_search' ||\n aiFormattedData.section_id == 'industry_company_search'\n ) {\n this.fetchMyConnections().subscribe();\n this.fetchPendingRequests().subscribe();\n }\n\n if (aiFormattedData.section_id == this.myUpcomingSessionAction) {\n var speakerIds = [];\n aiFormattedData.content?.forEach((session) => {\n speakerIds = [...speakerIds, ...session.speakers];\n });\n\n if (speakerIds?.length > 0) this.getSpeakersByStaffIds(speakerIds);\n }\n\n if (\n aiFormattedData.section_id == this.addToMyAgendaAction &&\n aiFormattedData.content?.length > 0\n ) {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n sessionIds: aiFormattedData.content,\n });\n }\n\n if (aiFormattedData.section_id == this.connectOrFollowAction) {\n let usersLen = aiFormattedData.content?.length;\n if (usersLen > 1) {\n this.openPage.next({\n sectionId: 'open_networking_drawer',\n search: aiFormattedData.content,\n });\n } else if (usersLen == 1) {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n connetUserIds: [aiFormattedData.content[0].userId],\n });\n }\n }\n\n if (aiFormattedData.is_open_page == 'true') {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n search: aiFormattedData.content,\n });\n\n if (this.isMobileBrowser()) {\n aiFormattedData.message +=\n '\\n\\n' + '<a id=\"closeBotNow\">Click Here</a> to see results.';\n }\n }\n\n this.chatLog.push({\n type: 'ai',\n message: aiFormattedData.message,\n action: aiFormattedData,\n time: formatNow(this.timezone),\n });\n\n if (this.isMobileBrowser()) {\n setTimeout(() => {\n this.addCloseBotClickEvent();\n }, 500);\n }\n\n this.aiResponse = '';\n } else {\n this.chatLog.push({\n type: 'ai',\n message: this.aiResponse,\n time: formatNow(this.timezone),\n });\n }\n\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n this.cdr.markForCheck();\n }\n\n this.scrollToBottom();\n\n // Enqueue the next data chunk into our target stream\n controller.enqueue(value);\n this.pump(controller, reader, allSuggestions);\n });\n }\n\n submitFeedback(flag: boolean, message) {\n console.log(message);\n\n this.feedbackDone = true;\n this.showFeedBackIconsIndex = null;\n const conversation_id = this.conversationService.getKey(this.botId);\n const url = `${this.environment.AGENTS_API}/Conversation/coPilot/${this.botId}/conversation/${conversation_id}/helpful-response`;\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'apiKey': 'Conversation_WIz/qAm+EEmfOkFaUA/weA==',\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n },\n body: JSON.stringify({ messageId: message._id, isHelpful: flag }),\n }).then(() => {\n if (flag) {\n this.chatLog.push({\n type: 'ai',\n message:\n this.thumbsUpMessage ||\n `Great. May I assist you with anything else?`,\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n\n this.scrollToBottom();\n this.cdr.markForCheck();\n this.feedbackDone = false;\n this.showFeedBackIconsIndex = null;\n return;\n }\n\n this.chatLog.push({\n type: 'ai',\n message: this.processMessage(\n this.thumbsDownMessages[this.thumbsDownMsgIndex]\n ),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n this.thumbsDownMsgIndex =\n (this.thumbsDownMsgIndex + 1) % this.thumbsDownMessages.length;\n this.scrollToBottom();\n this.cdr.markForCheck();\n setTimeout(() => {\n const supportLink = document.getElementById('supportLink88');\n if (supportLink) {\n supportLink.addEventListener('click', this.triggerSupport.bind(this));\n\n }\n }, 200);\n this.feedbackDone = false;\n this.showFeedBackIconsIndex = null;\n });\n }\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' && !event.shiftKey) {\n // Prevent default behavior (new line)\n event.preventDefault();\n // Call your submit function\n this.handleSubmit(event);\n }\n }\n handleSubmit(event) {\n this.fetchData();\n this.scrollToBottom();\n\n }\n\n handleUpClick(idx: any) {\n if (this.feedbackDone) {\n return;\n }\n\n this.submitFeedback(true, this.chatLog[idx]);\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\n\n if (this.chatLog[idx].unliked) {\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\n }\n\n this.cdr.markForCheck();\n }\n\n handleDownClick(idx: any) {\n if (this.feedbackDone) return;\n this.submitFeedback(false, this.chatLog[idx]);\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\n if (this.chatLog[idx].liked)\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\n }\n // handleCopyClick(index: any) {\n // // Copy the message to the clipboard\n // const contentToCopy = this.chatLog[index].message;\n // console.log('contentToCopy');\n // console.log(contentToCopy);\n // navigator.clipboard.writeText(contentToCopy).then(() => {\n // // Indicate that the message was copied\n // this.chatLog[index].copied = true;\n // this.cdr.detectChanges();\n // // Reset the copied state after a delay\n // setTimeout(() => {\n // this.chatLog[index].copied = false;\n // this.cdr.detectChanges();\n // }, 2000); // Reset after 2 seconds\n // });\n // }\n copyText(id, index) {\n // Get the text element\n var textElement = document.getElementById(id);\n\n // Create a temporary textarea element to copy the text\n var tempTextArea = document.createElement('textarea');\n tempTextArea.value = textElement.innerText;\n\n // Append the textarea to the body (necessary for the execCommand to work)\n document.body.appendChild(tempTextArea);\n\n // Select the text inside the textarea\n tempTextArea.select();\n\n // Copy the text to the clipboard\n document.execCommand('copy');\n\n // Remove the temporary textarea\n document.body.removeChild(tempTextArea);\n\n // Optionally, you can alert the user or change the button text to indicate the copy was successful\n // alert('Text copied to clipboard!');\n\n this.chatLog[index].copied = true;\n this.cdr.detectChanges();\n // Reset the copied state after a delay\n setTimeout(() => {\n this.chatLog[index].copied = false;\n this.cdr.detectChanges();\n }, 2000); // Reset after 2 seconds\n }\n handleCopyClick(index: any) {\n // Copy the message to the clipboard\n const contentToCopy = this.chatLog[index].message;\n const resutlt = this.copyText('messageText_' + index, index);\n }\n\n sanitizeHTML(html: string): string {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n\n // Create a new document fragment to hold the simplified content\n const fragment = document.createDocumentFragment();\n\n // Append the children of the body of the parsed document to the fragment\n Array.from(doc.body.childNodes).forEach((node) => {\n fragment.appendChild(node.cloneNode(true));\n });\n\n // Create a new div element to hold the simplified HTML\n const simplifiedDiv = document.createElement('div');\n simplifiedDiv.appendChild(fragment);\n\n // Remove complex tags or attributes as needed\n // Example: remove scripts\n simplifiedDiv\n .querySelectorAll('script')\n .forEach((script) => script.remove());\n\n // Return the simplified HTML as a string\n return simplifiedDiv.innerHTML;\n }\n\n currentMessageForEditor: any = '';\n currentIndexForEditor: any = -1;\n handleEditorClick(index: any) {\n if (this.currentIndexForEditor == -1) {\n this.currentIndexForEditor = index;\n this.currentMessageForEditor = this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n\n this.cdr.detectChanges();\n } else {\n if (this.currentIndexForEditor == index) {\n this.currentMessageForEditor += this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n this.cdr.detectChanges();\n } else {\n this.currentIndexForEditor = index;\n this.currentMessageForEditor = this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n this.cdr.detectChanges();\n }\n }\n this.chatLog[index].isEditor = true;\n this.cdr.detectChanges();\n // Reset the copied state after a delay\n setTimeout(() => {\n this.chatLog[index].isEditor = false;\n this.cdr.detectChanges();\n }, 2000); // Reset after 2 seconds\n this.editorsDrawer.open();\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n this.cdr.detectChanges();\n }\n scrollToBottom() {\n let counter = 0;\n const interval = setInterval(() => {\n this.chatMain.nativeElement.scrollTop = this.chatMain.nativeElement.scrollHeight;\n if (counter++ > 5) clearInterval(interval);\n }, 5);\n }\n\n handleAction(action: any) {\n console.info('incoming action from the chatbot AI');\n console.info(action);\n\n if (action?.content) {\n }\n }\n\n ngAfterViewInit() {\n // Check if the drawer is initially open and apply overflow hidden to body if so\n if (this.drawer.opened) {\n this.setBodyOverflow();\n }\n\n // Listen to changes in the drawer being opened or closed\n this.drawer.openedChange.subscribe((opened: boolean) => {\n if (opened) {\n this.setBodyOverflow();\n } else {\n this.removeBodyOverflow();\n }\n });\n\n this.drawer.openedChange.subscribe((opened) => {\n if (opened) {\n setTimeout(() => {\n if (this.myTextarea && this.myTextarea.nativeElement) {\n this.myTextarea.nativeElement.focus(); // Focus on the textarea\n }\n });\n }\n });\n\n\n\n }\n\n private setBodyOverflow() {\n this.renderer.addClass(document.body, this.bodyOverflowClass);\n }\n\n private removeBodyOverflow() {\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\n }\n\n getSpeakersByStaffIds(ids) {\n const url = `${this.environment.USERS_API}/events/${this.eventId}/users/get-by-staff-ids`;\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + 'your_token_here',\n },\n body: JSON.stringify(ids),\n })\n .then((response) => {\n if (response.ok) {\n return response.json(); // Parse the JSON body of the response\n } else {\n throw new Error('Network response was not ok.');\n }\n })\n .then((data) => {\n if (data?.length > 0) {\n data.forEach((speaker) => {\n this.speakers[speaker.id] = speaker;\n });\n\n this.cdr.markForCheck();\n }\n })\n .catch((err) => {\n console.error('Error fetching data:', err);\n this.loading = false;\n });\n }\n\n performSessionAction(sessionId, action) {\n this.sessionActions.next({\n sessionId,\n action,\n });\n }\n\n addCloseBotClickEvent() {\n const element = this.elementRef.nativeElement.querySelector('#closeBotNow');\n if (element) {\n this.renderer.listen(element, 'click', () => {\n this.closeBot.next();\n });\n }\n }\n\n isMobileBrowser() {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n }\n\n connectToUser(userId) {\n this.connectWithUser.emit({\n connect: !this.canDisconnect(userId),\n userId,\n });\n\n setTimeout(() => {\n this.fetchMyConnections().subscribe((res) => {\n this.cdr.markForCheck();\n });\n this.fetchPendingRequests().subscribe((res) => {\n this.cdr.markForCheck();\n });\n }, 500);\n }\n\n scheduleMeetingWithUser(user) {\n this.scheduleMeeting.emit(user);\n }\n\n canConnect(userId) {\n return !(\n this.canDisconnect(userId) ||\n this.pendingRequests.find((a) => a == userId)\n );\n }\n\n canDisconnect(userId) {\n return this.myConnections.find((conn) => conn.userId == userId);\n }\n\n fetchPendingRequests() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: this.autogenKey,\n });\n return this.http\n .get(\n `${this.environment.USERS_API}/events/${this.eventId}/connection-requests/autogen/pending-sent-requests?userId=${this.userId}`,\n { headers }\n )\n .pipe(\n switchMap((res: any) => {\n this.pendingRequests = res;\n this.cdr.markForCheck();\n return of(res);\n }),\n catchError((error: any) => {\n console.error('Error fetching pending requests: ', error);\n return of(null);\n })\n );\n }\n\n fetchMyConnections() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: this.autogenKey,\n });\n return this.http\n .get(\n `${this.environment.USERS_API}/events/${this.eventId}/users-connections/autogen?userId=${this.userId}`,\n { headers }\n )\n .pipe(\n switchMap((res: any) => {\n this.myConnections = res;\n this.cdr.markForCheck();\n return of(res);\n }),\n catchError((error: any) => {\n console.error('Error fetching pending requests: ', error);\n return of(null);\n })\n );\n }\n\n isDropdownOpen: boolean = false;\n agents: any;\n selectedAgents = [];\n allSelected = false;\n // Toggle the dropdown visibility\n toggleDropdown() {\n if (!this.agents)\n this.fetchAgents();\n this.isDropdownOpen = !this.isDropdownOpen;\n this.cdr.detectChanges();\n }\n\n onSelectAll(event: Event): void {\n this.agents?.forEach((agent) => (agent.selected = false));\n this.cdr.detectChanges();\n }\n\n onAgentChange(agent: any): void {\n //agent.selected = !agent.selected;\n //console.log(agent);\n let agentFound = this.agents.filter((p) => p.id == agent.id);\n if (agentFound && agentFound.length > 0) {\n agentFound[0].selected = !agentFound[0].selected;\n this.cdr.detectChanges();\n }\n this.cdr.detectChanges();\n }\n\n areAllSelected(): boolean {\n return this.agents?.every((agent) => !agent.selected);\n }\n\n getDropdownHeaderText(): string {\n const selectedAgents = this.agents?.filter((agent) => agent.selected);\n if (!selectedAgents) {\n return 'All Agents';\n } else {\n if (selectedAgents && selectedAgents?.length === 0) {\n return 'All Agents';\n } else {\n return selectedAgents?.length > 1\n ? `${selectedAgents?.length} Agents Selected`\n : `${selectedAgents?.length} Agent Selected`;\n }\n }\n }\n fetchAgents_http() {\n this.loading = true;\n const url = `${this.environment.AGENTS_API}/CoPilot/${this.botId}/active-agents`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n });\n\n return this.http.post(url, {}, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n this.agents = res.map((agent) => ({\n ...agent,\n selected: false,\n }));\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n isDocInEditMode = false;\n documentContent: any;\n\n conversationId: any;\n isContentLoaded = false;\n\n fetchContent_http() {\n this.isDocInEditMode = false;\n this.isContentLoaded = false;\n console.log('API call function');\n this.loading = true;\n const conversation_id = this.conversationService.getKey(this.botId);\n this.conversationId = conversation_id;\n const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${conversation_id}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n 'domain-authority': this.domainAuthorityValue\n });\n\n return this.http.get(url, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n this.isDocInEditMode = true;\n this.documentContent = res;\n console.log('Get API callled success');\n this.isContentLoaded = true;\n console.log(res);\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config DJ: ', error);\n this.isDocInEditMode = false;\n this.isContentLoaded = true;\n\n if (error?.status == 404) {\n console.log('dash');\n this.isDocInEditMode = false;\n this.isContentLoaded = true;\n }\n return of(null);\n })\n );\n }\n\n fetchAgents() {\n this.fetchAgents_http().subscribe();\n }\n\n fetchEditorContent() {\n this.fetchContent_http().subscribe();\n }\n\n // events/${eventId}/users-connections\n processMessageForDisplay(markdown: string): SafeHtml {\n try {\n // Create a custom renderer to modify <a> tags\n const renderer = new marked.Renderer();\n\n // Customize anchor tags to include target=\"_blank\"\n renderer.link = (href: string, title: string, text: string) => {\n return `<a href=\"${href}\" title=\"${title || ''\n }\" target=\"_blank\">${text}</a>`;\n };\n\n // Parse the markdown content to HTML using marked with the custom renderer\n const markdownContent = marked.parse(markdown, { renderer: renderer });\n\n // Sanitize the parsed HTML using Angular's DomSanitizer\n const sanitizedHtml = this.sanitizer.bypassSecurityTrustHtml(\n markdownContent\n );\n\n // Return the safe HTML content for display\n return sanitizedHtml;\n } catch (error) {\n console.error('Error processing markdown:', error);\n return ''; // Return an empty string or handle the error appropriately\n }\n }\n\n prepareHtml(markdown: string): string {\n if (!markdown || !(markdown.length > 0)) {\n console.error('Input Markdown is null or empty');\n return '';\n }\n\n // Convert Markdown headers (### or ##) to <strong> for bold headings\n let html = markdown.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\n const level = hashes.length;\n if (level === 3) {\n return `<h3><strong>${text}</strong></h3>`;\n } else if (level === 4) {\n return `<h4><strong>${text}</strong></h4>`;\n }\n return `<strong>${text}</strong>`;\n });\n\n // Convert Markdown code blocks with language to preformatted HTML\n html = html.replace(/```(\\w+)?\\n([\\s\\S]*?)```/g, (match, lang, code) => {\n const escapedCode = this.escapeHtml(code);\n const language = lang || 'plaintext';\n\n // Create a copy button for the code block\n return `\n <div class=\"code-container\">\n <button id=\"copy-button\" class=\"copy-button\" (click)=\"copyToClipboard('\\`${escapedCode}\\`')\">Copy</button>\n <pre class=\"code_block diff\"><code class=\"language-${language}\">${escapedCode}</code></pre>\n </div>`;\n });\n\n // Convert inline code (wrapped in `backticks`) to inline <code> tags\n html = html.replace(/`([^`]+)`/g, '<code>$1</code>');\n\n // Convert Markdown bold to HTML <strong>\n html = html.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\n\n // Convert numbered lists\n html = html.replace(/^\\d+\\.\\s+(.*)$/gm, '<li>$1</li>');\n\n // Convert bullet point lists\n html = html.replace(/^\\-\\s+(.*)$/gm, '<li>$1</li>');\n\n // Convert Markdown links to HTML links\n html = html.replace(/\\[([^\\]]+)]\\(([^)]+)\\)/g, '<a href=\"$2\" target=\"_blank\">$1</a>');\n\n // Convert new lines to <br> tags for paragraphs\n html = html.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\n\n return html;\n }\n\n // Helper function to escape HTML characters for code blocks\n escapeHtml(code: string): string {\n return code\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n\n // Function to copy text to clipboard\n public copyToClipboard(text: string) {\n navigator.clipboard.writeText(text).then(() => {\n alert('Code copied to clipboard!');\n }, (err) => {\n console.error('Could not copy text: ', err);\n });\n }\n\n\n\n\n\n\n isCollapsed = false;\n isCollapsedForGraph = false;\n isCollapsedForFGraph = false;\n toggleCollapse() {\n this.isCollapsed = !this.isCollapsed;\n this.cdr.detectChanges();\n }\n\n toggleCollapseGraph() {\n this.isCollapsedForGraph = !this.isCollapsedForGraph;\n this.cdr.detectChanges();\n }\n toggleCollapseFGraph() {\n this.isCollapsedForFGraph = !this.isCollapsedForFGraph;\n this.cdr.detectChanges();\n }\n // [\n // {\n // \"title\": \"AI News January 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"Each month, we compile significant news, trends, and happenings in AI, providing detailed summaries with key points in bullet form for concise yet complete understanding.\",\n // \"link\": \"https://theaitrack.com/ai-news-january-2024/\"\n // },\n // {\n // \"title\": \"Top AI News, January 2024 - Everypixel Journal\",\n // \"desc\": \"In this monthly roundup, we spotlight the top AI news stories from January, including the OpenAI vs. The New York Times Lawsuit.\",\n // \"link\": \"https://journal.everypixel.com/top-ai-news-january-2024\"\n // },\n // {\n // \"title\": \"AI News July 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"This page features AI News for July 2024, highlighting significant events such as Canva acquiring Leonardo AI.\",\n // \"link\": \"https://theaitrack.com/ai-news-july-2024-in-depth-and-concise/\"\n // },\n // {\n // \"title\": \"January news roundup: What's new in the world of AI? - Pluralsight\",\n // \"desc\": \"OpenAI’s new GPT store, business-ready ChatGPT plans, and a predicted rise in AI-powered cybercrime.\",\n // \"link\": \"https://www.pluralsight.com/resources/blog/data/ai-this-month-january-2024\"\n // },\n // {\n // \"title\": \"AI News August 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"This page features AI News for August 2024, with highlights such as Nvidia delaying the “Blackwell” B200 AI chips delivery.\",\n // \"link\": \"https://theaitrack.com/ai-news-august-2024-in-depth-and-concise-duplicate/\"\n // }\n // ]\n dateTime = { now: new Date().toISOString() };\n // Extracts the domain from a URL\n getDomainName(url: string): string {\n try {\n const { hostname } = new URL(url);\n return hostname.replace(/^www\\./, ''); // Remove 'www.' if present\n } catch {\n return 'unknown';\n }\n }\n\n // Generates the favicon URL\n getFaviconUrl(url: string): string {\n const domain = this.getDomainName(url);\n return `https://www.google.com/s2/favicons?sz=128&domain=${domain}`;\n }\n currentSourcesList: any = [];\n onCardClick(sources): void {\n this.currentSourcesList = sources;\n this.cdr.detectChanges();\n this.sourcesDrawer.open();\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n }\n\n isShowEditorButton = true;\n\n openOuterEditor() {\n this.fetchEditorContent();\n this.editorsDrawer.open();\n this.isDrawerOpen = true;\n this.isShowEditorButton = false;\n this.cdr.detectChanges();\n\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n }\n\n onCloseEditor() {\n this.editorsDrawer.close();\n this.isDrawerOpen = false;\n this.isShowEditorButton = true;\n this.cdr.detectChanges(); // Trigger change detection if needed\n this.onDrawerClosed();\n }\n\n onCloseSource() {\n this.sourcesDrawer.close();\n this.isDrawerOpen = false;\n this.cdr.detectChanges(); // Trigger change detection if needed\n this.onDrawerClosed();\n }\n onDrawerClosed() {\n setTimeout(() => {\n this.isDrawerOpen = true;\n this.cdr.detectChanges(); // Trigger change detection if needed\n // Use ngClass to dynamically apply the class\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'block';\n }\n }, 800);\n }\n isDrawerOpen = true;\n\n toggleDrawer(todo) {\n this.isDrawerOpen = todo;\n this.cdr.detectChanges();\n this.updateButtonVisibility();\n }\n updateButtonVisibility() {\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = this.isDrawerOpen ? 'block' : 'none';\n }\n }\n openLinkInNewTab(link: string): void {\n window.open(link, '_blank');\n }\n adjustTextareaHeight(event: any): void {\n try {\n if (event.key === 'Enter' && !event.shiftKey) {\n // Prevents a new line from being added\n event.preventDefault();\n }\n } catch (error) {\n\n }\n const textarea = event.target as HTMLTextAreaElement;\n textarea.style.height = 'auto'; // Reset the height\n textarea.style.height = `${textarea.scrollHeight}px`; // Adjust height to match content\n // Ensure the height doesn't exceed the max-height set in CSS\n if (textarea.scrollHeight > 150) {\n textarea.style.height = `150px`; // Adjust height to match content\n textarea.style.overflowY = 'auto'; // Enable scrolling if content exceeds 400px\n } else {\n textarea.style.overflowY = 'hidden'; // Hide scrollbar if content is within limits\n }\n }\n\n toggleWorkflows(value = null) {\n\n if (!this.checkForCop29BotId()) {\n this.botService.getWorkflowsByOrgId(this.orgId).subscribe((res) => {\n this.orgWorkflows = res;\n this.isWorkflowOpen = value == null ? !this.isWorkflowOpen : value;\n\n if (!this.isWorkflowOpen) {\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n }\n\n this.cdr.detectChanges();\n });\n }\n\n }\n\n initializeForm() {\n // Create form controls dynamically based on selectedWorkflow.Trigger.InputSchema\n const formControls = {};\n if (this.selectedWorkflow?.Trigger?.InputSchema) {\n this.selectedWorkflow.Trigger.InputSchema.forEach((input) => {\n formControls[input.InputId] = [\n input.Value || '',\n input.Required ? Validators.required : null,\n ];\n });\n }\n\n // Initialize the form\n this.workflowForm = this.fb.group(formControls);\n }\n\n onWorkflowSelected(workflow) {\n this.selectedWorkflow = workflow;\n this.initializeForm();\n this.isWorkflowOpen = false;\n this.openWorkflowInput = true;\n }\n\n onWorkflowSubmit() {\n const container = document.getElementById('allChats');\n if (this.workflowForm.valid) {\n console.log(this.workflowForm.value);\n\n var input = this.prepareHtml(\n this.generateMarkdown(\n this.selectedWorkflow.Name,\n this.workflowForm.value\n )\n );\n\n // update last two chatLog entries, set showWorkflowExecutionLoader = false\n try {\n this.chatLog[this.chatLog.length - 1][\n 'showWorkflowExecutionLoader'\n ] = false;\n this.chatLog[this.chatLog.length - 2][\n 'showWorkflowExecutionLoader'\n ] = false;\n } catch (error) { }\n\n this.chatLog.push({\n type: 'user',\n message: input,\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n showWorkflowExecutionLoader: true,\n });\n\n console.log(input);\n\n this.currentWorkflowActionProgress = 0;\n this.currentWorkflowAction =\n 'Executing ' + this.selectedWorkflow.Actions[0].Name;\n this.isChatingWithAi = true;\n this.executingWorkflow = true;\n this.workflowExecutionDetails = {\n Actions: this.selectedWorkflow.Actions,\n Inputs: this.workflowForm.value,\n workflowInputs: this.workflowForm.value,\n WorkflowName: this.selectedWorkflow.Name,\n };\n this.currentWorkflowExecutionDetails = this.workflowExecutionDetails;\n this.scrollToBottom();\n\n this.cdr.detectChanges();\n\n // execute the ask endpoint with workflow input\n this.makeAskRequest(\n input,\n this.agents,\n this.conversationKey,\n '',\n null,\n this.selectedWorkflow['_id'],\n this.workflowForm.value\n );\n }\n }\n\n makeAskRequest(\n inputMsg: string,\n agents: any[],\n conversationId: string,\n msg?: any,\n chat?: any,\n workflowId?: string,\n workflow_inputs?: any\n ): void {\n var url = `${this.environment.BASE_URL}/ai/ask`;\n\n var body = {\n user_question: inputMsg,\n user_id: this.userId,\n bot_id: this.botId,\n message_id: this.conversationService.generateKey(),\n session_id: this.conSessionKey,\n agents: agents?.filter((p) => p.selected).map((p) => p.id) ?? [],\n conversation_id: conversationId,\n first_name: this.firstName,\n last_name: this.lastName\n };\n\n if (workflowId) {\n body['workflow_id'] = workflowId;\n body['workflow_inputs'] = workflow_inputs;\n }\n\n\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + this.s27Token,\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n },\n body: JSON.stringify(body),\n })\n .then((response) => {\n if (response.status === 401 || response.status === 403) {\n this.is401 = true;\n this.refreshToken.emit();\n\n // If `msg` and `chat` exist, handle them\n if (msg && chat) {\n this.msg = msg;\n this.chat = chat;\n this.isFetchDataFor = true;\n }\n } else {\n this.is401 = false;\n }\n return response.json();\n })\n .then((data) => {\n console.log(data);\n // Additional response handling if needed\n })\n .catch((err) => {\n console.error('Error: ', err);\n this.isChatingWithAi = false;\n });\n\n this.input = '';\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n this.isWorkflowOpen = false;\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n\n makeAskRequestold(\n inputMsg: string,\n agents: any[],\n conversationId: string,\n msg?: any,\n chat?: any,\n workflowId?: string,\n workflow_inputs?: any\n ): void {\n const url = `${this.environment.BASE_URL}/ai/ask`;\n\n const body: any = {\n user_question: inputMsg,\n user_id: this.userId,\n bot_id: this.botId,\n message_id: this.conversationService.generateKey(),\n agents: agents?.filter((p) => p.selected).map((p) => p.id) ?? [],\n conversation_id: conversationId,\n first_name: this.firstName,\n last_name: this.lastName,\n };\n\n if (workflowId) {\n body['workflow_id'] = workflowId;\n body['workflow_inputs'] = workflow_inputs;\n }\n\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n\n this.http.post(url, body, { headers })\n .subscribe({\n next: (data) => {\n console.log(data);\n // Additional response handling if needed\n },\n error: (err) => {\n console.error('Error: ', err);\n this.isChatingWithAi = false;\n },\n });\n\n this.input = '';\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n this.isWorkflowOpen = false;\n this.scrollToBottom();\n this.cdr.markForCheck();\n\n }\n\n generateMarkdown(title, obj) {\n // Initialize markdown with the title\n let markdown = `## ${title}\\n`;\n\n // Loop through the object and append the field names and values\n for (const [key, value] of Object.entries(obj)) {\n var key_label =\n this.selectedWorkflow.Trigger.InputSchema.find(\n (input) => input.InputId === key\n )?.Label || key;\n markdown += `- **${key_label}**: ${value}\\n`;\n }\n\n return markdown;\n }\n\n showWorkflowHistoryDetails(workflow_id) {\n if (!workflow_id) {\n this.workflowExecutionDetails = this.currentWorkflowExecutionDetails;\n this.showWorkflowExecutionDetails = true;\n this.cdr.detectChanges();\n return;\n }\n\n this.botService.getWorkflowExecutionById(workflow_id).subscribe((res) => {\n if (res && res.Actions && Array.isArray(res.Actions)) {\n res.Actions = res.Actions.map((action) => {\n if (action.InsertTimeStamp) {\n action.InsertTimeStamp = formatTimeStamps(\n this.timezone,\n action.InsertTimeStamp\n );\n }\n return action;\n });\n }\n\n res.InsertTimeStamp = formatTimeStamps(\n this.timezone,\n res.InsertTimeStamp\n );\n this.workflowExecutionDetails = res;\n this.showWorkflowExecutionDetails = true;\n this.cdr.detectChanges();\n });\n }\n\n closeModal() {\n this.showWorkflowExecutionDetails = false;\n }\n\n objectToArray(obj: any): any[] {\n return Object.keys(obj).map((key) => ({ key, value: obj[key] }));\n }\n\n startNewConversation() {\n this.conversationKey = this.conversationService.getKey(this.botId, true);\n this.chatLog = [this.chatLog[0]];\n this.isChatingWithAi = false;\n setTimeout(() => {\n this.initializeSocket();\n }, 200);\n this.scrollToBottom();\n this.cdr.detectChanges();\n }\n\n initializeSpeechRecognizer(token: string) {\n this.speechConfig = SpeechSDK.SpeechConfig.fromAuthorizationToken(\n token,\n this.region\n );\n const audioConfig = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();\n this.recognizer = new SpeechSDK.SpeechRecognizer(\n this.speechConfig,\n audioConfig\n );\n\n this.recognizer.recognizing = (s, e) => {\n if (e.result.reason === SpeechSDK.ResultReason.RecognizingSpeech) {\n this.input = e.result.text;\n console.log(`Recognizing: ${e.result.text}`);\n this.cdr.markForCheck();\n }\n };\n\n this.recognizer.recognized = (s, e) => {\n if (e.result.reason === SpeechSDK.ResultReason.RecognizedSpeech) {\n this.input = e.result.text;\n console.log(`Recognized: ${e.result.text}`);\n this.toggleRecording();\n this.cdr.markForCheck();\n }\n };\n\n this.recognizer.canceled = (s, e) => {\n console.error('Canceled: ', e.errorDetails);\n };\n\n this.recognizer.sessionStopped = (s, e) => {\n console.log('Session stopped.');\n this.recognizer.stopContinuousRecognitionAsync();\n this.fetchData();\n };\n }\n\n toggleRecording() {\n this.isRecording = !this.isRecording;\n\n if (this.isRecording) {\n this.startRecognition();\n } else {\n this.stopRecognition();\n }\n }\n\n startRecognition() {\n this.recognizer.startContinuousRecognitionAsync();\n }\n\n stopRecognition() {\n this.recognizer.stopContinuousRecognitionAsync();\n }\n\n checkForCop29BotId() {\n return this.botId == '66fa3f276c5d71e2717bfea8' || this.botId == '671633545652dd78efec848d';\n\n }\n\n getLatestTime(time): string {\n if (time) {\n return time;\n }\n return new Date().toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n }); // returns current time in 'shortTime' format\n }\n}\n","import { Component, Input } from '@angular/core';\n@Component({\n selector: 'hivegpt-chatbot',\n templateUrl: './chatbot.component.html',\n styleUrls: ['./chatbot.component.scss'],\n})\nexport class ChatBotComponent {\n @Input() userId!: string;\n @Input() apiKey!: string;\n @Input() botName!: string;\n @Input() botSkills!: string;\n @Input() botId!: string;\n @Input() closeButtonColor!: string;\n @Input() gradientColors!: string[];\n @Input() greeting!: string;\n @Input() sendButtonColor!: string;\n @Input() useOpenAi!: boolean;\n @Input() showClose!: boolean;\n @Input() bgGradient!: string[];\n @Input() sendButtonTextColor!: string;\n @Input() fullView!: boolean;\n @Input() bgBubbleAi!: string;\n @Input() bgBubbleUser!: string;\n @Input() closeButtonbgColor!: string;\n @Input() messageTextColorAi!: string;\n @Input() messageTextColorUser!: string;\n @Input() dateTimeColor!: string;\n @Input() dateTextColor!: string;\n @Input() formFieldBgColor!: string;\n @Input() formFieldTextColor!: string;\n @Input() thumbsUpMessage!: string;\n @Input() thumbsDownMessages!: string[];\n @Input() timezone!: string;\n @Input() eventName!: string;\n @Input() credentials!: [];\n @Input() unknownResponses!: [];\n @Input() rules!: string;\n @Input() eventId!: string;\n visible = false;\n\n toggle() {\n this.visible = !this.visible;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html): unknown {\n return html ? this.sanitizer.bypassSecurityTrustHtml(html) : '';\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { IVideo } from '../../models/video';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n})\nexport class VideoPlayerComponent\n implements OnInit, AfterViewInit {\n @Input() currentUserId: string;\n @Input() user: any;\n @Input() eventId: string;\n @Input() videoObj: IVideo;\n @Input() isDev: boolean;\n myFollowingList: Array<string>;\n myPendingSentRequests: Array<string>;\n @Input() type: string;\n isMuted: boolean = true;\n private observer: IntersectionObserver;\n isFullscreen: boolean = false;\n @ViewChild('video') video: any;\n @ViewChild('fullscreenvideo') fullscreenvideo: any;\n isFullscreenvideoPlaying: boolean = false;\n\n @Output() connectWithUser = new EventEmitter<string>();\n @Output() scheduleMeeting = new EventEmitter<any>();\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n private el: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n }\n\n ngOnInit(): void {\n }\n\n toggleSound(isMuted = null) {\n this.isMuted = isMuted != null ? isMuted : !this.isMuted;\n setTimeout(() => {\n const video: any = this.doc\n .getElementById(this.video.id.toString());\n if (video) {\n video.muted = this.isMuted;\n this.video.isMuted = this.isMuted;\n }\n\n this.cdr.markForCheck();\n //this.muteToggle.emit(this.isMuted);\n })\n}\n\n togglePlay(playState: boolean, videoEl) {\n this.videoObj.isPlaying = !this.videoObj.isPlaying;\n setTimeout(() => { \n if (playState) { \n this.videoObj.isPlaying = true;\n videoEl.play();\n var pauseBtn = document.getElementById('pause-btn');\n pauseBtn.classList.add('hide-pause-btn');\n\n this.toggleSound(false);\n }\n else{\n this.videoObj.isPlaying = false;\n videoEl.pause();\n }\n this.cdr.markForCheck();\n })\n }\n \n ngAfterViewInit() {\n if (window.innerWidth <= 576) {\n this.observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting === true) {\n this.video.nativeElement.play();\n } else {\n this.video.nativeElement.pause();\n }\n },\n {\n threshold: 0.75,\n }\n );\n\n this.observer.observe(this.el.nativeElement as HTMLElement);\n }\n }\n\n toggleFullscreen() {\n this.isFullscreen = !this.isFullscreen;\n if (!this.isFullscreen) {\n this.fullscreenvideo.nativeElement.pause();\n }\n }\n\n toggleFullscreenPlay() {\n this.isFullscreenvideoPlaying = !this.isFullscreenvideoPlaying;\n\n if (this.isFullscreenvideoPlaying) {\n this.fullscreenvideo.nativeElement.play();\n } else {\n this.fullscreenvideo.nativeElement.pause();\n }\n }\n\n followUser(userId) {\n this.connectWithUser.emit(userId);\n }\n\n checkPendingSentRequest(userId) {\n return this.myPendingSentRequests?.find(a => a == userId);\n }\n\n canUnfollowUser() {\n return false;\n }\n\n canFollowUser() {\n return true;\n }\n\n getIniNames(firstName, lastName) {\n if(!firstName && !lastName) {\n return '';\n }\n \n if (firstName && lastName)\n return (\n firstName.charAt(0).toUpperCase() + lastName.charAt(0).toUpperCase()\n );\n else return firstName.charAt(0).toUpperCase();\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\nimport {\n dev_environment,\n prod_environment,\n} from '../../../environments/environment';\nimport { ConversationService } from '../conversation.service';\nimport { Observable } from 'rxjs';\nimport { SocketService } from '../socket-service.service';\n\n@Component({\n selector: 'lib-bot-html-editor',\n templateUrl: './bot-html-editor.component.html',\n styleUrls: ['./bot-html-editor.component.css'],\n})\nexport class BotHtmlEditorComponent implements OnInit {\n @Input() editorContent: Observable<string>;\n @Input() isDocInEditMode: any;\n @Input() documentContent: any;\n @Input() conversationId: any;\n @Input() botId: any;\n\n documentName: any = 'doc name';\n\n environment: {\n USERS_API;\n BASE_URL;\n AGENTS_API;\n };\n\n quillConfig = {\n toolbar: [\n [{ header: '1' }, { header: '2' }, { font: [] }],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['bold', 'italic', 'underline'],\n ['link'],\n ['clean'],\n ],\n };\n constructor(private cdr: ChangeDetectorRef, private http: HttpClient) {}\n\n ngOnInit(): void {\n this.environment = prod_environment;\n\n setTimeout(() => {\n if (this.isDocInEditMode) {\n console.log('In Edit mode');\n this.filldataInForm();\n } else {\n console.log('In save mode');\n }\n }, 2500);\n }\n\n filldataInForm() {\n if (this.documentContent) {\n this.documentName = this.documentContent?.name;\n this.editorContent = this.documentContent?.content;\n this.cdr.detectChanges();\n }\n }\n\n saveContent() {\n if (!this.isDocInEditMode) {\n this.saveContent_http().subscribe();\n } else {\n this.saveContent_http().subscribe();\n }\n }\n\n saveContent_http() {\n console.log('API call function');\n\n const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${this.conversationId}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n });\n\n let data = {\n name: this.documentName,\n content: this.editorContent,\n };\n\n return this.http.post(url, data, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n // alert('Saved Successfully');\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n\n updateContent_http() {\n console.log('API call function');\n\n const url = `${this.environment.AGENTS_API}/ConversationDocuments/rename?conversationId=${this.conversationId}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n });\n\n let data = {\n name: this.documentName,\n content: this.editorContent,\n };\n\n return this.http.put(url, data, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n // alert('Updated Successfully');\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { ChatDrawerComponent } from './components/chat-drawer/chat-drawer.component';\nimport { ChatBotComponent } from './components/chatbot/chatbot.component';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { VideoPlayerComponent } from './components/video-player/video-player.component';\nimport { QuillModule } from 'ngx-quill';\nimport { BotHtmlEditorComponent } from './components/bot-html-editor/bot-html-editor.component';\n\n@NgModule({\n declarations: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent, SafeHtmlPipe, BotHtmlEditorComponent],\n imports: [CommonModule, MatIconModule, MatSidenavModule, FormsModule, QuillModule],\n exports: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent]\n})\nexport class HiveGptModule { }\n","/*\n * Public API Surface of hive-gpt\n */\n\nexport * from './lib/components/chat-drawer/chat-drawer.component';\nexport * from './lib/components/chatbot/chatbot.component';\nexport * from './lib/hivegpt.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {NotificationSocket as ɵd} from './lib/components/NotificationSocket';\nexport {BotHtmlEditorComponent as ɵh} from './lib/components/bot-html-editor/bot-html-editor.component';\nexport {BotsService as ɵa} from './lib/components/bot.service';\nexport {ConversationService as ɵc} from './lib/components/conversation.service';\nexport {SocketService as ɵb} from './lib/components/socket-service.service';\nexport {TranslationService as ɵe} from './lib/components/translations/translation.service';\nexport {VideoPlayerComponent as ɵf} from './lib/components/video-player/video-player.component';\nexport {SafeHtmlPipe as ɵg} from './lib/pipes/safe-html.pipe';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hivegpt-hiveai-angular.js","sources":["../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/translations/translation.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/utils/utils.ts","../../../../projects/hivegpt/eventsgpt-angular/src/environments/environment.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/conversation.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/NotificationSocket.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/socket-service.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/bot.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/chat-drawer/chat-drawer.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/chatbot/chatbot.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/pipes/safe-html.pipe.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/video-player/video-player.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/bot-html-editor/bot-html-editor.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/hivegpt.module.ts","../../../../projects/hivegpt/eventsgpt-angular/src/public-api.ts","../../../../projects/hivegpt/eventsgpt-angular/src/hivegpt-hiveai-angular.ts"],"sourcesContent":["import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslationService {\n private eventId: string | null = null;\n\n setEventId(id: string) {\n this.eventId = id;\n }\n\n getTranslation(key: string): string {\n debugger\n console.log('eventId', this.eventId);\n let lang = String(this.getLang(this.eventId));\n // let lang = 'pt-br';\n console.log('lang 2.0', lang);\n const entry = this.translationsData.find((item) => item.Key === key);\n\n if (!entry) {\n return key; // fallback\n }\n console.log('entry.Translations[lang]', entry.Translations[lang]);\n\n return entry.Translations[lang] || entry.DefaultValue || key;\n }\n\n private getLang(eventId?: string | null): string {\n const suffix = eventId ? `-${eventId}` : '';\n const storageKey = `defaultLanguage${suffix}`;\n\n return localStorage.getItem(storageKey) || 'en';\n }\n\n private translationsData: any[] = [\n {\n Key: 'Ask anything',\n DefaultValue: 'Ask anything',\n Translations: {\n en: 'Ask anything',\n fr: 'Demandez ce que vous voulez',\n it: 'Chiedi qualsiasi cosa',\n es: 'Pregunta lo que quieras',\n de: 'Frag alles',\n 'pt-br': 'Pergunte qualquer coisa',\n ar: 'اسأل أي شيء',\n zh: '随便问',\n ru: 'Спросите что угодно',\n },\n },\n {\n Key: 'Assistant',\n DefaultValue: 'Assistant',\n Translations: {\n en: 'Assistant',\n fr: 'Assistant',\n it: 'Assistente',\n es: 'Asistente',\n de: 'Assistent',\n 'pt-br': 'Assistente',\n ar: 'مساعد',\n zh: '助手',\n ru: 'Ассистент',\n },\n },\n {\n Key: 'Your personal or company information is kept private and secure within this chat.',\n DefaultValue:\n 'Your personal or company information is kept private and secure within this chat.',\n Translations: {\n en: 'Your personal or company information is kept private and secure within this chat.',\n fr: 'Vos informations personnelles ou celles de votre entreprise sont conservées privées et sécurisées dans cette conversation.',\n it: \"Le tue informazioni personali o aziendali sono mantenute private e sicure all'interno di questa chat.\",\n es: 'Tu información personal o de la empresa se mantiene privada y segura dentro de este chat.',\n de: 'Ihre persönlichen oder geschäftlichen Informationen bleiben in diesem Chat privat und sicher.',\n 'pt-br':\n 'Suas informações pessoais ou da empresa são mantidas privadas e seguras dentro deste chat.',\n ar: 'تظل معلوماتك الشخصية أو معلومات شركتك خاصة وآمنة داخل هذه المحادثة.',\n zh: '您的个人或公司信息在此聊天中保持私密和安全。',\n ru: 'Ваша личная или корпоративная информация остается конфиденциальной и защищенной в этом чате.',\n },\n },\n {\n Key: 'Send message',\n DefaultValue: 'Send message',\n Translations: {\n en: 'Send message',\n fr: 'Envoyer un message',\n it: 'Invia messaggio',\n es: 'Enviar mensaje',\n de: 'Nachricht senden',\n 'pt-br': 'Enviar mensagem',\n ar: 'إرسال رسالة',\n zh: '发送消息',\n ru: 'Отправить сообщение',\n },\n },\n {\n Key: 'Platform GPT',\n DefaultValue: 'Platform GPT',\n Translations: {\n en: 'Platform GPT',\n fr: 'Plateforme GPT',\n it: 'Piattaforma GPT',\n es: 'Plataforma GPT',\n de: 'Plattform GPT',\n 'pt-br': 'Plataforma GPT',\n ar: 'منصة GPT',\n zh: '平台 GPT',\n ru: 'Платформа GPT',\n },\n },\n {\n Key: 'New Chat',\n DefaultValue: 'New Chat',\n Translations: {\n en: 'New Chat',\n fr: 'Nouvelle conversation',\n it: 'Nuova chat',\n es: 'Nuevo chat',\n de: 'Neuer Chat',\n 'pt-br': 'Novo chat',\n ar: 'محادثة جديدة',\n zh: '新聊天',\n ru: 'Новый чат',\n },\n },\n {\n Key: 'You',\n DefaultValue: 'You',\n Translations: {\n en: 'You',\n fr: 'Vous',\n it: 'Tu',\n es: 'Tú',\n de: 'Du',\n 'pt-br': 'Você',\n ar: 'أنت',\n zh: '您',\n ru: 'Вы',\n },\n },\n {\n Key: 'Write your message',\n DefaultValue: 'Write your message',\n Translations: {\n en: 'Write your message',\n fr: 'Écrivez votre message',\n it: 'Scrivi il tuo messaggio',\n es: 'Escribe tu mensaje',\n de: 'Schreiben Sie Ihre Nachricht',\n 'pt-br': 'Escreva sua mensagem',\n ar: 'اكتب رسالتك',\n zh: '写下您的消息',\n ru: 'Напишите ваше сообщение',\n },\n },\n {\n Key: 'Send',\n DefaultValue: 'Send',\n Translations: {\n en: 'Send',\n fr: 'Envoyer',\n it: 'Invia',\n es: 'Enviar',\n de: 'Senden',\n 'pt-br': 'Enviar',\n ar: 'إرسال',\n zh: '发送',\n ru: 'Отправить',\n },\n },\n {\n Key: 'Call Interface',\n DefaultValue: 'Call Interface',\n Translations: {\n en: 'Call Interface',\n fr: \"Interface d'appel\",\n it: 'Interfaccia chiamata',\n es: 'Interfaz de llamada',\n de: 'Anrufoberfläche',\n 'pt-br': 'Interface de chamada',\n ar: 'واجهة الاتصال',\n zh: '呼叫界面',\n ru: 'Интерфейс звонка',\n },\n },\n {\n Key: 'Call Interface',\n DefaultValue: 'Call Interface',\n Translations: {\n en: 'Call Interface',\n fr: \"Interface d'appel\",\n it: 'Interfaccia chiamata',\n es: 'Interfaz de llamada',\n de: 'Anrufoberfläche',\n 'pt-br': 'Interface de chamada',\n ar: 'واجهة الاتصال',\n zh: '呼叫界面',\n ru: 'Интерфейс звонка',\n },\n },\n {\n Key: 'Close',\n DefaultValue: 'Close',\n Translations: {\n en: 'Close',\n fr: 'Fermer',\n it: 'Chiudi',\n es: 'Cerrar',\n de: 'Schließen',\n 'pt-br': 'Fechar',\n ar: 'إغلاق',\n zh: '关闭',\n ru: 'Закрыть',\n },\n },\n ];\n}\n","const formatHoursAndMinutes = (date: Date) => {\n let hours = date.getHours() % 12;\n const minutes = date.getMinutes();\n const amPm = date.getHours() < 12 ? 'AM' : 'PM';\n if(hours === 0) hours = 12;\n\n const formattedHours = hours < 10 ? `0${hours}` : hours;\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\n\n return `${formattedHours}:${formattedMinutes} ${amPm}`;\n};\n\nexport const formatNow = (timezone?: string) => {\n const now = new Date();\n if (timezone) {\n const options: any = {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n timeZone: timezone,\n };\n return now.toLocaleString('en-US', options);\n }\n return formatHoursAndMinutes(now);\n};\n\nexport const formatTimeStamps = (timezone: string, timestamps: any) => {\n const date = new Date(timestamps + 'Z');\n\n const options: any = {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n timeZone: timezone,\n };\n return date.toLocaleString('en-US', options);\n};\n","\n\nexport const prod_environment = {\n USERS_API: 'https://es-user.social27.com/api',\n BASE_URL: 'https://agent-api.hivegpt.ai',\n AGENTS_API: 'https://hive-ai.social27.com/api',\n API_KEY: '82595783-dc9c-4513-8204-709818d51be3',\n SocketUrl: 'https://notif-v2-ws.social27.com/'\n}\n\n\nexport const dev_environment = {\n USERS_API: 'https://pre-user.social27.com/api',\n BASE_URL: 'https://pre-agent-api.hivegpt.ai',\n AGENTS_API: 'https://hive-pre-ai.social27.com/api',\n API_KEY: '66d59244c50b8fb597a101t1',\n SocketUrl: 'https://notif-ws-staging.social27.com/',\n};\n\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConversationService {\n private conversationStorageKeyPrefix = 'conversationKey_';\n private sessionStorageKeyPrefix = 'sessionKey_';\n\n private userSpecificNotification: Subject<any> = new Subject<any>();\n\n constructor() { }\n\n generateKey(): string {\n const timestamp = Math.floor(new Date().getTime() / 1000).toString(16);\n const randomHex = 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {\n return Math.floor(Math.random() * 16).toString(16);\n });\n return timestamp + randomHex;\n }\n\n getKey(botId: string, resetKey: boolean = false): string {\n const storageKey = `${this.conversationStorageKeyPrefix}${botId}`;\n let value = localStorage.getItem(storageKey);\n\n if (!value || resetKey) {\n value = this.generateKey();\n localStorage.setItem(storageKey, value);\n }\n\n return value;\n }\n\n getSessionKey(sessionId: string, resetKey: boolean = false): string {\n const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}`;\n let value = localStorage.getItem(storageKey);\n\n if (!value || resetKey) {\n value = this.generateKey();\n localStorage.setItem(storageKey, value);\n }\n\n return value;\n }\n\n sendValidatedUserData(message: any) {\n this.userSpecificNotification.next(message);\n }\n\n getUserSpecificNotification(): Observable<any> {\n return this.userSpecificNotification.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Socket, SocketIoConfig } from 'ngx-socket-io';\nimport { prod_environment } from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root' // This ensures the service is available across the application\n})\nexport class NotificationSocket extends Socket {\n constructor() {\n super(socketConfig);\n\n // Log connection status\n this.on('connect', () => {\n console.log('Socket connected');\n });\n\n this.on('disconnect', () => {\n console.warn('Socket disconnected');\n });\n\n this.on('connect_error', (err) => {\n console.error('Socket connection error:', err);\n });\n }\n}\n\nconst socketConfig: SocketIoConfig = {\n url: prod_environment.SocketUrl,\n options: {\n transports: ['websocket', 'polling'],\n reconnection: true,\n autoConnect: true,\n upgrade: true,\n reconnectionDelay: 1000,\n reconnectionDelayMax: 5000,\n reconnectionAttempts: Infinity\n }\n};","import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\nimport { ConversationService } from './conversation.service';\nimport { NotificationSocket } from './NotificationSocket';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocketService {\n public testMessage: string;\n private isCommonSocketInitialized = false;\n private isUserSpecificSocketInitialized = false;\n private isUserSpecificEventReleased = true;\n private messageQueue: any[] = [];\n private releaseInterval = 1000;\n private intervalSetup: boolean = false;\n\n constructor(\n private conversationService: ConversationService,\n private notificationSocket: NotificationSocket\n ) {\n this.startReleasingMessages();\n }\n\n isSocketInitialized(isCommon: boolean) {\n return isCommon\n ? this.isCommonSocketInitialized\n : this.isUserSpecificSocketInitialized &&\n !this.isUserSpecificEventReleased;\n }\n\n disconnectSocketConnection() {\n this.notificationSocket.disconnect();\n }\n connectSocketConnection() {\n this.notificationSocket.connect();\n }\n registerUserSpecificHiveSocket(botId: string, conversation_id: string, org_id: string) {\n const commonNotification = 'commonNotification';\n const groupId = `Hive_AI_Notifs_${botId}_${conversation_id}`;\n const groupId_org = `Hive_AI_Notifs_${org_id}`;\n\n // Remove any pre-existing listeners for commonNotification\n // this.notificationSocket.removeAllListeners(commonNotification);\n\n // Join the group again with updated botId and conversation_id\n this.notificationSocket.emit('joinData', { groupId });\n this.notificationSocket.emit('joinData', { groupId: groupId_org });\n\n // Re-register for common notifications\n this.notificationSocket.fromEvent(commonNotification).subscribe(\n (res) => {\n console.log('Received commonNotification:', res);\n this.conversationService.sendValidatedUserData(res);\n },\n (error) => {\n console.error('Error receiving commonNotification:', error);\n }\n );\n }\n\n private startReleasingMessages() {\n if (!this.intervalSetup) {\n setInterval(() => {\n if (this.messageQueue.length > 0) {\n const message = this.messageQueue.shift(); // Remove the first message from the queue\n // Handle the message here, e.g., send it to the server or process it\n console.log('Releasing message from queue:', message);\n // this.campaignService.sendValidatedUserData(message);\n }\n }, this.releaseInterval);\n this.intervalSetup = true; // Prevents multiple intervals\n }\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { HttpHeaders } from '@angular/common/http';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { AnyRecord } from 'dns';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BotsService {\n eventDescription = new Subject();\n bot_api = 'https://agent-api.hivegpt.ai/';\n constructor(private http: HttpClient) { }\n\n fetchSpeechAuthorizationToken(botId, apiKey, domain) {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n 'hive-bot-id': botId,\n 'domain-authority': domain\n });\n\n const apiUrl = `${this.bot_api}speech/issue_token`;\n const url = `${apiUrl}`;\n return this.http.get(url, { headers }).pipe(\n map((resp: any) => {\n return resp.token;\n })\n );\n }\n\n getWorkflowsByOrgId(orgId: string): Observable<any> {\n const apiUrl = `${this.bot_api}workflows`;\n const url = `${apiUrl}?org_id=${orgId}`;\n return this.http.get(url).pipe(\n map((resp: any) => {\n return resp;\n })\n );\n }\n\n getWorkflowExecutionById(executionId: string): Observable<any> {\n const apiUrl = `${this.bot_api}workflows/execution/${executionId}`;\n return this.http.get(apiUrl).pipe(\n map((resp: any) => {\n return resp;\n })\n );\n }\n}","// import { Platform } from '@angular/cdk/platform';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { TranslationService } from '../translations/translation.service';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\nimport {\n dev_environment,\n prod_environment,\n} from '../../../environments/environment';\nimport { ConversationService } from '../conversation.service';\nimport { Observable } from 'rxjs';\nimport { SocketService } from '../socket-service.service';\n\nimport { FormBuilder, Validators } from '@angular/forms';\nimport * as SpeechSDK from 'microsoft-cognitiveservices-speech-sdk';\nimport { BotsService } from '../bot.service';\nimport * as marked from 'marked'; // Import marked\n\n@Component({\n selector: 'hivegpt-chat-drawer-package',\n templateUrl: './chat-drawer.component.html',\n styleUrls: ['./chat-drawer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatDrawerComponent implements OnInit, OnChanges {\n @ViewChild('chatMain') private chatMain: ElementRef;\n @ViewChild('myInput') private myInput: ElementRef;\n @ViewChildren('closeplaygroundbutton')\n closePlaygroundButtons: QueryList<ElementRef>;\n @ViewChild('drawer') drawer!: MatDrawer;\n @ViewChild('sourcesDrawer') sourcesDrawer!: MatDrawer;\n @ViewChild('editorsDrawer') editorsDrawer!: MatDrawer;\n private bodyOverflowClass = 'body-overflow-hidden';\n @ViewChild('myTextarea', { static: false })\n myTextarea!: ElementRef<HTMLTextAreaElement>; // Reference to the textarea\n isCollapsedTrue = false;\n @Input() copilotName: string = 'HiveXGPT';\n @Input() firstName!: string;\n @Input() lastName!: string;\n @Input() apiKey!: string;\n @Input() bgBubbleAi!: string;\n @Input() bgBubbleUser!: string;\n @Input() bgGradient!: string[];\n @Input() botName!: string;\n @Input() botSkills!: string;\n @Input() botId!: string;\n @Input() orgId!: string;\n @Input() closeButtonColor!: string;\n @Input() closeButtonbgColor!: string;\n @Input() credentials!: [];\n @Input() dateTimeColor!: string;\n @Input() dateTextColor!: string;\n @Input() eventId!: string;\n @Input() s27Token!: string;\n @Input() eventName!: string;\n @Input() botIcon!: string;\n @Input() formFieldBgColor!: string;\n @Input() formFieldTextColor!: string;\n @Input() fullView!: boolean;\n @Input() gradientColors!: string[];\n @Input() greeting!: string;\n @Input() messageTextColorAi!: string;\n @Input() messageTextColorUser!: string;\n @Input() rules!: string;\n @Input() sendButtonColor!: string;\n @Input() sendButtonTextColor!: string;\n @Input() showClose!: boolean;\n @Input() thumbsDownMessages!: string[];\n @Input() thumbsUpMessage!: string;\n @Input() timezone!: string;\n @Input() unknownResponses!: [];\n @Input() useOpenAi!: boolean;\n @Input() userId!: string;\n @Input() isDev!: boolean;\n\n @Input() againButtonColor!: string[];\n @Input() againButtonTextColor!: string[];\n @Output() feedbackEvent = new EventEmitter<string>();\n @Output() onCloseEvent = new EventEmitter<void>();\n @Output() openPage = new EventEmitter<any>();\n @Output() sessionActions = new EventEmitter<any>();\n @Output() closeBot = new EventEmitter<any>();\n @Output() connectWithUser = new EventEmitter<any>();\n @Output() scheduleMeeting = new EventEmitter<string>();\n @Output() refreshToken = new EventEmitter<any>();\n @Output() openSupport = new EventEmitter<any>();\n\n autogenKey = 'Autogen_eDJTtEU-NB0RtIpzq1w';\n addToMyAgendaAction = 'add_to_my_agenda';\n myUpcomingSessionAction = 'my_upcomming_session';\n connectOrFollowAction = 'connect_or_follow';\n aiResponse: string = '';\n chatLog: any[] = [];\n decoder = new TextDecoder();\n feedbackDone: boolean = false;\n greetingMsg: string = '';\n hasBackdropValue: boolean = false;\n input: string = '';\n listenerAdded = false;\n loading: boolean = false;\n mode: string = 'over';\n quickPrompts: any[] = [];\n thumbsDownMsgIndex = 0;\n userName: string = '';\n showStartAgain: boolean = false;\n isIOSDevice: boolean = false;\n showFeedBackIconsIndex: number | null = null;\n temperature: number = 1;\n speakers = [];\n environment: {\n USERS_API;\n BASE_URL;\n AGENTS_API;\n };\n pendingRequests: any;\n myConnections: any;\n conversationKey: string;\n conSessionKey: string = '';\n isFetchDataFor: boolean;\n is401: boolean;\n msg: any;\n chat: any;\n isWorkflowOpen: boolean;\n orgWorkflows: any;\n openWorkflowInput: boolean;\n selectedWorkflow: any;\n workflowForm: any;\n currentWorkflowActionProgress: number = 0;\n currentWorkflowAction: string = '';\n executingWorkflow: boolean;\n workflowExecutionDetails: any;\n showWorkflowExecutionDetails: any;\n currentWorkflowExecutionDetails: any;\n\n speechConfig: SpeechSDK.SpeechConfig;\n recognizer: SpeechSDK.SpeechRecognizer;\n recognizedText: string = '';\n authorizationToken: string = '';\n region: string = 'westeurope'; // Set your Azure region here\n isRecording: boolean;\n\n constructor(\n private fb: FormBuilder,\n private botService: BotsService,\n private cdr: ChangeDetectorRef,\n private http: HttpClient,\n private sanitizer: DomSanitizer,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private socketService: SocketService,\n private conversationService: ConversationService, // private platform: Platform\n private translationService: TranslationService\n ) {\n this.chatMain = new ElementRef(null);\n\n // if (this.platform.IOS) {\n // this.isIOSDevice = true;\n // }\n }\ngetTranslation(key: string) {\n return this.translationService.getTranslation(key);\n }\n ngOnChanges(changes: SimpleChanges): void {\n // Handle eventId changes to update translation service\n if (changes.eventId && changes.eventId.currentValue) {\n this.translationService.setEventId(changes.eventId.currentValue);\n }\n\n if (changes.s27Token) {\n if (changes.s27Token.currentValue != changes.s27Token.previousValue) {\n this.s27Token = changes.s27Token.currentValue;\n\n console.log('isFetchDataFor: ', this.isFetchDataFor);\n console.log('msg: ', this.msg);\n console.log('chat: ', this.chat);\n if (this.is401) {\n if (this.isFetchDataFor) {\n this.fetchDataFor(this.msg, this.chat);\n } else {\n this.fetchData(this.msg);\n }\n }\n }\n }\n\n if (changes.orgId) {\n if (\n changes.orgId.currentValue != changes.orgId.previousValue &&\n changes.orgId.currentValue\n ) {\n this.initializeSocket();\n\n }\n }\n }\n\n\n domainAuthorityValue: any = \"prod-lite\";\n\n ngOnInit(): void {\n // Set the eventId in translation service to get the correct language from localStorage\n if (this.eventId) {\n this.translationService.setEventId(this.eventId);\n }\n\n this.environment = this.isDev ? dev_environment : prod_environment;\n\n const domain = window.location.hostname;\n\n // Determine the header value based on the domain\n\n\n if (domain.includes('pre-app.social27.com')) {\n this.domainAuthorityValue = 'pre-prod-lite';\n } else if (domain.includes('app.social27.com')) {\n this.domainAuthorityValue = 'prod-lite';\n } else if (domain.includes('hivegpt.io')) {\n this.domainAuthorityValue = 'hivegpt';\n }\n\n // this.fetchMyConnections().subscribe();\n // this.fetchPendingRequests().subscribe();\n\n this.changeTemperature(this.temperature);\n this.fetchBotConfig().subscribe(\n (res) => {\n this.cdr.markForCheck();\n\n this.fetchChatHistory().subscribe(\n (response) => {\n this.loading = false;\n this.mapChatHistory(response);\n this.cdr.markForCheck();\n },\n (err) => {\n console.error('Error fetching chat history:', err);\n }\n );\n },\n (err) => {\n console.error('Error fetching chat history:', err);\n }\n );\n // this.fetchAgents();\n // this.fetchEditorContent();\n this.cdr.markForCheck();\n // this.initializeSocket();\n this.botService.fetchSpeechAuthorizationToken(this.botId, this.apiKey, this.domainAuthorityValue).subscribe((token) => {\n this.authorizationToken = token;\n this.initializeSpeechRecognizer(token);\n });\n }\n\n private eventSubscription: Subscription;\n initializeSocket() {\n try {\n this.socketService.disconnectSocketConnection();\n } catch (error) { }\n setTimeout(() => {\n this.socketService.connectSocketConnection();\n setTimeout(() => {\n console.log('YES INIT');\n const conversation_id = this.conversationService.getKey(this.botId);\n\n this.socketService.registerUserSpecificHiveSocket(\n this.botId,\n conversation_id,\n this.orgId\n );\n setTimeout(() => {\n this.listenSockets();\n }, 300);\n }, 200);\n }, 300);\n }\n\n subscriptionNew: any;\n socketData: any;\n\n listenSockets() {\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n }\n console.log('Listen Socket');\n this.eventSubscription = this.conversationService\n .getUserSpecificNotification()\n .subscribe(\n (res) => {\n console.log('Listen Socket response');\n console.log(res);\n // Check if OtherFields exists in the response\n if (res?.m?.OtherFields?.workflow_id) {\n const {\n percentage,\n output,\n action_name,\n current_action_name,\n workflow_execution_id,\n time_stamp,\n } = res?.m?.OtherFields;\n\n this.currentWorkflowActionProgress = percentage;\n this.currentWorkflowAction = action_name;\n\n const actionIndex = this.workflowExecutionDetails.Actions.findIndex(\n (a) => a.Name == current_action_name\n );\n\n if (actionIndex !== -1) {\n this.workflowExecutionDetails.Actions[actionIndex][\n 'Output'\n ] = output;\n this.workflowExecutionDetails.Actions[actionIndex][\n 'InsertTimeStamp'\n ] = formatTimeStamps(this.timezone, time_stamp);\n } else {\n console.error(`Action with name ${action_name} not found`);\n }\n\n this.currentWorkflowExecutionDetails = this.workflowExecutionDetails;\n\n if (this.currentWorkflowActionProgress == 100) {\n this.chatLog[this.chatLog.length - 1][\n 'WorkflowExecutionId'\n ] = workflow_execution_id;\n this.isChatingWithAi = false;\n this.executingWorkflow = false;\n }\n\n this.cdr.detectChanges();\n } else if (res?.m?.OtherFields) {\n const {\n conversation_id,\n bot_id,\n message_id,\n answer,\n web_results,\n search_results,\n graphs,\n execution_graphs,\n suggestions,\n } = res?.m?.OtherFields;\n console.log('message_id1');\n console.log(res?.m?.OtherFields);\n var currentChatMessage = this.chatLog.find(\n (p) => p._id == message_id\n );\n console.log(this.chatLog);\n if (!currentChatMessage) {\n console.log('message_id2');\n console.log(message_id);\n currentChatMessage = {\n _id: message_id,\n type: 'ai',\n time: formatNow(this.timezone),\n };\n\n this.chatLog.push(currentChatMessage);\n\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n console.log('message_id3');\n console.log(message_id);\n this.cdr.detectChanges();\n }\n\n // Handle the fields based on their presence\n if (search_results && Array.isArray(search_results)) {\n console.log('Online Search Terms:', search_results);\n currentChatMessage.searchTerms = search_results;\n this.cdr.detectChanges();\n }\n\n if (web_results && Array.isArray(web_results)) {\n console.log('Web Results:', web_results);\n currentChatMessage.sourcesList = web_results;\n currentChatMessage.displayedSources = web_results?.slice(0, 3); // First 3 cards\n currentChatMessage.remainingSources = web_results?.slice(3); // Remaining items\n this.cdr.detectChanges();\n }\n\n if (answer) {\n this.isChatingWithAi = false;\n console.log('Answer:', answer);\n\n currentChatMessage.message = this.processMessageForDisplay(\n answer\n );\n this.cdr.detectChanges();\n this.scrollToBottom();\n }\n\n if (graphs && Array.isArray(graphs)) {\n console.log('Graphs:', graphs);\n currentChatMessage.graphs = graphs;\n this.cdr.detectChanges();\n }\n\n if (execution_graphs && Array.isArray(execution_graphs)) {\n console.log('Execution Graphs:', execution_graphs);\n currentChatMessage.executionGraphs = execution_graphs;\n this.cdr.detectChanges();\n }\n\n if (suggestions && Array.isArray(suggestions)) {\n console.log('suggestions:', suggestions);\n currentChatMessage.relatedListItems = suggestions;\n this.cdr.detectChanges();\n // Process online search terms as needed\n }\n\n // Add any other fields and their processing here\n } else {\n console.warn('OtherFields is missing in the response');\n }\n },\n (err) => {\n this.eventSubscription.unsubscribe();\n console.error('Error in fetching data from socket', err);\n }\n );\n }\n\n initializeSocketAndListen() { }\n handleEvent(data: any, type: string) {\n switch (type) {\n case 'webresult':\n break;\n case 'answer':\n break;\n case 'graph':\n break;\n default:\n break;\n }\n }\n ngOnDestroy(): void {\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n }\n this.socketService.disconnectSocketConnection();\n //this.socketService.close();\n }\n changeTemperature(newTemperature: number) {\n if (this.loading) return;\n this.temperature = newTemperature;\n const wrapper = document.querySelector('.hivegpt-chat-wrapper');\n // Remove existing theme classes from body\n wrapper?.classList.remove('creative', 'balanced', 'precise');\n\n switch (newTemperature) {\n case 0:\n wrapper?.classList.add('creative');\n break;\n case 1:\n wrapper?.classList.add('balanced');\n break;\n case 2:\n wrapper?.classList.add('precise');\n break;\n default:\n break;\n }\n }\n\n onStartAgain() {\n if (this.loading) return;\n this.showStartAgain = false;\n this.chatLog = [];\n this.chatLog.push({\n type: 'ai',\n message: this.greetingMsg,\n\n time: formatNow(this.timezone),\n });\n this.archieveMessages().subscribe();\n }\n\n archieveMessages() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n });\n const url = `${this.environment.BASE_URL}/bot/clear-history/${this.botId}/${this.userId}`;\n return this.http.post(url, { headers }).pipe(\n switchMap((res: any) => {\n return of(res);\n }),\n catchError((error) => {\n return of(null);\n })\n );\n }\n\n triggerSupport() {\n\n this.openSupport.emit();\n }\n fetchBotConfig() {\n this.loading = true;\n const headers = new HttpHeaders({\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n });\n const url = `${this.environment.BASE_URL}/bots?bot_id=${this.botId}`;\n return this.http.get(url, { headers }).pipe(\n switchMap((res: any) => {\n this.botName = res.Name;\n this.botIcon = res.Icon;\n this.botSkills = res?.Skills;\n this.greetingMsg = res.Greeting;\n\n this.thumbsDownMessages = res?.NegativeResponses?.length\n ? res.NegativeResponses\n : [\n `We are sorry we've not been able to answer your question.<br/> However, our dedicated support team is happy to help. <span class='feedback-link' style='cursor: pointer; text-decoration: underline; font-weight: 700; color: #17235B;'><a style='color: inherit; text-decoration: none;' id='supportLink88' >Please click here</a></span> and a human agent will assist you as soon as possible`,\n ];\n this.quickPrompts = res.QuickPrompts;\n this.cdr.markForCheck();\n this.loading = false;\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n this.loading = false;\n return of(null);\n })\n );\n }\n\n fetchChatHistory(): Observable<any> {\n this.loading = true;\n\n this.conversationKey = this.conversationService.getKey(this.botId, false);\n this.conSessionKey = this.conversationService.getSessionKey(this.botId, false);\n const url = `${this.environment.BASE_URL}/conversations/${this.conversationKey}?session_id=${this.conSessionKey}`;\n const headers = new HttpHeaders({\n accept: 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n });\n\n return this.http\n .get(url, { headers })\n .pipe(catchError(this.handleError<any>('fetchConversation')));\n }\n\n private handleError<T>(operation = 'operation', result?: T) {\n return (error: any): Observable<T> => {\n console.error(`${operation} failed: ${error.message}`);\n return of(result as T);\n };\n }\n // fetchChatHistory() {\n // this.loading = true;\n // const headers = new HttpHeaders({\n // 'Content-Type': 'application/json',\n // 'x-api-key': this.apiKey,\n // });\n // return this.http\n // .get(`${this.environment.BASE_URL}/conversations/${this.conversationKey}`, { headers })\n // .pipe(\n // switchMap((res: any) => {\n // this.loading = false;\n // return of(res);\n // }),\n // catchError((error: any) => {\n // console.error('Error fetching chat history: ', error);\n // this.loading = false;\n // return of(null);\n // })\n // );\n // }\n\n mapChatHistory(chats: any) {\n this.chatLog.push({\n type: 'ai',\n message: this.greetingMsg,\n time: formatNow(this.timezone),\n });\n if (chats && chats?.Messages?.length) {\n chats?.Messages.forEach((chat: any) => {\n if (chat.Type == 'user') {\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(chat.Text),\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\n copied: false,\n isCollapsedTrue: false,\n WorkflowExecutionId: chat.WorkflowExecutionId,\n _id: chat._id\n });\n }\n if (chat.Type == 'ai') {\n var sourcesList = chat.WebLinks || [];\n var displayedSources = chat.WebLinks.slice(0, 3); // First 3 cards\n var remainingSources = chat.WebLinks.slice(3); // Remaining items\n\n this.chatLog.push({\n type: 'ai',\n message: this.processMessageForDisplay(chat.Text),\n executionGraphs: chat.ExecutionGraphs,\n graphs: chat.Graphs,\n searchTerms: chat.SearchTerms,\n sourcesList: sourcesList,\n displayedSources: displayedSources,\n remainingSources: remainingSources,\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\n copied: false,\n isCollapsedTrue: false,\n _id: chat._id\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n }\n });\n this.showStartAgain = true;\n }\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n processMessage(message: string): SafeHtml {\n if (!message || !(message?.length > 0)) {\n return '';\n }\n\n // console.log('here is my message')\n // console.log(message);\n\n message = message.trim();\n\n const markdownLinkRegex = /\\[([^[]+)]\\(([^)]+)\\)/g;\n const urlRegex = /(?<!href=\")\\bhttps?:\\/\\/\\S+(?<![.,])/gi;\n\n if (markdownLinkRegex.test(message)) {\n const html = message.replace(\n markdownLinkRegex,\n '<a href=\"$2\" target=\"_blank\">$1</a>'\n );\n //console.log('Sanitized message: ', message);\n return this.sanitizeHtml(html);\n }\n\n if (urlRegex.test(message)) {\n const html = message.replace(\n urlRegex,\n '<a href=\"$&\" target=\"_blank\">$&</a>'\n );\n // console.log('Sanitized message: ', message);\n return this.sanitizeHtml(html);\n }\n\n message = message.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\n\n message = message.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\n // Convert Markdown headers to HTML headers\n message = message.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\n const level = hashes.length;\n return `<h${level}>${text}</h${level}>`;\n });\n\n this.cdr.markForCheck();\n const sanitizedMessage = this.sanitizeHtml(message);\n return sanitizedMessage;\n }\n\n ngAfterViewChecked() {\n const feedbackLinks = this.elementRef.nativeElement.querySelectorAll(\n '.feedback-link'\n );\n feedbackLinks.forEach((link: any) => {\n link.addEventListener(\n 'click',\n this.onFeedbackClick.bind(this, 'zendesk')\n );\n });\n // if (this.elementRef.nativeElement.querySelector('.feedback-link')) {\n // this.elementRef.nativeElement\n // .querySelector('.feedback-link')\n // .addEventListener('click', this.onFeedbackClick.bind(this, 'zendesk'));\n // }\n }\n\n sanitizeHtml(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n onFeedbackClick(value: string) {\n this.feedbackEvent.emit(value);\n }\n\n onClose() {\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\n this.onCloseEvent.emit();\n }\n\n sendMessageWithTile(prompt: string) {\n this.input = prompt;\n this.fetchData();\n this.scrollToBottom();\n }\n isChatingWithAi = false;\n fetchData(msg = null) {\n this.input = msg || this.input?.trim();\n this.msg = this.input;\n if (!this.input || this.loading) {\n return;\n }\n\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(this.input),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n\n try {\n const textarea = this.myInput.nativeElement;\n textarea.style.height = 'hidden'; // Reset the height\n textarea.style.height = `62px`;\n } catch (error) { }\n this.cdr.markForCheck();\n\n this.aiResponse = '';\n this.isChatingWithAi = true;\n\n this.makeAskRequest(this.input, this.agents, this.conversationKey);\n }\n fetchDataFor(msg, chat) {\n const inputMsg = msg?.trim();\n if (!inputMsg || this.loading) {\n return;\n }\n try {\n chat.relatedListItems = [];\n this.cdr.detectChanges();\n } catch (error) { }\n\n this.scrollToBottom();\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(inputMsg),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n\n this.cdr.markForCheck();\n\n this.aiResponse = '';\n this.isChatingWithAi = true;\n\n this.makeAskRequest(inputMsg, this.agents, this.conversationKey, msg, chat);\n }\n fetchSmallTalk() {\n this.loading = true;\n this.cdr.markForCheck();\n\n const url = `${this.environment.BASE_URL}/bot/small-talk/${this.botId}/${this.userId}`;\n\n this.http\n .get<{ smallTalk: string }>(url, {\n headers: {\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n },\n })\n .pipe(\n catchError((error) => {\n console.error('Error while fetching small talk:', error);\n\n return of(null);\n })\n )\n .subscribe((response) => {\n this.loading = false;\n this.cdr.markForCheck();\n\n if (!response) {\n return;\n }\n\n if (response && response.smallTalk) {\n this.chatLog.push({\n type: 'ai',\n message: this.processMessage(response.smallTalk),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 2;\n // this.scrollToBottom();\n this.cdr.markForCheck();\n }\n });\n }\n\n readAllChunks = (stream: any) => {\n const reader = stream.getReader();\n const allSuggestions: string[] = [];\n\n reader.closed.catch((err: any) => {\n if (err) {\n console.error('Error reading stream: ', err);\n }\n\n this.isChatingWithAi = false;\n this.scrollToBottom();\n return;\n });\n\n return new ReadableStream({\n start: (controller) => {\n return this.pump(controller, reader, allSuggestions);\n },\n });\n };\n\n pump(controller: any, reader: any, allSuggestions: string[]) {\n reader.read().then(({ done, value }: any) => {\n const lastItem = this.chatLog[this.chatLog.length - 1];\n\n if (done) {\n lastItem.message = this.processMessageForDisplay(lastItem.message);\n this.chatLog.pop();\n this.chatLog.push(lastItem);\n if (allSuggestions?.length) {\n this.chatLog.push({\n type: 'suggestions',\n suggestions: allSuggestions,\n });\n }\n\n controller.close();\n this.isChatingWithAi = false;\n // this.scrollToBottom();\n this.cdr.markForCheck();\n this.showStartAgain = true;\n\n // setTimeout(() => {\n // this.fetchSmallTalk();\n // },1000)\n return;\n }\n\n let decodedChunk = this.decoder.decode(value, { stream: true });\n this.aiResponse += decodedChunk;\n if (lastItem.type === 'ai') {\n const suggestionsMatch = this.aiResponse.match(/<sug>(.*?)<\\/sug>/g);\n if (suggestionsMatch) {\n suggestionsMatch.forEach((match) => {\n this.aiResponse = this.aiResponse.replace(match, '');\n allSuggestions.push(match?.replace(/<\\/?sug>/g, ''));\n });\n }\n\n lastItem.message = this.aiResponse;\n this.cdr.markForCheck();\n } else {\n this.isChatingWithAi = false;\n\n let aiFormattedData: any;\n\n try {\n console.log('parsing json ');\n aiFormattedData = JSON.parse(JSON.parse(this.aiResponse));\n } catch (e) {\n try {\n console.log('parsing json 2');\n aiFormattedData = JSON.parse(this.aiResponse);\n } catch (e) { }\n }\n\n console.log('parsing json done');\n\n if (aiFormattedData && aiFormattedData?.section_id?.length > 0) {\n if (\n aiFormattedData.section_id == 'company_search' ||\n aiFormattedData.section_id == 'user_search' ||\n aiFormattedData.section_id == 'industry_company_search'\n ) {\n this.fetchMyConnections().subscribe();\n this.fetchPendingRequests().subscribe();\n }\n\n if (aiFormattedData.section_id == this.myUpcomingSessionAction) {\n var speakerIds = [];\n aiFormattedData.content?.forEach((session) => {\n speakerIds = [...speakerIds, ...session.speakers];\n });\n\n if (speakerIds?.length > 0) this.getSpeakersByStaffIds(speakerIds);\n }\n\n if (\n aiFormattedData.section_id == this.addToMyAgendaAction &&\n aiFormattedData.content?.length > 0\n ) {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n sessionIds: aiFormattedData.content,\n });\n }\n\n if (aiFormattedData.section_id == this.connectOrFollowAction) {\n let usersLen = aiFormattedData.content?.length;\n if (usersLen > 1) {\n this.openPage.next({\n sectionId: 'open_networking_drawer',\n search: aiFormattedData.content,\n });\n } else if (usersLen == 1) {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n connetUserIds: [aiFormattedData.content[0].userId],\n });\n }\n }\n\n if (aiFormattedData.is_open_page == 'true') {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n search: aiFormattedData.content,\n });\n\n if (this.isMobileBrowser()) {\n aiFormattedData.message +=\n '\\n\\n' + '<a id=\"closeBotNow\">Click Here</a> to see results.';\n }\n }\n\n this.chatLog.push({\n type: 'ai',\n message: aiFormattedData.message,\n action: aiFormattedData,\n time: formatNow(this.timezone),\n });\n\n if (this.isMobileBrowser()) {\n setTimeout(() => {\n this.addCloseBotClickEvent();\n }, 500);\n }\n\n this.aiResponse = '';\n } else {\n this.chatLog.push({\n type: 'ai',\n message: this.aiResponse,\n time: formatNow(this.timezone),\n });\n }\n\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n this.cdr.markForCheck();\n }\n\n this.scrollToBottom();\n\n // Enqueue the next data chunk into our target stream\n controller.enqueue(value);\n this.pump(controller, reader, allSuggestions);\n });\n }\n\n submitFeedback(flag: boolean, message) {\n console.log(message);\n\n this.feedbackDone = true;\n this.showFeedBackIconsIndex = null;\n const conversation_id = this.conversationService.getKey(this.botId);\n const url = `${this.environment.AGENTS_API}/Conversation/coPilot/${this.botId}/conversation/${conversation_id}/helpful-response`;\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'apiKey': 'Conversation_WIz/qAm+EEmfOkFaUA/weA==',\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n },\n body: JSON.stringify({ messageId: message._id, isHelpful: flag }),\n }).then(() => {\n if (flag) {\n this.chatLog.push({\n type: 'ai',\n message:\n this.thumbsUpMessage ||\n `Great. May I assist you with anything else?`,\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n\n this.scrollToBottom();\n this.cdr.markForCheck();\n this.feedbackDone = false;\n this.showFeedBackIconsIndex = null;\n return;\n }\n\n this.chatLog.push({\n type: 'ai',\n message: this.processMessage(\n this.thumbsDownMessages[this.thumbsDownMsgIndex]\n ),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n this.thumbsDownMsgIndex =\n (this.thumbsDownMsgIndex + 1) % this.thumbsDownMessages.length;\n this.scrollToBottom();\n this.cdr.markForCheck();\n setTimeout(() => {\n const supportLink = document.getElementById('supportLink88');\n if (supportLink) {\n supportLink.addEventListener('click', this.triggerSupport.bind(this));\n\n }\n }, 200);\n this.feedbackDone = false;\n this.showFeedBackIconsIndex = null;\n });\n }\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' && !event.shiftKey) {\n // Prevent default behavior (new line)\n event.preventDefault();\n // Call your submit function\n this.handleSubmit(event);\n }\n }\n handleSubmit(event) {\n this.fetchData();\n this.scrollToBottom();\n\n }\n\n handleUpClick(idx: any) {\n if (this.feedbackDone) {\n return;\n }\n\n this.submitFeedback(true, this.chatLog[idx]);\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\n\n if (this.chatLog[idx].unliked) {\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\n }\n\n this.cdr.markForCheck();\n }\n\n handleDownClick(idx: any) {\n if (this.feedbackDone) return;\n this.submitFeedback(false, this.chatLog[idx]);\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\n if (this.chatLog[idx].liked)\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\n }\n // handleCopyClick(index: any) {\n // // Copy the message to the clipboard\n // const contentToCopy = this.chatLog[index].message;\n // console.log('contentToCopy');\n // console.log(contentToCopy);\n // navigator.clipboard.writeText(contentToCopy).then(() => {\n // // Indicate that the message was copied\n // this.chatLog[index].copied = true;\n // this.cdr.detectChanges();\n // // Reset the copied state after a delay\n // setTimeout(() => {\n // this.chatLog[index].copied = false;\n // this.cdr.detectChanges();\n // }, 2000); // Reset after 2 seconds\n // });\n // }\n copyText(id, index) {\n // Get the text element\n var textElement = document.getElementById(id);\n\n // Create a temporary textarea element to copy the text\n var tempTextArea = document.createElement('textarea');\n tempTextArea.value = textElement.innerText;\n\n // Append the textarea to the body (necessary for the execCommand to work)\n document.body.appendChild(tempTextArea);\n\n // Select the text inside the textarea\n tempTextArea.select();\n\n // Copy the text to the clipboard\n document.execCommand('copy');\n\n // Remove the temporary textarea\n document.body.removeChild(tempTextArea);\n\n // Optionally, you can alert the user or change the button text to indicate the copy was successful\n // alert('Text copied to clipboard!');\n\n this.chatLog[index].copied = true;\n this.cdr.detectChanges();\n // Reset the copied state after a delay\n setTimeout(() => {\n this.chatLog[index].copied = false;\n this.cdr.detectChanges();\n }, 2000); // Reset after 2 seconds\n }\n handleCopyClick(index: any) {\n // Copy the message to the clipboard\n const contentToCopy = this.chatLog[index].message;\n const resutlt = this.copyText('messageText_' + index, index);\n }\n\n sanitizeHTML(html: string): string {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n\n // Create a new document fragment to hold the simplified content\n const fragment = document.createDocumentFragment();\n\n // Append the children of the body of the parsed document to the fragment\n Array.from(doc.body.childNodes).forEach((node) => {\n fragment.appendChild(node.cloneNode(true));\n });\n\n // Create a new div element to hold the simplified HTML\n const simplifiedDiv = document.createElement('div');\n simplifiedDiv.appendChild(fragment);\n\n // Remove complex tags or attributes as needed\n // Example: remove scripts\n simplifiedDiv\n .querySelectorAll('script')\n .forEach((script) => script.remove());\n\n // Return the simplified HTML as a string\n return simplifiedDiv.innerHTML;\n }\n\n currentMessageForEditor: any = '';\n currentIndexForEditor: any = -1;\n handleEditorClick(index: any) {\n if (this.currentIndexForEditor == -1) {\n this.currentIndexForEditor = index;\n this.currentMessageForEditor = this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n\n this.cdr.detectChanges();\n } else {\n if (this.currentIndexForEditor == index) {\n this.currentMessageForEditor += this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n this.cdr.detectChanges();\n } else {\n this.currentIndexForEditor = index;\n this.currentMessageForEditor = this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n this.cdr.detectChanges();\n }\n }\n this.chatLog[index].isEditor = true;\n this.cdr.detectChanges();\n // Reset the copied state after a delay\n setTimeout(() => {\n this.chatLog[index].isEditor = false;\n this.cdr.detectChanges();\n }, 2000); // Reset after 2 seconds\n this.editorsDrawer.open();\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n this.cdr.detectChanges();\n }\n scrollToBottom() {\n let counter = 0;\n const interval = setInterval(() => {\n this.chatMain.nativeElement.scrollTop = this.chatMain.nativeElement.scrollHeight;\n if (counter++ > 5) clearInterval(interval);\n }, 5);\n }\n\n handleAction(action: any) {\n console.info('incoming action from the chatbot AI');\n console.info(action);\n\n if (action?.content) {\n }\n }\n\n ngAfterViewInit() {\n // Check if the drawer is initially open and apply overflow hidden to body if so\n if (this.drawer.opened) {\n this.setBodyOverflow();\n }\n\n // Listen to changes in the drawer being opened or closed\n this.drawer.openedChange.subscribe((opened: boolean) => {\n if (opened) {\n this.setBodyOverflow();\n } else {\n this.removeBodyOverflow();\n }\n });\n\n this.drawer.openedChange.subscribe((opened) => {\n if (opened) {\n setTimeout(() => {\n if (this.myTextarea && this.myTextarea.nativeElement) {\n this.myTextarea.nativeElement.focus(); // Focus on the textarea\n }\n });\n }\n });\n\n\n\n }\n\n private setBodyOverflow() {\n this.renderer.addClass(document.body, this.bodyOverflowClass);\n }\n\n private removeBodyOverflow() {\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\n }\n\n getSpeakersByStaffIds(ids) {\n const url = `${this.environment.USERS_API}/events/${this.eventId}/users/get-by-staff-ids`;\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + 'your_token_here',\n },\n body: JSON.stringify(ids),\n })\n .then((response) => {\n if (response.ok) {\n return response.json(); // Parse the JSON body of the response\n } else {\n throw new Error('Network response was not ok.');\n }\n })\n .then((data) => {\n if (data?.length > 0) {\n data.forEach((speaker) => {\n this.speakers[speaker.id] = speaker;\n });\n\n this.cdr.markForCheck();\n }\n })\n .catch((err) => {\n console.error('Error fetching data:', err);\n this.loading = false;\n });\n }\n\n performSessionAction(sessionId, action) {\n this.sessionActions.next({\n sessionId,\n action,\n });\n }\n\n addCloseBotClickEvent() {\n const element = this.elementRef.nativeElement.querySelector('#closeBotNow');\n if (element) {\n this.renderer.listen(element, 'click', () => {\n this.closeBot.next();\n });\n }\n }\n\n isMobileBrowser() {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n }\n\n connectToUser(userId) {\n this.connectWithUser.emit({\n connect: !this.canDisconnect(userId),\n userId,\n });\n\n setTimeout(() => {\n this.fetchMyConnections().subscribe((res) => {\n this.cdr.markForCheck();\n });\n this.fetchPendingRequests().subscribe((res) => {\n this.cdr.markForCheck();\n });\n }, 500);\n }\n\n scheduleMeetingWithUser(user) {\n this.scheduleMeeting.emit(user);\n }\n\n canConnect(userId) {\n return !(\n this.canDisconnect(userId) ||\n this.pendingRequests.find((a) => a == userId)\n );\n }\n\n canDisconnect(userId) {\n return this.myConnections.find((conn) => conn.userId == userId);\n }\n\n fetchPendingRequests() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: this.autogenKey,\n });\n return this.http\n .get(\n `${this.environment.USERS_API}/events/${this.eventId}/connection-requests/autogen/pending-sent-requests?userId=${this.userId}`,\n { headers }\n )\n .pipe(\n switchMap((res: any) => {\n this.pendingRequests = res;\n this.cdr.markForCheck();\n return of(res);\n }),\n catchError((error: any) => {\n console.error('Error fetching pending requests: ', error);\n return of(null);\n })\n );\n }\n\n fetchMyConnections() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: this.autogenKey,\n });\n return this.http\n .get(\n `${this.environment.USERS_API}/events/${this.eventId}/users-connections/autogen?userId=${this.userId}`,\n { headers }\n )\n .pipe(\n switchMap((res: any) => {\n this.myConnections = res;\n this.cdr.markForCheck();\n return of(res);\n }),\n catchError((error: any) => {\n console.error('Error fetching pending requests: ', error);\n return of(null);\n })\n );\n }\n\n isDropdownOpen: boolean = false;\n agents: any;\n selectedAgents = [];\n allSelected = false;\n // Toggle the dropdown visibility\n toggleDropdown() {\n if (!this.agents)\n this.fetchAgents();\n this.isDropdownOpen = !this.isDropdownOpen;\n this.cdr.detectChanges();\n }\n\n onSelectAll(event: Event): void {\n this.agents?.forEach((agent) => (agent.selected = false));\n this.cdr.detectChanges();\n }\n\n onAgentChange(agent: any): void {\n //agent.selected = !agent.selected;\n //console.log(agent);\n let agentFound = this.agents.filter((p) => p.id == agent.id);\n if (agentFound && agentFound.length > 0) {\n agentFound[0].selected = !agentFound[0].selected;\n this.cdr.detectChanges();\n }\n this.cdr.detectChanges();\n }\n\n areAllSelected(): boolean {\n return this.agents?.every((agent) => !agent.selected);\n }\n\n getDropdownHeaderText(): string {\n const selectedAgents = this.agents?.filter((agent) => agent.selected);\n if (!selectedAgents) {\n return 'All Agents';\n } else {\n if (selectedAgents && selectedAgents?.length === 0) {\n return 'All Agents';\n } else {\n return selectedAgents?.length > 1\n ? `${selectedAgents?.length} Agents Selected`\n : `${selectedAgents?.length} Agent Selected`;\n }\n }\n }\n fetchAgents_http() {\n this.loading = true;\n const url = `${this.environment.AGENTS_API}/CoPilot/${this.botId}/active-agents`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n });\n\n return this.http.post(url, {}, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n this.agents = res.map((agent) => ({\n ...agent,\n selected: false,\n }));\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n isDocInEditMode = false;\n documentContent: any;\n\n conversationId: any;\n isContentLoaded = false;\n\n fetchContent_http() {\n this.isDocInEditMode = false;\n this.isContentLoaded = false;\n console.log('API call function');\n this.loading = true;\n const conversation_id = this.conversationService.getKey(this.botId);\n this.conversationId = conversation_id;\n const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${conversation_id}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n 'domain-authority': this.domainAuthorityValue\n });\n\n return this.http.get(url, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n this.isDocInEditMode = true;\n this.documentContent = res;\n console.log('Get API callled success');\n this.isContentLoaded = true;\n console.log(res);\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config DJ: ', error);\n this.isDocInEditMode = false;\n this.isContentLoaded = true;\n\n if (error?.status == 404) {\n console.log('dash');\n this.isDocInEditMode = false;\n this.isContentLoaded = true;\n }\n return of(null);\n })\n );\n }\n\n fetchAgents() {\n this.fetchAgents_http().subscribe();\n }\n\n fetchEditorContent() {\n this.fetchContent_http().subscribe();\n }\n\n // events/${eventId}/users-connections\n processMessageForDisplay(markdown: string): SafeHtml {\n try {\n // Create a custom renderer to modify <a> tags\n const renderer = new marked.Renderer();\n\n // Customize anchor tags to include target=\"_blank\"\n renderer.link = (href: string, title: string, text: string) => {\n return `<a href=\"${href}\" title=\"${title || ''\n }\" target=\"_blank\">${text}</a>`;\n };\n\n // Parse the markdown content to HTML using marked with the custom renderer\n const markdownContent = marked.parse(markdown, { renderer: renderer });\n\n // Sanitize the parsed HTML using Angular's DomSanitizer\n const sanitizedHtml = this.sanitizer.bypassSecurityTrustHtml(\n markdownContent\n );\n\n // Return the safe HTML content for display\n return sanitizedHtml;\n } catch (error) {\n console.error('Error processing markdown:', error);\n return ''; // Return an empty string or handle the error appropriately\n }\n }\n\n prepareHtml(markdown: string): string {\n if (!markdown || !(markdown.length > 0)) {\n console.error('Input Markdown is null or empty');\n return '';\n }\n\n // Convert Markdown headers (### or ##) to <strong> for bold headings\n let html = markdown.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\n const level = hashes.length;\n if (level === 3) {\n return `<h3><strong>${text}</strong></h3>`;\n } else if (level === 4) {\n return `<h4><strong>${text}</strong></h4>`;\n }\n return `<strong>${text}</strong>`;\n });\n\n // Convert Markdown code blocks with language to preformatted HTML\n html = html.replace(/```(\\w+)?\\n([\\s\\S]*?)```/g, (match, lang, code) => {\n const escapedCode = this.escapeHtml(code);\n const language = lang || 'plaintext';\n\n // Create a copy button for the code block\n return `\n <div class=\"code-container\">\n <button id=\"copy-button\" class=\"copy-button\" (click)=\"copyToClipboard('\\`${escapedCode}\\`')\">Copy</button>\n <pre class=\"code_block diff\"><code class=\"language-${language}\">${escapedCode}</code></pre>\n </div>`;\n });\n\n // Convert inline code (wrapped in `backticks`) to inline <code> tags\n html = html.replace(/`([^`]+)`/g, '<code>$1</code>');\n\n // Convert Markdown bold to HTML <strong>\n html = html.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\n\n // Convert numbered lists\n html = html.replace(/^\\d+\\.\\s+(.*)$/gm, '<li>$1</li>');\n\n // Convert bullet point lists\n html = html.replace(/^\\-\\s+(.*)$/gm, '<li>$1</li>');\n\n // Convert Markdown links to HTML links\n html = html.replace(/\\[([^\\]]+)]\\(([^)]+)\\)/g, '<a href=\"$2\" target=\"_blank\">$1</a>');\n\n // Convert new lines to <br> tags for paragraphs\n html = html.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\n\n return html;\n }\n\n // Helper function to escape HTML characters for code blocks\n escapeHtml(code: string): string {\n return code\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n\n // Function to copy text to clipboard\n public copyToClipboard(text: string) {\n navigator.clipboard.writeText(text).then(() => {\n alert('Code copied to clipboard!');\n }, (err) => {\n console.error('Could not copy text: ', err);\n });\n }\n\n\n\n\n\n\n isCollapsed = false;\n isCollapsedForGraph = false;\n isCollapsedForFGraph = false;\n toggleCollapse() {\n this.isCollapsed = !this.isCollapsed;\n this.cdr.detectChanges();\n }\n\n toggleCollapseGraph() {\n this.isCollapsedForGraph = !this.isCollapsedForGraph;\n this.cdr.detectChanges();\n }\n toggleCollapseFGraph() {\n this.isCollapsedForFGraph = !this.isCollapsedForFGraph;\n this.cdr.detectChanges();\n }\n // [\n // {\n // \"title\": \"AI News January 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"Each month, we compile significant news, trends, and happenings in AI, providing detailed summaries with key points in bullet form for concise yet complete understanding.\",\n // \"link\": \"https://theaitrack.com/ai-news-january-2024/\"\n // },\n // {\n // \"title\": \"Top AI News, January 2024 - Everypixel Journal\",\n // \"desc\": \"In this monthly roundup, we spotlight the top AI news stories from January, including the OpenAI vs. The New York Times Lawsuit.\",\n // \"link\": \"https://journal.everypixel.com/top-ai-news-january-2024\"\n // },\n // {\n // \"title\": \"AI News July 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"This page features AI News for July 2024, highlighting significant events such as Canva acquiring Leonardo AI.\",\n // \"link\": \"https://theaitrack.com/ai-news-july-2024-in-depth-and-concise/\"\n // },\n // {\n // \"title\": \"January news roundup: What's new in the world of AI? - Pluralsight\",\n // \"desc\": \"OpenAI’s new GPT store, business-ready ChatGPT plans, and a predicted rise in AI-powered cybercrime.\",\n // \"link\": \"https://www.pluralsight.com/resources/blog/data/ai-this-month-january-2024\"\n // },\n // {\n // \"title\": \"AI News August 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"This page features AI News for August 2024, with highlights such as Nvidia delaying the “Blackwell” B200 AI chips delivery.\",\n // \"link\": \"https://theaitrack.com/ai-news-august-2024-in-depth-and-concise-duplicate/\"\n // }\n // ]\n dateTime = { now: new Date().toISOString() };\n // Extracts the domain from a URL\n getDomainName(url: string): string {\n try {\n const { hostname } = new URL(url);\n return hostname.replace(/^www\\./, ''); // Remove 'www.' if present\n } catch {\n return 'unknown';\n }\n }\n\n // Generates the favicon URL\n getFaviconUrl(url: string): string {\n const domain = this.getDomainName(url);\n return `https://www.google.com/s2/favicons?sz=128&domain=${domain}`;\n }\n currentSourcesList: any = [];\n onCardClick(sources): void {\n this.currentSourcesList = sources;\n this.cdr.detectChanges();\n this.sourcesDrawer.open();\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n }\n\n isShowEditorButton = true;\n\n openOuterEditor() {\n this.fetchEditorContent();\n this.editorsDrawer.open();\n this.isDrawerOpen = true;\n this.isShowEditorButton = false;\n this.cdr.detectChanges();\n\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n }\n\n onCloseEditor() {\n this.editorsDrawer.close();\n this.isDrawerOpen = false;\n this.isShowEditorButton = true;\n this.cdr.detectChanges(); // Trigger change detection if needed\n this.onDrawerClosed();\n }\n\n onCloseSource() {\n this.sourcesDrawer.close();\n this.isDrawerOpen = false;\n this.cdr.detectChanges(); // Trigger change detection if needed\n this.onDrawerClosed();\n }\n onDrawerClosed() {\n setTimeout(() => {\n this.isDrawerOpen = true;\n this.cdr.detectChanges(); // Trigger change detection if needed\n // Use ngClass to dynamically apply the class\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'block';\n }\n }, 800);\n }\n isDrawerOpen = true;\n\n toggleDrawer(todo) {\n this.isDrawerOpen = todo;\n this.cdr.detectChanges();\n this.updateButtonVisibility();\n }\n updateButtonVisibility() {\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = this.isDrawerOpen ? 'block' : 'none';\n }\n }\n openLinkInNewTab(link: string): void {\n window.open(link, '_blank');\n }\n adjustTextareaHeight(event: any): void {\n try {\n if (event.key === 'Enter' && !event.shiftKey) {\n // Prevents a new line from being added\n event.preventDefault();\n }\n } catch (error) {\n\n }\n const textarea = event.target as HTMLTextAreaElement;\n textarea.style.height = 'auto'; // Reset the height\n textarea.style.height = `${textarea.scrollHeight}px`; // Adjust height to match content\n // Ensure the height doesn't exceed the max-height set in CSS\n if (textarea.scrollHeight > 150) {\n textarea.style.height = `150px`; // Adjust height to match content\n textarea.style.overflowY = 'auto'; // Enable scrolling if content exceeds 400px\n } else {\n textarea.style.overflowY = 'hidden'; // Hide scrollbar if content is within limits\n }\n }\n\n toggleWorkflows(value = null) {\n\n if (!this.checkForCop29BotId()) {\n this.botService.getWorkflowsByOrgId(this.orgId).subscribe((res) => {\n this.orgWorkflows = res;\n this.isWorkflowOpen = value == null ? !this.isWorkflowOpen : value;\n\n if (!this.isWorkflowOpen) {\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n }\n\n this.cdr.detectChanges();\n });\n }\n\n }\n\n initializeForm() {\n // Create form controls dynamically based on selectedWorkflow.Trigger.InputSchema\n const formControls = {};\n if (this.selectedWorkflow?.Trigger?.InputSchema) {\n this.selectedWorkflow.Trigger.InputSchema.forEach((input) => {\n formControls[input.InputId] = [\n input.Value || '',\n input.Required ? Validators.required : null,\n ];\n });\n }\n\n // Initialize the form\n this.workflowForm = this.fb.group(formControls);\n }\n\n onWorkflowSelected(workflow) {\n this.selectedWorkflow = workflow;\n this.initializeForm();\n this.isWorkflowOpen = false;\n this.openWorkflowInput = true;\n }\n\n onWorkflowSubmit() {\n const container = document.getElementById('allChats');\n if (this.workflowForm.valid) {\n console.log(this.workflowForm.value);\n\n var input = this.prepareHtml(\n this.generateMarkdown(\n this.selectedWorkflow.Name,\n this.workflowForm.value\n )\n );\n\n // update last two chatLog entries, set showWorkflowExecutionLoader = false\n try {\n this.chatLog[this.chatLog.length - 1][\n 'showWorkflowExecutionLoader'\n ] = false;\n this.chatLog[this.chatLog.length - 2][\n 'showWorkflowExecutionLoader'\n ] = false;\n } catch (error) { }\n\n this.chatLog.push({\n type: 'user',\n message: input,\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n showWorkflowExecutionLoader: true,\n });\n\n console.log(input);\n\n this.currentWorkflowActionProgress = 0;\n this.currentWorkflowAction =\n 'Executing ' + this.selectedWorkflow.Actions[0].Name;\n this.isChatingWithAi = true;\n this.executingWorkflow = true;\n this.workflowExecutionDetails = {\n Actions: this.selectedWorkflow.Actions,\n Inputs: this.workflowForm.value,\n workflowInputs: this.workflowForm.value,\n WorkflowName: this.selectedWorkflow.Name,\n };\n this.currentWorkflowExecutionDetails = this.workflowExecutionDetails;\n this.scrollToBottom();\n\n this.cdr.detectChanges();\n\n // execute the ask endpoint with workflow input\n this.makeAskRequest(\n input,\n this.agents,\n this.conversationKey,\n '',\n null,\n this.selectedWorkflow['_id'],\n this.workflowForm.value\n );\n }\n }\n\n makeAskRequest(\n inputMsg: string,\n agents: any[],\n conversationId: string,\n msg?: any,\n chat?: any,\n workflowId?: string,\n workflow_inputs?: any\n ): void {\n var url = `${this.environment.BASE_URL}/ai/ask`;\n\n var body = {\n user_question: inputMsg,\n user_id: this.userId,\n bot_id: this.botId,\n message_id: this.conversationService.generateKey(),\n session_id: this.conSessionKey,\n agents: agents?.filter((p) => p.selected).map((p) => p.id) ?? [],\n conversation_id: conversationId,\n first_name: this.firstName,\n last_name: this.lastName\n };\n\n if (workflowId) {\n body['workflow_id'] = workflowId;\n body['workflow_inputs'] = workflow_inputs;\n }\n\n\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + this.s27Token,\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue\n },\n body: JSON.stringify(body),\n })\n .then((response) => {\n if (response.status === 401 || response.status === 403) {\n this.is401 = true;\n this.refreshToken.emit();\n\n // If `msg` and `chat` exist, handle them\n if (msg && chat) {\n this.msg = msg;\n this.chat = chat;\n this.isFetchDataFor = true;\n }\n } else {\n this.is401 = false;\n }\n return response.json();\n })\n .then((data) => {\n console.log(data);\n // Additional response handling if needed\n })\n .catch((err) => {\n console.error('Error: ', err);\n this.isChatingWithAi = false;\n });\n\n this.input = '';\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n this.isWorkflowOpen = false;\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n\n makeAskRequestold(\n inputMsg: string,\n agents: any[],\n conversationId: string,\n msg?: any,\n chat?: any,\n workflowId?: string,\n workflow_inputs?: any\n ): void {\n const url = `${this.environment.BASE_URL}/ai/ask`;\n\n const body: any = {\n user_question: inputMsg,\n user_id: this.userId,\n bot_id: this.botId,\n message_id: this.conversationService.generateKey(),\n agents: agents?.filter((p) => p.selected).map((p) => p.id) ?? [],\n conversation_id: conversationId,\n first_name: this.firstName,\n last_name: this.lastName,\n };\n\n if (workflowId) {\n body['workflow_id'] = workflowId;\n body['workflow_inputs'] = workflow_inputs;\n }\n\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n\n this.http.post(url, body, { headers })\n .subscribe({\n next: (data) => {\n console.log(data);\n // Additional response handling if needed\n },\n error: (err) => {\n console.error('Error: ', err);\n this.isChatingWithAi = false;\n },\n });\n\n this.input = '';\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n this.isWorkflowOpen = false;\n this.scrollToBottom();\n this.cdr.markForCheck();\n\n }\n\n generateMarkdown(title, obj) {\n // Initialize markdown with the title\n let markdown = `## ${title}\\n`;\n\n // Loop through the object and append the field names and values\n for (const [key, value] of Object.entries(obj)) {\n var key_label =\n this.selectedWorkflow.Trigger.InputSchema.find(\n (input) => input.InputId === key\n )?.Label || key;\n markdown += `- **${key_label}**: ${value}\\n`;\n }\n\n return markdown;\n }\n\n showWorkflowHistoryDetails(workflow_id) {\n if (!workflow_id) {\n this.workflowExecutionDetails = this.currentWorkflowExecutionDetails;\n this.showWorkflowExecutionDetails = true;\n this.cdr.detectChanges();\n return;\n }\n\n this.botService.getWorkflowExecutionById(workflow_id).subscribe((res) => {\n if (res && res.Actions && Array.isArray(res.Actions)) {\n res.Actions = res.Actions.map((action) => {\n if (action.InsertTimeStamp) {\n action.InsertTimeStamp = formatTimeStamps(\n this.timezone,\n action.InsertTimeStamp\n );\n }\n return action;\n });\n }\n\n res.InsertTimeStamp = formatTimeStamps(\n this.timezone,\n res.InsertTimeStamp\n );\n this.workflowExecutionDetails = res;\n this.showWorkflowExecutionDetails = true;\n this.cdr.detectChanges();\n });\n }\n\n closeModal() {\n this.showWorkflowExecutionDetails = false;\n }\n\n objectToArray(obj: any): any[] {\n return Object.keys(obj).map((key) => ({ key, value: obj[key] }));\n }\n\n startNewConversation() {\n this.conversationKey = this.conversationService.getKey(this.botId, true);\n this.chatLog = [this.chatLog[0]];\n this.isChatingWithAi = false;\n setTimeout(() => {\n this.initializeSocket();\n }, 200);\n this.scrollToBottom();\n this.cdr.detectChanges();\n }\n\n initializeSpeechRecognizer(token: string) {\n this.speechConfig = SpeechSDK.SpeechConfig.fromAuthorizationToken(\n token,\n this.region\n );\n const audioConfig = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();\n this.recognizer = new SpeechSDK.SpeechRecognizer(\n this.speechConfig,\n audioConfig\n );\n\n this.recognizer.recognizing = (s, e) => {\n if (e.result.reason === SpeechSDK.ResultReason.RecognizingSpeech) {\n this.input = e.result.text;\n console.log(`Recognizing: ${e.result.text}`);\n this.cdr.markForCheck();\n }\n };\n\n this.recognizer.recognized = (s, e) => {\n if (e.result.reason === SpeechSDK.ResultReason.RecognizedSpeech) {\n this.input = e.result.text;\n console.log(`Recognized: ${e.result.text}`);\n this.toggleRecording();\n this.cdr.markForCheck();\n }\n };\n\n this.recognizer.canceled = (s, e) => {\n console.error('Canceled: ', e.errorDetails);\n };\n\n this.recognizer.sessionStopped = (s, e) => {\n console.log('Session stopped.');\n this.recognizer.stopContinuousRecognitionAsync();\n this.fetchData();\n };\n }\n\n toggleRecording() {\n this.isRecording = !this.isRecording;\n\n if (this.isRecording) {\n this.startRecognition();\n } else {\n this.stopRecognition();\n }\n }\n\n startRecognition() {\n this.recognizer.startContinuousRecognitionAsync();\n }\n\n stopRecognition() {\n this.recognizer.stopContinuousRecognitionAsync();\n }\n\n checkForCop29BotId() {\n return this.botId == '66fa3f276c5d71e2717bfea8' || this.botId == '671633545652dd78efec848d';\n\n }\n\n getLatestTime(time): string {\n if (time) {\n return time;\n }\n return new Date().toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n }); // returns current time in 'shortTime' format\n }\n}\n","import { Component, Input } from '@angular/core';\n@Component({\n selector: 'hivegpt-chatbot',\n templateUrl: './chatbot.component.html',\n styleUrls: ['./chatbot.component.scss'],\n})\nexport class ChatBotComponent {\n @Input() userId!: string;\n @Input() apiKey!: string;\n @Input() botName!: string;\n @Input() botSkills!: string;\n @Input() botId!: string;\n @Input() closeButtonColor!: string;\n @Input() gradientColors!: string[];\n @Input() greeting!: string;\n @Input() sendButtonColor!: string;\n @Input() useOpenAi!: boolean;\n @Input() showClose!: boolean;\n @Input() bgGradient!: string[];\n @Input() sendButtonTextColor!: string;\n @Input() fullView!: boolean;\n @Input() bgBubbleAi!: string;\n @Input() bgBubbleUser!: string;\n @Input() closeButtonbgColor!: string;\n @Input() messageTextColorAi!: string;\n @Input() messageTextColorUser!: string;\n @Input() dateTimeColor!: string;\n @Input() dateTextColor!: string;\n @Input() formFieldBgColor!: string;\n @Input() formFieldTextColor!: string;\n @Input() thumbsUpMessage!: string;\n @Input() thumbsDownMessages!: string[];\n @Input() timezone!: string;\n @Input() eventName!: string;\n @Input() credentials!: [];\n @Input() unknownResponses!: [];\n @Input() rules!: string;\n @Input() eventId!: string;\n visible = false;\n\n toggle() {\n this.visible = !this.visible;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html): unknown {\n return html ? this.sanitizer.bypassSecurityTrustHtml(html) : '';\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { IVideo } from '../../models/video';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n})\nexport class VideoPlayerComponent\n implements OnInit, AfterViewInit {\n @Input() currentUserId: string;\n @Input() user: any;\n @Input() eventId: string;\n @Input() videoObj: IVideo;\n @Input() isDev: boolean;\n myFollowingList: Array<string>;\n myPendingSentRequests: Array<string>;\n @Input() type: string;\n isMuted: boolean = true;\n private observer: IntersectionObserver;\n isFullscreen: boolean = false;\n @ViewChild('video') video: any;\n @ViewChild('fullscreenvideo') fullscreenvideo: any;\n isFullscreenvideoPlaying: boolean = false;\n\n @Output() connectWithUser = new EventEmitter<string>();\n @Output() scheduleMeeting = new EventEmitter<any>();\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n private el: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n }\n\n ngOnInit(): void {\n }\n\n toggleSound(isMuted = null) {\n this.isMuted = isMuted != null ? isMuted : !this.isMuted;\n setTimeout(() => {\n const video: any = this.doc\n .getElementById(this.video.id.toString());\n if (video) {\n video.muted = this.isMuted;\n this.video.isMuted = this.isMuted;\n }\n\n this.cdr.markForCheck();\n //this.muteToggle.emit(this.isMuted);\n })\n}\n\n togglePlay(playState: boolean, videoEl) {\n this.videoObj.isPlaying = !this.videoObj.isPlaying;\n setTimeout(() => { \n if (playState) { \n this.videoObj.isPlaying = true;\n videoEl.play();\n var pauseBtn = document.getElementById('pause-btn');\n pauseBtn.classList.add('hide-pause-btn');\n\n this.toggleSound(false);\n }\n else{\n this.videoObj.isPlaying = false;\n videoEl.pause();\n }\n this.cdr.markForCheck();\n })\n }\n \n ngAfterViewInit() {\n if (window.innerWidth <= 576) {\n this.observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting === true) {\n this.video.nativeElement.play();\n } else {\n this.video.nativeElement.pause();\n }\n },\n {\n threshold: 0.75,\n }\n );\n\n this.observer.observe(this.el.nativeElement as HTMLElement);\n }\n }\n\n toggleFullscreen() {\n this.isFullscreen = !this.isFullscreen;\n if (!this.isFullscreen) {\n this.fullscreenvideo.nativeElement.pause();\n }\n }\n\n toggleFullscreenPlay() {\n this.isFullscreenvideoPlaying = !this.isFullscreenvideoPlaying;\n\n if (this.isFullscreenvideoPlaying) {\n this.fullscreenvideo.nativeElement.play();\n } else {\n this.fullscreenvideo.nativeElement.pause();\n }\n }\n\n followUser(userId) {\n this.connectWithUser.emit(userId);\n }\n\n checkPendingSentRequest(userId) {\n return this.myPendingSentRequests?.find(a => a == userId);\n }\n\n canUnfollowUser() {\n return false;\n }\n\n canFollowUser() {\n return true;\n }\n\n getIniNames(firstName, lastName) {\n if(!firstName && !lastName) {\n return '';\n }\n \n if (firstName && lastName)\n return (\n firstName.charAt(0).toUpperCase() + lastName.charAt(0).toUpperCase()\n );\n else return firstName.charAt(0).toUpperCase();\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\nimport {\n dev_environment,\n prod_environment,\n} from '../../../environments/environment';\nimport { ConversationService } from '../conversation.service';\nimport { Observable } from 'rxjs';\nimport { SocketService } from '../socket-service.service';\n\n@Component({\n selector: 'lib-bot-html-editor',\n templateUrl: './bot-html-editor.component.html',\n styleUrls: ['./bot-html-editor.component.css'],\n})\nexport class BotHtmlEditorComponent implements OnInit {\n @Input() editorContent: Observable<string>;\n @Input() isDocInEditMode: any;\n @Input() documentContent: any;\n @Input() conversationId: any;\n @Input() botId: any;\n\n documentName: any = 'doc name';\n\n environment: {\n USERS_API;\n BASE_URL;\n AGENTS_API;\n };\n\n quillConfig = {\n toolbar: [\n [{ header: '1' }, { header: '2' }, { font: [] }],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['bold', 'italic', 'underline'],\n ['link'],\n ['clean'],\n ],\n };\n constructor(private cdr: ChangeDetectorRef, private http: HttpClient) {}\n\n ngOnInit(): void {\n this.environment = prod_environment;\n\n setTimeout(() => {\n if (this.isDocInEditMode) {\n console.log('In Edit mode');\n this.filldataInForm();\n } else {\n console.log('In save mode');\n }\n }, 2500);\n }\n\n filldataInForm() {\n if (this.documentContent) {\n this.documentName = this.documentContent?.name;\n this.editorContent = this.documentContent?.content;\n this.cdr.detectChanges();\n }\n }\n\n saveContent() {\n if (!this.isDocInEditMode) {\n this.saveContent_http().subscribe();\n } else {\n this.saveContent_http().subscribe();\n }\n }\n\n saveContent_http() {\n console.log('API call function');\n\n const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${this.conversationId}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n });\n\n let data = {\n name: this.documentName,\n content: this.editorContent,\n };\n\n return this.http.post(url, data, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n // alert('Saved Successfully');\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n\n updateContent_http() {\n console.log('API call function');\n\n const url = `${this.environment.AGENTS_API}/ConversationDocuments/rename?conversationId=${this.conversationId}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n });\n\n let data = {\n name: this.documentName,\n content: this.editorContent,\n };\n\n return this.http.put(url, data, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n // alert('Updated Successfully');\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { ChatDrawerComponent } from './components/chat-drawer/chat-drawer.component';\nimport { ChatBotComponent } from './components/chatbot/chatbot.component';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { VideoPlayerComponent } from './components/video-player/video-player.component';\nimport { QuillModule } from 'ngx-quill';\nimport { BotHtmlEditorComponent } from './components/bot-html-editor/bot-html-editor.component';\n\n@NgModule({\n declarations: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent, SafeHtmlPipe, BotHtmlEditorComponent],\n imports: [CommonModule, MatIconModule, MatSidenavModule, FormsModule, QuillModule],\n exports: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent]\n})\nexport class HiveGptModule { }\n","/*\n * Public API Surface of hive-gpt\n */\n\nexport * from './lib/components/chat-drawer/chat-drawer.component';\nexport * from './lib/components/chatbot/chatbot.component';\nexport * from './lib/hivegpt.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {NotificationSocket as ɵd} from './lib/components/NotificationSocket';\nexport {BotHtmlEditorComponent as ɵh} from './lib/components/bot-html-editor/bot-html-editor.component';\nexport {BotsService as ɵa} from './lib/components/bot.service';\nexport {ConversationService as ɵc} from './lib/components/conversation.service';\nexport {SocketService as ɵb} from './lib/components/socket-service.service';\nexport {TranslationService as ɵe} from './lib/components/translations/translation.service';\nexport {VideoPlayerComponent as ɵf} from './lib/components/video-player/video-player.component';\nexport {SafeHtmlPipe as ɵg} from './lib/pipes/safe-html.pipe';"],"names":[],"mappings":"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"}
|